📋プロジェクトマネジメント

ファンクションポイント法とは?機能規模から開発工数を定量的に測定する手法

ファンクションポイント法(FPA)はシステムの機能をユーザー視点で分類・計測し、規模を定量化する手法です。5つの機能タイプ、複雑度の判定、調整係数の適用手順、工数への変換方法を解説します。

    ファンクションポイント法とは

    ファンクションポイント法(Function Point Analysis、FPA)とは、ソフトウェアの機能規模をユーザーの視点から定量的に測定する手法です。1979年にIBMのAllan Albrecht氏が提唱し、IFPUG(International Function Point Users Group)が標準化しています。コード行数(LOC)のような技術依存の指標ではなく、「システムがユーザーに提供する機能の量」を測定するため、技術やプログラミング言語に依存しない客観的な規模指標です。

    この手法の基本的な考え方は、すべてのソフトウェアは「データの入力」「データの出力」「データの照会」「内部データの管理」「外部データの参照」という5つの機能タイプに分類できるというものです。各機能の数と複雑度を計測し、重み付けして合計したものがファンクションポイント(FP)です。

    ファンクションポイントが確定すれば、組織の生産性データ(1FPあたりの工数)を掛けることで工数見積もりに変換できます。また、業界のベンチマークデータとの比較により、プロジェクトの規模感を客観的に評価できます。

    :::box-point ファンクションポイント法は1979年にIBMのアラン・アルブレヒトが提唱し、IFPUG(International Function Point Users Group)が標準化しています。技術やプログラミング言語に依存しない客観的な規模指標として広く利用されています。 :::

    構成要素

    ファンクションポイント法の構造

    トランザクション機能(3タイプ)

    外部入力(EI: External Input)はシステムにデータを入力する機能です。登録画面、更新画面、ファイルアップロードなどが該当します。外部出力(EO: External Output)はシステムからデータを出力する機能で、帳票出力、CSV出力、計算結果表示などが該当します。外部照会(EQ: External Inquiry)はデータの検索・参照機能で、一覧表示、詳細表示、検索画面が該当します。

    データ機能(2タイプ)

    内部論理ファイル(ILF: Internal Logical File)はシステムが管理するデータグループです。マスターデータ、トランザクションデータのテーブル群が該当します。外部インターフェースファイル(EIF: External Interface File)は他システムから参照するデータグループで、外部APIから取得するデータや共有データベースが該当します。

    複雑度の判定

    各機能タイプについて、データ要素タイプ(DET: 項目数)とレコード要素タイプ(RET: サブグループ数)またはファイルタイプ参照(FTR: 参照ファイル数)を数え、低・中・高の3段階で複雑度を判定します。複雑度に応じて異なるFP値が割り当てられます。

    調整係数

    14の一般システム特性(GSC: General System Characteristics)を0から5の6段階で評価し、調整係数を算出します。データ通信、分散処理、性能要件、再利用性、セキュリティなどの要因がシステムの開発難易度に与える影響を反映します。

    実践的な使い方

    ステップ1: 計測範囲の決定

    ファンクションポイント計測の対象範囲を明確にします。新規開発か機能追加か、計測の境界(どこからどこまでが対象システムか)を定義します。外部システムとの境界を明確にすることが、ILFとEIFの区別に直結します。

    ステップ2: 機能の識別と分類

    要件定義書や画面設計書から、5つの機能タイプに分類できる機能を識別します。1つの画面が複数の機能タイプを含む場合があります。例えば、検索画面は検索実行(EQ)と一覧表示からの詳細遷移(EQ)の2つの機能を持つ可能性があります。

    ステップ3: 複雑度の判定

    各機能について、項目数とサブグループ数を数えて複雑度を判定します。外部入力(EI)の場合、参照するファイル数(FTR)が2以下で項目数(DET)が15以下なら「低」、FTRが3以上かつDETが16以上なら「高」と判定します。判定基準はIFPUGの標準に従います。

    ステップ4: 未調整FPの算出

    機能タイプと複雑度の組み合わせごとに定められたFP値を合計します。例えば、複雑度「低」のEIは3FP、「中」のEOは5FP、「高」のILFは15FPです。すべての機能のFP値を合計したものが未調整ファンクションポイント(UFP)です。

    ステップ5: 調整と工数変換

    14のGSCを評価して調整係数(VAF: Value Adjustment Factor)を算出し、UFPに掛けて調整済みFPを求めます。調整済みFPに組織の生産性(時間/FP)を掛けて工数に変換します。業界平均では1FPあたり10から15時間が目安ですが、組織ごとの実績データを使うことが推奨されます。

    活用場面

    開発規模の客観的な測定が求められる場面に適しています。要件定義の完了後に規模を確定させ、予算承認の根拠とするケースが典型的です。技術やプログラミング言語に依存しないため、異なる技術スタック間での比較が可能です。

    ベンダー選定や外注見積もりの妥当性検証にも活用されます。ベンダーから提示された工数見積もりをFPで割り戻して生産性を算出し、業界ベンチマークと比較することで、見積もりの妥当性を客観的に評価できます。

    組織の生産性改善の指標としても有用です。プロジェクトごとにFPあたりの実績工数を記録し、推移を分析することで、開発プロセスの改善効果を定量的に把握できます。

    注意点

    :::box-warning ファンクションポイント法は計測者のスキルや要件の成熟度に精度が大きく左右されます。適用条件を見極め、組織内の計測基準を統一することが信頼性の確保に不可欠です。 :::

    計測者のスキルへの依存

    ファンクションポイント計測には専門的な知識とスキルが必要です。機能タイプの分類や複雑度の判定に曖昧さがあると、計測者によって結果が異なります。IFPUG認定資格(CFPS)の取得や、組織内での計測ガイドラインの整備が推奨されます。

    要件の成熟度と計測精度

    要件が曖昧な段階ではFPの計測精度が低下します。画面数やデータ項目数が確定していないと、機能の識別と複雑度の判定が困難です。要件定義の完了後に計測するのが原則です。

    内部処理の複雑さの反映限界

    バッチ処理やアルゴリズムの複雑さはFPに十分に反映されない場合があります。科学技術計算やAI/ML処理のように、入出力は少ないが内部処理が極めて複雑なシステムでは、FPだけでは規模を適切に測定できない可能性があります。

    調整係数の扱い

    調整係数(VAF)は近年のIFPUG標準では省略される傾向にあります。調整の主観性を排除するため、未調整FPのみを使用するプロジェクトも増えています。組織内での計測基準を統一しておくことが重要です。

    まとめ

    ファンクションポイント法は、ソフトウェアの機能をユーザー視点で5つのタイプに分類し、数と複雑度から規模を定量化する手法です。技術に依存しない客観的な規模指標として、工数見積もりの基盤、ベンダー評価、生産性分析に活用されます。正確な計測にはIFPUG標準への準拠と専門知識が必要であり、要件定義完了後の適用が原則です。

    関連記事