COCOMOによるプロジェクト工数の見積もり

COCOMO (Constructive Cost Model)とは、統計的手法を用いたコスト見積もりのモデルである。開発規模(工数)を見積もり、ソフトウェアのコストを増加させるさまざまな要因を明確にして、それに対する係数を考慮しながら開発工数を計算して見積もりを行う。

3つのモデル

COCOMOは次の3つのモデルが存在する。

モデル 説明
基本COCOMO 早期の段階で適用できるモデル
中間COCOMO 要求定義終了時に適用するモデル
詳細COCOMO 設計終了後に適用するモデル

基本COCOMO (Basic COCOMO)

基本モデルでは、次に示す2つの要因から工数(人月)を見積もる。

  1. 見積もり対象プロジェクトのモード
  2. 開発するソフトウェアの予想されるソースコード行数(LOC: Lines of code)

見積もり要因が少ないことから、基本モデルはプロジェクト早期の段階で適用することができる。ただし、中間モデルや詳細モデルと比べて見積もり精度は劣る。ソースコード行数は、過去の類似プロジェクトでの実績やファンクションポイント法などから見積もる必要がある。COCOMOでは、見積もり対象プロジェクトを次の3つのモードに分類している。

モード
モード 説明
組織(organic) 比較的小規模な開発チームで、自社開発のような熟練度の高い開発形態の場合。
半組込(semi-detached) 組織モードと組込モードの中間に位置する場合。
組込(embedded) 開発チームが大規模であり、種々の厳しい制約条件のもとで開発する場合。

基本COCOMOモデルにおける工数と開発期間の見積り式を次表に示す。

基本COCOMOモデルにおける見積り式
モード 工数(人月) 開発期間(月)
組織 2.4・kloc1.05 2.5・effort0.38
半組込 3.0・kloc1.12 2.5・effort0.35
組込 3.6・kloc1.20 2.5・effort0.32

klocはソースコードの行数(キロステップ)
effortは工数(人月)

工数が10人月の場合、要員が300人いれば1日で開発が終わるわけではない。COCOMOでは、適切な開発期間も見積もることもできる。

中間COCOMO (Intermediate COCOMO)

中間COCOMOモデルにおける工数見積りを次表に示す。

中間COCOMOにおける工数(人月)見積り式
モード 工数見積り式
組織 2.4・kloc1.05・ΠA
半組込 3.0・kloc1.12・ΠA
組込 3.6・kloc1.20・ΠA

※ΠA = A1 * A2 * A3 * A4 * A5 * A6 * A7 * A8 * A9 * A10 * A11 * A12 * A13 * A14 * A15

Aは下表に示すコストドライバである。

中間COCOMOのコストドライバ
コストドライバ Very Low Low Nominal High Very High Extra High
ソフトウェアに要求される信頼性 0.75 0.88 1.00 1.15 1.40
データベースのサイズ 0.94 1.00 1.08 1.16
製品の複雑さ 0.70 0.85 1.00 1.15 1.30 1.65
実行時間の制約 1.00 1.11 1.30 1.66
メモリの制約 1.00 1.06 1.21 1.56
ハードウェアやOSの変更頻度 0.87 1.00 1.15 1.30
ターンアラウンドタイム 0.87 1.00 1.07 1.15
アナリストの能力 1.46 1.19 1.00 0.86 0.71
同様なアプリケーションの経験度合 1.29 1.13 1.00 0.91 0.82
ソフトウェア技術者の能力 1.42 1.17 1.00 0.86 0.70
ハードウェアやOSの経験度合 1.21 1.10 1.00 0.90
プログラム言語の経験度 1.14 1.07 1.00 0.95
ソフトウェア開発技法の使用度合 1.24 1.10 1.00 0.91 0.82
ソフトウェアツールの使用経験度 1.24 1.10 1.00 0.91 0.83
要求される開発期間の制約 1.23 1.08 1.00 1.04 1.10

COCOMO見積ツール

下記項目の値を入力して「見積る」ボタンをクリックすると、標準工期を見積ることができます。基本COCOMOによる見積りを行うには、コストドライバはすべて「Nominal」を選択してください。

項目
モード
ソースコードの行数 キロステップ
ソフトウェアに要求される信頼性
データベースのサイズ
製品の複雑さ
実行時間の制約
メモリの制約
ハードウェアやOSの変更頻度
ターンアラウンドタイム
アナリストの能力
同様なアプリケーションの経験度合
ソフトウェア技術者の能力
ハードウェアやOSの経験度合
プログラム言語の経験度
ソフトウェア開発技法の使用度合
ソフトウェアツールの使用経験度
要求される開発期間の制約

見積り結果

項目 見積り
工数 0人月
開発期間 0か月
要員 0