- トップページ
- ファンクションポイント法
更新日:2024年11月01日
ファンクションポイント法(Function Point Analysis: FPA)は、ソフトウェアおよび情報システムの機能的な大きさを定量的に測定するための手法で、1980年代にアラン・オルブリヒト(Allan Albrecht)によって開発され、その後国際ファンクションポイントユーザーグループ(IFPUG)などによって標準化されました。FPAはソフトウェアの開発、保守、運用プロジェクトにおける見積もり、計画、品質管理、コスト管理などに広く利用されており、ソフトウェアの機能を「ファンクションポイント(FP)」という単位で測定します。この測定はユーザーから見たソフトウェアの機能的要求に基づき、コードの行数や開発者の生産性などには依存しません。これにより異なる技術やプラットフォーム間で一貫性のある評価が可能となります。FPAでは、ソフトウェアの機能を5つのコンポーネントに分類して評価します。1つ目は外部入力(External Inputs: EI)で、システムにデータを入力するプロセスに該当し、ユーザーがフォームにデータを入力し送信する操作などが含まれます。2つ目は外部出力(External Outputs: EO)で、システムから出力されるデータや情報を指し、レポートの生成や画面への表示などが該当します。3つ目は内部論理ファイル(Internal Logical Files: ILF)で、システム内部で利用されるデータの集合であり、データベースのテーブルやファイルなどが該当します。4つ目は外部インターフェースファイル(External Interface Files: EIF)で、他のシステムやアプリケーションと連携するためのデータの集合であり、他システムのデータベースやファイルを参照します。最後に外部照会(External Inquiries: EQ)で、システムに対してデータを要求しそのデータに基づいて応答が返されるプロセスを指し、検索機能やクエリ処理などが含まれます。
ファンクションポイントの計算は次のステップに従って行います。まず1. データファンクションタイプの評価として、内部論理ファイル(ILF)と外部インターフェースファイル(EIF)を評価し、それぞれのファンクションポイント(高・中・低)を判定します。これにはデータのエレメントやレコードの数が関与します。次に2. トランザクションファンクションタイプの評価として、外部入力(EI)、外部出力(EO)、外部照会(EQ)を評価し、それぞれのファンクションポイント(高・中・低)を判定します。ここでもデータエレメントの数やトランザクションに関与するファイルの種類が考慮されます。次に3. 未調整ファンクションポイント(UFP)の計算として、各コンポーネントの数値評価に基づいてFPを計算し、全ての評価値を合計します。これが未調整ファンクションポイント(UFP)です。そして4. 実調整ファンクションポイント(AFP)の計算として、UFPに対して補正係数を掛けて実調整ファンクションポイント(AFP)を算出します。補正係数は14の一般的なシステム特性(GSC)に基づいて決定されます。これらの特性には性能、信頼性、利用しやすさ、移植性などが含まれており、それぞれの特性に1~5のスコアをつけます。このスコアを元に補正係数(VCF)を計算し、UFPに掛けることでAFPを算出します。VCF = 0.65 + 0.01 * Σ(GSCのスコア) AFP = UFP * VCFと算出されます。
ファンクションポイント法は多くの利点を提供します。技術に依存せず、特定のプログラム言語や技術に関係なく純粋に機能的な大きさを測定できるため、異なる技術間での比較が容易であり、見積もり精度が向上し、プロジェクト開始時の早期に正確な見積もりが可能です。これによりプロジェクト管理やリソース配分がしやすくなり、品質管理にも役立ち、生産性やバグ率などを評価することで品質管理が容易になります。さらにソフトウェア開発の契約やコスト管理において、FPが客観的な尺度となり、公平な評価と支払いが可能です。また業界標準のベンチマークと比較することにより、自社の生産性や品質を評価することができます。しかし一方で課題も存在します。システム特性の評価には主観が入りがちであり、一貫性を保つためには熟練したアナリストが必要です。また、FPAには細かいルールが多く、正確に適用するためには教育と経験が必要であり、特定のプロジェクトやドメインに適応するのが難しく、他の見積もり手法と併用する必要がある場合もあります。それでもなお、FPAはソフトウェア開発の多くの側面に対して信頼性の高い評価を提供する強力なツールです。ユーザー視点からソフトウェアの機能を定量的に評価することで、異なる技術やプラットフォーム間での比較が可能となり、プロジェクトの成功に大きく寄与しますが、正確な評価を行うためには熟練したアナリストの存在が不可欠であり、他の見積もり手法と併用することも求められる場合があります。これらの点を考慮しながら、FPAを使いこなすことが、信頼性の高いソフトウェア開発を実現する鍵となるでしょう。