IPA午前Ⅱ:ファンクションポイント法の計算と適用

Tech

|機能洗い出し|\n B{機能要素の特定};\n B –> |分類・重み付け|\n C{UFP算出};\n C –> |汎用システム特性評価|\n D{VAF算出};\n D –> |最終規模算出|\n E[FP算出];\n E –> |生産性指標適用|\n F[工数見積もり];”, “verify_level”: “未検証”, “tweet_hint”: “IPA午前Ⅱ対策!ファンクションポイント法を徹底解説。機能規模の定量化から工数見積もりまで、計算手順と適用方法を理解しよう。 #午前Ⅱ #ファンクションポイント法”, “link_hints”: [ “https://www.jitec.ipa.go.jp/”, “https://www.jipdec.or.jp/”, “https://www.meti.go.jp/” ] } –> 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

IPA午前Ⅱ:ファンクションポイント法の計算と適用

ファンクションポイント法は、ソフトウェアの機能規模を定量的に測定し、開発工数を見積もる主要な手法で、機能要素と複雑度に基づき算出する。

graph TD
    A["要件定義フェーズ"] --> |機能洗い出し| B{"機能要素の特定"};
    B --> |分類・重み付け| C{"UFP算出"};
    C --> |汎用システム特性評価| D{"VAF算出"};
    D --> |最終規模算出| E["FP算出"];
    E --> |生産性指標適用| F["工数見積もり"];

背景

ソフトウェア開発プロジェクトにおいて、正確な開発工数やコストの見積もりは成功の鍵となる。しかし、従来のソースコード行数(LOC)に基づく見積もり手法では、要件定義が固まっていない初期段階での適用が困難であったり、プログラミング言語や開発者のスキルに結果が左右されたりする課題があった[1]。特に、多様なシステムが開発される現代において、より客観的で早期に適用可能な見積もり手法が求められた。

問題点

LOC法では、具体的なコード記述が進むまで規模を定量化できないため、プロジェクトの初期段階での見積もり精度が低くなる傾向がある。また、要件定義が曖昧な状態で進むと、後工程で手戻りが発生し、見積もりとの乖離が大きくなるリスクも存在した。そのため、要件定義書などの初期ドキュメントから、使用する技術や言語に依存しない形で機能規模を測定できる手法の必要性が高まった[2]。

計算/手順

ファンクションポイント(FP)法は、ソフトウェアがユーザーに提供する機能に着目し、その機能の複雑度を数値化して規模を測定する手法である。主な計算手順は以下の通り。

1. 未調整ファンクションポイント(UFP: Unadjusted Function Point)の算出

ソフトウェアが持つ機能要素を以下の5種類に分類し、それぞれの数と複雑度(低・中・高)に応じてポイントを割り当て、合計する。

機能要素 説明 複雑度:低(ポイント) 複雑度:中(ポイント) 複雑度:高(ポイント)
外部入力(EI) ユーザーがシステムに情報を入力する機能 3 4 6
外部出力(EO) システムがユーザーに情報を出力する機能 4 5 7
外部照会(EQ) ユーザーがシステムから情報を照会する機能 3 4 6
内部論理ファイル(ILF) システム内部で管理される主要なデータ群 7 10 15
外部インターフェースファイル(EIF) 他システムとの間で共有されるデータ群 5 7 10

計算例: あるシステムで以下の機能要素が識別されたとする。

  • 外部入力(EI):低 2個、中 3個

  • 外部出力(EO):中 1個、高 1個

  • 内部論理ファイル(ILF):中 2個

  • 外部インターフェースファイル(EIF):低 1個

UFP = (2×3 + 3×4) + (1×5 + 1×7) + (2×10) + (1×5) = (6 + 12) + (5 + 7) + 20 + 5 = 18 + 12 + 20 + 5 = 55 UFP

2. 調整係数(VAF: Value Adjustment Factor)の算出

システムの汎用システム特性(General System Characteristics)の14項目(例:データ通信、分散処理、性能、操作性など)を、それぞれ0(影響なし)から5(極めて強い影響)までの6段階で評価する。評価点の合計をDI(Degree of Influence)と呼ぶ。

VAFは以下の式で算出される。 VAF = 0.65 + (DI × 0.01)

DIの範囲は0から70(14項目 × 5点)なので、VAFの範囲は0.65から1.35となる[3]。

計算例: 14項目の評価点の合計DIが 30 だったとする。 VAF = 0.65 + (30 × 0.01) = 0.65 + 0.30 = 0.95

3. 最終ファンクションポイント(FP: Function Point)の計算

UFPとVAFを乗算して最終的なFP値を算出する。 FP = UFP × VAF

計算例: UFPが55、VAFが0.95の場合。 FP = 55 × 0.95 = 52.25 FP

4. 開発工数・コストの見積もり

算出されたFP値は、過去のプロジェクトデータに基づく生産性指標(例:人月/FP、円/FP)を適用して、開発工数やコストを見積もるために利用される。

開発工数(人月) = FP × 生産性指標(人月/FP)

計算例: FPが52.25、過去の実績から生産性指標が0.8人月/FPとわかっている場合。 開発工数 = 52.25 × 0.8 = 41.8人月

要点箇条書き

  • ファンクションポイント法は、要件定義段階で機能に着目し、客観的な規模測定を可能にする。

  • 未調整ファンクションポイント(UFP)は、5種類の機能要素とその複雑度から算出される。

  • 調整係数(VAF)は、14項目の汎用システム特性の評価に基づいて決定される。

  • 最終的なファンクションポイント(FP)は、UFPとVAFを乗算して求める。

  • FP値は、生産性指標を用いて開発工数やコストの見積もりに活用される。


[1] IPA 独立行政法人情報処理推進機構. ソフトウェア開発の規模見積り手法に関する調査報告書. 2018年04月01日. [2] 経済産業省. ITプロジェクトの成功に向けた見積りガイドライン. 2020年11月10日. [3] IFPUG(International Function Point Users Group)公式サイト. 2023年09月15日.

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました