SlideShare a Scribd company logo
メトリクスによるソフトウェア品質把握と改善
- 演習を交えた品質測定評価の落とし穴と
コツの習得 -
早稲田大学グローバルソフトウェアエンジニアリング研究所
国立情報学研究所 / (株)システム情報
鷲崎 弘宜
Twitter: @Hiro_Washi washizaki@waseda.jp
http://www.washi.cs.waseda.ac.jp/
わしざき ひろのり
SQiPシンポジウム2017 併設チュートリアル 2017年9月13日
目次
• ソフトウェアの品質とメトリクス
• 代表的なメトリクス
• メトリクスの落とし穴と「コツ」
• ゴール指向の測定 GQM
• 組織目標、戦略、測定の整合化 GQM+Strategies
• まとめ
2
品質とは
• 品質: あるものの特性または属性 [American
Heritage Dictionary]
• ソフトウェア品質: ソフトウェアの使用時に必要性
を満たす能力を決定する属性全体 [ISO9126-
1][ISO25000][JIS0129-1]
– 属性: ソフトウェアの定性的/定量的に測定可能な特徴
• 品質モデル ISO/IEC 25010:2011 SQuaRE
– 利用時の品質: 有効性、効率性、リスク回避性、満足
性、利用状況網羅性
– 製品品質(内部・外部品質): 機能適合性、互換性、セ
キュリティ、信頼性、使用性、性能効率性、保守性、移
植性
3
メトリクス(Metric / Metrics)
• 測定の方法と尺度
– 方法: 属性(測定可能な特徴)の尺度上の値や分類への対応
付け
– 尺度: 値や分類の集合
– 対象: プロダクト、プロセス、リソース
• 測定できない事柄は、管理できない(T. DeMarco)
– ソフトウェア工学 = ソフトウェアの開発、運用、および保守に
対する系統的で規律に基づいた定量的アプローチ [SWEBOK]
– Prj成功率 31% → 定量的評価導入Prj 46% [矢口08]
……
……
……
測定方法測定方法
測定尺度
測定プロセス
メトリクス
測定結果
(値、分類)
4[SWEBOK] 松本吉弘 監訳: ソフトウェアエンジニアリング基礎知識体系―SWEBOK2004, オーム社, 2005.
[矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008.
測定方法
• ソフトウェアの抽象的な特定側面を捉える
• 測定方法が異なれば測定結果も変わる
• 定義方法: テキスト、図、数式
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:}
5
メトリクスの使いどころ
• 現在
– 把握、評価
– ヒストグラム、管理図ほか
• 未来
– 予測、計画
– 散布図、回帰分析ほか
要求
定義
設計 実装 テスト
機能
仕様書
ファンクション
ポイント
モジュール
設計
凝集度
結合度
ソース
コード
複雑度
コード行数
欠陥票
欠陥密度
テスト
ケース
消化数
工数、期間 6
件
数
測定値
例: サイクロマティック複雑度
被使用外部ファイル率
関数
再利
用率
鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25
鷲崎弘宜, 小池利和, 波木理恵子, 田邉浩之, "C言語プログラムソースコードの再利用性測定法とその評価", ソフトウェアテストシンポジウム JaSST'09
目次
• ソフトウェアの品質とメトリクス
• 代表的なメトリクス
• メトリクスの落とし穴と「コツ」
• ゴール指向の測定 GQM
• 組織目標、戦略、測定の整合化 GQM+Strategies
• まとめ
7
主なメトリクス
名称 定義 用途
コード行数(LOC) コードの行数 規模の把握、他のメトリ
クスの正規化
ファンクションポイン
ト(FP)
機能量 規模の見積もり
サイクロマティック複
雑度(CC)
制御フローグラフの経路
数
複雑さの把握
凝集度 モジュール内の要素のま
とまり
複雑さの把握
結合度 モジュール間の結合関係
の多さ
複雑さの把握
欠陥密度(DD) 欠陥数 / 新規・変更LOC 品質の把握、開発プロセ
ス全体の有効性把握
欠陥除去率(DRE) 欠陥摘出数 / 当該時点
欠陥数
開発プロセス全体や工
程の有効性把握
消化済みテストケー
ス数
当該時点までの消化済
みテストケース数
テストの進捗把握
プロダクト
プロセス
8
規模: コード行数(LOC)の留意点
• 測定モデルの一貫性
– NLOC, LLOC
– CMU/SEI チェックリスト
• 作成方法、出所
– 25%を超える修正は新規実装と同程度の工数 [Linda09]
• 言語の違い
– ビジュアル言語、オブジェクト指向: 手続き型ほど役立たない
– 言語補正係数表によるファンクションポイントとの関係
[LOC/FP](例: アセンブリ 320, Java 53, C 128, 表計算 6)
• コメント比率 = コメント行数 / LOC
– 12.6%を超えると、コメントなしコードの2倍欠陥潜在率 [阿萬
12]
9
阿萬, “オープンソースソフトウェアにおけるコメント記述およびコメントアウトと フォールト潜在との関係に
関する定量分析”, 情報処理学会論文誌, 53(2), 2012.
CMU/SEI-92-TR-022. ESC-TR-92-022. Software Quality Measurement: Framework for
Counting Problems and Defects. http://www.sei.cmu.edu/reports/92tr020.pdf
[Linda09] リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエア
メトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009.
ユーザ
入力
出力
測定対象アプリケーション
データファイル
照会
外部アプリ
ケーション
インタ
フェース
規模: ファンクションポイント法
• 内部の処理や解決策ではなく問題の扱い
– システムの入出力、インタフェース、データファイルといった「代理」
(プロキシ)の数え上げ
– 複雑さや環境などの難易度係数で調整
• 機能規模測定(Functional Size Measurement)
– ファンクションポイント法(FP法): 1979 オールブレクト
– IFPUG(International Function Point Users Group
http://www.ifpug.org )結成、標準化
– 技術独立・初期段階で利用可 ⇔ 経験の必要性、主観性・属人性
10
複雑さ: サイクロマティック複雑度など
• 欠陥、保守やテストの困難さの検討
– レビュー・テスト必要箇所の特定、工数見積もり
• 関数内: サイクロマティック複雑度
– 20が欠陥含まれやすさ閾値
– [鷲崎10] 1 推奨、2~9 許容
• モジュール内: 凝集度
– 単一機能 ← データ中心 ← 機能中心 ← 無関係
– LCOM(Lack of Cohesion in Methods) < 2~5 [Chidamber94]:
参照変数が共通しないメソッド組み合わせ数 - 共通ありの
組み合わせ数
• モジュール間: 結合度
– データ渡し ← 制御フラグ渡し ← グローバルデータ
– ファンアウト≦ 7±2 [SESSAME]
11
[鷲崎10]鷲崎弘宜,田邉浩之, 小池利和,”ソースコード解析による品質評価の仕組み“, 日経エレクトロニクス, 2010年1月25日号
[SESSAME07] SESSAME WG2, 組込みソフトウェア開発のためのリバースモデリング, 翔泳社, 2007.
[Chidamber94] S.R.Chidamber and C.F.Kemerer, “A Metrics Suite for Object-Oriented Design”, IEEE
Trans. Software Eng., vol. 20, no. 6, pp.476-493, June 1994
= 2
欠陥: DD, DRE
• 欠陥数、欠陥発見・摘出数
– 実測、動的・静的予測
– 時間あたりの場合は単位に注意
• 欠陥密度 (Defect Density: DD)
= 欠陥数 / 新規・変更LOC
– 品質把握、プロセス全体のパフォーマンス把握
– ドメインや稼働時間の相違の考慮が必要
• 欠陥除去率(Defect Removal Efficiency: DRE)
= 当該工程欠陥除去数 / 当該工程で存在した欠陥数
– 各欠陥摘出工程の欠陥摘出能力把握、改善
– 各欠陥の作り込み・原因工程の記録必要あり
[Linda09] リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエア
メトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009.
12
12
目次
• ソフトウェアの品質とメトリクス
• 代表的なメトリクス
• メトリクスの落とし穴と「コツ」
• ゴール指向の測定 GQM
• 組織目標、戦略、測定の整合化 GQM+Strategies
• まとめ
13
落とし穴「ホーソン効果」
14nicolasdsampson.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. 解釈
ダッシュボードダッシュボード
コツ「ゴール指向による測定と評価」
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
ヤフーとの共同研究
• Goal-Question-Metric(GQM)パラダイム
• 測定から評価へ
コツ「横に広げて多面的に見る」
16
鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25
[Adqua] http://www.ogis-ri.co.jp/product/b-08-000001A6.html
保守性
モジュール性 再利用性 修正性 ・・・
コールグラフ
階層の深さ
サイクロマテ
ィック複雑度
関数内の
戻り点の数
処理が複雑
すぎないか?
処理が構造化
されているか?
…… …
…… …
…… …
…… …
・・・
・・・ ・・・
G. 目標
対象
M. メトリクス
Q. 質問
落とし穴「オレオレ品質」
17
画像: @VS_oresagi https://twitter.com/vs_oresagi
コツ「関係をつかむ」
18
コードの規模・
複雑さメトリクス
開発主体
変更回数
変更規模
欠陥
M. ファイル規模
M. 他ファイルとの呼び出し関係
・・・
S. Sato, et al., Effects of Organizational Changes on Product Metrics and Defects, APSEC'13
富士通コネクテッドとの共同研究
コツ「国際規格の活用」
19
ISO/IEC 25023
内部・外部品質測定
ISO/IEC 25023
内部・外部品質測定
利用時の
品質
利用時の
品質
外部品質外部品質内部品質内部品質
ソフトウェア システム 業務
……
……
……
……
……
……
どのように
影響?
ISO/IEC 25022
利用時の品質測定
ISO/IEC 25022
利用時の品質測定
ISO/IEC 25051 既製ソフト品質要求ISO/IEC 25051 既製ソフト品質要求
ISO/IEC 25010 品質モデルISO/IEC 25010 品質モデル
現実の入力から
どのように
測定評価
すればよいか?
• PSQ認証
– コンピュータソフトウェア協会(CSAJ)
– カタログ、マニュアル、仕様書、試験文書
– 全品質特性
Waseda Software Quality Benchmark
20
• 21製品個別評価と業界実態分析
• 国際標準ベンチマーク Waseda
Software Quality Benchmark (WSQB2017)
http://www.washi.cs.waseda.ac.jp/?page_id=3479
• 国際規格 ISO/IEC 25000
SQuaRE シリーズをGQMで具体化
• 製品品質、利用時品質の網羅と
関係分析
0
20
40
60
80
100
機能適合性
性能効率性
互換性
使用性
信頼性
セキュリティ
保守性
移植性
0
5
10
1 2 3 4 5 6
12ベンダ
21製品
4評価機関
一部委託
一部結果
ISO/IEC JTC1/SC7/WG6
SQuaREエディタ
協力
評価結果
落とし穴「未来が今の延長とは限らない」
21
コツ「データと機械学習による改善(PDCA)」
22
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
• まとめ
23
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.
24
GQMモデル(グラフ)の例
• 目標
– G. コードクローン含有の観点から保守性の低いコードを
特定できている。
• 質問
– Q1: コードクローンは存在するか? → M1, M2
– Q2: 発見されたコードクローンは保守上有害か? → M3
• メトリクス
– M1: ソースコードの全体的な重複度
– M2: モジュール単位のコードクローン含有率
– M3: コードクローンに対するマネージャの主観的評価
25
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.
目標テンプレートとコンテキスト
• 目標の一般性、扱う範囲の明確化
• テンプレート
– 例: コードクローン含有の観点から保守性の低いコードを
特定できている。
– 対象 (Analyze) 例: ソースコード
– 目的 (Purpose) 例: 保守性の低いコードの特定
– 関心 (Respect to) 例: コードクローン情報
– 視点 (View) 例: プロジェクトマネージャ
– 環境 (Context) 例: A社の開発環境
• 環境
– ドメイン、開発者数、経験、開発プロセス・手法、規模・工
数、信頼性要求、・・・
26
楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012.
V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994)
リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
質問導出の観点
• 測定対象そのものを目的から見て明確にする
– 例: ○○はいくらか?
• 対象の属性を評価者の視点から見て明確にす
る
– 例: ○○は(従来と比べて)改善されているか?
• 対象の特徴を評価者の視点から見て評価する
– 例: ○○は××からみて目に見えて改善されている
か?
27
楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012.
仮定と解釈
• 仮定(Hypothesis, Assumption)
– Question導出にあたり仮定している事柄
– 例 A. 要求が不安定であれば設計は頻繁に変更される。
– 測定評価の繰り返しにおける見直し
• 解釈(Interpretation)
– もし「条件式」ならば「Goalは達成・未達成である」
– 例 I. もしLOCが少なすぎず、かつ、設計変更回数が一定
以上ならば、要求が不安定な可能性がある。
– 多面的な捉え方
– 閾値の明確化: ベンチマーク分布、経験ベース、欠陥と
の照らし合わせなど [Alves10]、最初は大まかに&データ
蓄積と現物確認を経て精密に
28
リンダ・M・ライルドほか著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009.
Monden, Basili, et al.: Customizing GQM Models for Software Project Monitoring, IEICE Trans., 2012.
Tiago L. Alves, et al., “Deriving Metric Thresholds from Benchmark Data,” ICSM 2010
GQMの拡張: 仮定と解釈
29Monden, 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が以前よりも大きいのであれ
ば、要求が不安定な可能性あり
・・・
ワークショップ1
• 目標のブレーンストーミング
– プロダクト、プロセス、リソースの品質測定評価
– どうありたいのか?
1. 目標の詳細: 具体的にどうありたいか? 範囲は?
2. 質問: 何を把握できている必要があるのか?
3. 仮説: その根拠は?
4. メトリクス: どのように明らかとするのか?
5. 解釈: どうであれば目標は達成しているのか?
• チーム内で見直し、修正
– G-Q-M の縦の妥当性
– Q-M の横の広がりの網羅性
30
目次
• ソフトウェアの品質とメトリクス
• 代表的なメトリクス
• メトリクスの落とし穴と「コツ」
• ゴール指向の測定 GQM
• 組織目標、戦略、測定の整合化 GQM+Strategies
• まとめ
31
落とし穴「有効な組織アクションに繋がっていない」
32
製品の信頼性や使いやす
さを改善して、顧客満足度
を10%上げるぞ!
経営層
テスト効率を上げます。
保守性も改善させます。
開発部
不具合数、さらには、プログラ
ムの複雑度を測定します。
品質保証部
コツ「縦に、アクションに繋げる」 GQM+Strategies
33
顧客満足度10%向上
製品の信頼性
を改善する
製品の使いや
すさを改善する
不具合指摘を
20%削減
テスト効率
を改善する
保守性を
改善する
顧客満足度調査
不具合データ
プログラムの複雑さ
OG. 上位
組織目標
S. 戦略
S. 戦略
OG. 下位
組織目標
M. メトリクス
参考: Jens Heidrich, Adam Trendowicz, “測定を基にした、ソフトウェア戦略とビジネス目標の整合” IPA/SEC資料
M. メトリクス
GQM+Strategiesの概念モデル
GQM グラフ
GQM
MG. 測
定目標
Q. 質問
Q. 質問
M. メト
リクス
M. メト
リクス
M. メト
リクス
により測定可能
解釈モデル
の一部をなす
Goal+Strategies 要素
OG. 組織的な
目標
C. 事実/
A. 仮定
S. 戦略
戦略による
実現
影響
影響
➢ により
測定可能に
< の達成を測定
に至る
測定データ目標と戦略
根拠
34Jens Heidrich, Adam Trendowicz, IPA訳, 測定を基にしたソフトウェア戦略とビジネス目標の整合, 2012
• 独Fraunhofer IESE発
• 組織目標・戦略・測定(データ)の整合化と追跡
• 各箇所における責任の明確化
35
事例: 新規事業の組織目標、根拠、戦略の整合
リクルート住まいカンパニーとの共同研究
ワークショップ2
1. 組織目標
– なぜ測定評価が
必要?
– そもそもどうあり
たい?
2. 戦略
– どう達成?
3. 事実・仮定
– その根拠は?
4. 上位・下位
– 何のため?
– 最終的に誰がど
う実現?
36
MG. 測
定目標
Q. 質問
Q. 質問
M. メト
リクス
M. メト
リクス
M. メト
リクス
OG. 組織的な
目標
C. 事実/
A. 仮定
S. 戦略
OG. 組織的な
目標
S. 戦略
OG. 組織的な
目標
S. 戦略
上位個所
下位個所
測定プログラム運用プロセス
37
6 パッケージ化と改善
目標と戦略を適合し改善
背景と仮定の是正
学習の記録
0 初期化
コミットメント
人材 & 責任
5 結果の分析
・データを分析し、戦略を改定
・結果のレビューと伝達
・コスト/メリットの分析
1 特性化(Characterize)
・適用範囲の定義
・環境/事実の特性化
2 目標設定
・組織構造を特定(determine)
・ギャップ分析の実施
※現状の施策、データ等の確認
・目標の優先順位づけ
・グリッド導出(derivation)プロセスの実施
3 プロセスの選択
・戦略実施の計画
・データ収集と分析の仕方の整理
・フィードバックの仕組みの定義
4 モデルの実行
・戦略の適用
・データの収集と検証
・フィードバックセッションの実施
Jens Heidrich, Adam Trendowicz, IPA訳, 測定を基にしたソフトウェア戦略とビジネス目標の整合,
目次
• ソフトウェアの品質とメトリクス
• 代表的なメトリクス
• メトリクスの落とし穴と「コツ」
• ゴール指向の測定 GQM
• 組織目標、戦略、測定の整合化 GQM+Strategies
• まとめ
38
まとめ、メッセージ
• ソフトウェア開発の厳しさとメトリクスの重要性
– 開発の管理、品質把握と改善
• メトリクスの限界を知り意思決定に役立てる
– 測定方法、信頼性、妥当性、負のホーソン効果
• GQMによるゴール指向の測定
– 測定と改善のプロセス
– GQM+Strategiesによる組織目標へのひもづけ
– 告知: 11月20日 IPA/SECセミナー「経験と勘に頼らない
事業戦略マネジメント~データに基づく実践的な事業計
画立案のために~」(仮) http://sec.ipa.go.jp/seminar/
– 告知: 9月15日 SQiPシンポ 13:00- 「ソフトウェア品質技
術が品質特性に与える効果の見える化と活用の一考
察」 小島ほか(富士通、早稲田大)
39
• メトリクス全般
– リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠,
鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの基
礎 ソフトウエアの測定と見積もりの正しい作法", 日経
BP社 , 2009.
• GQM
– 鷲崎弘宜、”ゴール指向の測定評価と留意 – GQMパラ
ダイムと拡張 -”、メトリクス公団、Vol.1、TEF東海メトリク
ス勉強会、2013.
– 楠本真二、肥後芳樹: “GQMパラダイムを用いたソフト
ウェアメトリクスの活用”、コンピュータソフトウェア、
29(3)、pp.29-38、2012.
• GQM+Strategies
– 早稲田大学ゴール指向経営研究会、「残念なシステム
」のなくしかた、日経ITPro、連載、2014年5月14日~6
月11日
– Victor Basili, Adam Trendowicz, Martin Kowalczyk, Jens
Heidrich, Carolyn Seaman, Jürgen Münch, Dieter
Rombach 著, 鷲崎弘宜, 小堀貴信, 新谷勝利, 松岡秀
樹 監訳, 早稲田大学グローバルソフトウェアエンジニア
リング研究所ゴール指向経営研究会 訳, “ゴール&スト
ラテジ入門: 残念なシステムの無くし方
(GQM+Strategies)”, オーム社, 2015年9月10日発行 40

More Related Content

What's hot

Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Hironori Washizaki
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
H Iseri
 

What's hot (20)

アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へパターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
 
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
 
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
 
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decadeRe-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
 
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
 
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
 
アジャイル開発とメトリクス
アジャイル開発とメトリクスアジャイル開発とメトリクス
アジャイル開発とメトリクス
 
テスト観点に基づくテスト開発方法論 VSTePの概要
テスト観点に基づくテスト開発方法論VSTePの概要テスト観点に基づくテスト開発方法論VSTePの概要
テスト観点に基づくテスト開発方法論 VSTePの概要
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
Is No More QA Idealist Practical and Something Tasty?
Is No More QA Idealist Practical and Something Tasty?Is No More QA Idealist Practical and Something Tasty?
Is No More QA Idealist Practical and Something Tasty?
 
Introducing ODC analysis for Redmine Osaka community
Introducing ODC analysis for Redmine Osaka communityIntroducing ODC analysis for Redmine Osaka community
Introducing ODC analysis for Redmine Osaka community
 
Counterfaual Machine Learning(CFML)のサーベイ
Counterfaual Machine Learning(CFML)のサーベイCounterfaual Machine Learning(CFML)のサーベイ
Counterfaual Machine Learning(CFML)のサーベイ
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
 
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
 

Similar to メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -

鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
Hironori Washizaki
 
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
Hironori Washizaki
 
WACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMATWACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMAT
Hironori Washizaki
 
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
CODE BLUE
 
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめJenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
 

Similar to メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 - (20)

鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
 
鷲崎 メトリクスの基礎とGQM法によるゴール指向の測定 2014年12月18日 日本科学技術連名SQiP研究会 演習コースI ソフトウェア工学の基礎
鷲崎 メトリクスの基礎とGQM法によるゴール指向の測定 2014年12月18日 日本科学技術連名SQiP研究会 演習コースI ソフトウェア工学の基礎鷲崎 メトリクスの基礎とGQM法によるゴール指向の測定 2014年12月18日 日本科学技術連名SQiP研究会 演習コースI ソフトウェア工学の基礎
鷲崎 メトリクスの基礎とGQM法によるゴール指向の測定 2014年12月18日 日本科学技術連名SQiP研究会 演習コースI ソフトウェア工学の基礎
 
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
 
早稲田・鷲崎-ゴール指向の測定によるソフトウェア 品質評価と改善の実践的取組み (三つのコツ、三つの事例)-2015年2月19日
早稲田・鷲崎-ゴール指向の測定によるソフトウェア品質評価と改善の実践的取組み(三つのコツ、三つの事例)-2015年2月19日早稲田・鷲崎-ゴール指向の測定によるソフトウェア品質評価と改善の実践的取組み(三つのコツ、三つの事例)-2015年2月19日
早稲田・鷲崎-ゴール指向の測定によるソフトウェア 品質評価と改善の実践的取組み (三つのコツ、三つの事例)-2015年2月19日
 
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
 
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
 
測定と予測を通じたソフトウェア品質評価と改善の実践的取り組み 公開用
測定と予測を通じたソフトウェア品質評価と改善の実践的取り組み 公開用測定と予測を通じたソフトウェア品質評価と改善の実践的取り組み 公開用
測定と予測を通じたソフトウェア品質評価と改善の実践的取り組み 公開用
 
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
WACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMATWACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMAT
 
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
 
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
 
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
 
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
 
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめJenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
 
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
 
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
札幌Javaカンファレンス2012 C3「顧客とPMとPGの話は、なぜ噛み合わないのか」
 
S qu bok特別講演2015年2月-開発領域
S qu bok特別講演2015年2月-開発領域S qu bok特別講演2015年2月-開発領域
S qu bok特別講演2015年2月-開発領域
 
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
 

More from Hironori Washizaki

More from Hironori Washizaki (20)

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions Update
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
 
Software Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning ApplicationsSoftware Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning Applications
 
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
 

メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -

  • 1. メトリクスによるソフトウェア品質把握と改善 - 演習を交えた品質測定評価の落とし穴と コツの習得 - 早稲田大学グローバルソフトウェアエンジニアリング研究所 国立情報学研究所 / (株)システム情報 鷲崎 弘宜 Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ わしざき ひろのり SQiPシンポジウム2017 併設チュートリアル 2017年9月13日
  • 2. 目次 • ソフトウェアの品質とメトリクス • 代表的なメトリクス • メトリクスの落とし穴と「コツ」 • ゴール指向の測定 GQM • 組織目標、戦略、測定の整合化 GQM+Strategies • まとめ 2
  • 3. 品質とは • 品質: あるものの特性または属性 [American Heritage Dictionary] • ソフトウェア品質: ソフトウェアの使用時に必要性 を満たす能力を決定する属性全体 [ISO9126- 1][ISO25000][JIS0129-1] – 属性: ソフトウェアの定性的/定量的に測定可能な特徴 • 品質モデル ISO/IEC 25010:2011 SQuaRE – 利用時の品質: 有効性、効率性、リスク回避性、満足 性、利用状況網羅性 – 製品品質(内部・外部品質): 機能適合性、互換性、セ キュリティ、信頼性、使用性、性能効率性、保守性、移 植性 3
  • 4. メトリクス(Metric / Metrics) • 測定の方法と尺度 – 方法: 属性(測定可能な特徴)の尺度上の値や分類への対応 付け – 尺度: 値や分類の集合 – 対象: プロダクト、プロセス、リソース • 測定できない事柄は、管理できない(T. DeMarco) – ソフトウェア工学 = ソフトウェアの開発、運用、および保守に 対する系統的で規律に基づいた定量的アプローチ [SWEBOK] – Prj成功率 31% → 定量的評価導入Prj 46% [矢口08] …… …… …… 測定方法測定方法 測定尺度 測定プロセス メトリクス 測定結果 (値、分類) 4[SWEBOK] 松本吉弘 監訳: ソフトウェアエンジニアリング基礎知識体系―SWEBOK2004, オーム社, 2005. [矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008.
  • 5. 測定方法 • ソフトウェアの抽象的な特定側面を捉える • 測定方法が異なれば測定結果も変わる • 定義方法: テキスト、図、数式 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:} 5
  • 6. メトリクスの使いどころ • 現在 – 把握、評価 – ヒストグラム、管理図ほか • 未来 – 予測、計画 – 散布図、回帰分析ほか 要求 定義 設計 実装 テスト 機能 仕様書 ファンクション ポイント モジュール 設計 凝集度 結合度 ソース コード 複雑度 コード行数 欠陥票 欠陥密度 テスト ケース 消化数 工数、期間 6 件 数 測定値 例: サイクロマティック複雑度 被使用外部ファイル率 関数 再利 用率 鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25 鷲崎弘宜, 小池利和, 波木理恵子, 田邉浩之, "C言語プログラムソースコードの再利用性測定法とその評価", ソフトウェアテストシンポジウム JaSST'09
  • 7. 目次 • ソフトウェアの品質とメトリクス • 代表的なメトリクス • メトリクスの落とし穴と「コツ」 • ゴール指向の測定 GQM • 組織目標、戦略、測定の整合化 GQM+Strategies • まとめ 7
  • 8. 主なメトリクス 名称 定義 用途 コード行数(LOC) コードの行数 規模の把握、他のメトリ クスの正規化 ファンクションポイン ト(FP) 機能量 規模の見積もり サイクロマティック複 雑度(CC) 制御フローグラフの経路 数 複雑さの把握 凝集度 モジュール内の要素のま とまり 複雑さの把握 結合度 モジュール間の結合関係 の多さ 複雑さの把握 欠陥密度(DD) 欠陥数 / 新規・変更LOC 品質の把握、開発プロセ ス全体の有効性把握 欠陥除去率(DRE) 欠陥摘出数 / 当該時点 欠陥数 開発プロセス全体や工 程の有効性把握 消化済みテストケー ス数 当該時点までの消化済 みテストケース数 テストの進捗把握 プロダクト プロセス 8
  • 9. 規模: コード行数(LOC)の留意点 • 測定モデルの一貫性 – NLOC, LLOC – CMU/SEI チェックリスト • 作成方法、出所 – 25%を超える修正は新規実装と同程度の工数 [Linda09] • 言語の違い – ビジュアル言語、オブジェクト指向: 手続き型ほど役立たない – 言語補正係数表によるファンクションポイントとの関係 [LOC/FP](例: アセンブリ 320, Java 53, C 128, 表計算 6) • コメント比率 = コメント行数 / LOC – 12.6%を超えると、コメントなしコードの2倍欠陥潜在率 [阿萬 12] 9 阿萬, “オープンソースソフトウェアにおけるコメント記述およびコメントアウトと フォールト潜在との関係に 関する定量分析”, 情報処理学会論文誌, 53(2), 2012. CMU/SEI-92-TR-022. ESC-TR-92-022. Software Quality Measurement: Framework for Counting Problems and Defects. http://www.sei.cmu.edu/reports/92tr020.pdf [Linda09] リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエア メトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009.
  • 10. ユーザ 入力 出力 測定対象アプリケーション データファイル 照会 外部アプリ ケーション インタ フェース 規模: ファンクションポイント法 • 内部の処理や解決策ではなく問題の扱い – システムの入出力、インタフェース、データファイルといった「代理」 (プロキシ)の数え上げ – 複雑さや環境などの難易度係数で調整 • 機能規模測定(Functional Size Measurement) – ファンクションポイント法(FP法): 1979 オールブレクト – IFPUG(International Function Point Users Group http://www.ifpug.org )結成、標準化 – 技術独立・初期段階で利用可 ⇔ 経験の必要性、主観性・属人性 10
  • 11. 複雑さ: サイクロマティック複雑度など • 欠陥、保守やテストの困難さの検討 – レビュー・テスト必要箇所の特定、工数見積もり • 関数内: サイクロマティック複雑度 – 20が欠陥含まれやすさ閾値 – [鷲崎10] 1 推奨、2~9 許容 • モジュール内: 凝集度 – 単一機能 ← データ中心 ← 機能中心 ← 無関係 – LCOM(Lack of Cohesion in Methods) < 2~5 [Chidamber94]: 参照変数が共通しないメソッド組み合わせ数 - 共通ありの 組み合わせ数 • モジュール間: 結合度 – データ渡し ← 制御フラグ渡し ← グローバルデータ – ファンアウト≦ 7±2 [SESSAME] 11 [鷲崎10]鷲崎弘宜,田邉浩之, 小池利和,”ソースコード解析による品質評価の仕組み“, 日経エレクトロニクス, 2010年1月25日号 [SESSAME07] SESSAME WG2, 組込みソフトウェア開発のためのリバースモデリング, 翔泳社, 2007. [Chidamber94] S.R.Chidamber and C.F.Kemerer, “A Metrics Suite for Object-Oriented Design”, IEEE Trans. Software Eng., vol. 20, no. 6, pp.476-493, June 1994 = 2
  • 12. 欠陥: DD, DRE • 欠陥数、欠陥発見・摘出数 – 実測、動的・静的予測 – 時間あたりの場合は単位に注意 • 欠陥密度 (Defect Density: DD) = 欠陥数 / 新規・変更LOC – 品質把握、プロセス全体のパフォーマンス把握 – ドメインや稼働時間の相違の考慮が必要 • 欠陥除去率(Defect Removal Efficiency: DRE) = 当該工程欠陥除去数 / 当該工程で存在した欠陥数 – 各欠陥摘出工程の欠陥摘出能力把握、改善 – 各欠陥の作り込み・原因工程の記録必要あり [Linda09] リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエア メトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009. 12 12
  • 13. 目次 • ソフトウェアの品質とメトリクス • 代表的なメトリクス • メトリクスの落とし穴と「コツ」 • ゴール指向の測定 GQM • 組織目標、戦略、測定の整合化 GQM+Strategies • まとめ 13
  • 14. 落とし穴「ホーソン効果」 14nicolasdsampson.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
  • 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 ヤフーとの共同研究 • Goal-Question-Metric(GQM)パラダイム • 測定から評価へ
  • 16. コツ「横に広げて多面的に見る」 16 鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25 [Adqua] http://www.ogis-ri.co.jp/product/b-08-000001A6.html 保守性 モジュール性 再利用性 修正性 ・・・ コールグラフ 階層の深さ サイクロマテ ィック複雑度 関数内の 戻り点の数 処理が複雑 すぎないか? 処理が構造化 されているか? …… … …… … …… … …… … ・・・ ・・・ ・・・ G. 目標 対象 M. メトリクス Q. 質問
  • 18. コツ「関係をつかむ」 18 コードの規模・ 複雑さメトリクス 開発主体 変更回数 変更規模 欠陥 M. ファイル規模 M. 他ファイルとの呼び出し関係 ・・・ S. Sato, et al., Effects of Organizational Changes on Product Metrics and Defects, APSEC'13 富士通コネクテッドとの共同研究
  • 19. コツ「国際規格の活用」 19 ISO/IEC 25023 内部・外部品質測定 ISO/IEC 25023 内部・外部品質測定 利用時の 品質 利用時の 品質 外部品質外部品質内部品質内部品質 ソフトウェア システム 業務 …… …… …… …… …… …… どのように 影響? ISO/IEC 25022 利用時の品質測定 ISO/IEC 25022 利用時の品質測定 ISO/IEC 25051 既製ソフト品質要求ISO/IEC 25051 既製ソフト品質要求 ISO/IEC 25010 品質モデルISO/IEC 25010 品質モデル 現実の入力から どのように 測定評価 すればよいか? • PSQ認証 – コンピュータソフトウェア協会(CSAJ) – カタログ、マニュアル、仕様書、試験文書 – 全品質特性
  • 20. Waseda Software Quality Benchmark 20 • 21製品個別評価と業界実態分析 • 国際標準ベンチマーク Waseda Software Quality Benchmark (WSQB2017) http://www.washi.cs.waseda.ac.jp/?page_id=3479 • 国際規格 ISO/IEC 25000 SQuaRE シリーズをGQMで具体化 • 製品品質、利用時品質の網羅と 関係分析 0 20 40 60 80 100 機能適合性 性能効率性 互換性 使用性 信頼性 セキュリティ 保守性 移植性 0 5 10 1 2 3 4 5 6 12ベンダ 21製品 4評価機関 一部委託 一部結果 ISO/IEC JTC1/SC7/WG6 SQuaREエディタ 協力 評価結果
  • 22. コツ「データと機械学習による改善(PDCA)」 22 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 コマツとの共同研究
  • 23. 目次 • ソフトウェアの品質とメトリクス • 代表的なメトリクス • メトリクスの落とし穴と「コツ」 • ゴール指向の測定 GQM • 組織目標、戦略、測定の整合化 GQM+Strategies • まとめ 23
  • 24. 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. 24
  • 25. GQMモデル(グラフ)の例 • 目標 – G. コードクローン含有の観点から保守性の低いコードを 特定できている。 • 質問 – Q1: コードクローンは存在するか? → M1, M2 – Q2: 発見されたコードクローンは保守上有害か? → M3 • メトリクス – M1: ソースコードの全体的な重複度 – M2: モジュール単位のコードクローン含有率 – M3: コードクローンに対するマネージャの主観的評価 25 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.
  • 26. 目標テンプレートとコンテキスト • 目標の一般性、扱う範囲の明確化 • テンプレート – 例: コードクローン含有の観点から保守性の低いコードを 特定できている。 – 対象 (Analyze) 例: ソースコード – 目的 (Purpose) 例: 保守性の低いコードの特定 – 関心 (Respect to) 例: コードクローン情報 – 視点 (View) 例: プロジェクトマネージャ – 環境 (Context) 例: A社の開発環境 • 環境 – ドメイン、開発者数、経験、開発プロセス・手法、規模・工 数、信頼性要求、・・・ 26 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012. V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994) リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.
  • 27. 質問導出の観点 • 測定対象そのものを目的から見て明確にする – 例: ○○はいくらか? • 対象の属性を評価者の視点から見て明確にす る – 例: ○○は(従来と比べて)改善されているか? • 対象の特徴を評価者の視点から見て評価する – 例: ○○は××からみて目に見えて改善されている か? 27 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012.
  • 28. 仮定と解釈 • 仮定(Hypothesis, Assumption) – Question導出にあたり仮定している事柄 – 例 A. 要求が不安定であれば設計は頻繁に変更される。 – 測定評価の繰り返しにおける見直し • 解釈(Interpretation) – もし「条件式」ならば「Goalは達成・未達成である」 – 例 I. もしLOCが少なすぎず、かつ、設計変更回数が一定 以上ならば、要求が不安定な可能性がある。 – 多面的な捉え方 – 閾値の明確化: ベンチマーク分布、経験ベース、欠陥と の照らし合わせなど [Alves10]、最初は大まかに&データ 蓄積と現物確認を経て精密に 28 リンダ・M・ライルドほか著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの基礎 ソフトウエアの測定と見積もりの正しい作法", 日経BP社 , 2009. Monden, Basili, et al.: Customizing GQM Models for Software Project Monitoring, IEICE Trans., 2012. Tiago L. Alves, et al., “Deriving Metric Thresholds from Benchmark Data,” ICSM 2010
  • 29. GQMの拡張: 仮定と解釈 29Monden, 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が以前よりも大きいのであれ ば、要求が不安定な可能性あり ・・・
  • 30. ワークショップ1 • 目標のブレーンストーミング – プロダクト、プロセス、リソースの品質測定評価 – どうありたいのか? 1. 目標の詳細: 具体的にどうありたいか? 範囲は? 2. 質問: 何を把握できている必要があるのか? 3. 仮説: その根拠は? 4. メトリクス: どのように明らかとするのか? 5. 解釈: どうであれば目標は達成しているのか? • チーム内で見直し、修正 – G-Q-M の縦の妥当性 – Q-M の横の広がりの網羅性 30
  • 31. 目次 • ソフトウェアの品質とメトリクス • 代表的なメトリクス • メトリクスの落とし穴と「コツ」 • ゴール指向の測定 GQM • 組織目標、戦略、測定の整合化 GQM+Strategies • まとめ 31
  • 34. GQM+Strategiesの概念モデル GQM グラフ GQM MG. 測 定目標 Q. 質問 Q. 質問 M. メト リクス M. メト リクス M. メト リクス により測定可能 解釈モデル の一部をなす Goal+Strategies 要素 OG. 組織的な 目標 C. 事実/ A. 仮定 S. 戦略 戦略による 実現 影響 影響 ➢ により 測定可能に < の達成を測定 に至る 測定データ目標と戦略 根拠 34Jens Heidrich, Adam Trendowicz, IPA訳, 測定を基にしたソフトウェア戦略とビジネス目標の整合, 2012 • 独Fraunhofer IESE発 • 組織目標・戦略・測定(データ)の整合化と追跡 • 各箇所における責任の明確化
  • 36. ワークショップ2 1. 組織目標 – なぜ測定評価が 必要? – そもそもどうあり たい? 2. 戦略 – どう達成? 3. 事実・仮定 – その根拠は? 4. 上位・下位 – 何のため? – 最終的に誰がど う実現? 36 MG. 測 定目標 Q. 質問 Q. 質問 M. メト リクス M. メト リクス M. メト リクス OG. 組織的な 目標 C. 事実/ A. 仮定 S. 戦略 OG. 組織的な 目標 S. 戦略 OG. 組織的な 目標 S. 戦略 上位個所 下位個所
  • 37. 測定プログラム運用プロセス 37 6 パッケージ化と改善 目標と戦略を適合し改善 背景と仮定の是正 学習の記録 0 初期化 コミットメント 人材 & 責任 5 結果の分析 ・データを分析し、戦略を改定 ・結果のレビューと伝達 ・コスト/メリットの分析 1 特性化(Characterize) ・適用範囲の定義 ・環境/事実の特性化 2 目標設定 ・組織構造を特定(determine) ・ギャップ分析の実施 ※現状の施策、データ等の確認 ・目標の優先順位づけ ・グリッド導出(derivation)プロセスの実施 3 プロセスの選択 ・戦略実施の計画 ・データ収集と分析の仕方の整理 ・フィードバックの仕組みの定義 4 モデルの実行 ・戦略の適用 ・データの収集と検証 ・フィードバックセッションの実施 Jens Heidrich, Adam Trendowicz, IPA訳, 測定を基にしたソフトウェア戦略とビジネス目標の整合,
  • 38. 目次 • ソフトウェアの品質とメトリクス • 代表的なメトリクス • メトリクスの落とし穴と「コツ」 • ゴール指向の測定 GQM • 組織目標、戦略、測定の整合化 GQM+Strategies • まとめ 38
  • 39. まとめ、メッセージ • ソフトウェア開発の厳しさとメトリクスの重要性 – 開発の管理、品質把握と改善 • メトリクスの限界を知り意思決定に役立てる – 測定方法、信頼性、妥当性、負のホーソン効果 • GQMによるゴール指向の測定 – 測定と改善のプロセス – GQM+Strategiesによる組織目標へのひもづけ – 告知: 11月20日 IPA/SECセミナー「経験と勘に頼らない 事業戦略マネジメント~データに基づく実践的な事業計 画立案のために~」(仮) http://sec.ipa.go.jp/seminar/ – 告知: 9月15日 SQiPシンポ 13:00- 「ソフトウェア品質技 術が品質特性に与える効果の見える化と活用の一考 察」 小島ほか(富士通、早稲田大) 39
  • 40. • メトリクス全般 – リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの基 礎 ソフトウエアの測定と見積もりの正しい作法", 日経 BP社 , 2009. • GQM – 鷲崎弘宜、”ゴール指向の測定評価と留意 – GQMパラ ダイムと拡張 -”、メトリクス公団、Vol.1、TEF東海メトリク ス勉強会、2013. – 楠本真二、肥後芳樹: “GQMパラダイムを用いたソフト ウェアメトリクスの活用”、コンピュータソフトウェア、 29(3)、pp.29-38、2012. • GQM+Strategies – 早稲田大学ゴール指向経営研究会、「残念なシステム 」のなくしかた、日経ITPro、連載、2014年5月14日~6 月11日 – Victor Basili, Adam Trendowicz, Martin Kowalczyk, Jens Heidrich, Carolyn Seaman, Jürgen Münch, Dieter Rombach 著, 鷲崎弘宜, 小堀貴信, 新谷勝利, 松岡秀 樹 監訳, 早稲田大学グローバルソフトウェアエンジニア リング研究所ゴール指向経営研究会 訳, “ゴール&スト ラテジ入門: 残念なシステムの無くし方 (GQM+Strategies)”, オーム社, 2015年9月10日発行 40