初めて学ぶソフトウェアメトリクス ローレンス・H・パトナム(日経BP社)
1.中核メトリクス
(1)機能量(通常ソフトウェア規模であり、ソースコード行数やファンクションポイント数で計測)
(2)生産性
(3)時間
(4)工数
(5)信頼性(欠陥率あるいはバグ検出の間隔で表す)
2.古典的生産性
1人日で10行、1人月で200行コーディング
ただし人により10倍の格差があるため、1人月40〜400行の差がある
3.欠陥率のレベル分け
(1)致命的(Critical)
プログラムが動かない、システム全体ダウン
(2)重大(Serious)
出力できない、性能劣化、システム一時的なダウン
(3)中程度(Moderate)
プログラム動作の一部に誤り
(4)表面的(Cosmetic)
プログラムの機能、性能上影響のない欠陥(出力グラフのタイトル誤字など)
4.プロジェクトの大きさと開発工数
開発ピーク時5人以下に比べ、開発ピーク時20人以上のプロジェクトは平均して7倍の工数となる
5.スケジュールと見積もり工数(スケジュール達成確率は正規分布で考える)
(1)6ヶ月でプロジェクト完了させたい場合、6ヶ月そのままの工数割り当てだと50%の達成確率しか得られない
(2)90%の達成確率で完了させたい場合、まずは5.5ヶ月で完成するように工数を割り当てた(要員追加など)計画で実施する
(3)5.5ヶ月たっても完成していない確率は50%あるが、この0.5ヶ月をリスク用バッファとして異常事態用の保険とする
6.信頼性改善プロセス
(1)95%の信頼度を得るために実施した本体・構築フェーズ(詳細〜テストフェーズ)の後、信頼度を99%まで上げるには、
本体・構築フェーズの1/4程度の時間をチェックに割り当て必要
(2)99%の信頼度を99.9%まで上げるには、更に本体・構築フェーズの1/4程度の時間をチェックに割り当て必要
(95%から99.9%まで上げるには、本体・構築フェーズの1/2程度の時間が必要)
7.ソフトウェア開発プロセス
12個のワークフローを全て4つのフェーズで考える
(1)ワークフロー
①ビジネス形態分析
②リスク管理
③構造設計(インタフェース、再利用可能コンポーネント)
④モデル分析(ユースケース、分析/設計/展開、テスト)
⑤ツール分析
⑥レビュー(コードインスペクション、判定基準、マイルストーン)
⑦テスト(テスト設計、テスト項目、欠陥摘出)
⑧構成管理(構成管理、変更管理)
⑨メトリクス測定(見積もり、入札、制御)
⑩再計画
⑪プロジェクトマネジメント
⑫顧客協調
(2)フェーズ
①方向づけ(コンセプトの定義)
②推敲(プログラムの定義)
③作成(ソフトウェア開発)
④移行
8.再利用コンポーネントの有効利用
(1)再利用の5段階
①第1段階:個人レベルの再利用
②第2段階:リポジトリからの再利用(利用率25%)
③第3段階:シリーズ物開発での再利用(利用率40%)
④第4段階:ERPシステム(パッケージ)による再利用(利用率75%)
⑤第5段階:ソフトウェアアーキテクチャ全体の再利用(利用率50→90%)
(2)再利用の要素
①ソフトウェアアーキテクチャ
②インタフェース
③変更機能
④プロセス
⑤モデリング言語
⑥ツール
9.中核メトリクスの性質(プログラムサイズ、工数と生産性)
・プログラムサイズ、工数は1983〜1997と減っている(約80→50KL/約165→60人月)が、その後大幅に増加(1998-2000は1995-1997の倍)
・1998-2000におけるビジネスシステムの平均プログラムサイズ、工数は約100KL/100人月
・生産性は1983〜1997は微増だが、1998-2000はむしろやや減少している