« [.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました | トップページ | [VB] For i = 0 To i < 100 »

2011年10月11日 (火)

[MEMO] ファンクションポイントの算出法、あれこれ

■ 正規のファンクションポイント算出法

◇ IFPUG 法
参考URL: http://www1.ocn.ne.jp/~matsuo3/words/fp1.htm http://www.kiis.or.jp/spoken/ksh/98jisseki/fp.htm

+ 世界共通のマニュアルがあり、安定した数値が得られる。 (日本ファンクションポイントユーザ会 http://www.jfpug.gr.jp/ )
- データベース設計とデータ入出力の設計がすべて終わっていないと、算出できない。
※ メモ: 実際の数値の扱いにおいては、未調整FPと調整済FPの違いに留意すること。

ファンクションポイントと言えば IFPUG 法なわけですが、 しかしこれはウォーターフォールで言えば「製造」行程以降の見積もりにしか使えません。
もうすこし手前の段階で FP を概算したり推定したりできないだろうか、 そういう試みが色々となされています。

 
 

■ 簡易的に算出する方法

◇ FP 概算法
◇ FP 試算法
ともに、 http://www.nesma.nl/sectjap/home/earlyfpa.htm

+ IFPUG 法より少ない情報でファンクションポイントを算出できる。
- FP 試算法は、 UI を持たないバッチ処理なら使える。 (UI がデータアクセス (たとえば選択肢の表示や、入力コードの DB との突合せなど) を必要とする場合、 大きく食い違ってしまう。)

簡易的と言っても、ファンクションポイントであるからにはデータ入出力に基づいて算出することになるので、 やはりある程度は設計が進んでからでないと使えない。

 

■ 別のデータから推定する方法

◇ COSMIC 法
「ビジネスアプリ開発者のための機能規模測定手法 COSMIC 法入門」
http://www.ogis-ri.co.jp/otc/hiroba/technical/IntroCOSMIC/IntroCOSMICPart1Jun2010.html

データ移動の数を数えて算出する。DOA (Data Oriented Approach) では有効だと思われる。
「中規模ぐらいのプロジェクトでは IFPUG 法の機能規模測定値と COSMIC 法の機能規模の測定値が似たような値になる」(上記 URL より) とのこと。

20111011_fpa

◇ 画面要素見積法
「ファンクションポイント法を応用した早期見積技法の提案とそのシステム化」
http://sel.ist.osaka-u.ac.jp/~lab-db/betuzuri/archive/582/582.pdf
「エンタープライズ系ソフトウェア開発のための見積技法及びプロジェクト管理支援に関する研究」
http://sel.ist.osaka-u.ac.jp/~lab-db/Dthesis/archive/19/19.ppt (右上の図は、ここから引用)

+ 画面設計が出来上がった段階で算出できる。
精度は IFPUG 法の-4%~+11%の範囲 (上記ppt)

◇ 画面数などから推定する方法
・JUAS http://www.juas.or.jp/ の調査データに、 画面数などと FP 値の関連グラフが掲載されている。 この関係を使えば、 要件定義段階でファンクションポイントを推定できる。

※ 調査データは出版されている
「ソフトウェア・メトリックス調査2010」 http://www.amazon.co.jp/exec/obidos/ASIN/490347724X/bluewatersoft-22 (そろそろ 2011年版が出るはず。)

なお、 2008年版のデータでは、
FP = 23.6 × 画面数 + 3.1 × バッチ数
http://it.impressbm.co.jp/e/2008/12/22/362
といった経験式が提示されている。

・また、「ソフトウェア開発データリポジトリの分析」 (経済調査研究所;2010)
http://www.zai-keicho.or.jp/pdf/software_metrics/pdf/ERA_Analysis_of_Software_Projects_Data_Repository_201007.pdf
では、
FP = 33.614 × 画面数 0.7869
という経験式が得られている。

いずれも、 誤差の幅は広いものの日本のデータに基づいているところに意味がある。

◇ アプリケーションの分野・範囲・タイプから推定する方法
「ソフトウェア見積りのすべて」
http://www.amazon.co.jp/exec/obidos/ASIN/4320097556/bluewatersoft-22
第2部第6章に紹介されている。

引き合い段階でのざっくりとした見積りに使える。
ただし、 ベースになっている統計データは、 米国のちょっと古いものであることに注意。

範囲: モジュール、スタンドアロンプログラム、新規開発システムなどに分類して点数化。
分野: 個人用ソフトウェア、市販ソフトウェア、軍需契約などに分類して点数化。
タイプ: インタラクティブGUI、 バッチ、 C/S などに分類して点数化。

範囲・分野・タイプに付与された点数を合計し、 それを経験式に当てはめて FP を算出する。

|

« [.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました | トップページ | [VB] For i = 0 To i < 100 »

プログラミング」カテゴリの記事

-プログラミング ( 開発プロセス )」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/52968195

この記事へのトラックバック一覧です: [MEMO] ファンクションポイントの算出法、あれこれ:

« [.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました | トップページ | [VB] For i = 0 To i < 100 »