FP法による見積もり方法は?必要とされる計測手順を解説!
functionality measurement
FP法による見積もり方法は?必要とされる計測手順を解説!
システム運用
アンドエンジニア編集部
2021.07.15
この記事でわかること
FP法は米国で考案された手法で、誰が見積もり計測を行っても同じ結果が得られ見積もり作業の平準化が可能です
FP値は、システムのファンクション数をシステム特性係数で乗じることで求めることができます
FP法では代表的な3つの計測タイプを定義し、見積もり精度が維持されています

FP法とは?

functionality measurement

FP法とはファンクションポイント法の略で、情報システムの提供機能から工数見積もりを行うために1979年に米国IBMのAllan Albrecht氏により考案されました。FP法は誰が見積もりの計測を行っても同じ結果が得られ、見積もり作業のばらつきを抑えることを目的とします。

FP法ではソフトウェア開発の生産性を測定するためのユーザー要件ファンクションとして定義し、カテゴリー化することで見積もりの平準化を行います。

FP法の特徴は?

FP法ではシステムの機能を「ファンクション」と呼び、そのファンクションごとに点数を定めています。そのため誰が見積もりをしても、ファンクションの数を数えるだけでシステム規模の見積もりが同等に実施できるメリットを持っています。

そのファンクションはシステムの実装形式による違いがなく、開発言語にも依存しません。システム開発の形式にも依存しないため、新規開発でもパッケージ利用でも同等の結果を得られます。

FP法のメリットは?

FP法のメリットは、誰が算定しても同等の結果が得られることです。そのため、見積もり作業のばらつきを抑えることができます。同様に、プロジェクト期間中に仕様変更が生じた場合もFP数が変わることを指標として算定できるため、要件変動による影響をあらかじめ可視化することが可能です。また、求める品質評価の目標値をFP法で設定することにより、品質の評価がより簡単に実施できるメリットがあります。

FP法は工数の見積もりだけでなく、プロジェクトサイクル全般で活用できます。具体的には、見積もり・評価・工数管理・品質管理・進捗管理・ベンダーの評価・運用評価・ソフトウェア資産管理・投資対効果の評価等、多岐に渡ります。

FP法のファンクションの詳細は?

FP法では、ファンクションをデータ処理に関するトランザクションファンクションと、データ格納に関するデータファンクションに大別して集計されます。各区分のファンクションごとに点数を定めているため、点数表に集計する合計のスコアが簡単に求められます

各機能はそれぞれ外部入力(EI)・外部出力(EO)・外部照会(EQ)・内部論理ファイル(ILF)・外部インターフェイスファイル(EIF)に分類し算出されます。

IFPUG法では、これらの5つのタイプをトランザクションファンクションとデータファンクションに分類しています。 「トランザクションファンクション」 ー  データを処理する機能 ・外部入力(EI、External Input) ・外部出力(EO、External Output) ・外部照会(EQ、External Inquiry) 「データファンクション」      ー データを保持するための機能 ・内部論理ファイル(ILF、Internal Logical File) ・外部インタフェースファイル(EIF、External Interface File)

FPの見積もり方法は?

functionality measurement

実際のシステムは複雑度がシステムによって異なり、プログラムの機能量が同一でも必要とされる工数に違いが発生します

同一の関数を用いる場合であっても、オンライントランザクションとバッチ処理では要件が異なり、単一処理と分散処理では求められる設計アーキテクチャに違いが発生します。

そのため、違いを吸収するため未調整FPにシステム特性計数を乗じてFPを計算します。

具体的な計算方法は以下の通りです。 (1)扱うデータを5 つのファンクション型に分類  外部入力(EI)、外部出力(EO)、外部照会(EQ)、内部論理ファイル(ILF)、外部インタフェースファイル(EIF)の5分類

(2) 扱うデータごとに、「データ項目数」とそのデータに関連する「レコード種類数」を集計  データのファンクションの複雑さを3段階(低・中・高)に分類

(3)システム全体の未調整FPの計算  各データに3段階のファンクションの複雑さに応じた未調整FP(調整係数)を掛けて合計

(4) システムの特性の合計値を計算  システム特性を14の観点から0から5の6段階で評価

(5) システム特性係数の計算   VAF= (TDI*0.01)+0.65   VAF:Value Adjustment Factor、システム特性係数   TDI:Total Degree of Influence、システム特性の合計値

(6) FPを計算   FP=UFP*VAF   UFP:Unadjusted FP、未調整FP   VAF:Value Adjustment Factor、システム特性係数 参考:情報処理推進機構(IPA)FP 計測手法における FP 規模と工数の相関の差

FP法の計測タイプは?

先に述べた通り、FPは以下の計算式で算定することができます。 FP =未調整 FP*システム特性係数

実際には、システム開発の工程はシステム設計方式によって異なります。IFPUG法では想定される開発工程をプロジェクトとして3つの大まかな分類計測タイプとして定義し、差異の発生を低減しています。

新規開発プロジェクト DFP=(UFP+CFP)*VAF DFP:Development Project FP     新規開発プロジェクトのFP UFP:Unadjusted FP    利用可能な未調整FP CFP:Conversion FP    データ移行機能の未調整FP VAF:Value Adjustment Factor    調整係数

機能改良プロジェクト EFP={(ADD+CHGA+CFP)*VAFA}+(DEL*VAFB) EFP:Enhanced FP    機能改良プロジェクトのFP ADD:Added by the enhancement project    機能改良プロジェクトで追加される機能の未調整FP CHGA:Changed by the enhancement project    機能改良プロジェクトで変更された機能の未調整FP CFP:Conversion FP    データ移行機能の未調整FP VAFA:VAF of application after enhancement    機能改良後のアプリケーションの調整係数 DEL:Deleted FP    機能改良プロジェクトで削除される機能の未調整FP VAFB:VAF of application before enhancement    機能改良前のアプリケーションの調整係数

アプリケーション AFP={(UFPB+ADD+CHGA)-(CHGB+DEL)}*VAFA AFP:Application FP    アプリケーションのFP UFPB:Unadjusted application FP count before enhancement    機能改良プロジェクト開始前のアプリケーションの未調整FP ADD:Added by the enhancement project    機能改良プロジェクトで追加される機能の未調整FP CHGA:Changed functionality after enhancement    機能改良プロジェクトで変更された機能の未調整FP CHGB:Changed functionality before enhancement    機能改良プロジェクトで変更となった機能の未調整FP VAFA:VAF of application after enhancement    機能改良後のアプリケーションの調整係数 DEL:Deleted FP    機能改良プロジェクトで削除される機能の未調整FP

この考え方や利用方法は、IFPUG(International Function Point User Group)発行の各種ドキュメントに記載されています。IFPUGは米国にあり、そのガイドラインはISOで標準化されています。 参考:INTERNATIONAL FUNCTION POINT USERS GROUP FAQs

FP法の留意点や実践方法は?

FP法では機能要件を低・中・高の複雑度の分類で算定するため、対象とするアプリケーション開発の工数とソフトウェア製造量と直接的に合致しない場合もあります。ソフトウェア開発は、工数を用いて成果物としてソフトウェアを納品します。ソフトウェアは完成していない段階で完成成果物を逆算して工数見積もりを行うため、初期段階では誤差が大きくなる傾向があります。

このことから、あらかじめ同等の業務での開発実績のデータを蓄積し、見積もり精度を向上させることが重要です。特に、要求仕様書が確定する前の見積もりでは精度のブレが生じるため、ユーザが認識していない要件が潜んでいる場合は別途追加見積の必要性が出ます。

FP法では開発初期段階で有効なFP計測手法として、FP概算法(The estimated function point count)並びにFP試算法(The Indicative function point count)が提案されています。これらはNESMA(Netherlands Software Metrics Association)によるFP計測手法で、考え方はIFPUG法と同じです。

以上の通り、見積もり誤差を吸収するために実際の計測結果を評価・分析し、次の見積もりに反映させることが求められます。FP法は長く用いられているため、ベンダー各社それぞれ自社経験を活かし見積もり手法としてプロジェクト見積もりに活用しています。 参考:情報処理推進機構(IPA) ソフトウェア開発見積りガイドブック

FP法の見積もりを習熟しプロジェクト見積もりの精度を高めましょう

accuracy

FP法はどの工程でも利用可能で、考案されてから40年以上の利用実績があります。「政府情報システムの整備及び管理に関する標準ガイドライン」によると、政府系システムについても経費の見積もりは、ファンクションポイントの見積もり並びにその見積もり根拠を提示することが求められています。 参考:政府情報システムの整備及び管理に関する標準ガイドライン

以上のように、FP法はさらなる活用が期待されています。見積もり頻度が高いプロジェクトでは、FP法を用いることで見積もり効率と精度が飛躍的に向上します。FP法は小規模プロジェクトでも利用できるため、見積もり精度と自身の実践力をともに向上することができるでしょう。

気になる人のTwitterをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

eyecatch_visual_coder
Adobe製品を使わない"デザイナー"?「ビジュアルコーダー」が考える、自己満足で終わらないWebデザインとは
三角
2020.06.16

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
この記事をシェア
Twitter
Facebook
LINE
Hatena

編集部おすすめコンテンツ

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT