「システム開発の見積もりの根拠を、客観的に説明したい」「ファンクションポイント法という言葉を聞いたが、どのように計算するのかわからない」。システム開発の発注者や受注者から、こうした相談をいただくことがあります。
ファンクションポイント法は、画面や帳票、データなど、利用者から見える機能の数と複雑さをもとに、ソフトウェアの規模を測る方法です。プログラムを書く前の段階から規模を見積もれ、使う言語に左右されにくいのが特徴で、システム開発の見積もりの根拠として使われています。
本記事では、IPA(情報処理推進機構)の資料なども紹介しながら、ファンクションポイント法の考え方、数える機能、計算の流れ、メリットとデメリット、工数の見積もりへの活かし方、注意点までを整理します。
| 確認したいポイント | 結論 | 詳細 |
| ファンクションポイント法とは? | 機能の数と複雑さで規模を測る方法 | 画面や帳票、データなど、利用者から見える機能の数と複雑さをもとに、ソフトウェアの規模を測る方法です。 |
| 何を数える? | 5種類の機能 | 解説によると、内部論理ファイル、外部インタフェースファイル、外部入力、外部出力、外部照会の5種類を数えます。 |
| メリットは? | 早い段階で、客観的に規模を測れる | プログラムを書く前の段階から規模を見積もれ、使う言語に左右されにくく、発注者とも共有しやすいのが利点です。 |
| 工数にどう活かす? | 実績の生産性で換算する | 測った規模を、自社や公開の実績データの生産性で割って工数の目安にします。ばらつきに注意が必要です。 |
この記事でわかること
- ファンクションポイント法とは何か、何を測るのか
- ファンクションポイント法で数える5種類の機能
- ファンクションポイントの計算の流れ
- ファンクションポイント法のメリットとデメリット
- 工数の見積もりへの活かし方と注意点
| システム開発の見積もりや進め方を検討している企業の方へ ネクストスケールでは、AI活用の戦略設計から、AIを活用したシステム開発、業務の自動化の仕組みづくり、社員研修までを一気通貫で支援しています。支援内容や料金、導入事例をまとめた資料を無料でお送りします。 資料請求はこちら |
ファンクションポイント法とは
最初に、ファンクションポイント法の意味と、使われる場面を確認しておきましょう。
機能の数と複雑さで規模を測る方法
ファンクションポイント法は、ソフトウェアの規模を、利用者から見える機能の数と複雑さで測る方法です。測った規模は「ファンクションポイント(FP)」という単位で表します。
「どれだけの機能を提供するか」という、利用者にとっての価値に近い観点で規模を表せるのが特徴です。
プログラムの行数ではなく、機能に着目して規模を測るため、使うプログラミングの言語や、作り方の違いに左右されにくいのが特徴です。
たとえば、同じ機能でも、言語によってプログラムの行数は大きく変わりますが、ファンクションポイントは同じになります。
規模を測る目的
ソフトウェアの規模を測る主な目的は、開発の工数や費用、期間を見積もることです。規模がわかれば、過去の実績の生産性をもとに、必要な工数の目安を求められます。
見積もりの根拠を数値で示せるため、発注者への説明や、社内の承認にも役立ちます。
また、開発の生産性や品質を比べるための共通の物差しとしても使われます。
保守の段階で、システムの規模の変化を把握するためにも使われることがあります。
開発の実績のデータの活用
IPAは、多くの企業から提供されたソフトウェア開発のプロジェクトのデータを分析した「ソフトウェア開発データ白書」を発行しています。IPAの資料によると、この白書を用いると、工数と工期、開発の規模との関係、開発の規模と発生した不具合の数との関係、生産性などについて、ほかの類似のプロジェクトの実態を定量的に把握できるとされています。
IPAの資料によると、白書の2016-2017年版には、IT企業の4,067件のプロジェクトのデータが収録されています。規模の測り方をそろえることで、こうした実績のデータと比べられるようになります。
ファンクションポイント法で数える機能
解説によると、代表的なファンクションポイント法(IFPUG法)では、次の5種類の機能を数えます。
| 機能の種類 | 内容(解説による) | 例 |
|---|---|---|
| 内部論理ファイル(ILF) | システムの中で管理・更新するデータのまとまり | 顧客の情報、商品の情報 |
| 外部インタフェースファイル(EIF) | ほかのシステムが管理し、参照だけするデータ | 他システムの社員の情報 |
| 外部入力(EI) | データを登録・更新・削除する処理 | 顧客の登録の画面 |
| 外部出力(EO) | 計算や加工を伴って情報を出力する処理 | 売上の集計の帳票 |
| 外部照会(EQ) | データを加工せずに取り出して表示する処理 | 顧客の検索の画面 |
データの機能(ILF・EIF)
内部論理ファイル(ILF)は、システムの中で管理し、登録や更新を行うデータのまとまりです。外部インタフェースファイル(EIF)は、ほかのシステムが管理していて、参照だけするデータです。
データの機能は、処理の機能よりも重みが大きく設定されているとされ、規模に大きく影響します。
ここでいう「ファイル」は、コンピューターのファイルそのものではなく、利用者から見た意味のあるデータのまとまりを指すとされています。
処理の機能(EI・EO・EQ)
外部入力(EI)は、データを登録・更新・削除する処理です。外部出力(EO)は、計算や加工を伴って情報を出力する処理、外部照会(EQ)は、データを加工せずに取り出して表示する処理です。
外部出力と外部照会の区別は、計算や加工を伴うかどうかがポイントとされています。判断に迷う場合は、計測の規則で確認しましょう。
数えないもの
解説によると、ファンクションポイント法では、利用者から見える機能を数えるため、サーバーの構成やセキュリティの要件など、機能以外の要件は、ファンクションポイントには含めないとされています。こうした要件は、工数の見積もりの段階で別に考慮する必要があります。
| システム開発の見積もりに悩んでいる方へ 開発したいシステムの内容を伺い、規模の見積もりの考え方、開発の範囲の整理、工程ごとの進め方、AIを活用したシステム開発の計画を無料でご提案します。オンラインで30分からご相談いただけます。 相談予約はこちら |
ファンクションポイントの計算の流れ
ここでは、ファンクションポイントの計算の一般的な流れを紹介します。
ステップ1|測る範囲を決める
どのシステムの、どの範囲の機能を測るのかを決めます。ほかのシステムとの境界を明確にすることが、正しく数えるための前提です。
新しく作る機能だけを測るのか、既存の機能の改修も含めるのかも、この段階で決めておきます。
ステップ2|機能を洗い出す
要件の資料や画面の一覧、帳票の一覧、データの一覧などをもとに、5種類の機能を洗い出します。
資料が不足している場合は、発注者や業務の担当者に確認しながら洗い出しましょう。
ステップ3|それぞれの機能の複雑さを判定する
解説によると、それぞれの機能について、扱うデータの項目の数や、関係するデータのまとまりの数などをもとに、複雑さを「低・中・高」の3段階で判定するとされています。
判定の基準は計測の規則で決められているため、規則に沿って判定することで、計測する人による違いを減らせます。
ステップ4|重みを掛けて合計する
解説によると、機能の種類と複雑さごとに決められた重み(点数)を掛けて、すべての機能の点数を合計すると、ファンクションポイントが求められるとされています。
表計算のソフトで計算の表を作っておくと、機能の追加や変更のときの再計算も簡単になります。
計算のイメージ:
(機能の種類ごと・複雑さごとの数)×(重み)をすべて合計する
例)外部入力(低)3件 × 重み + 外部出力(中)2件 × 重み + ……
調整係数の扱い
以前は、システムの特性(処理の速さの要求など)にもとづく調整係数を掛けて、最終的なファンクションポイントを求める方法が広く紹介されていました。解説によると、国際的な計測の手順(IFPUGの計測の手順書)の版の改訂で、調整係数は標準の計測の手順から外されたと紹介されています。
調整係数を使うかどうかは、比べる実績のデータの測り方に合わせることが大切です。
古い解説の記事では、調整係数を掛ける手順が紹介されていることもあるため、参照する情報の時期にも注意しましょう。
簡単な計算の例
ここでは、ファンクションポイントの計算のイメージをつかむため、簡単な例を紹介します。重みの値は、解説で紹介されている代表的な値を用いています。
代表的な重みの値
解説によると、IFPUG法の重みは、複雑さが低・中・高の順に、内部論理ファイルが7・10・15、外部インタフェースファイルが5・7・10、外部入力が3・4・6、外部出力が4・5・7、外部照会が3・4・6と紹介されています。
顧客の管理の機能の例
たとえば、顧客の情報を管理する簡単なシステムで、次の機能があるとします(複雑さはすべて「低」と仮定)。
・顧客の情報(内部論理ファイル・低)1件 → 7
・顧客の登録・更新・削除の画面(外部入力・低)3件 → 3 × 3 = 9
・顧客の検索の画面(外部照会・低)1件 → 3
・顧客の一覧の帳票(外部出力・低)1件 → 4
合計:7 + 9 + 3 + 4 = 23FP
実際の計測では、それぞれの機能の複雑さを、規則にもとづいて判定します。この例は、計算の流れのイメージとして参考にしてください。
この例のように、データの機能(内部論理ファイル)が規模に大きく影響することがわかります。
ファンクションポイント法のメリット
ここでは、ファンクションポイント法のメリットを紹介します。
早い段階で規模を見積もれる
プログラムを書く前の、要件定義や設計の段階から、画面や帳票、データの一覧をもとに規模を見積もれます。開発の初期の段階で、費用や期間の目安を立てやすくなります。
予算の確保や、開発を進めるかどうかの判断を、早い段階で行いやすくなります。
言語や作り方に左右されにくい
機能に着目して規模を測るため、使うプログラミングの言語や、開発の会社の作り方の違いに左右されにくいのが特徴です。異なる開発の会社の見積もりを比べる際にも役立ちます。
見積もりの金額の差が、規模の違いによるものか、生産性や単価の違いによるものかを見分けやすくなります。
発注者と受注者で共有しやすい
画面や帳票など、利用者から見える機能をもとにするため、技術に詳しくない発注者にも、見積もりの根拠を説明しやすくなります。機能の追加や削除による規模の変化も、わかりやすく示せます。
「この機能を減らせば、規模がどれだけ減るか」を示せるため、予算に合わせた機能の調整の話し合いにも役立ちます。
生産性や品質の比較に使える
規模を共通の物差しで測ることで、プロジェクトの生産性(1人時あたりのFPなど)や、品質(FPあたりの不具合の数など)を比べられます。自社の改善や、公開の実績のデータとの比較に活用できます。
改善の取り組みの効果を、数値で確かめることにもつながります。
ファンクションポイント法のデメリット
ファンクションポイント法には、注意すべき点もあります。
計測に知識と手間がかかる
機能の判定や複雑さの判定には、計測の規則についての知識が必要です。計測する人によって結果がぶれることがあるため、計測の規則をそろえることが大切です。
大きなシステムでは、機能の数が多く、計測に時間がかかる点にも注意が必要です。
機能以外の要件は含まれない
前述のとおり、性能やセキュリティなどの機能以外の要件は、ファンクションポイントには含まれません。こうした要件が多いシステムでは、規模だけでは工数を正しく見積もれないことがあります。
機能以外の要件は、別に工数を見積もって加えるなどの工夫が必要です。
要件が固まっていないと測りにくい
画面や帳票、データの一覧が決まっていない段階では、正確に数えることが難しくなります。初期の段階では概算として扱い、要件が固まるにつれて見直すことが大切です。
見積もりの段階と精度を、発注者と共有しておくと、後からの見積もりの変更への理解も得やすくなります。
向かないシステムもある
計算の処理が中心のシステムや、組み込みのソフトウェアなど、画面や帳票、データの登録が中心でないシステムでは、規模を適切に表しにくい場合があります。
こうしたシステムでは、別の計測の方法や、ほかの見積もりの方法と組み合わせることを検討しましょう。
| システム開発の進め方を検討している方へ ネクストスケールの支援内容やAIを活用したシステム開発の進め方、料金プラン、導入事例をまとめた資料をご用意しています。社内での検討資料としてもご活用ください。 資料請求はこちら |
工数の見積もりへの活かし方
ここでは、ファンクションポイントを、工数の見積もりに活かす方法を紹介します。
生産性で割って工数を求める
ファンクションポイントを、生産性(1人時あたりに作れるFPなど)で割ると、工数の目安を求められます。
たとえば、100FPのシステムで、生産性が1人時あたり0.1FPであれば、工数の目安は1,000人時と計算できます(数値は説明のための例です)。
工数の目安 = ファンクションポイント ÷ 生産性(FP/人時)
自社の実績の生産性を使う
最も信頼できるのは、自社の過去のプロジェクトの実績の生産性です。プロジェクトごとにファンクションポイントと実際の工数を記録しておくと、自社に合った生産性を求められます。
新規の開発と改修、業種や規模などで生産性が異なることが多いため、条件ごとに分けて記録すると、より精度が上がります。
公開の実績のデータを参考にする
自社の実績が少ない場合は、IPAのソフトウェア開発データ白書などの公開の実績のデータを参考にできます。ただし、解説によると、同じ規模でもプロジェクトによって生産性には大きなばらつきがあると指摘されています。
ばらつきを考慮して幅を持たせる
1つの生産性の値だけで工数を確定させると、根拠のない精度を示すことになりかねません。生産性の幅を考慮して、工数にも幅を持たせる、ほかの見積もりの方法と組み合わせることが大切です。
楽観的な場合と慎重な場合の2つの見積もりを示す方法も考えられます。
機能以外の要件(性能、セキュリティ、ほかのシステムとの連携など)や、プロジェクトの特性(体制、期間の厳しさなど)も、工数の見積もりの段階で考慮しましょう。
ほかの見積もりの方法との比較
システム開発の見積もりには、ファンクションポイント法のほかにもいくつかの方法があります。
| 見積もりの方法 | 特徴 |
|---|---|
| ファンクションポイント法 | 機能の数と複雑さで規模を測る。言語に左右されにくい |
| プログラムの行数(LOC) | プログラムの行数で規模を測る。作る前には見積もりにくい |
| 類推の方法 | 過去の似た案件をもとに見積もる。似た案件がないと難しい |
| 積み上げの方法 | 作業を細かく分けて工数を積み上げる。詳細が決まらないと難しい |
組み合わせて使う
1つの方法だけに頼らず、複数の方法で見積もって比べると、見積もりの妥当性を確かめやすくなります。たとえば、ファンクションポイント法で規模を測り、積み上げの方法で工数を確かめる、といった使い方が考えられます。
複数の方法の結果が大きく異なる場合は、前提や見落としがないかを見直すきっかけになります。
開発の進め方との関係
最初に要件を固めて進める開発では、ファンクションポイント法で全体の規模を見積もることが多くあります。使いながら改善を重ねる開発では、短い期間ごとに作業の量を見積もる方法が使われることもあります。
開発の進め方に合った見積もりの方法を選ぶことが大切です。
開発の進め方の違いについては、アジャイルとウォーターフォールの違いを解説した記事も参考になります。
関連記事:アジャイルとウォーターフォールの違い 比較のポイントと使い分け・契約形態を解説
ファンクションポイント法を使うときの注意点
ファンクションポイント法を使う場合は、次の点に注意が必要です。
計測の規則をそろえる
同じ規則で測らないと、結果を比べられません。社内で計測の規則をそろえ、計測する人の教育を行いましょう。
計測の結果を別の担当者が確認する仕組みを作ると、計測のぶれや誤りを減らせます。
比べるデータと測り方を合わせる
公開の実績のデータと比べる場合は、そのデータの測り方(調整係数の有無など)と、自社の測り方を合わせることが大切です。
データの対象(業種、開発の種類、規模など)が自社のプロジェクトに近いかも確認しましょう。
見積もりは段階的に見直す
要件が固まるにつれて、ファンクションポイントを測り直し、見積もりを見直すことが大切です。初期の見積もりを最後まで使い続けると、実態とのずれが大きくなります。
見直しの時期(要件定義の完了時、設計の完了時など)を、事前に決めておくとよいでしょう。
発注者と見積もりの根拠を共有する
ファンクションポイントの計測の結果を、発注者と共有すると、見積もりへの納得が得られやすくなります。機能の追加や変更のときの費用の調整も、規模の変化をもとに話し合いやすくなります。
機能の一覧と計測の結果を一緒に示すと、どの機能にどれだけの費用がかかるかが伝わりやすくなります。
社内で導入する進め方
ファンクションポイント法を社内の見積もりに取り入れる場合の、進め方の例を紹介します。
計測の規則を決める
どの計測の方法を使うか、調整係数を使うかどうか、判断に迷う場合の扱いなどを、社内の規則として決めます。
規則は文書にまとめ、計測する人全員で共有しましょう。
小さなプロジェクトで試す
まず、小さなプロジェクトで計測を試し、実際の工数と比べることで、計測の手順や生産性の目安をつかみます。
過去のプロジェクトを計測し直して、実際の工数と比べる方法も、生産性の目安をつかむのに役立ちます。
実績を蓄積して活かす
プロジェクトごとにファンクションポイントと実際の工数、不具合の数などを記録し、自社の実績のデータとして蓄積します。データが増えるほど、見積もりの精度が上がります。
AIで業務を効率化する方法の全体像は、AIで業務効率化する方法とは?活用例・おすすめツール・導入手順を解説でも紹介しています。
関連記事:AIで業務効率化する方法とは?活用例・おすすめツール・導入手順を解説
担当者を育てる
計測の規則に詳しい担当者を育て、計測の結果を確認する体制を作ると、計測のぶれを減らせます。
外部の研修や資格を活用して、計測の知識を身につける方法もあります。
ファンクションポイント法に関するよくある質問
最後に、ファンクションポイント法についてよく寄せられる質問と、その回答を紹介します。
ファンクションポイント法にはどんな種類がある?
解説によると、IFPUG法のほか、COSMIC法など、いくつかの計測の方法があり、国際的な規格にもなっていると紹介されています。比べるデータに合わせた方法を選びましょう。
日本国内で広く使われている方法を選ぶと、公開の実績のデータと比べやすい場合があります。
簡単に測る方法はある?
解説によると、データの機能の数から全体の規模を概算する方法など、簡易的な計測の方法もあると紹介されています。初期の段階の概算に使い、要件が固まったら詳しく測るとよいでしょう。
簡易的な方法は、手早く規模の目安を知るのに便利ですが、精度には限界があることを理解しておきましょう。
AIの開発にも使える?
画面や帳票、データの登録が中心の部分には使えますが、AIのモデルの学習や調整などは、機能の数だけでは規模を表しにくいため、別の見積もりの方法と組み合わせることが大切です。業務の効率化に役立つツールの選び方の考え方は、業務効率化ツールとは?目的別の選び方と導入のコツでも紹介しています。
AIを活用した業務の自動化の仕組みづくりは、ネクストスケールのAI業務自動化・GAS開発でも支援しています。
社員がAIを業務で使いこなせるよう、生成AI活用研修などで基礎をそろえておくのも効果的です。
関連記事:業務効率化ツールとは?目的別の選び方・おすすめカテゴリ・導入のコツを徹底解説
| システム開発を相談したい方へ 開発の目的や範囲の整理から、規模と工数の見積もり、工程ごとの進め方、AIを活用したシステム開発、導入の後の改善まで、伴走して支援します。お気軽にご相談ください。 相談予約はこちら |
まとめ|ファンクションポイント法で、根拠のある見積もりを
ファンクションポイント法は、利用者から見える機能の数と複雑さで、ソフトウェアの規模を測る方法です。早い段階で規模を見積もれ、言語に左右されにくく、発注者とも共有しやすい一方で、計測の知識が必要、機能以外の要件は含まれないなどの注意点があります。
工数の見積もりに活かす場合は、自社や公開の実績の生産性で換算し、ばらつきを考慮して幅を持たせ、ほかの方法と組み合わせることが大切です。開発の実績のデータは、IPAの「ソフトウェア開発データ白書」も参考になります。
ネクストスケールでは、AI活用の戦略設計から、AIを活用したシステム開発、業務の自動化の仕組みづくり、社員研修までを一気通貫で支援しています。支援の詳細はAIシステム開発やAIコンサル・AX伴走支援のページで紹介していますので、システム開発の見積もりや進め方に迷っている場合も、お気軽にご相談ください。
AIコンサル・AX伴走支援サービスご紹介資料
この資料でこんなことがわかります!
- 社外AI役員とは
- 支援内容
- 導入の進め方
- 導入実績・効果
\3ステップで簡単入力/
| システム開発を一緒に進めませんか 開発の目的の整理から、規模と工数の見積もり、工程ごとの進め方、AIを活用したシステム開発までをご支援します。しつこい営業はいたしませんので、まずは無料相談をご利用ください。 相談予約はこちら |




