「ここでいい」を「ここがいい」へ。発注先探しなら比較ビズで

【発注者向け】FP法とは?計測方法やメリット・デメリットを解説

最終更新日:2022年09月22日
【発注者向け】FP法とは?計測方法やメリット・デメリットを解説
この記事で解決できるお悩み
  • FP法の計測方法はどうやるの?
  • FP法の見積もりを正確の行うには?
  • 見積もりの適正価格はいくら?

FP法(ファンクションポイント法)はシステム開発の見積もり・規模計測によく用いられる手法の1つです。円滑に業務を進めるために、また見積もりおよび取引先の信頼性を確かめるために、発注者もFP法について知っておいて損はありません。

この記事では非エンジニアでもわかりやすいFP法の基礎知識、メリット・デメリットや注意点を解説します。

FP法は機能から開発工数を見積もる方法

ifpug

出典:IFPUG

FP法(ファンクションポイント法)とは、ユーザーが利用する機能(ファンクション)に点数(ポイント)をつけてシステムの開発工数を見積もる方法です。大手ソフトウェア開発会社アメリカIBMのアラン・アルブレクト氏が、見積もりの計測を平準化するためにFP法を考案しました。

1986年に設立されたIPFUG(International Function Point Users Group)や、1994年に設立されたJFPUG(日本ファンクションポイントユーザー会)が、FP法の普及や手法確立に尽力。ISOおよびJISの規格も制定されるほど開発規模の計測手段として定番化しています。

ユーザーが利用する機能を定量化する

FP法ではユーザーが利用する機能を定量化し、開発規模を計測します。

すべてのシステムは「入力」「出力」「記憶」「演算」「制御」という五大要素が搭載されることで機能する仕組みです。このうち、FP法ではユーザーが外的に観察できる「入力」「出力」「記憶」のみを対象とします。「演算」と「制御」はシステムの裏側で確実に行われているものの、ユーザーにはわからないためFP法では対象としていません。

まず、それぞれの機能に対して実装難易度を考慮した点数を付与し合計。次にシステム特性に応じて傾斜をかけることで開発規模を計測します。

標準ガイドラインが制定されている

FP法を用いた開発規模の計測には標準ガイドラインが制定されています。

FP法は見積もり計測の平準化のために考案されました。しかし実際のところ、難易度の推定のように主観に基づく部分も少なくありません。そこで下記のようなガイドラインおよび計測手法の整備がされています。

  • IFPUG法

    IFPUGが制定している手法で、ISO/JIS規格にも採用されている。

  • SPR法

    アメリカのSPR社が、工数削減のために計測を簡略化した手法。

  • NESMA概算

    NESMA(オランダソフトウェア計測協会)が、開発の初期段階でも簡単に利用できるように考案した手法。

エンタプライズ系ソフトウェア開発においては、IFPUG法が最も一般的に利用されています

計測手法 エンタプライズ系ソフトウェア開発での採用率
IFPUG法 32%
SPR法 21%
NESMA法 10%
その他 33%

参考:独立行政法人情報処理推進機構

FP法(IPFUG法)で開発工数を計測する5ステップ

FP法(IPFUG法)で開発工数・規模を計測する場合、次のようなステップを踏みます。

  • ステップ1. 機能を型に分類しカウント

    機能(データ)を「外部入力(EI)」「外部出力(EO)」「外部照会(EQ)」「内部論理ファイル(ILF)」「外部インターフェースファイル(EIF)」の5つに分類し、それぞれの数をカウントします。

  • ステップ2. 分類した機能の複雑度を評価し、合算

    過去の類例をもとに機能(データ)ごとの複雑度を「低」「中」「高」の3段階に分類して点数を与え、すべての機能(データ)の点数を合算。点数の合計値を「未調整FP」と呼びます。

  • ステップ3. システム特性を評価

    システム特性を「分散が必要」「データ通信が必要」といった14の項目にもとづき、0〜5の6段階で評価し合算します。

  • ステップ4. システム特性係数を計算

    「システム特性係数=0.65+((ステップ3で合算したシステム特性の合計値)×0.01)」の式を用いて、システム特性係数を計算します。システム特性係数は0.65〜1.35の間です。

  • ステップ5. 未調整FPとシステム特性係数を乗算

    「FP=未調整FP(ステップ3の合計値)×システム特性係数(ステップ4の値)」の式を用いて、最終的なFPを計算します。

発注側であれば上記のステップをすべて理解する必要はありません。大まかに把握しておけば十分でしょう。

またJIS規格に採用しているのは「未調整FP」を計算するステップまでです。ステップ3以降については会社によって異なる場合があるため、注意しましょう。

FP法の3つのメリット

FP法には下記のようなメリットがあります。

  • 発注者でも直感的に理解しやすい
  • 設計段階でも一定の正確性がある
  • 見積もり金額がプログラミング言語や実装方法に左右されない

発注者でも直感的に理解しやすい

たいていの場合、システムの内部でどれだけ複雑な処理が行われていても発注者は直感的に理解できません。「ユーザーからは見えない〇〇という機能の実装に△△万円かかります」と提示され、本当かどうかわからないまま支払うこともあるでしょう。

一方でFP法ではユーザーが外的に認識できる機能だけを対象とします。SNSのようなシステムの開発を依頼した場合を考えてみましょう。「投稿機能に□□万円、フォロー機能に××万円かかります」と提示されれば、金額が妥当か否かはともかく、見積もりの根拠を直感的に理解できるはずです。

設計段階でも一定の正確性がある

システム開発においては「どのような機能が必要か」という仕様を設計するのが第一段階です。FP法では機能を対象に見積もりを計測するため、仕様設計を固めれば固めるほど見積もりの正確さも増します

発注者が途中で仕様変更を要求したような場合を除き、FP法の見積もりは設計段階でもある程度正確です。

見積もり金額がプログラミング言語や実装方法に依存しない

ユーザーにとっての機能がまったく同じシステムを、JavaScriptとPythonのどちらを用いて開発するかによって見積もり金額が異なっていたら、発注者は「わかりづらい」「納得できない」と思うでしょう。ソースコードの行数で開発規模を計測するLOC法(Lines Of Code法)では、開発者の癖や力量によって見積もりが上下します。

ユーザーから見た機能を基準にすることで実装方法や開発者に関係なく規模を計測できる点がFP法のメリットです。

FP法の2つのデメリット

FP法には次のようなデメリットも存在します。あらかじめ把握し、後々のトラブルを防ぎましょう。

  • 過去に類例がない場合の見積もりが難しい
  • 主観を完全に排除できるわけではない

過去に類例がない場合の見積もりが難しい

過去に同様のシステムや機能を開発した経験・実績がない場合、正確な見積もりはできません。

IFPUG法を用いた計測のステップ2で紹介した機能(データ)の複雑度評価は、過去の類例をもとに行われます。過去に類例がなければ完全な推測・憶測での見積もりとなるため、信頼度は低いでしょう。

ただし見積もりに類例を必要とするのはFP法に限った話ではありません。FP法以外でも開発規模の推定には過去の経験・実績を少なからず参考にしています。

主観を完全に排除できるわけではない

FP法を用いた開発規模の計測では、主観を完全には排除できません。ガイドラインが制定されていても複雑度やシステム特性を明確に数値化できない以上、評価には開発者の主観が入ります。

この点に関しても、FP法に特有なデメリットとはいえません。ほかの計測手法でも主観が入りうるため、ソフトウェア開発の見積もり一般に対してという認識が適当でしょう。

注意|必ずしも初めの見積もりどおりの金額にはならない

FP法は見積もりと実際の費用との誤差が生まれにくい手法ですが、完全に0になるわけではありません。

設計段階の想定よりも必要な機能が増えたり実装に手間取ったりといった原因で、開発コストが膨らむ可能性があります。見積もりよりもコストが大きくなる可能性があることを前提に、上長へ許可をとったり社内で稟議にかけたりしましょう。

まとめ|FP法を理解して見積もりの正確性をチェックしよう

この記事ではFP法の基礎知識を中心に、システム開発の見積もり発注で覚えておきたいポイントを紹介しました。

  • FP法とはユーザーが認識できる機能(ファンクション)に点数(ポイント)をつけてシステムの開発規模を計測する手法を指す
  • IPFUG法が最も一般的でISO/JISの規格にも採用されている
  • 設計段階の見積もりでも一定の正確性があるが、必ずそのとおりの金額になるわけではない

見積もりが適正か、取引先が誠実かを判断するために、発注者もFP法について理解しておきましょう。

システム開発会社を一括見積もりで発注先を楽に探す
システム開発会社を一括見積もりで発注先を楽に探す
比較ビズへ掲載しませんか?

一括見積もりで発注先を探す