Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-

2,922 views

Published on

講演 "ゴール指向の測定と品質保証活動 -メトリクス解説およびGQM法のワークショップ-"

ソフトウェアの品質保証活動を進めるにあたり、測定を通じたプロダクトやプロセスの定量評価が欠かせません。しかし、注目して測った事柄は大抵改善することや、測定が断片的情報を与えることに注意する必要があります。
本講演では最初に、メトリクスを用いた定量評価に取り組む際の落とし穴とコツを事例を交えて解説し、具体的な手法として、目的をもって改善させたい事柄を測定評価するゴール指向の枠組みGoal-Question-Metric(GQM)法を解説します。
また関連するシフト社との共同研究成果として、過去の測定結果とテスト観点表を活用したテストケース優先順位づけ手法を紹介します(IEEE ICST 2015採択)。続いて、参加者それぞれの品質保証活動等を題材としてワークショップ形式で、GQM法の適用によるゴール指向の測定評価を体験します。

  18:00-19:00 【講演】"ゴール指向の測定と品質保証活動"
  19:00-20:00 【ワークショップ】品質保証活動へのGQM法適用 

ゲストスピーカー略歴 【 鷲崎 弘宜(わしざき ひろのり)准教授 】

早稲田大学グローバルソフトウェアエンジニアリング研究所所長、早稲田大学理工学術院基幹理工学部情報理工学科准教授、国立情報学研究所客員准教授。博士(情報科学)。
ソフトウェアの設計、再利用、品質保証を中心としたソフトウェアエンジニアリングの研究、教育、社会展開に従事。他の活動にIEEE CS Japan Chapter Chair、SEMAT Japan Chapter Chair、ISO/IEC/JTC1/SC7/WG20 Interim Convenor、情報処理学会プログラミングコンテスト委員会SamurAI Coding委員長、日科技連SQiP研究会運営小委員会副委員長。IJSEKE、IEICE Transactions、 コンピュータソフトウェア 誌、品質 誌ほか各種論文誌編集委員。IEEE ICST 2017 共同プログラム委員長予定。著書に『ソフトウェアパターン』『ソフトウェア品質知識体系ガイドSQuBOK Guide』、訳書に『演習で学ぶソフトウエアメトリクスの基礎』など。

イベント詳細

○日時: 2015年5月26日(火)18:00~20:00(受付開始 17:45~)

Published in: Software

ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-

  1. 1. ゴール指向の測定と品質保証活動 -メトリクス解説およびGQM法のワークショ ップ- 早稲田大学グローバルソフトウェアエンジニアリング研究所 鷲崎 弘宜 Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ わしざき ひろのり ヒンシツ大学ET#07 2015年5月26日
  2. 2. • 早稲田大学グローバルソフトウェ アエンジニアリング研究所所長・ 准教授 • 国立情報学研究所客員准教授 • ISO/IEC/JTC1/SC7/WG20 Convenor • IEEE CS Japan Chapter Chair • SEMAT Japan Chapter Chair • ACM-ICPC 2014 Tokyo Director • IPSJ SamurAI Coding Director • 運営: ASE, SEKE, SPLC, APSEC, AsianPLoP… • プログラム委員: ASE, ICST, … • 論文: ICSE, ASE, CAiSE, ICST, … 2
  3. 3. 早稲田大学グローバルソフトウェア エンジニアリング研究所 • グローバル開発時代 のソフトウェアエンジ ニアリング研究 • 鷲崎(所長) • 東基衞(顧問)、筧、 深澤、岸、本田(所員 ) • 招聘研究員17 名 • 学生多数(留学生: 中 国、ノルウェー、メキ シコ、インドネシア他) 3 HITACHI YAHOO! Google FUJITSU NEC TOSHIBA OGIS-RI AfrelRECRUIT Florida Atlantic U. Benesse 信州大学 東京大学 IPANII KOMATSU QUNIENAIST 学芸大 IISEC Shift
  4. 4. 目次 • ソフトウェア品質とメトリクス • メトリクスの落とし穴、コツ、事例 • メトリクスのテストへの応用研究 • ゴール指向の測定 GQM法 • ワークショップ • まとめ 4
  5. 5. 品質とは • 品質: あるものの特性または属性 [American Heritage Dictionary] • ソフトウェア品質: ソフトウェアの使用時に必 要性を満たす能力を決定する属性全体 [ISO9126-1][ISO25000][JIS0129-1] – 属性: ソフトウェアの定性的/定量的に測定可能 な特徴 5
  6. 6. メトリクス(Metric / Metrics) • 測定の方法と尺度 – 方法: 属性(測定可能な特徴)の尺度上の値や分類への 対応付け – 尺度: 値や分類の集合 • 測定できない事柄は、管理できない(T. DeMarco) – ソフトウェア工学 = ソフトウェアの開発、運用、および保 守に対する系統的で規律に基づいた定量的アプローチ [SWEBOK] – Prj成功率 31% → 定量的評価導入Prj 46% [矢口08] …… …… …… 測定方法 測定尺度 測定プロセス メトリクス 測定結果 (値、分類) 6 [SWEBOK] 松本吉弘 監訳: ソフトウェアエンジニアリング基礎知識体系―SWEBOK2004, オーム社, 2005. [矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008.
  7. 7. 品質保証活動と測定 • 早期に検証して欠陥の早期発見・除去 • 測定によるプロダクト(およびプロセス)品質評価と改善 7 レビュー 形式検証 価値分析 要求分析 詳細設計 実装 (コンパイラチェック) 単体テスト 統合テスト基本設計 受入れテストレビュー 測定 レビュー 形式検証 プロセス定義 レビュー 静的テスト
  8. 8. 主なメトリクス 名称 定義 用途 コード行数(LOC) コードの行数 規模の把握、他のメトリ クスの正規化 ファンクションポイン ト(FP) 機能量 規模の見積もり サイクロマティック複 雑度(CC) 制御フローグラフの経路 数 複雑さの把握 凝集度 モジュール内の要素のま とまり 複雑さの把握 結合度 モジュール間の結合関係 の多さ 複雑さの把握 欠陥密度(DD) 欠陥数 / 新規・変更LOC 品質の把握、開発プロセ ス全体の有効性把握 欠陥除去率(DRE) 欠陥摘出数 / 当該時点 欠陥数 開発プロセス全体や工 程の有効性把握 消化済みテストケー ス数 当該時点までの消化済 みテストケース数 テストの進捗把握 プロダクト プロセス 8
  9. 9. メトリクスの使いどころ • 現在: 把握、評価 • 未来: 予測、計画 要求 定義 設計 実装 テスト 機能 仕様書 ファンクション ポイント モジュール 設計 凝集度 結合度 ソース コード 複雑度 コード行数 欠陥票 欠陥密度 テスト ケース 消化数 工数、期間 9
  10. 10. 目次 • ソフトウェア品質とメトリクス • メトリクスの落とし穴、コツ、事例 • メトリクスのテストへの応用研究 • ゴール指向の測定 GQM法 • ワークショップ • まとめ 10
  11. 11. 何行ですか? 11 1:/* strncat()は、文字列srcからcount数の文字を文字列destに付加し、さ 2:らに終端にnull文字を付加する。重なるオブジェクト間でコピーしようとする 3:場合、動作は未定義である。*/ 4:char *strncat(char *dest, const char *src, size_t count) 5:{ 6: char *temp=dest; 7: if (count) { 8: while (*dest) 9: dest++; 10: while ((*dest++=*src++)) { 11: if (--count ==0) { 12: *dest=‘¥0’; break; 13: } 14: } 15: } return temp; 16:} リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
  12. 12. 落とし穴「ホーソン効果」 12
  13. 13. I. 解釈 (評価基準) コツ「ゴール指向のメトリクス定義」 • Goal-Question-Metric(GQM)パラダイム M. メトリクス G. 目標 Q. 質問 測定対象(データ) 達成評価 答え 測定値 13 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012. リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009. V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994)
  14. 14. コツ「多面的に測り、最後は現物」 14 G.信頼性 G.保守性 G.移植性G.効率性 G.再利用性 G.解析性 G.変更性 G.試験性目標 メトリクス M.コールグラフ 階層の深さ M.サイクロ マティック複雑度 M.関数内の 戻り点の数 G.安定性 ・・・ ・・・ Q.制御構造が 複雑すぎない か? 質問 副質問 Q.処理が複雑 すぎないか? Q.処理が構造 化されているか? Q.複雑な文を記 述していない か? ・・・・・・ ・・・ …… … …… … …… … …… … プログラム ソースコード 鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25 [Adqua] http://www.ogis-ri.co.jp/product/b-08-000001A6.html
  15. 15. 事例: Yahoo! Japanとの取り組み メトリクスによる保守性・機能性評価・改善 15H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns, APSEC'14
  16. 16. 落とし穴「値を信頼できるとは限らない」 16 1:/* strncat()は、文字列srcからcount数の文字を文字列destに付加し、さ 2:らに終端にnull文字を付加する。重なるオブジェクト間でコピーしようとする 3:場合、動作は未定義である。*/ 4:char *strncat(char *dest, const char *src, size_t count) 5:{ 6: char *temp=dest; 7: if (count) { 8: while (*dest) 9: dest++; 10: while ((*dest++=*src++)) { 11: if (--count ==0) { 12: *dest=‘¥0’; break; 13: } 14: } 15: } return temp; 16:} リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
  17. 17. I. 解釈 ダッシュボード コツ「ツールで客観的に、組織で一貫」 17 M. メトリクス G. 目標 Q. 質問 対象(データ) 評価 答え 測定値 モニタ ツール メトリクス システム H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns, APSEC'14 K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
  18. 18. 落とし穴「未来が今の延長とは限らない」 18
  19. 19. コツ「不確実性を考慮した測定と予測」 • 予測における幅と種別 19 0 10 20 30 40 50 60 70 80 90 0 5 10 15 • 経験に基づく仮定明示 M. 呼び出し先 モジュール数 G. 変更されやすい 箇所を特定できている Q. モジュールの依存 関係はどの程度か? M. 呼び出し元 モジュール数 A. あちこちと依存するモ ジュールは変更されやすい K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14 Monden, Basili, et al.: Customizing GQM Models for Software Project Monitoring, IEICE Trans., 2012. Basili, V.R., et al. Linking Software Development and Business Strategy Through Measurement, IEEE Computer, 2010.
  20. 20. 事例: 不確実性を考慮した欠陥予測 予測欠陥数の変動欠陥数と予測モデル 不確実性 K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14 20
  21. 21. コツ「メトリクス システムの改善」 21 N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
  22. 22. 22 人手 レビュー Adqua+ 評価ツール 事例: コマツとの取り組み 保守性評価メトリクス システム改善 I A Q M G 機械学習+ 人手精査 N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral M 改善
  23. 23. 事例3(つづき): 責務過多なファイル特定 23 10 25 300 150 M. 関数の数 M.実行行数 OK NG 71 M. 関数の数 M.実行行数 OK NG △ 人手OK, ○ 人手NG N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
  24. 24. 目次 • ソフトウェア品質とメトリクス • メトリクスの落とし穴、コツ、事例 • メトリクスのテストへの応用研究 • ゴール指向の測定 GQM法 • ワークショップ • まとめ 24
  25. 25. 類似プロダクトの実績を用いたテスト優先度付け • 早稲田大学×シフト社 共同研究、IEEE ICST’15 採択 – テスト観点あたりの発見欠陥数 – 全体における欠陥検出割合 25 Tadahiro Noguchi, Hironori Washizaki, Yoshiaki Fukazawa, Atsutoshi Sato, Kenichiro Ota, “History-Based Test Case Prioritization for Black Box Testing on a New Product using Ant Colony Optimization,” Proceedings of the 8th IEEE International Conference on Software Testing, Verification, and Validation (ICST 2015), Testing in Practice track
  26. 26. 26 CRUD 認証 脆弱 性 検索 レイアウ ト CRUD 認証 脆弱 性 検索 レイアウ ト 18 3 4 1 CRUD 認証 脆弱 性 検索 レイアウ ト CRUD 認証 脆弱 性 検索 レイアウ ト CRUD 認証 脆弱 性 検索 レイアウ ト # テスト観点 1 CRUD 2 認証 3 レイアウト 4 脆弱性 5 検索
  27. 27. 目次 • ソフトウェア品質とメトリクス • メトリクスの落とし穴、コツ、事例 • メトリクスのテストへの応用研究 • ゴール指向の測定 GQM法 • ワークショップ • まとめ 27
  28. 28. Goal-Question-Metric (GQM) パラダイム • 明確に目標を据えて、目標に対して必要なメトリクスを対応 付けるゴール指向(目標指向)な枠組み • 目標(Goal): 測定上の目標 • 質問(Question): 目標の達成を評価するための質問 • メトリクス(Metric): 質問に回答するために必要な定量的デ ータを得るための主観的・客観的メトリクス 測定する事柄 の決定 測定結果の 解釈 M. メトリクス G. 目標 Q. 質問 収集データ 目標達成評価 答え 測定値 R. van Solingen, E. Berghout, “The Goal/Question/Metric Method” McGraw-Hill Education, 1999; ISBN 0-07709-553-7. 28
  29. 29. GQMモデル(グラフ)の例 • 目標 – G. コードクローン含有の観点から保守性の低いコードを 特定できている。 • 質問 – Q1: コードクローンは存在するか? → M1, M2 – Q2: 発見されたコードクローンは保守上有害か? → M3 • メトリクス – M1: ソースコードの全体的な重複度 – M2: モジュール単位のコードクローン含有率 – M3: コードクローンに対するマネージャの主観的評価 29 G Q1 Q2 M1 M2 M3 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012. V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994) リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
  30. 30. 目標テンプレートとコンテキスト • 目標の一般性、扱う範囲の明確化 • テンプレート – 例: コードクローン含有の観点から保守性の低いコードを 特定できている。 – 対象 (Analyze) 例: ソースコード – 目的 (Purpose) 例: 保守性の低いコードの特定 – 関心 (Respect to) 例: コードクローン情報 – 視点 (View) 例: プロジェクトマネージャ – 環境 (Context) 例: A社の開発環境 • 環境 – ドメイン、開発者数、経験、開発プロセス・手法、規模・工 数、信頼性要求、・・・ 30 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012. V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994) リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
  31. 31. Question導出の観点 • 測定対象そのものを目的から見て明確にする – 例: ○○はいくらか? • 対象の属性を評価者の視点から見て明確にす る – 例: ○○は(従来と比べて)改善されているか? • 対象の特徴を評価者の視点から見て評価する – 例: ○○は××からみて目に見えて改善されている か? 31 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012.
  32. 32. GQMの拡張 • 上位/ビジネスゴール (参考: GQM+Strategies) – 測定上のGoalの上位ゴール – B. 収益が拡大している -> G. 収益向上を予測できている – B. ツールが開発状況の把握に役立っている -> G. 要求の不安定 さを把握できている • 仮定(Hypothesis, Assumption) – Question導出にあたり仮定している事柄 – A. 要求が不安定であれば設計は頻繁に変更される。 • 解釈(Interpretation) – もし「条件式」ならば「Goalはこのように達成・未達成である」 – I. もしLOCが少なすぎず、かつ、設計変更回数が一定以上ならば 、要求が不安定な可能性がある。 • メカニズム(Mechanism) – データの収集と報告を実施する責任者、収集・報告頻度、必要な インフラ – 例: プロジェクトマネージャが毎週、XXXレポートを参照して・・・ 32 リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの基礎 ソフトウエアの測定と 見積もりの正しい作法", 日経BP社 , 2009. Monden, Basili, et al.: Customizing GQM Models for Software Project Monitoring, IEICE Trans., 2012.
  33. 33. GQMの拡張: 仮定と解釈 33Monden, Basili, et al.: Customizing GQM Models for Software Project Monitoring, IEICE Trans., 2012. G. 特定プロジェクトにおける要求の不安定さを把握できている Q. ソースファイルの 変更頻度はいくらか? Q. ファイルの変更 規模はいくらか? FCt. 一週間以内の ファイル更新回数 FCd. 一週間以内の削除 を伴うファイル更新回数 FLa. 一週間以 内の追加行数 A. 要求が不安定であれば コードは頻繁に削除を 伴って変更される A. 要求が不安定であれば コードは大きく変更される FLd. 一週間以 内の削除行数 I. FCt が極端に大きくなく、かつ、 FCdが以前よりも大きいのであれ ば、要求が不安定な可能性あり I. FLa が極端に大きくなく、かつ、 FLdが以前よりも大きいのであれ ば、要求が不安定な可能性あり ・・・
  34. 34. 目次 • ソフトウェア品質とメトリクス • メトリクスの落とし穴、コツ、事例 • メトリクスのテストへの応用研究 • ゴール指向の測定 GQM法 • ワークショップ • まとめ 34
  35. 35. ワークショップ 1. Goalのブレーンストーミング、チーム分け – プロダクトの品質評価、改善 – 品質保証活動の評価、改善 – その他 2. チームでGQM適用 – Goal詳細化(必要であればビジネスゴールも) – Question導出(仮説も) – Metric識別(解釈も) 3. チーム内で見直し、修正 – そもそものビジネスゴールに照らした妥当性 – G-Q-M の縦の妥当性 – Q-M の横の広がりの網羅性 4. 講評、振り返り、今後のアクション 35
  36. 36. 目次 • ソフトウェア品質とメトリクス • メトリクスの落とし穴、コツ、事例 • メトリクスのテストへの応用研究 • ゴール指向の測定 GQM法 • ワークショップ • まとめ 36
  37. 37. まとめ、メッセージ • ソフトウェア開発の厳しさとメトリクスの重要性 – 開発の管理、品質把握と改善 • メトリクスの限界を知り意思決定に役立てる – 測定方法、信頼性、妥当性、負のホーソン効果 • GQMによるゴール指向の測定 – 測定と改善のプロセス – GQM+Strategiesによる組織目標へのひもづけ 37
  38. 38. 予告とお願い • 情報処理推進機構(IPA)「2015年度ソフトウェア工学 分野の先導的研究支援事業に関する委託契約」 • http://www.ipa.go.jp/about/kobo/kobo20141201.html • 申請課題「ソフトウェア製品群の測定評価と分析によ る製品品質の実態定量化および総合的品質評価枠 組みの確立」(2015-2016年間、代表: 鷲崎) • 日本の約40製品の品質の実態調査 • 内部品質、外部品質、利用時の品質を定量的に測定 評価、影響関係を精密かつ総合的に明らかに • 品質間の関係を総合的に実証した初のベンチマーク • 測定評価対象の公募等の詳細は6月を予定 38
  39. 39. • メトリクス全般 – リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエア メトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009. • GQM – 鷲崎弘宜、”ゴール指向の測定評価と留意 – GQMパラダイムと拡張 -”、メトリクス公団、Vol.1 、TEF東海メトリクス勉強会、2013. – 楠本真二、肥後芳樹: “GQMパラダイムを用いたソフトウェアメトリクスの活用”、コンピュータ ソフトウェア、29(3)、pp.29-38、2012. – Basili, V., Caldiera, C., and Rombach, D.: “Goal, Question, Metric Paradigm, Encyclopedia of Software Engineering,” Vol.1, pp. 528–532, 1994. • GQM+Strategies – Basili, V.R., Lindvall, M., Regardie, M., Seaman, C., Heidrich, J., Munch, J., Rombach, D., Trendowicz, A.: “Linking Software Development and Business Strategy Through Measurement,” IEEE Computer, Vol.43, No.4, pp.57-65, 2010. – 早稲田大学ゴール指向経営研究会、「残念なシステム」のなくしかた、日経ITPro、連載、2014 年5月14日~6月11日 • 事例 – 鷲崎弘宜, 田邉浩之, 小池利和, “ソースコード解析による品質評価の仕組み”, 日経エレクト ロニクス, 2010年1月25日号, 2010. – 鷲崎弘宜, 阿左美勝, 田邉浩之, “モデル活用の効能: 第1回 モデルを書く意味”~ “モデル活 用の効能: 第4回 参加チームの事例3″,日経エレクトロニクス, 日経BP社, 2011年8月8日号~ 11月号 – Kiyoshi Honda, Hidenori Nakai, Hironori Washizaki, et al., “Predicting Time Range of Development Based on Generalized Software Reliability Model,” 21st Asia-Pacific Software Engineering Conference (APSEC 2014) – Seiji Sato, Hironori Washizaki, et al., “Effects of Organizational Changes on Product Metrics and Defects,” 20th Asia-Pacific Software Engineering Conference (APSEC 2013). – Ryohei Takasawa, Kazunori Sakamoto, Akinori Ihara, Hironori Washizaki, Yoshiaki Fukazawa, “Do open source software projects conduct tests enough?,” 15th International Conference of Product Focused Software Development and Process Improvement (Profes 2014) – Susumu Tokumoto, Kazunori Sakamoto, Kiyofumi Shimojo, Tadahiro Uehara and Hironori Washizaki, “Semi-automatic Incompatibility Localization for Re-engineered Industrial Software,” 7th IEEE International Conference on Software Testing, Verification and Validation (ICST 2014) 39

×