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.
ゴール指向の測定によるソフトウェア
品質評価と改善の実践的取組み
(三つのコツ、三つの事例)
早稲田大学グローバルソフトウェアエンジニアリング研究所
鷲崎 弘宜
Twitter: @Hiro_Washi washizaki@waseda.jp
...
• 早稲田大学グローバルソフトウェアエ
ンジニアリング研究所所長・准教授
• 国立情報学研究所客員准教授
• 情報規格調査会ISO/IEC SC7/WG20
主査
• IEEE CS Japan Chapter Chair
• SEMAT Ja...
早稲田大学グローバルソフトウェア
エンジニアリング研究所
• グローバル開発時
代のソフトウェアエン
ジニアリング研究
• 所長: 鷲崎弘宜
• 教授 6名
• 招聘研究員17 名
• 学生25名 (留学生5
名、中国、ノルウェ
ー、メキシコ、...
FUJITSU
Google
FUJITSU
如何にソフトウェアを効率よく効果的に開発できるか?
如何に堅固な理論の上にプラクティスを構築できるか?
4
要求定義
コード解析
単体テスト
受入テスト
マネジメント 教育
実装
Abstracti...
測定と品質マネジメント
Industrial Experience of GQM-based Product-Focused Project Monitoring (APSEC’14)
Predicting Time Range Based o...
目次
• ソフトウェアの品質とメトリクス
• メトリクスの落とし穴と「コツ」
• 事例1: プロダクト品質把握と予測 [Yahoo]
• 事例2: ソフトウェア変更予測 [富士通]
• 事例3: メトリクスプログラムの改善 [コマツ]
• まと...
品質とは
• 品質: あるものの特性または属性 [American
Heritage Dictionary]
• ソフトウェア品質: ソフトウェアの使用時に必
要性を満たす能力を決定する属性全体
[ISO9126-1][ISO25000][JI...
メトリクス(Metric / Metrics)
• 測定の方法と尺度
– 方法: 属性(測定可能な特徴)の尺度上の値や分類への
対応付け
– 尺度: 値や分類の集合
• 測定できない事柄は、管理できない(T. DeMarco)
– ソフトウェア...
メトリクスの使いどころ
• 現在: 把握、評価
• 未来: 予測、計画
要求
定義
設計 実装 テスト
機能
仕様書
ファンクション
ポイント
モジュール
設計
凝集度
結合度
ソース
コード
複雑度
コード行数
欠陥票
欠陥密度
テスト
ケー...
目次
• ソフトウェアの品質とメトリクス
• メトリクスの落とし穴と「コツ」
• 事例1: プロダクト品質把握と予測 [Yahoo]
• 事例2: ソフトウェア変更予測 [富士通]
• 事例3: メトリクスプログラムの改善 [コマツ]
• まと...
落とし穴「ホーソン効果」
11
I. 解釈
(評価基準)
コツ「ゴール指向のメトリクス定義」
• Goal-Question-Metric(GQM)パラダイム
M. メトリクス
G. 目標
Q. 質問
測定対象(データ)
達成評価
答え
測定値
12
楠本真二, 肥後芳樹, ...
コツ「多面的に測り、最後は現物」
13
G.信頼性 G.保守性 G.移植性G.効率性 G.再利用性
G.解析性 G.変更性 G.試験性目標
メトリクス
M.コールグラフ
階層の深さ
M.サイクロ
マティック複雑度
M.関数内の
戻り点の数
G....
落とし穴「値を信頼できるとは限らない」
14
1:/* strncat()は、文字列srcからcount数の文字を文字列destに付加し、さ
2:らに終端にnull文字を付加する。重なるオブジェクト間でコピーしようとする
3:場合、動作は未定義...
I. 解釈
ダッシュボード
コツ「ツールで客観的に、組織で一貫」
15
M. メトリクス
G. 目標
Q. 質問
対象(データ)
評価
答え
測定値
モニタ
ツール
メトリクス システム
H. Nakai, et al. Initial Ind...
落とし穴「未来が今の延長とは限らない」
16
コツ「不確実性を考慮した測定と予測」
• 予測における幅と種別
17
0
10
20
30
40
50
60
70
80
90
0 5 10 15
• 経験に基づく仮定明示
M. 呼び出し先
モジュール数
G. 変更されやすい
箇所を特定できて...
I. 解釈
コツ「メトリクス システムの改善」
18
計画
測定
評価
改善
A. 仮定
G. 目標
Q. 質問
メトリクス
対象(データ)
評価
答え
測定値
C. 事実
Q. 質問
M. メトリクス
G. 目標
N. Tsuda, et a...
目次
• ソフトウェアの品質とメトリクス
• メトリクスの落とし穴と「コツ」
• 事例1: プロダクト品質把握と予測 [Yahoo]
• 事例2: ソフトウェア変更予測 [富士通]
• 事例3: メトリクスプログラムの改善 [コマツ]
• まと...
事例1: Yahoo! Japanとの取り組み
メトリクスによる保守性・機能性評価・改善
20H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused...
事例1(つづき): 不確実性を考慮した欠陥予測
予測欠陥数の変動欠陥数と予測モデル
不確実性
K. Honda, et al., Predicting Time Range Based on Generalized Software Relia...
22
25
0.2
15
0.1
05
0
05
0.1
15
0.2
-15
-10
-5
0
5
10
15
0 0.5 1
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
K. Honda, et al., ...
事例2: 富士通との取り組み
開発主体の移り変わりと変更・欠陥予測
24
O1
O12
O2
O13
O123
O23
O3
O: Origin(由来)
Apache Foundation (1)
Oracle (2)
Sun (3)
の場合
...
事例2(つづき): メトリクスや由来から将来予測
25
コードの規模・
複雑さメトリクス
開発主体
変更回数
変更規模
欠陥
M. ファイル規模
M. 他ファイルとの呼び出し関係
・・・
S. Sato, et al., Effects of ...
目次
• ソフトウェアの品質とメトリクス
• メトリクスの落とし穴と「コツ」
• 事例1: プロダクト品質把握と予測 [Yahoo]
• 事例2: ソフトウェア変更予測 [富士通]
• 事例3: メトリクスプログラムの改善 [コマツ]
• まと...
27
人手
レビュー
Adqua+
評価ツール
事例3: コマツとの取り組み
保守性評価メトリクス システム改善
I
A
Q
M
G
機械学習+
人手精査
N. Tsuda, et al. Iterative Process to Improv...
事例3(つづき): 責務過多なファイル特定
28
10 25
300
150
M. 関数の数
M.実行行数
OK
NG
71
M. 関数の数
M.実行行数
OK
NG
△ 人手OK, ○ 人手NG
N. Tsuda, et al. Iterat...
目次
• ソフトウェアの品質とメトリクス
• メトリクスの落とし穴と「コツ」
• 事例1: プロダクト品質把握と予測 [Yahoo]
• 事例2: ソフトウェア変更予測 [富士通]
• 事例3: メトリクスプログラムの改善 [コマツ]
• まと...
まとめ
• 品質の把握と改善にメトリクスは不可欠
• ただし、メトリクスの「落とし穴」に注意
• 妥当性: GQMゴール指向、多面性、現物
• 信頼性: ツールによる客観的・一貫した測定
• 不確実: 考慮した予測、経験に基づく仮定、改善
• ...
Upcoming SlideShare
Loading in …5
×

早稲田・鷲崎-ゴール指向の測定によるソフトウェア 品質評価と改善の実践的取組み (三つのコツ、三つの事例)-2015年2月19日

2,279 views

Published on

早稲田大学&IESE&IPA/SEC共催セミナー
データに裏付けられたIT経営とソフトウェア品質
~ゴール指向の測定・改善およびGQM+Strategiesの実践~
http://sec.ipa.go.jp/seminar/20150219.html

早稲田大学グローバルソフトウェアエンジニアリング研究所 事例報告
ゴール指向の測定によるソフトウェア品質評価と改善の実践的取組み (Yahoo! JAPAN、富士通、コマツ等とのそれぞれ個別の産学連携成果)

本講演では測定・メトリクスの基本概念、および、目的をもって改善させたい事柄を測定評価するゴール指向の枠組みGQMを解説します。続いて、Yahoo!JAPAN、富士通、コマツ等の企業とそれぞれ個別に産学連携により進めているGQMを活用したソフトウェア品質の測定や予測、さらには改善に向けた取組みの成果を紹介します。

Published in: Software
  • Be the first to comment

早稲田・鷲崎-ゴール指向の測定によるソフトウェア 品質評価と改善の実践的取組み (三つのコツ、三つの事例)-2015年2月19日

  1. 1. ゴール指向の測定によるソフトウェア 品質評価と改善の実践的取組み (三つのコツ、三つの事例) 早稲田大学グローバルソフトウェアエンジニアリング研究所 鷲崎 弘宜 Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ わしざき ひろのり 早稲田大学&IESE&IPA/SEC共催セミナー 2015年2月19日(早稲田大学) データに裏付けられたIT経営とソフトウェア品質 ~ゴール指向の測定・改善およびGQM+Strategiesの実践~
  2. 2. • 早稲田大学グローバルソフトウェアエ ンジニアリング研究所所長・准教授 • 国立情報学研究所客員准教授 • 情報規格調査会ISO/IEC SC7/WG20 主査 • 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 Guten Tag!
  3. 3. 早稲田大学グローバルソフトウェア エンジニアリング研究所 • グローバル開発時 代のソフトウェアエン ジニアリング研究 • 所長: 鷲崎弘宜 • 教授 6名 • 招聘研究員17 名 • 学生25名 (留学生5 名、中国、ノルウェ ー、メキシコ、インド ネシア) 3 HITACHI YAHOO! Google FUJITSU NEC TOSHIBA OGIS-RI AfrelRECRUIT Florida Atlantic University Benesse 信州大学 東京大学 IPANII KOMATSU QUNIE
  4. 4. FUJITSU Google FUJITSU 如何にソフトウェアを効率よく効果的に開発できるか? 如何に堅固な理論の上にプラクティスを構築できるか? 4 要求定義 コード解析 単体テスト 受入テスト マネジメント 教育 実装 Abstraction Modulari zation Auto mation Reuse Visuali zation Formali zation Software 基本設計 統合テスト 保守 品質管理 詳細設計 テスト環境と 検証 HITACHI YAHOO! NEC TOSHIBA OGIS-RI Afrel KOMATSU Florida Atlantic University Benesse 信州大学 NII 品質測定とマネジメント アジャイル開発、パターン、教育に おける実証研究 RECRUIT QUNIE 再利用と 開発環境
  5. 5. 測定と品質マネジメント Industrial Experience of GQM-based Product-Focused Project Monitoring (APSEC’14) Predicting Time Range Based on Generalized Software Reliability Model (APSEC’14) Iterative Process to Improve GQM Models with Metrics Thresholds (SANER’15 Doctoral) 再利用と開発環境 Stakeholder relationship analysis to refine GQM+Strategies models (PROFES’14) RefactoringScript: A Script for Composite Refactoring (SEKE’14) A Tool to Suggest Similar Program Element Modifications (APSEC’14) Interactive Recovery of Requirements Traceability Links (CAiSE’15) テスト環境と検証 Bug Localization for Re-engineered Industrial Software (ICST’14) Validating Ajax Applications Using a Delay-Based Mutation Technique (ASE’14) Do open source software projects conduct tests enough? (PROFES’14) Security and Privacy Behavior Definition for BDD (PROFES’14) Verification of Implementing Security Design Patterns (ARES’14) Validating Security Design Pattern Applications (Int. J. Secure Soft. Eng. ‘15) アジャイル開発、パターン、教育における実証研究 Network Analysis for Software Patterns (AGEIL’14) Impacts of Personal Characteristic on Educational Effectiveness (CSEET’14) Programmable Robots as Programming Educational Tools (ACE’15) Relationship between constraints and iteration length (Int J. Comp. App. In Tech. ‘15) 5 直近の研究発表
  6. 6. 目次 • ソフトウェアの品質とメトリクス • メトリクスの落とし穴と「コツ」 • 事例1: プロダクト品質把握と予測 [Yahoo] • 事例2: ソフトウェア変更予測 [富士通] • 事例3: メトリクスプログラムの改善 [コマツ] • まとめ 6
  7. 7. 品質とは • 品質: あるものの特性または属性 [American Heritage Dictionary] • ソフトウェア品質: ソフトウェアの使用時に必 要性を満たす能力を決定する属性全体 [ISO9126-1][ISO25000][JIS0129-1] – 属性: ソフトウェアの定性的/定量的に測定可能 な特徴 7
  8. 8. メトリクス(Metric / Metrics) • 測定の方法と尺度 – 方法: 属性(測定可能な特徴)の尺度上の値や分類への 対応付け – 尺度: 値や分類の集合 • 測定できない事柄は、管理できない(T. DeMarco) – ソフトウェア工学 = ソフトウェアの開発、運用、および保 守に対する系統的で規律に基づいた定量的アプローチ [SWEBOK] – Prj成功率 31% → 定量的評価導入Prj 46% [矢口08] …… …… …… 測定方法 測定尺度 測定プロセス メトリクス 測定結果 (値、分類) 8 [SWEBOK] 松本吉弘 監訳: ソフトウェアエンジニアリング基礎知識体系―SWEBOK2004, オーム社, 2005. [矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008.
  9. 9. メトリクスの使いどころ • 現在: 把握、評価 • 未来: 予測、計画 要求 定義 設計 実装 テスト 機能 仕様書 ファンクション ポイント モジュール 設計 凝集度 結合度 ソース コード 複雑度 コード行数 欠陥票 欠陥密度 テスト ケース 消化数 工数、期間 9
  10. 10. 目次 • ソフトウェアの品質とメトリクス • メトリクスの落とし穴と「コツ」 • 事例1: プロダクト品質把握と予測 [Yahoo] • 事例2: ソフトウェア変更予測 [富士通] • 事例3: メトリクスプログラムの改善 [コマツ] • まとめ 10
  11. 11. 落とし穴「ホーソン効果」 11
  12. 12. I. 解釈 (評価基準) コツ「ゴール指向のメトリクス定義」 • Goal-Question-Metric(GQM)パラダイム M. メトリクス G. 目標 Q. 質問 測定対象(データ) 達成評価 答え 測定値 12 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012. リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009. V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994)
  13. 13. コツ「多面的に測り、最後は現物」 13 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
  14. 14. 落とし穴「値を信頼できるとは限らない」 14 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.
  15. 15. I. 解釈 ダッシュボード コツ「ツールで客観的に、組織で一貫」 15 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
  16. 16. 落とし穴「未来が今の延長とは限らない」 16
  17. 17. コツ「不確実性を考慮した測定と予測」 • 予測における幅と種別 17 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.
  18. 18. I. 解釈 コツ「メトリクス システムの改善」 18 計画 測定 評価 改善 A. 仮定 G. 目標 Q. 質問 メトリクス 対象(データ) 評価 答え 測定値 C. 事実 Q. 質問 M. メトリクス G. 目標 N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
  19. 19. 目次 • ソフトウェアの品質とメトリクス • メトリクスの落とし穴と「コツ」 • 事例1: プロダクト品質把握と予測 [Yahoo] • 事例2: ソフトウェア変更予測 [富士通] • 事例3: メトリクスプログラムの改善 [コマツ] • まとめ 19
  20. 20. 事例1: Yahoo! Japanとの取り組み メトリクスによる保守性・機能性評価・改善 20H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns, APSEC'14
  21. 21. 事例1(つづき): 不確実性を考慮した欠陥予測 予測欠陥数の変動欠陥数と予測モデル 不確実性 K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
  22. 22. 22 25 0.2 15 0.1 05 0 05 0.1 15 0.2 -15 -10 -5 0 5 10 15 0 0.5 1 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
  23. 23. 事例2: 富士通との取り組み 開発主体の移り変わりと変更・欠陥予測 24 O1 O12 O2 O13 O123 O23 O3 O: Origin(由来) Apache Foundation (1) Oracle (2) Sun (3) の場合 S. Sato, et al., Effects of Organizational Changes on Product Metrics and Defects, APSEC'13
  24. 24. 事例2(つづき): メトリクスや由来から将来予測 25 コードの規模・ 複雑さメトリクス 開発主体 変更回数 変更規模 欠陥 M. ファイル規模 M. 他ファイルとの呼び出し関係 ・・・ S. Sato, et al., Effects of Organizational Changes on Product Metrics and Defects, APSEC'13
  25. 25. 目次 • ソフトウェアの品質とメトリクス • メトリクスの落とし穴と「コツ」 • 事例1: プロダクト品質把握と予測 [Yahoo] • 事例2: ソフトウェア変更予測 [富士通] • 事例3: メトリクスプログラムの改善 [コマツ] • まとめ 26
  26. 26. 27 人手 レビュー Adqua+ 評価ツール 事例3: コマツとの取り組み 保守性評価メトリクス システム改善 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 改善
  27. 27. 事例3(つづき): 責務過多なファイル特定 28 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
  28. 28. 目次 • ソフトウェアの品質とメトリクス • メトリクスの落とし穴と「コツ」 • 事例1: プロダクト品質把握と予測 [Yahoo] • 事例2: ソフトウェア変更予測 [富士通] • 事例3: メトリクスプログラムの改善 [コマツ] • まとめ 29
  29. 29. まとめ • 品質の把握と改善にメトリクスは不可欠 • ただし、メトリクスの「落とし穴」に注意 • 妥当性: GQMゴール指向、多面性、現物 • 信頼性: ツールによる客観的・一貫した測定 • 不確実: 考慮した予測、経験に基づく仮定、改善 • 様々な活用事例のご紹介: Yahoo、富士通、コマツ 30 ぜひ機会があればご一緒させてください!

×