ゴール指向の測定によるデータに裏付けられたソフトウェア品質評価と改善...
TRANSCRIPT
ゴール指向の測定によるデータに裏付けられたソフトウェア品質評価と改善
早稲田大学グローバルソフトウェアエンジニアリング研究所 所長
国立情報学研究所 客員准教授
ISO/IEC/JTC1/SC7/WG20 Convenor
IEEE Computer Society Japan Chapter Chair
SEMAT Japan Chapter Chair
鷲崎 弘宜 Twitter: @Hiro_Washi [email protected]
http://www.washi.cs.waseda.ac.jp/
わしざき ひろのり
第一回メタップス人工知能セミナー 2015年6月14日
品質とは
• 品質: あるものの特性または属性 [American Heritage Dictionary]
• ソフトウェア品質: ソフトウェアの使用時に必要性を満たす能力を決定する属性(測定可能な特徴)全体 [ISO9126-1][ISO25000][JIS0129-1]
2
メトリクス(Metric / Metrics)
• 測定の方法と尺度
• 測定できない事柄は、管理できない(T. DeMarco)
• 成功率 31% → 定量的評価導入 46% [矢口08]
3 [矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008.
要求 定義
設計 実装 テスト
機能 仕様書
ファンクション ポイント
モジュール設計
凝集度 結合度
ソース コード
複雑度 コード行数
欠陥票
欠陥密度
テストケース
消化数
工数、期間
落とし穴「ホーソン効果」
4 nicolasdsampson.com, Observe And Learn: The Magic Of Paying Attention http://nicolasdsampson.com/wp-content/uploads/2012/10/2010_12_06_observe-learn-magic-paying-attention.jpg
I. 解釈 (評価基準)
コツ「ゴール指向のメトリクス定義」
• Goal-Question-Metric(GQM)パラダイム
M. メトリクス
G. 目標
Q. 質問
測定対象(データ)
達成評価
答え
測定値
5 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012.
リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994)
コツ「横に広げて多面的に見る」
6
鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25
[Adqua] http://www.ogis-ri.co.jp/product/b-08-000001A6.html
保守性
モジュール性 再利用性 修正性 ・・・
コールグラフ 階層の深さ
サイクロマテ ィック複雑度
関数内の 戻り点の数
処理が複雑 すぎないか?
処理が構造化 されているか?
…… … …… …
…… … …… …
・・・
・・・ ・・・
G. 目標
対象
M. メトリクス
Q. 質問
事例: 測定による保守性・機能性評価・改善
7 H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns, APSEC'14
ヤフーとの共同研究
落とし穴「有効な組織アクションに繋がっていない」
8
製品の信頼性や使いやすさを改善して、顧客満足度
を10%上げるぞ!
経営層
テスト効率を上げます。 保守性も改善させます。
開発部 不具合数、さらには、プログラムの複雑度を測定します。
品質保証部
落とし穴「有効な組織アクションに繋がっていない」
9
製品の信頼性や使いやすさを改善して、顧客満足度
を10%上げるぞ!
経営層
テスト効率を上げます。 保守性も改善させます。
開発部 不具合数、さらには、プログラムの複雑度を測定します。
品質保証部
コツ「縦に、アクションに繋げる」 GQM+Strategies
10
顧客満足度10%向上
製品の信頼性を改善する
製品の使いやすさを改善する
不具合指摘を20%削減
テスト効率を改善する
保守性を改善する
顧客満足度調査
不具合データ
プログラムの複雑さ
OG. 上位 組織目標
S. 戦略
S. 戦略
OG. 下位 組織目標
M. メトリクス
参考: Jens Heidrich, Adam Trendowicz, “測定を基にした、ソフトウェア戦略とビジネス目標の整合” IPA/SEC資料
M. メトリクス
11
事例: 新規事業の組織目標、根拠、戦略の整合
リクルート住まいカンパニーとの共同研究
落とし穴「未来が今の延長とは限らない」
12
コツ「不確実性を考慮した測定と予測」
13
• 経験に基づく仮定明示
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.
• 予測における幅と種別
0
10
20
30
40
50
60
70
80
90
0 5 10 15
事例: 不確実性を考慮した欠陥予測
予測欠陥数の変動 欠陥数と予測モデル
不確実性
K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
ヤフーとの共同研究
コツ「メトリクス・システムの改善」
15
N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
事例: 機械学習によるメトリクス・システム改善
16
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
コマツとの共同研究
まとめ • 品質把握と改善にデータによる裏付けが不可欠 • ただし、メトリクスの「落とし穴」に注意
– GQM ゴール指向と横の広がり – GQM+Strategies 縦の整合とアクションへの繋がり – 不確実性を考慮した予測、経験に基づく仮定、改善
• 様々な活用事例: Yahoo、リクルート、コマツ • これからのソフトウェア開発ビッグデータ時代へ
– プロジェクトデータの蓄積(特にオープンソースソフトウェア) – 開発履歴、利用履歴、クラッシュ報告のリポジトリマイニング
17
IPA/SECセミナー 7月29日 http://sec.ipa.go.jp/seminar/ 『ゴール指向経営』で的を射たIT投資、利益を生む組織に
「GQM+Strategies」の活用で組織内の整合性確保と定量的管理を実現
9月4日(予定)
「ソフトウェア品質とゴール指向測定・改善」セミナー(仮)