33
0 redmine.tokyo ソフトウェアメトリクス概要 ~ メトリクス概要とよく使われるメトリクス ~ 2016514大和田 (@yohwada) 10回勉強会, 2016-05-14

ソフトウェアメトリクス概要 20160514

Embed Size (px)

Citation preview

Page 1: ソフトウェアメトリクス概要 20160514

0 redmine.tokyo

ソフトウェアメトリクス概要

~ メトリクス概要とよく使われるメトリクス ~

2016年5月14日

大和田 裕 (@yohwada)

第10回勉強会, 2016-05-14

Page 2: ソフトウェアメトリクス概要 20160514

1 redmine.tokyo

自己紹介

第10回勉強会, 2016-05-14

ハンドルネーム @yohwada

所属 Self-Employed 一般社団法人

実践的プロジェクトマネジメント推進協会 (PPMA) 理事 独立行政法人 情報処理推進機構

ソフトウェア高信頼化センター (IPA/SEC) 連携委員 Redmine歴

約5年 • 定量的プロジェクト管理ツール 「EPM-X」 • 定量的マネジメントプラットフォーム 「EPM Base」

ソフトウェアメトリクス関連 定量的管理基盤メトリクス分類表 (IPA/SEC Report) プロジェクトの見える化 (IPA/SECセミナー) 共通フレーム2013 (IPA/SEC書籍)

Page 3: ソフトウェアメトリクス概要 20160514

2 redmine.tokyo

ソフトウェアメトリクスとは

第10回勉強会, 2016-05-14

ソフトウェアメトリクス(メトリクス) 様々な活動を定量化し、その定量化したデータを管

理(マネジメント)に使えるように加工した指標。

ソフトウェア開発プロセス、資源、成果物の実態がソフトウェアを開発するという点から見て適当であるかどうかを計測し、予測するための手段。

ソフトウェアを対象とした計測方法・(定量的評価)尺度,もしくは,計測・評価の結果。

メトリクス管理 加工して作ったメトリクスを使って管理(マネジメ

ント)すること。

Page 4: ソフトウェアメトリクス概要 20160514

3 redmine.tokyo

ちょっと余談

第10回勉強会, 2016-05-14

管理の意味 範囲を限定し維持・統制する。(上から下へ統制す

ることが前提)

マネジメントの意味 組織や団体、人が存続・発展するための全ての活動。 様々な資源や資産・リスクなどを管理し、経営上の

効果を最適化しようとする手法のこと。 成果を出せるような環境や状況を作り出すこと。

マネジメント≠管理 マネジメントは、”管理”という意味合いの他、”評

価・分析・選択・改善・発展・回避・統合・計画・調整・指揮・統制・組織化”などを含んでいる。

Page 5: ソフトウェアメトリクス概要 20160514

4 redmine.tokyo

メトリクスに関わる規格

第10回勉強会, 2016-05-14

JIS X 0141:2009 (ISO/IEC 15939:2007) システム及びソフトウェア技術−測定プロセス ISO/IEC 15939:2007には、「ソフトウェア測定プロセス」という標題が付いている。

JIS X 0160:2012 (ISO/IEC 12207:2008) ソフトウェアライフサイクルプロセス ISO/IEC 12207:2008には、「測定」というプロセスが定義されている。

JIS X 0133群(ISO/IEC 14598) ソフトウェア製品の評価

JIS X 0129群 (ISO/IEC 9126) ソフトウェア製品の品質

JIS X 0161:2008 (ISO/IEC 14764:2006) ソフトウェア技術−ソフトウェアライフサイクルプロセス−保守

Page 6: ソフトウェアメトリクス概要 20160514

5 redmine.tokyo

メトリクスの枠組み

第10回勉強会, 2016-05-14

基本測定量 測定を行って直接結果 が得られる要素データ 導出測定量 要素データを組合せ、 計算することによって 結果が得られる指標

Page 7: ソフトウェアメトリクス概要 20160514

6 redmine.tokyo

メトリクスの目的

第10回勉強会, 2016-05-14

ソフトウェア開発プロジェクトを成功に導きたいし、ソフトウェアの品質を良くしたい。さらにソフトウェア開発の生産性を一層向上させたい。つまりソフトウェア開発の過程などを制御して、より良いソフトウェアと、そのソフトウェアを開発するより良い方法を手に入れたい。

ソフトウェア工学の領域での重鎮の一人であるトム・デマルコ(Tom Demarco)は、その著書の中で「測定できないものは制御できない」と言った。

デマルコの言葉が正しいとすれば、ソフトウェアそのものと、ソフトウェア開発に関わるいろいろな側面についての計測を行わなければならない。

端的に言えば、これがソフトウェアに関する事項を測定すること、つまりメトリクスの目的。

Page 8: ソフトウェアメトリクス概要 20160514

7 redmine.tokyo

ちょっと余談

第10回勉強会, 2016-05-14

メトリクスとメトリクス管理は「計測による制御」が前提

結果が予測出来ない試行錯誤を伴うまったく新しい概念のプロダクトやプロセスへの適用は、ほとんど意味がない。

• プロジェクトA: 1,000万円のコストを使って 1,100万円の価値を作る。 「計測と制御」が有効

• プロジェクトB: 1,000万円のコストを使って5億円以上の価値を作る。 「計測と制御」で語れる部分の「外側」が重要

Page 9: ソフトウェアメトリクス概要 20160514

8 redmine.tokyo

メトリクス・タイプ(1/4)

第10回勉強会, 2016-05-14

数値 (Number) 計測により対象から直接的に得られる数値。

例:ソースコード行数(Lines of Code),ファンクションポイント数(FP),バグ数。

属性 (Attribute) 計測対象の特性。〇〇度,△△性,といった表現が用いられる場合が多い。

例:プログラム複雑度,耐故障性。

モデル (Model) 計測対象の構造や具体的な計測手順などを示した,理論やデータに基づくモデル。

例:ソフトウェア信頼度成長モデル。

Page 10: ソフトウェアメトリクス概要 20160514

9 redmine.tokyo

メトリクス・タイプ(2/4)

第10回勉強会, 2016-05-14

尺度 (Scale) 対象を分類するための枠組み・基準。

比例尺度:数値の差と共に数値の比にも意味がある 例:身長、体重、金額、絶対温度、工数変化率

体重は50kgから60kgになったときと、100kgから110kgになったときとは、 同じ10kgの増加であっても、前者は20%増、後者は10%増です。 また、比が定義できるということは絶対零点を持つことと同じことを表します。

Page 11: ソフトウェアメトリクス概要 20160514

10 redmine.tokyo

メトリクス・タイプ(3/4)

第10回勉強会, 2016-05-14

間隔尺度:数値の差のみに意味がある 例:摂氏温度,速度、バグ数

温度が10℃から15℃になったときに、50%の温度上昇があったとはいいません。温度が10℃から15℃になったときも、100℃から105℃になったときも、ともに5℃の温度上昇です。そして、5℃という数値には意味があります。

順序尺度:値の大小関係だけに意味がある 例:階級(ヘビー、ウエルター、ライト)、故障の重要度(軽微、普通、重要)

故障の重要度において、軽微・普通・重要を、それぞれ1・2・3と数値に対応させたもの。平均値は定義できないが中央値は定義できます。

Page 12: ソフトウェアメトリクス概要 20160514

11 redmine.tokyo

メトリクス・タイプ(4/4)

第10回勉強会, 2016-05-14

名義尺度:観察される変数と数値を対応させる(分類として記号の意味を持つのみ) 例:血液型,発生工程に基づくバグ分類,故障重大度の5段階評価基準。

血液型でA型・B型・O型・AB型を、 それぞれ0・1・2・3と数値に対応させたもの。これらの変数の平均値を求めてもまったく意味がありません。

Page 13: ソフトウェアメトリクス概要 20160514

12 redmine.tokyo

メトリクスの分類

第10回勉強会, 2016-05-14

プロダクト(成果物)メトリクス 開発の結果得られたもの ドキュメント、プログラム、テストデータ等

プロセスメトリクス 成果物を作り出すための作業 ライフサイクルの全てのフェーズ(要求分析、設計、コード、テスト、品質保証等)

リソース(資源)メトリクス 開発作業の入力となったもの

HW、SW、ドキュメント、人的資源、知識等

Page 14: ソフトウェアメトリクス概要 20160514

13 redmine.tokyo

メトリクスの分類

第10回勉強会, 2016-05-14

プロダクト(成果物)メトリクス 開発の結果得られたもの ドキュメント、プログラム、テストデータ等

プロセスメトリクス 成果物を作り出すための作業 ライフサイクルの全てのフェーズ(要求分析、設計、コード、テスト、品質保証等)

リソース(資源)メトリクス 開発作業の入力となったもの

HW、SW、ドキュメント、人的資源、知識等

Page 15: ソフトウェアメトリクス概要 20160514

14 redmine.tokyo

プロダクトメトリクス(1/2)

第10回勉強会, 2016-05-14

プロダクト(成果物)の複雑さ モジュール結合度、モジュール凝集度、ファンクションポイント、C&Kメトリクス、Software Science by Halstead、サイクロマチック数

プロダクト(成果物)の量 ドキュメント・ページ数、ソースコード行数、ファンクションポイント数、テスト項目数

Page 16: ソフトウェアメトリクス概要 20160514

15 redmine.tokyo

プロダクトメトリクス(2/2)

第10回勉強会, 2016-05-14

プロダクト(成果物)の質 故障数、欠陥数(バグ数)、単位時間あたりの故障数(故障率)、ソースコード1,000行あたりの欠陥密度(バグ密度)、テストケース網羅率

Page 17: ソフトウェアメトリクス概要 20160514

16 redmine.tokyo

メトリクスの分類

第10回勉強会, 2016-05-14

プロダクト(成果物)メトリクス 開発の結果得られたもの ドキュメント、プログラム、テストデータ等

プロセスメトリクス 成果物を作り出すための作業 ライフサイクルの全てのフェーズ(要求分析、設計、コード、テスト、品質保証等)

リソース(資源)メトリクス 開発作業の入力となったもの

HW、SW、ドキュメント、人的資源、知識等

Page 18: ソフトウェアメトリクス概要 20160514

17 redmine.tokyo

プロセスメトリクス

第10回勉強会, 2016-05-14

各フェーズにおける活動を測定 時間、工数、工期、コスト、生産性、レビュー効率、欠陥除去率、関連イベントの有無、関連イベントの発生回数 例:顧客との対話時間やインタビュー回数、仕様書レビューに要した工数

Page 19: ソフトウェアメトリクス概要 20160514

18 redmine.tokyo

メトリクスの分類

第10回勉強会, 2016-05-14

プロダクト(成果物)メトリクス 開発の結果得られたもの ドキュメント、プログラム、テストデータ等

プロセスメトリクス 成果物を作り出すための作業 ライフサイクルの全てのフェーズ(要求分析、設計、コード、テスト、品質保証等)

リソース(資源)メトリクス 開発作業の入力となったもの

HW、SW、ドキュメント、人的資源、知識等

Page 20: ソフトウェアメトリクス概要 20160514

19 redmine.tokyo

リソースメトリクス

第10回勉強会, 2016-05-14

投入・消費される資源を測定 開発要員数、作業単価、スキルレベル、開発用マシンスペック、使用ツール

Page 21: ソフトウェアメトリクス概要 20160514

20 redmine.tokyo

メトリクス管理サイクル プロジェクトの進捗,課題・障害の解決状況,工数等の把握を定量データにより行い問題の早期発見と対応を可能にすることにより、迅速かつ効果的なプロジェクトのPDCAサイクルを実現する。

プロジェクト

計画(P) 実施(D)

診断(C) 対策(A)

最適な計画の立案

スケジュール、計画工数、

レビュー計画、品質計画..

進捗実績、工数実績、レビュー実績

障害・課題データ..

動的分析データの提供 プロジェクト状況データの

フィードバックと情報共有

プロジェクト課題やリスクの早期発見

問題対応と計画への

フィードバック

プロジェクト状況の把握

第10回勉強会, 2016-05-14

Page 22: ソフトウェアメトリクス概要 20160514

21 redmine.tokyo

メトリクス管理の期待効果(1/4)

第10回勉強会, 2016-05-14

1.可視化 ソフトウェア及びプロジェクトの可視化。

代表的な対象:プロダクト(成果物)、プロジェクトの進捗、プロセスの質

プロダクトの主な可視化対象 規模、品質、構成要素、構成要素間の関係

プロジェクト進捗の主な可視化対象 投入済み工数(コスト)とマイルストーンの達成状況

テスト工程の主な進捗把握対象 成功テストケース数、未消化テストケース数、欠陥発見数、修正未了欠陥数などの時系列データ

プロセスの質の主な可視化対象 各アクティビティに費やした工数と、当該アクティビティで発生した事象(欠陥の作り込みと除去など)

Page 23: ソフトウェアメトリクス概要 20160514

22 redmine.tokyo

メトリクス管理の期待効果(2/4)

第10回勉強会, 2016-05-14

2.予測 ソフトウェアとプロジェクトが可視化できると、データに基づいた予測が可能となる。

代表的な対象:プロジェクトの工数、プロダクトの規模、プロダクトの品質

仕様書からファンクションポイントを測定できれば、最終プロダクトの規模(KLOC)や開発工数を予測できる。

プロジェクトの進捗状況が可視化できれば、プロジェクト終了時期と最終コストを予測できる。

プロダクト品質及びプロセス品質が把握できれば、最終プロダクトに残存する欠陥数を予測できる。

プロダクト及びプロセスのメトリクスを組み合わせて、欠陥が作り込まれる可能性が高いモジュールを特定することもできる。

Page 24: ソフトウェアメトリクス概要 20160514

23 redmine.tokyo

メトリクス管理の期待効果(3/4)

第10回勉強会, 2016-05-14

3.計画 定量データが蓄積されれば、過去の実績及び予測に基づいた計画を立案できる。

代表的な対象:プロジェクトに含まれる各アクティビティと、その所要工数及び実施時期。レビューやテストなどの欠陥除去工程において、何件の欠陥を除去目標とするのかといった品質計画

Page 25: ソフトウェアメトリクス概要 20160514

24 redmine.tokyo

メトリクス管理の期待効果(4/4)

第10回勉強会, 2016-05-14

4.改善対象の特定 定量的マネジメントの分解能が高くなると、プロセスの弱みやプロジェクトの弱みを定量データにより明確化できるようになる。

設計レビューの欠陥除去能力を詳細に分析すると、設計レビューで除去すべき欠陥をどのくらい見逃しているのか、見逃した欠陥はどのような種類が多いのかを定量データで示すことができ、欠陥見逃し原因の特定に役立てることができる。

テスト工程における欠陥発見数の累積値が一定のパターンにならない場合には、テストケース設計に問題があるのか、テスト実施プロセスに問題があるのか、テスト可能コードが断続的に引き渡されているのかなど、改善すべき原因の特定が期待できる。

Page 26: ソフトウェアメトリクス概要 20160514

25 redmine.tokyo

基本測定項目

第10回勉強会, 2016-05-14

プロジェクトをコントロールするための必要最小限の測定項目(指標)

作業(作業要素):作業規模の指標 スケジュールでは矢印などであらわされている必

要となる作業(タスク) 作業成果物:開発規模の指標 プロジェクトの活動を通じて作成されるドキュメ

ント、コード等のアウトプット 障害・課題:品質の指標 開発中に発生した障害や課題

工数:リソースの指標 メンバーがどのような作業にどのくらい時間を

使ったのかを測定

Page 27: ソフトウェアメトリクス概要 20160514

26 redmine.tokyo

メトリクス(分析)の種類

第10回勉強会, 2016-05-14

1.リアルタイムメトリクス ある時点で得られる、および得られたメトリクスから計算で得られるデータを分析する。

2.ヒストリカルメトリクス 時系列にメトリクスを蓄積し、推移を分析する。

3.予測メトリクス 上記1.2.より将来予測/将来計画設定・変更を行う。

Page 28: ソフトウェアメトリクス概要 20160514

27 redmine.tokyo

よく使われるメトリクス(分析) (1/3)

第10回勉強会, 2016-05-14

1.進捗 タスク/アクティビティ進捗率 進捗率推移 タスク/アクティビティ実績工数 実績工数推移 EVM

2.品質 バグ件数(発生、修正)推移 バグ発生率(バグ件数/規模) バグ検出率(バグ件数/テスト項目数) バグ収束率(総バグ件数/バグ予測件数) 信頼度成長曲線 障害原因分類

Page 29: ソフトウェアメトリクス概要 20160514

28 redmine.tokyo

よく使われるメトリクス(分析) (2/3)

第10回勉強会, 2016-05-14

3.試験 テスト項目密度(テスト項目数/規模) テスト項目消化率(実施テスト項目数/予定テスト項目数) テスト項目消化数推移 テスト項目網羅率

4.課題 未完了課題数 課題解決時間

5.レビュー レビュー項目密度(レビュー項目数/規模) レビュー項目消化率(実施レビュー項目数/予定レビュー項目

数) レビュー指摘分類

Page 30: ソフトウェアメトリクス概要 20160514

29 redmine.tokyo

よく使われるメトリクス(分析) (3/3)

第10回勉強会, 2016-05-14

6.アジャイル バーンダウンチャート ベロシティ サイクルタイム 累積フロー図(Cumulative Flow Diagram)

7.チケット 未完了チケット件数、件数推移 最大放置日数、日数推移 平均完了日数、日数推移

Page 31: ソフトウェアメトリクス概要 20160514

30 redmine.tokyo

メトリクス管理の留意点(1/2)

第10回勉強会, 2016-05-14

1.目的と整合性のとれたメトリクスを用いる 有益な情報を提供できるメトリクスを定義し、運用する。

GQM (Goal–Question–Metric)手法などを用いて、目的とメトリクスの整合性を確認する。

測定の目的は、測定データの提供者に共有されていること。

組織または個人に対してどのような有益なマネジメント情報が得られたのかを、データ提供者にフィードバックする。

Page 32: ソフトウェアメトリクス概要 20160514

31 redmine.tokyo

メトリクス管理の留意点(2/2)

第10回勉強会, 2016-05-14

2.メトリクス情報は、測定したい概念の一部分 実世界の測定によって得られる情報は、測定したい概念のごく一部の情報を表しているに過ぎない。

目的に対する答えを得る際には、複数のメトリクスにより多面的に状況を把握する必要がある。

3.メトリクスは手段であって目的ではない メトリクスの精緻化を図るあまり、「正確に誤って」しまわないよう注意が必要となる。

4.メトリクスを人の評価に使ってはいけない 正しい情報を入力しなくなり、情報を捏造するようになる可能性が高くなる

Page 33: ソフトウェアメトリクス概要 20160514

32 redmine.tokyo

ご清聴ありがとうございました

第10回勉強会, 2016-05-14