3. 先行研究の検討
3.2. ソフトウェア開発の定量的マネジメントとメトリクスについて
3.2.5. ファンクションポイント(Function Point)法
ここで、プロダクトに関するメトリクスの中でも特に重要なソフトウェアの機能の大き さを表すための代表的な手法であるファンクションポイント(Function Point)法の特長や計 測方法の概要を説明する。主として、JIS X 0142:2010「ソフトウェア技術‐機能規模測定‐
IFPUG機能規模測定手法(IFPUG4.1版未調整ファンクションポイント)計測マニュアル」
や情報処理推進機構の「ソフトウェア開発見積りガイドブック」(IPA 2008) を参考にして いる。
(1) ファンクションポイント(FP法)法の位置付けと国際標準化
ファンクションポイント法(以下、FP法と略す)は、開発言語やアプリケーション方式 等に依存しないソフトウェアの機能の量を計測することを目指して開発された手法である。
データの入出力などの機能に着目し、機能数と重みによりソフトウェア規模を定量化する 手法である。1979年にAllan J Albrechtが提唱した後、計測者による解釈の違い等が生じない ように国際的な標準化が進められてきた。FP法の標準化団体として1986年に発足した IFPUG(International Function Point User Group)が定めた計測手法が国際標準としての
「IFPUG法」である。世界で最も多く使用されているFP法の計測手法であり、日本ではJIS X 0142として標準化されている。このほか、ソフトウェアの分野の特性に合わせて、NESMA
24
法 (NESMA 2009) やCOSMICFFP法などの計測手法が提案されており、それらの手法につい ても国際標準化が進められてきた。
(2) IFPUG法の計測手法
IFPUG法の計測手法の概要を以下に説明する。以下の内容は、IFPUG発行の”Function Point
Counting Practice Manual Release 4.3.1” (IFPUG 2010)(以下CPMと略す)に基づいたものであ る。
(a) 機能の種別について
FP法では、アプリケーションソフトウェア(以下、アプリケーションと略す)の機能を ファイルに対する入出力データの観点で分類する。図 3-2に、IFPUG法による規模計測対象 としてのアプリケーションのモデルを示す。図 3-2の中の、内部論理ファイル(ILF:Internal
Logical File)、外部インタフェースファイル(EIF:External Interface File)、外部入力(EI:
External Input)、外部出力(EO:External Output)、外部照会(EQ:External Inquiry)の5 種について表 3-4に概要を説明する。以下では、これらの略称を用いる。
表 3-4 機能種別に、各機能の概要を示す。
図 3-2 FP法による計測対象としてのアプリケーションのモデル
25
表 3-4 機能種別
分類 名称 略称(英語) 説明
データファ ンクション (Data Function)
内部論理ファ イル
ILF (Internal Logical File)
アプリケーションで維持管理され るデータの集合
外部インタフ ェースファイ ル
EIF (External Interface File)
外部のアプリケーションで維持管 理され、参照のみ行うデータの集合
トランザク ションファ ンクション (Transaction Function)
外部入力 EI (External Input) ILFを更新するためのデータ入力機 能
外部出力 EO (External Output) アプリケーション外部へのデータ 出力機能
外部照会 EQ (External Inquiry) データ検索機能
データファンクション(Data Function)という、アプリケーションが使用するデータの集 合として分類されるのが、内部論理ファイル(ILF)と外部論理ファイル(EIF)である。
ここで、「ファイル」とはデータのまとまりの意味であり、物理的な電子ファイルの意味 ではない。内部論理ファイル(ILF)は、データがアプリケーショ内で更新、追加、削除さ れるものであり、外部論理ファイル(EIF)は、参照のみが行われるのものである。次に、
トランザクションファンクション(Transaction Function)という、データの処理機能として 分類されるものが外部入力(EI)、外部出力(EO)、外部照会(EQ)である。トランザク ションファンクションはデータ処理に関する機能であり、「アプリケーション境界」を超 えてデータの入出力を行う機能である。図 3-2に示す「アプリケーション境界」とは、対象 となるアプリケーションの範囲を示す境界である。外部入力(EI)は外部からのデータ入力 によるデータの更新が目的であり、外部出力(EO)と外部照会(EQ)は利用者への情報提 供を目的とするものである。また、外部出力(EO)は、アプリケーションの処理によって 情報を利用者に提供するものであり、外部照会(EQ)は、単純なデータ検索によって情報 提供をするものである。
(b) 重み付けについて
FP法では、個々の機能に対して重み付けを行うことによって個々の機能の量を数値化す る。IFPUG法では、機能種別(ILF、EIF、EI、EO、EQの5種)と、機能毎の複雑さの組合 せによって重み付けの数値を決定する。機能毎の複雑さは、単純、平均、複雑の3種類に分 ける。これらの関係を図 3-3 機能種類別の複雑さに示す。複雑さについては単純をS、平 均をM、複雑をCの記号で表している。
26
複雑さは、該当の機能のデータ項目やアクセスするファイル数を元に決定する。データ ファンクションについてはレコード種類数(RET:Record Element Type)とデータ項目数
(DET:Data Element Type)の2種類の数値を計測する。トランザクションファンクション については関連ファイル数(FTR:File Type Referenced)とデータ項目数の2種類の数値を 計測する。これらのデータファンクションとトランザクションファンクションのデータ項 目数のマトリクスを作成し、個々の機能の重みを合計することにより、アプリケーション 全体のFP値が算出される。この方法によって算出された数値を「未調整ファンクションポ イント」(Unadjusted Function Point)と呼ぶ。
IFPUG法では、この未調整ファンクションポイントの値に対して調整要因等を用いて調整 済ファンクションポイントを計算する方法が示されているが、この調整要因以下の手順は オプションとされている。機能に関する規模を表す上では、未調整ファンクションポイン をもってFP法の計測値として用いることが多いため、調整済ファンクションポイントの説 明は省略する。
(d) IFPUG法によるFP計測のための条件
IFPUG法によってFP計測を行うためには、下記の情報を得られる必要があり、データに 関する設計が完了している必要がある。
・内部論理ファイルの情報(マスタファイルやデータベース)や外部インタフェースファ イルの情報
図 3-3 機能種類別の複雑さ
27
・5つの機能(ILF、EIF、EI、EO、EQ)
・各機能の複雑度
・データファンクションのレコード種類数とデータ項目数
・トランザクションファンクションにおいてアクセスするデータファンクションの数と入 出力データ項目数
(3) NESMA法
IFPUG法では、前述のように、機能別に各種のデータに関する情報が必要となるため、詳 細なシステム設計が確定した段階にならないと正確な計測が行えない。そこで、開発の初 期の段階でFPを計測できるようにすることを目的として、NESMA(Netherlands Software
Metrics Association)によって、下記のFP概算法とFP試算法 (NESMA 2005) が提案されてい
る。
(a) FP概算法(The Estimated Function Point Count)
FP概算法は、基本的な規模計測の考え方はIFPUG法と同じであるが、データ設計が完了 していない段階でも計測できるようにするため、機能ごとの重み付けにおける複雑さの判 定を以下のように簡略化する。
・データファンクションの複雑さを全て「単純」とする
・トランザクションファンクションの複雑さを全て「平均」とする
FP概算法は、複雑さの計測だけを簡略化しているものであるため、一つの業務システム の中で機能による複雑さの偏りが少ない場合には、IFPUG法による計測値との乖離が少なく なると考えられる。
(b) FP試算法(The Indicative Function Point Count)
FPs試算法では、IFPUG法の計測法におけるデータファンクションの個数のみを計測し、
その結果を以下の計算式に当てはめてFP値を算出する。
FP試算値 = 35 × ILFの個数 + 15 × EIFの個数
ここで、35及び15という係数は、ILFとEIFの平均的なトランザクションファンクション の数を仮定して機能全体のFP値の合計を算出するためのものである。具体的には、内部論 理ファイル(ILF)には3つの外部入力(EI)として、ILFに対する追加、変更、削除と、2 つのEO、1つのEQが含まれると仮定する。外部インタフェースファイル(EIF)には1つの 外部出力(EO)と1つの外部照会(EQ)が含まれると仮定する。このような仮定に基づい た計測法であるため、IFPUG法による計測値との乖離が大きくなることがある。
28
(c) 設計・開発の工程によるFP計測法の選択及び組合せ
各種のFP計測法の中から、設計や開発の工程に応じて適した手法を選択して組み合わせ て適用する方法がある。例えば、データ項目が明らかになった時点でFP試算法によりデー タファンクションの数に係数を掛けて規模を見積る。画面や帳票などの機能の設計が進ん だ階で、ファイル数の情報が不明確な場合には、FP概算法により複雑さの判定を簡略化す ることによって概算FPを求めることできる。データに関する設計によって、データ項目や 各機能別のアクセス対象テーブル数などが明確になった時点でIFPUG法による詳細なFPを 計算することが可能となる。このように、設計工程の進捗に応じて適切な手法を組み合わ せる方法がある。ただし、工程によって使い分けることによって、計測手法によって計測 値に乖離が発生する可能性がある点については、規模の変動状況を把握する際に注意が必 要となる。