Smily Books Blog 2023年7月更新中

初めて学ぶソフトウェアメトリクス ローレンス・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はむしろやや減少している