開発費用などを産出するには、開発規模を数値化する必要がある。開発規模を見積もる方法には、次の2つがある。
プログラムの原始コードののステップ数(プログラムの行数)を算定し、開発規模を見積もる方法。1877年に発表されたコストモデルである。
システム全体の機能(ファンクション)を洗い出し、その機能の開発の難易度や規模ごとにポイントを設定し、開発規模を見積もる方法。1985年に発表されたコストモデルである。
ファンクションポイント法では、ユーザーに提供する機能を次の5つに分類する。
これら各機能に、開発レベルの難易度から求めた係数を乗じることで開発規模を定量化する。ユーザーファンクションタイプ(ユーザーから見た機能を分類したもの)ごとに、測定個数と重み付け係数の積を求めて、それらを合計したものが未調整ファンクションポイントである。これと、複雑さの歩数係数との積が調整済みファンクションポイントである。
この方法には、次のような特徴がある。
プログラムステップ数にプログラム難易度や開発要員の能力などの係数を掛けて工程を見積もる方法をCOCOMO(COnstructive COst MOdel)という。1981年に発表されたコストモデルである。プログラマーの作業量を統計的なモデルを使って計算する。
COCOMOは中〜大規模のシステムの見積もりに適した方法である。システムを次の3つのモードに分類し、それぞれのモードごとに総開発工数と開発期間を算出する。
組織モード | 小規模のシステム開発 |
半組込みモード | 通常の業務システム開発 |
組込みモード | 大規模かつ制約の多いシステム開発 |
この方法には、次のような特徴がある。
ワークサンプリング法とは、作業時間を見積もる方法のひとつである。一定時間ごとに作業内容を観察し、どの作業が何回行われたかなどの統計を取り、その統計結果をもとに実際の作業時間を見積もる。定量化しにくい作業の分析に向いている。
システムの運用にはコストがかかるため、システムを開発する際には、あらかじめ総コストを十分に検討しておく。
検討材料としては、次が挙げられる。
これらの総費用を表すTCO(Total Cost of Ownership)がもっとも少なくなるようにする。TCOは主に次の2種類に分類することができる。
TCOは機能越に分類すると、次の項目に分類できる。