ファンクションポイント法とは何か?導入するメリットと計算方法を解説
ファンクションポイント法とは
ファンクションポイント法は、1979年にIBMのアラン・J・アルブレクト(Allan J. Albrecht)が提案したソフトウェアの規模を測定する手法の1つです。
対象となるシステムについて、利用者から見たソフトウェアの機能(画面やバッチ処理数、帳票などの出力ファイル)をユーザーファンクションタイプと呼ばれる外部入力、外部出力、外部照会、内部論理ファイル、外部インターフェースに分けて、それぞれの機能数の難易度(低、中、高)によって点数化し開発工数を導き出す手法です。
1986年に米国IFPUG(International Function Point Users Group)、1994年には日本ファンクションポイントユーザ会(JFPUG)が設立されるなど、国際的に広く定着しています。
ファンクションポイント法のメリット
このファンクションポイント法を導入するメリットはどこにあるのでしょうか?
システム規模の見積りとして、ファンクションポイント法の他にプログラムステップ法というソースコードの行数(ステップ数)によって開発コストを算出する方法がありますが、これらはシステム要件が固まった状態でないと計算ができません。
ファンクションポイント法では、製造工程に入る前に必要な機能が見えてきた段階でシステム規模を概算することができ、プログラム言語に依存せず開発する機能数をもとに計算を行うことができます。
このことがファンクションポイント法を導入するメリットです。
さらに、ファンクションポイント法はユーザー側から見ても見積りの根拠が定量的で分かりやすく、見積額に納得を得られやすいということからも、ファンクションポイント法の必要性が高まっています。
ファンクションポイント法の計算方法と利用用途
ファンクションポイント法による計算手順は以下の通りです。
1.必要な機能の分類
必要となる機能を外部入力(EI)、外部出力(EO)、外部照会(EQ)、内部論理ファイル(ILF)、外部インターフェース(EIF)に分類します。
2.難易度の評価
分類したタイプごとにそれぞれの難易度(低、中、高)で評価、点数化を行い、係数を掛けて合算した値を基準値(未調整FP)として算出します。
3.複雑さの評価
システム特性として、以下の項目について複雑さを0~5の6段階で評価し、調整値を算出します。
システム特性(14項目)
- データ通信
- 分散処理
- 性能
- 高負荷構成
- 要素処理(トランザクション)量
- オンラインデータ入力
- エンドユーザ効率
- オンライン更新
- 複雑な処理
- 再利用可能性
- インストール容易性
- 運用性
- 複数サイト
- 変更容易性
4.ファンクションポイントの算出
算出した基準値と調整値をもとに、以下の計算式でファンクションポイントを算出します。
- FP = 基準値 × (0.65 + 調整値 × 0.01)
一般的にプロジェクト着手前の概算見積りとして、ファンクションポイント法により見積りを行ったあと、ある程度仕様が確定してきたところで詳細見積りとして再度計測を行うことで開発規模の見積り精度を上げる手法が用いられます。
また、プログラム言語に依存しない算出となるため、異なるシステム規模の比較を行うことができ、新規で開発を行うのか既存のシステムを購入して使用するのかといった投資決定の指標にも活用できます。