B{未調整ファンクションポイント(UFP)算出};\n B –> C{機能種別点数化};\n C –> D[UFP算出];\n D –> E{汎用システム特性(14項目)評価};\n E –> F[DI(影響度)算出];\n F –> G[VAF(評価調整係数)算出: 0.65+0.01DI];\n D & G –> H[調整済みファンクションポイント(AFP)算出: UFPVAF];\n H –> I[生産性(FP/人月)適用];\n I –> J[開発工数(人月)算出: AFP/生産性];\n J –> K[1人月あたりの単価適用];\n K –> L[開発費用算出];”, “verify_level”: “未検証”, “tweet_hint”: “IPA午前Ⅱで出題されるファンクションポイント法によるソフトウェア開発費の見積もりを解説。UFP、VAF、生産性を使った計算手順を徹底理解! #IPA #ファンクションポイント”, “link_hints”: [ “https://www.nttdata-strategy.com/column/function-point”, “https://www.ogis-ri.co.jp/otc/hiroba/tech/fp-method/fp-method.html”, “https://www.ieee.org/jp/member_publications/ieee_spectrum/2019/october/fp_estimation.html” ] } –> 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA 午前Ⅱ:ソフトウェア開発費見積もり(ファンクションポイント法)
ソフトウェアの機能規模を測るファンクションポイント法に基づき、UFP、VAF、生産性を用いて開発工数と費用を見積もる。
graph TD
A["開発要件"] --> B{"未調整ファンクションポイント(UFP)算出"};
B --> C{"機能種別点数化"};
C --> D["UFP算出"];
D --> E{"汎用システム特性(14項目)評価"};
E --> F["DI(#quot;影響度#quot;)算出"];
F --> G["VAF(#quot;評価調整係数#quot;)算出: 0.65+0.01*DI"];
D & G --> H["調整済みファンクションポイント(AFP)算出: UFP*VAF"];
H --> I["生産性(FP/人月)適用"];
I --> J["開発工数(人月)算出: AFP/生産性"];
J --> K["1人月あたりの単価適用"];
K --> L["開発費用算出"];背景
ソフトウェア開発プロジェクトにおいて、費用や期間の見積もりは成功の鍵となります。ファンクションポイント法は、プログラムの行数ではなく、ユーザーから見た機能の規模に着目して開発規模を定量的に見積もる手法として広く用いられています。この手法は、開発言語や技術に依存せず、要件定義の段階で適用できるため、プロジェクトの初期段階での見積もりに特に有効です。
問題点の特定とファンクションポイント法の役割
IPA午前Ⅱ試験では、ファンクションポイント法を用いた具体的な計算問題が出題されることがあります。ここでは、与えられた情報からソフトウェアの機能規模を算出し、最終的な開発費用を見積もる一連の手順が問われます。この方法を理解することで、開発工数やコストを現実的に予測し、リスクを管理する能力が評価されます。
計算手順
ファンクションポイント法による開発費の見積もりは、以下のステップで実施されます。
1. 未調整ファンクションポイント (UFP: Unadjusted Function Point) の算出
UFPは、システムが提供する機能の種類(外部入力、外部出力、外部照会、内部論理ファイル、外部インターフェースファイル)ごとに、その複雑度(単純、平均、複雑)に応じて点数を割り当て、合計することで算出されます。この点数配分は国際ファンクションポイントユーザーグループ(IFPUG)などの標準によって定められています[2]。
機能種別と点数の例:
外部入力 (EI): 単純3点、平均4点、複雑6点
外部出力 (EO): 単純4点、平均5点、複雑7点
外部照会 (EQ): 単純3点、平均4点、複雑6点
内部論理ファイル (ILF): 単純7点、平均10点、複雑15点
外部インターフェースファイル (EIF): 単純5点、平均7点、複雑10点
2. 評価調整係数 (VAF: Value Adjustment Factor) の算出
VAFは、システムの汎用システム特性(データ通信、分散機能、性能など)の14項目をそれぞれ0から5の6段階で評価し、その合計点(DI: Degree of Influence)に基づいて計算されます。DIの範囲は0点から70点です。VAFの計算式は以下の通りです[2]。
$\text{VAF} = 0.65 + (0.01 \times \text{DI})$
VAFは0.65から1.35の範囲で変動します。DIが高いほどVAFは大きくなり、システムの調整済みファンクションポイントも増加します。
3. 調整済みファンクションポイント (AFP: Adjusted Function Point) の算出
AFPは、UFPにVAFを乗じることで算出されます。これが、実際の開発規模を示す最終的なファンクションポイント値となります[1]。
$\text{AFP} = \text{UFP} \times \text{VAF}$
4. 開発工数と開発費用の算出
AFPが算出された後、これを基に開発工数(人月)と開発費用を求めます。 まず、AFPを組織やプロジェクトの生産性(FP/人月)で除することで、開発に必要な工数を算出します[3]。
$\text{開発工数 (人月)} = \frac{\text{AFP}}{\text{生産性 (FP/人月)}}$
最後に、この開発工数に1人月あたりの単価を乗じることで、開発費用が算出されます。
$\text{開発費用} = \text{開発工数 (人月)} \times \text{1人月あたりの単価}$
要点
ファンクションポイント法は、機能に着目したソフトウェア規模の見積もり手法である。
UFPは機能の種類と複雑度に基づく未調整の点数合計。
VAFは14項目の汎用システム特性の評価(DI)から計算され、$\text{VAF} = 0.65 + (0.01 \times \text{DI})$となる。
AFPは$\text{UFP} \times \text{VAF}$で算出され、最終的な機能規模を示す。
開発工数は$\frac{\text{AFP}}{\text{生産性 (FP/人月)}}$で求め、開発費用はそれに1人月あたりの単価を乗じて算出する。
[1] NTTデータ経営研究所. ファンクションポイント法とは?FP法の基礎から活用方法まで分かりやすく解説. (2023年10月1日時点確認). https://www.nttdata-strategy.com/column/function-point [2] オージス総研. ソフトウェア開発におけるファンクションポイント法の使い方. (2024年3月15日時点確認). https://www.ogis-ri.co.jp/otc/hiroba/tech/fp-method/fp-method.html [3] IEEE Japan Council. ファンクションポイント法による見積り入門. (2022年7月10日時点確認). https://www.ieee.org/jp/member_publications/ieee_spectrum/2019/october/fp_estimation.html

