function point method / function point analysis / FPM / FPA / FP法
ソフトウェアの機能規模を測定する手法の1つ。開発工数の見積もりに利用される。ソフトウェアの“機能”を基本にして、その処理内容の複雑さなどからファンクションポイントという点数を付けていき、ソフトウェアのすべての機能のポイントを合計して規模や工数を導き出すもの。
計算方法の基本は以下の通り。まず、機能などを数える際のタイプとどこまで数えるかを明確にする。次に、評価の対象となるシステムについて、ユーザーファンクションタイプと呼ばれる外部入力、外部出力、外部照合、内部論理ファイル、外部インターフェイスの数をファンクション数としてカウントする。その機能がどのファイルをどれくらい参照するのか、やりとりを行うかのかを数えるもので、プログラムを作る前の段階のDFDやERDなどから見積もることができる。
そして、それぞれの難易度を3段階(容易・普通・複雑)で評価して点数化(ポイント化)して、そのポイントに次の係数を掛けて合算した値を基準値とする。
容易 | 普通 | 複雑 | |
---|---|---|---|
外部入力 | 3 | 4 | 6 |
外部出力 | 4 | 5 | 7 |
外部照合 | 3 | 4 | 6 |
内部論理ファイル | 7 | 10 | 15 |
外部インターフェイス | 5 | 7 | 10 |
次に、システム特性に関して以下の項目でその複雑さを 0〜5の6段階で評価し、それを合計して調整値を算出する。
・処理の複雑性 | ・複数サイトでの使用 | ・変更の容易性 |
・データ通信 | ・トランザクション量 | ・システム運用性 |
・オンライン更新 | ・性能条件 | ・再利用性 |
・オンライン更新 | ・高負荷構成 | ・インストール容易性 |
・分散データ処理 | ・エンドユーザーの効率性 |
導き出した基準値と調整値を基に、以下の式でファンクションポイントを算出する。
ファンクションポイント=基準値×(0.65+調整値/100)
システム規模を見積もる値としては、機能数以外に「ソースコードの行数(SLOC:source lines of code)」や「ファイルサイズ」などがあるが、これらはシステム要件がほぼ固まった段階でないと計算できず、また開発環境や運用環境に依存するため、客観的な指標として扱いづらいという欠点があった。
ファンクションポイント法は、プログラミングフェイズに入る前にユーザー要件が定まり、必要な機能が見えてきた段階でシステム規模を概算することができるという特徴がある。一般にプロジェクトに着手する前の段階でファンクションポイント法により大まかな見積もりを行い、ある程度仕様が固まってきたところで再度計測し直して、システム規模の見積もり精度を上げる手法が使われている。また、システム調達に際して、異なるシステムの規模を比較したり、新規開発するか購入するかなどの投資意思決定の指標にも利用できる。
ファンクションポイント法は、1979年にIBMのアラン・J・アルブレクト(Allan J. Albrecht)が提案し、その後IBMのユーザー団体で改良が加えられた。1986年に米国IFPUG(International Function Point Users Group)が設立、国際的な普及・定着を図っている。日本では1994年に日本ファンクションユーザ会(JFPUG)が設立されている。また、ISO/IECでは、ファンクションポイント法をベースに「機能的規模見積り技法」の標準化作業が進められている。
▼『ソフトウェア開発の定量化手法――生産性と品質の向上をめざして』 ケーパー・ジョーンズ=著/ 鶴保征城、富野寿=訳/構造計画研究所/1993年4月(『Applied Software Measurement: Assuring Productivity and Quality』の邦訳版)
Copyright © ITmedia, Inc. All Rights Reserved.