B{規模の入力 (KLOC)};\n B — 入力 –> C{係数の選択 (a, b, c, d)};\n C — 適用 –> D[工数計算: Effort = a * (KLOC)^b];\n D — 利用 –> E[開発期間計算: Time = c * (Effort)^d];\n E — 出力 –> F[見積もり結果 (人月, ヶ月)];”, “verify_level”: 1, “tweet_hint”: “IPA午前Ⅱ対策!COCOMOモデルでソフトウェア開発の工数と期間を見積もる方法を解説。基本計算式と活用ポイントを理解して得点アップ! #IPA #COCOMO”, “link_hints”: [ { “title”: “IPA情報処理技術者試験 午前Ⅱ試験要綱”, “url”: “https://www.ipa.go.jp/shiken/about/gaiyou/am2.html” }, { “title”: “COCOMO Model Explained”, “url”: “https://www.tutorialspoint.com/software_engineering/software_cost_estimation.htm” } ] } –> 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前Ⅱ:COCOMOモデルによるソフトウェア開発工数と開発期間の見積もり
COCOMOモデルは、ソフトウェアの規模に基づき、開発工数と期間を算出するアルゴリズム型見積もり手法である。
背景
ソフトウェア開発プロジェクトにおいて、正確な工数と開発期間の見積もりは、予算策定、リソース計画、進捗管理の基盤となる。しかし、見積もりはしばしば経験や直感に頼りがちであり、プロジェクトの遅延やコスト超過の一因となることがある[1]。
問題点
経験と勘に基づく見積もりは、プロジェクトの特性や開発チームの能力、使用技術などの客観的な要因を十分に考慮できない場合があり、見積もり精度の低さが問題となる。これにより、プロジェクト計画が不安定になり、リスクが増大する[2]。このような課題を解決するため、客観的なデータに基づいた工数見積もりモデルの活用が求められる。
COCOMOモデルの概要と計算手順
COCOMO (Constructive Cost Model) は、ソフトウェアの規模(主にソースコードの行数)と、開発環境や要員の能力といったコストドライバを考慮して、開発工数と期間を見積もるモデルである[3]。
COCOMOのモード
COCOMOモデルには、開発対象の特性に応じて以下の3つの開発モードがある。
Organic (オーガニックモード): 比較的小規模で、経験豊富なチームが安定した環境で開発する場合。
Semi-detached (セミデタッチトモード): 中規模で、ある程度の複雑さを持ち、経験のあるチームが開発する場合。最も一般的なモード。
Embedded (エンベデッドモード): 大規模で複雑、厳格な要件や制約があるシステム(例:リアルタイムシステム、組み込みシステム)を開発する場合。
基本COCOMOモデルの計算式
基本COCOMOモデルでは、ソフトウェアの規模(KLOC:千行コード)のみを用いて工数と開発期間を算出する。
工数 (Effort) の計算:
Effort = a * (KLOC)^bEffort: 開発工数(人月: Man-Months)KLOC: プログラムの行数(千行単位、e.g., 50,000行 = 50 KLOC)a,b: 各開発モードに固有の定数
開発期間 (Development Time) の計算:
Development Time = c * (Effort)^dDevelopment Time: 開発期間(ヶ月: Months)c,d: 各開発モードに固有の定数
各モードの係数
以下の表は、基本COCOMOモデルにおける各モードの係数を示す[4]。
| 開発モード | a | b | c | d |
|---|---|---|---|---|
| Organic | 2.4 | 1.05 | 2.5 | 0.38 |
| Semi-detached | 3.0 | 1.12 | 2.5 | 0.35 |
| Embedded | 3.6 | 1.20 | 2.5 | 0.32 |
具体的な計算例
問題: あるソフトウェア開発プロジェクトにおいて、想定されるコード規模が 70 KLOC である。開発チームは経験が豊富で、比較的安定した環境で開発を進めるため、Semi-detachedモードを適用する。このプロジェクトの工数と開発期間を見積もれ。
Semi-detachedモードの係数を確認:
a = 3.0b = 1.12c = 2.5d = 0.35
工数 (Effort) の計算:
Effort = a * (KLOC)^bEffort = 3.0 * (70)^1.12Effort ≈ 3.0 * 115.65Effort ≈ 346.95人月開発期間 (Development Time) の計算:
Development Time = c * (Effort)^dDevelopment Time = 2.5 * (346.95)^0.35Development Time ≈ 2.5 * 7.57Development Time ≈ 18.93ヶ月
したがって、このプロジェクトの工数は約 347人月、開発期間は約 19ヶ月 と見積もられる。
COCOMOモデル計算フロー
graph TD
A["開発モードの決定"] -- 選択 --> B{"規模の入力 (KLOC)"};
B -- 入力 --> C{"係数の選択 (a, b, c, d)"};
C -- 適用 --> D["工数計算: Effort = a * (KLOC)^b"];
D -- 利用 --> E["開発期間計算: Time = c * (Effort)^d"];
E -- 出力 --> F["見積もり結果 (人月, ヶ月)"];
要点
COCOMOモデルは、ソフトウェアの規模(KLOC)を基に開発工数と期間を見積もる。
プロジェクトの特性に応じてOrganic、Semi-detached、Embeddedの3つの開発モードを適用する。
各モードには独自の係数(
a, b, c, d)があり、これらを用いて工数と開発期間を算出する。基本COCOMOモデルは初期段階の見積もりに適しており、より詳細なCOCOMOモデルではコストドライバを考慮し精度を高める。
[1] 情報処理推進機構, “情報処理技術者試験 午前Ⅱ 試験要綱”, 2023年9月1日更新. URL: https://www.ipa.go.jp/shiken/about/gaiyou/am2.html
[2] 情報処理推進機構, “情報処理技術者試験 過去問題”, 2024年4月21日更新. URL: https://www.ipa.go.jp/shiken/kubun/fe_am2.html
[3] TutorialsPoint, “Software Cost Estimation – COCOMO Model”, 2024年3月10日更新. URL: https://www.tutorialspoint.com/software_engineering/software_cost_estimation.htm (著者: TutorialsPoint)
[4] GeeksforGeeks, “Software Cost Estimation | COCOMO Model”, 2024年6月5日更新. URL: https://www.geeksforgeeks.org/software-cost-estimation-cocomo-model/ (著者: GeeksforGeeks)

