FP法とは?ソフトウェアの規模をファンクションポイントで測定する手法

企画・プロジェクト管理
FP法とは?ざっくりと3行で
  • ソフトウェアが提供する「機能の数と複雑さ」をポイント数で定量化してシステムの規模を測定し、開発工数・コスト・期間を見積もるための手法のこと
  • プログラムのコード行数(LOC)ではなくユーザーから見た機能の観点で規模を測るためプログラミング言語や技術的な実装方法に依存しない客観的な規模測定が可能だ
  • 1979年にIBMのアラン・アルブレクトが提唱した手法で、ISO/IEC 14143として標準化されており、現在も大規模なシステム開発の見積もりやベンチマーキングで活用されている

【深掘り】これだけ知ってればOK!

FP法の基本的な考え方を理解しよう。ソフトウェアの機能を5種類の要素に分類してカウントする。①外部入力(EI):ユーザーからの入力処理(フォーム・ファイル取り込みなど)。②外部出力(EO):ユーザーへの出力処理(レポート・画面表示など)。③外部照会(EQ):入力に対する即座の出力(検索・照会)。④内部論理ファイル(ILF):システムが管理するデータ(マスタテーブルなど)。⑤外部インターフェースファイル(EIF):外部システムのデータへの参照。

FP法の流れを整理しよう。①上記5種類の要素をカウントする。②各要素を「単純・普通・複雑」の3段階に分類する。③分類ごとに定められたポイント値を掛け合わせて未調整ファンクションポイント(UFP)を算出する。④システムの技術的複雑性(オンライン処理・分散処理・高性能要件など)を考慮して技術的複雑度調整ファクター(VAF)を掛けて最終ファンクションポイント(AFP)を算出する。

FP法とLOC(Lines of Code:コード行数)の違いを理解しよう。LOC:実装後にしか測定できない・プログラミング言語によって同じ機能でも大幅に異なる・設計段階での見積もりが難しい。FP法:要件定義段階から測定できる・言語・技術に依存しない・過去のプロジェクトのFP当たりの生産性データと比較できる。要件が固まった段階でFP法で規模を測定し、過去の生産性データから工数・コストを算出するというアプローチがシステム開発の見積もりで使われる。

FP法には複数の派生手法がある。ILF法(IFPUG法):IFPUG(国際ファンクションポイントユーザーグループ)が標準化した最も広く使われる手法。COSMIC FP(CFP):組み込みシステム・リアルタイムシステムに適した新世代FP法。ネスマSFP:より単純化した手法。日本では情報処理推進機構(IPA)が「IFPUG法による機能規模測定」のガイドラインを公開しており、日本のシステム開発でもFP法は広く利用されている。

FP法の実務での注意点として、FP法の精度はカウント者のスキルと要件の明確さに大きく依存する。同じ要件でも担当者によってカウント結果が異なることがある。このため組織内でFPカウントの基準を統一し、カウント結果を複数の担当者でレビューすることが重要だ。またFP法で算出した規模を工数に換算するには自社の過去プロジェクトの生産性データ(FP/人月)の蓄積が精度向上につながる。

よくある誤解

FP法は一度計算すれば固定の値が出ると思っている

FP法のカウント結果はカウント者のスキル・解釈・要件の明確さによって異なる。IFPUGのガイドラインに沿ったカウントルールの組織内統一と複数担当者によるレビューで誤差を小さくすることが必要だ。

FP法はソフトウェア開発だけに使うものだと思っている

FP法はシステムの規模測定に加えて、ベンチマーキング(他社・他プロジェクトとの生産性比較)・品質評価(FP当たりの欠陥数)・外部委託費用の客観的な評価基準としても使われる。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

このシステムの規模をFP法でカウントしてみました。400FPという結果で、過去の生産性データと照合すると開発期間は8ヶ月程度の見込みです。

プロジェクトマネージャーがFP法による規模測定の結果を経営層に報告している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

要件定義の段階でFPを測定しておけば、設計・開発フェーズに入ってから見積もりの精度が上がります。変更が入ったときの影響も数値で説明できます。

ベテランPMが若手のPMにFP法の要件定義段階での活用メリットを説明している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

今回の追加開発、50FP分の機能追加です。単価×FP数で費用を算出するとXX万円になります。

SIerの営業担当者がFP単価を使って追加開発の費用見積もりを顧客に提示している場面。

【まとめ】3つのポイント

  • 機能の数と複雑さを定量化して言語に依存しない客観的な規模測定:LOCが実装後にしか測れないのに対しFP法は要件定義段階から規模を定量化できるため早期の工数・コスト見積もりと変更影響の数値的な把握に活用できる
  • 5種類の機能要素をカウントして生産性データと掛け合わせて工数を算出:外部入力・外部出力・外部照会・内部論理ファイル・外部インターフェースの5要素をカウントして過去の自社生産性データと組み合わせることで精度の高い見積もりが実現できる
  • FP法の精度は自社生産性データの蓄積とカウント基準の統一で上がる:FP法の見積もり精度はカウント者のスキルと過去プロジェクトの生産性データの質に依存するため組織内でのカウントルール統一と実績データの継続的な蓄積が精度向上の鍵だ

よくある質問

Q
FP法はいつの段階から使えますか?
A

要件定義が完成した段階から使えます。ユーザーから見た機能(入力・出力・照会・ファイル)を要件書から読み取れれば計算できます。詳細設計以降になるとより精度が高くなります。

Q
FP当たりの工数(生産性)はどのくらいが標準ですか?
A

業界・技術・プロジェクト規模によって大幅に異なりますが、IPAのデータでは日本の標準的なシステム開発で0.5〜3人月/FP程度の幅があります。自社の過去プロジェクトのデータを蓄積して使うことが最も精度が高いです。

Q
LOCとFP法はどちらが見積もりに向いていますか?
A

FP法の方が見積もりに向いています。LOCは実装後にしか正確に測れずプログラミング言語によって大きく変わるため見積もりツールとしては不向きです。FP法は要件定義段階から測定でき言語非依存のため見積もりに適しています。

Q
COSMIC FPとIFPUG FPはどう違いますか?
A

IFPUG FPが主に企業情報システム向けに開発されたのに対し、COSMIC FPは組み込みシステム・リアルタイムシステム・科学技術計算など幅広い種類のソフトウェアに適用できる新世代の計測手法です。

この用語と一緒に知っておきたい用語

用語 この記事との関連
データ 本記事のテーマと実務上セットで使われることが多い用語です。コンピュータが処理する数値や文字、画像といった事実や資料そのもの、それがデータだ
アイコン アイコンを押さえると本記事の理解がさらに深まります。アプリやファイル、操作ボタンなどをひと目でわかる小さな絵で表したもの、それがアイコンだ
インターフェース 本記事のテーマと実務上セットで使われることが多い用語です。インターフェースの主要な特徴と用途を理解することで、関連する技術・制度・概念を正確に把握できるようになる
リアルタイム 次のステップとしてリアルタイムを学ぶと知識が広がります。物事が起きるのとほぼ同時に、遅れなく処理や反映が行われること、それがリアルタイムだ
ループ 本記事のテーマと実務上セットで使われることが多い用語です。ループっていうのは、同じような処理をコンピュータに何度も繰り返させるための命令の仕組みのことだよ。

【出典】参考URL

https://www.ifpug.org/ :IFPUG(国際ファンクションポイントユーザーグループ)公式サイト
https://www.ipa.go.jp/digital/metrics/index.html :IPAのソフトウェアメトリクス活用ガイド
https://www.softwaremeasurement.org/ :ソフトウェア測定に関する国際機関のサイト

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典企画・プロジェクト管理
デプロイ太郎のSNSを見てみる!!