ファンクションポイント法とは何か?
ファンクションポイント法とはソフトウェアアプリケーションやシステムの規模を測定するために用いられる見積もり手法の一つです。
ソフトウェアの機能を定量的に測定するための手法で、1979年にアラン・J・アルブレヒトによって初めて定義されました。
この手法はソフトウェアの開発や保守にかかるコストや労力を見積もるために広く使用されています。ファンクションポイントとは、ソフトウェアが提供するビジネス機能の量を表す単位であり、ユーザーの視点から、この機能を評価します。
ファンクションポイント法のメリット
ファンクションポイント法のメリットは大きく3つ。
- 技術に依存しない: ファンクションポイント法はソフトウェアの技術的な実装に依存しません。機能に基づいて評価を行うため、異なるプロジェクト間での比較が容易になるのです。
- プロジェクトの見積もりに役立つ: 開発コストや時間の見積もりに役立ち、プロジェクト管理において重要な役割を果たします。
- 品質管理: ファンクションポイントを使用することで、ソフトウェアの品質を測定し改善のための指標を提供します。
そもそもファンクションポイントとは?
ファンクションポイントとは距離を測る「メートル」、温度を測る「摂氏」などのような、ソフトウェアの単位となる尺度です。ユーザーの視点、システムが提供する機能、を考慮したものです。
このファンクションポイントには5つの種類があります。
「 外部入力」「外部出力」「外部照合」「内部論理ファイル」「外部インターフェイス」です。
- 外部入力(External Inputs): ユーザーがシステムにデータを入力するためのインターフェースや機能。
- 外部出力(External Outputs): システムがユーザーに提供するデータや情報の出力。
- ユーザーの問い合わせ(User Inquiries): ユーザーがシステムに対して行う質問やリクエスト。
- 内部論理ファイル(Internal Logical Files): システム内で管理されるデータの集合。
- 外部インターフェースファイル(External Interface Files): 他のシステムと連携するためのデータファイル。
これらはそれぞれ、ユーザーがシステムに接する特定の方法を表しています。
ファンクションポイントの計算
そして、上記の5点のファンクションポイントについて、それぞれの難易度を評価します。
評価の方法はシンプルで容易、普通、複雑の3段階評価です。
たとえば、外部入力、のファンクションポイントが単純なものであれば、少ないポイントが与えられ、複雑なものであれば、より多くのポイントが与えられます。
このようにして、全体のファンクションポイント数が算出されます。
ちなみに実際の計算には係数値や調整値をいれます。計算は各要素の数をカウントして、それに基づいて重みを掛け算するわけです。
ファンクションポイント法の実際の利用例
ソフトウェア開発においてさまざまな方法で使用することができます。
例えばソフトウェアプロジェクトの規模を推定したり、生産性を測定したり、異なるソフトウェアアプリケーションをベンチマークしたりするために使用することができます。
イメージのためにも使用例を以下で幾つか挙げます。
ソフトウェアベンダーの管理
企業がベンダーと契約し、ファンクションポイントで測定される一定の規模のソフトウェアアプリケーションを開発する。
これにより企業はベンダーの進捗状況やパフォーマンスを客観的に測定することができるようになるのがこの方法の大きな使用メリットです。
大手金融機関の顧客管理システム
ある大手金融機関では顧客管理システムの開発プロジェクトにファンクションポイント法を導入しました。
システムの機能を細かく分解し、それぞれの機能に対してポイントを割り当てることで、開発の規模やコストを定量化しました。
これによりプロジェクトの見積もり精度が向上し、リソースの最適化が実現しました
大手通信会社の例
大手通信会社がファンクションポイント法を使用する。
それにより正確なプロジェクトの見積もりと、より良いプロジェクトの成果を得ることができる。
ファンクションポイント数を用いてソフトウェアプロジェクトの規模を見積もることができることで、その結果、より効果的な計画や資源配分を行うことができる。
ソフトウェア開発会社の例
ソフトウェア開発会社がファンクションポイントを使って生産性を測定する。
1人月あたりのファンクションポイント数を測定することで、生産性を向上させることができる領域を特定することができる。その結果、開発プロセスを変更し、全体的な生産性を向上させることができる。
ニールセンのアウトソーシング
大手調査会社のニールセン・メディアではファンクションポイント分析を用いてソフトウェアの機能要件を定量化しました。
この手法により、アウトソーシング先の選定や契約交渉において、より正確なコスト見積もりが可能となり、プロジェクトの成功率が向上しました。
ERPシステムの開発
複雑なERPシステムの開発においても、ファンクションポイント法が効果的に活用されています。
特に大規模なシステム統合プロジェクト。そこでは各機能の重要性を評価し、開発の優先順位を決定するためにこの手法が利用されています。
これによ開発チームはリソースを効率的に配分し、納期を守ることができました。
ソフトウェア開発の見積もり
ファンクションポイント法はもちろんソフトウェア開発の初期段階での見積もりにも役立ちます。
要件が明確でない段階でも機能の数を数えることで、開発に必要な工数やコストを予測することが可能となります。利用によりプロジェクトの計画段階でのリスクを軽減することができます。
まとめ
こういった感じで、異なるプロジェクトの種類や、異なる企業間で、指標を共通理解で持つことで効率化が客観的に行える。冒頭にも述べたようこれがこの手法の大きな利点といえるでしょう。

