ココモ

建設的コストモデルCOCOMO)は、バリー・W・ボームによって開発されたパラメトリックなソフトウェアコスト見積モデルです。モデルのパラメータは、過去のプロジェクト(COCOMO 81では63件、COCOMO IIでは161件)のデータを用いて回帰式を当てはめることによって導出されます。

歴史

建設的費用モデルは、1970年代後半にバリー・W・ボームによって開発され[1]、1981年に出版された著書『ソフトウェア工学経済学』[2]で、ソフトウェアプロジェクトの労力、費用、スケジュールを見積もるためのモデルとして発表されました。このモデルは、ボームがソフトウェア研究技術部門のディレクターを務めていたTRWエアロスペース社における63のプロジェクトを対象とした研究に基づいています。この研究では、コード行数が2,000行から100,000行まで、プログラミング言語はアセンブリ言語からPL/I言語まで、様々な規模のプロジェクトが調査されました。これらのプロジェクトは、1981年に主流であったソフトウェア開発プロセスであるウォーターフォールモデルに基づいていました。

このモデルは、通常COCOMO 81と呼ばれます。1995年にCOCOMO IIが開発され、2000年に『Software Cost Estimation with COCOMO II』という書籍として出版されました[3] COCOMO IIはCOCOMO 81の後継であり、現代のソフトウェア開発プロジェクトの見積りにより適しているとされ、より新しいソフトウェア開発プロセスをサポートし、161件のプロジェクトからなるより大規模なデータベースを用いて調整されました。この新しいモデルの必要性は、ソフトウェア開発技術がメインフレームと夜間バッチ処理からデスクトップ開発、コードの再利用性、そして既製のソフトウェアコンポーネントの利用へと移行するにつれて生まれました。

COCOMOは、詳細度と精度が段階的に上がる3つの階層構造で構成されています。最初のレベルである基本COCOMOは、ソフトウェアコストの大まかな見積りを迅速かつ早期に行うのに適していますが、プロジェクト属性(コスト要因)の違いを考慮する要素がないため、精度には限界があります。中間COCOMOはこれらのコスト要因を考慮し、詳細COCOMOは個々のプロジェクトフェーズの影響も考慮します。最後のレベルは完全COCOMOモデルで、基本COCOMOと中間COCOMOの両方の欠点を補っています。

ツール

このモデルのオンラインCOCOMO IIツール実装は、ソフトウェアコスト見積りに利用可能です。[4]これは、COCOMO IIの共著者であるRay Madachyによって開発され、本書のポストアーキテクチャモデルの定義に準拠しています。ツールによる見積りの例を以下に示します。

COCOMO II ツールからのソフトウェア コスト見積りの例。

中級COCOMO

中級COCOMOは、プログラムサイズと、製品、ハードウェア、人員、プロジェクト属性に関する主観的な評価を含む一連の「コスト要因」の関数として、ソフトウェア開発工数を計算します。この拡張では、それぞれにいくつかの補助的な属性を持つ4つの「コスト要因」を考慮します。

  • 製品属性
    • 必要なソフトウェア信頼性の範囲
    • アプリケーションデータベースのサイズ
    • 製品の複雑さ
  • ハードウェア属性
    • 実行時パフォーマンスの制約
    • メモリ制約
    • 仮想マシン環境の不安定性
    • 必要な所要時間
  • 人材属性
    • アナリストの能力
    • ソフトウェアエンジニアリング能力
    • アプリケーション経験
    • 仮想マシンエクスペリエンス
    • プログラミング言語の経験
  • プロジェクト属性
    • ソフトウェアツールの使用
    • ソフトウェア工学手法の応用
    • 必要な開発スケジュール

15の属性それぞれについて、「非常に低い」から「非常に高い」(重要度または価値)までの6段階評価が与えられます。評価には、以下の表に示す努力係数が適用されます。すべての努力係数を掛け合わせたものが、努力調整係数(EAF)となります。EAFの典型的な値は0.9から1.4の範囲です。

コスト要因評価
非常に低い低い名目高い非常に高いエクストラハイ
製品属性
必要なソフトウェアの信頼性0.750.881.001.151.40 
アプリケーションデータベースのサイズ 0.941.001.081.16 
製品の複雑さ0.700.851.001.151.301.65
ハードウェア属性
実行時パフォーマンスの制約  1.001.111.301.66
メモリ制約  1.001.061.211.56
仮想マシン環境の不安定性 0.871.001.151.30 
必要な所要時間 0.871.001.071.15 
人材属性
アナリストの能力1.461.191.000.860.71 
アプリケーション経験1.291.131.000.910.82 
ソフトウェアエンジニアの能力1.421.171.000.860.70 
仮想マシンエクスペリエンス1.211.101.000.90  
プログラミング言語の経験1.141.071.000.95  
プロジェクト属性
ソフトウェア工学手法の応用1.241.101.000.910.82 
ソフトウェアツールの使用1.241.101.000.910.83 
必要な開発スケジュール1.231.081.001.041.10 

中間ココモの式は次のようになります。

E = a (KSLOC) b (EAF)

ここで、Eは人月単位での工数、KSLOCはプロジェクトで提供されるソースコードの推定行数(千行単位)、EAFは上記で計算した係数です。係数aと指数bは、プロジェクトの種類ごとに次の表に示されています。

ソフトウェアプロジェクト1つのbc
オーガニック3.21.050.38
半戸建て3.01.120.35
埋め込み2.81.200.32

開発期間Dと最大有効人数Pの計算には、基本COCOMOと同様にEを使用します。

D = 2.5 E c

EAFに加えて、中間COCOMOではパラメータaが基本モデルと異なることに注意してください。

ソフトウェアプロジェクト1つの
オーガニック2.4
半戸建て3.0
埋め込み3.6

パラメータbcは両方のモデルで同じです。

参照

参考文献

  1. ^ Stutzke, Richard. 「ソフトウェア見積技術:概説」。2020年3月28日時点のオリジナルよりアーカイブ2016年10月9日閲覧。ドキュメント
  2. ^ ボーム、バリー (1981).ソフトウェア工学経済学. プレンティス・ホール. ISBN 0-13-822122-7
  3. ^ バリー・ボーム、クリス・アブツ、A・ウィンザー・ブラウン、スニタ・チュラーニ、ブラッドフォード・K・クラーク、エリス・ホロウィッツ、レイ・マダチー、ドナルド・J・レイファー、バート・スティーズ著『COCOMO IIによるソフトウェアコスト見積り (CD-ROM付き)』、ニュージャージー州エングルウッド・クリフス:プレンティス・ホール、2000年。ISBN 0-13-026692-2
  4. ^ Ray Madachy. COCOMO IIツール. softwarecost.org. 2025年10月にアクセス。

さらに読む

  • Kemerer, Chris F. (1987年5月). 「ソフトウェアコスト見積モデルの経験的検証」(PDF) . Communications of the ACM . 30 (5): 416–42 . doi :10.1145/22899.22906.
  • tera-PROMISEのCOCOMO 81データ
  • COCOMO 81 データの分析により、有機指数に異なる値が得られます。


Retrieved from "https://en.wikipedia.org/w/index.php?title=COCOMO&oldid=1319806387"