コスト見積の前提となる工数
とは、ある作業を完了させるために必要な時間数のこと。
単位として人日
や人月
を用いる。人日は「ひとりの担当者がその作業を終えるのに何日必要か
を表す。例えば、ある作業に5人日必要なら、1人のエンジニアが作業すれば作業期間は5日間になる。同じ作業に5人のエンジニアを投入して行えば、1日で完了する計算になる。
代表的なコスト見積手法
類推見積り(類似法)
過去に行った類似するシステムの開発をもと
に、新システムとの相違点
などを分析して、必要な工数とコストを見積もる手法
パラメトリック見積り(係数見積り)
過去のデータと見積もる値に関わる変数との統計的な関係
を用いて、数学的に工数やコスト
を求める。ファンクションポイント法、COCOMOなどがある。
三点見積り
項目ごとに3通りの値
を予測し、それぞれ重み(期待値)を掛けて見積値を算出する手法。
幅のある3つの想定値で工数を予想
することで、より正確な見積値を算出できる。
楽観値
作業がうまく進んだ場合
最頻値
いつものペースで完了できた場合
悲観値
いろいろあって進みが遅くなった場合
一般に、楽観値と悲観値の重み(期待値)は「1」、最頻値の重み(期待値)は「4』として計算し、その合計値を期待値の合計(1+1+4=6)で割って見積値を求める。
見積値=(楽観値*1+最頻値*4+悲観値*1)/6
ボトムアップ見積り(標準タスク法、標準値法)
個々の作業を洗い出し、作業ごとに一定の基準で見積もる方法。WBSの最小単位であるワークパッケージやさらに小さく作業を分割したアクティビティから工数とコストを予測して合計
することで、システム全体にかかる工数やコストを算出する
。
LOC法(Lines Of Code:プログラムステップ法)
システム全体の機能をプログラムレベルまで分割・詳細化
し、プログラムのソースコードの行数(ステップ数)
に基づいて開発工数を見積もる
方法。ただし、開発環境や使用するプログラム言語が同一でないと、正確に見積もることができない
。
COCOMO(COnstructive COst MOdel)
予測されるソースコードの総行数に「プログラムの特性、用いるハードウェアの特性、プロジェクトマネージャーやエンジニアのスキル...]などの補正係数
を掛け、工数やコストを見積もる手法。改良版のCOCOMOⅡ
では、FP法などの概念を取り入れ、企画・設計や成果物の検証工程など、開発全工程の見積りが可能
になった。
ファンクションポイント(Function Point)法:FP法
ファンクションとは、機能のこと。FP法
では、プログラムに含まれる機能の数
やその機能の複雑度
などから、必要なコストや工数を見積もる。機能に注目するため、非エンジニアにもわかりやすく
、ユーザ自身が見積もることが可能な方法。 なお求められたFP値は開発規模の尺度なるが、算出したFP値に単位当あたりの標準値を掛け合わせることで
コストや工数、作業期間などを定量的```に見積もることができる。
FP法の5つの機能分類
FP法では機能を5つのタイプに分類し、これをユーザファンクションタイプ
と呼ぶ。
外部入力
外部インタフェースファイル
を受け取り、これによって内部論理ファイルの作成、更新、削除などに出力する機能
外部出力
プログラムが内部論理ファイルの作成、更新、削除などを行い、他のプログラムや装置などに出力
する機能
内部論理ファイル
プログラムが扱うデータや制御情報のまとまり
のこと。作成、更新、削除を、このプログラム自身が行う。
外部インタフェースファイル
他のプログラムやユーザから入力された、データや制御情報のまとまり
のこと。
外部紹介
外部インタフェースファイルを参照する機能。
参照情報を単に画面の出力
したり、他のプログラムへ渡すための機能
で、内部論理ファイルの書き換えは行わない。
FP法の計算方法
FP法の計算は、まずプログラムに含まれた機能をユーザファンクションタイプごとに分ける。次にタイプ別の合計個数と、そのタイプの機能の複雑どによる重み付け係数
をかけてFP(ファンクションポイント)値を算出。さらに他のプログラムとの関係性などを基に定義されたプログラム全体の複雑度を示す補正係数
を掛け合わせ、プログラム全体のFP値を計算する。
関連記事
出典