自頂向下估算方法
估算人員參照以前完成的項目所耗費的總成本,來推算將要開發的軟件的總成本,然後把它們按階段、步驟和工作單元進行 分配,這種方法稱為自頂向下估算方法。
它的優點是對系統級工作的重視,所以估算中不會遺漏系統級的諸如集成、用戶手冊和配置管理之類的事務的成本估算,且估算工作量小、 速度快。它的缺點是往往不清楚低級別上的技術性困難問題,而往往這些困難將會使成本上升。
自底向上估算方法
自底向上估算方法是將待開發的軟件細分,分別估算每壹個子任務所需要的開發工作量,然後將它們加起來 ,得到軟件的總開發量。這種方法的優點是對每個部分的估算工作交給負責該部分工作的人來做,所以估算 較為準確。其缺點是其估算往往缺少與軟件開發有關的系統工作級工作量,所以估算往往偏低。
差別估算方法
差別估算是將開發項目與壹個或多個已完成的類似項目進行比較,找到與某個相類似項目的若幹 不同之處,並估算每個不同之處對成本的影響,導出開發項目的總成本。該方法的優點是可以提高估算的準確度, 缺點是不容易明確“差別”的界限。
其他
除上三種還有:
(1)專家估算法。
(2)類推估算法。
(3)算式估算法。 COCOMO估算模型
機構性成本模型COCOMO(Constructive Cost Mode)是最精確、最易於使用的成本估算方法之壹。
該模型分為:基本COCOMO模型,是壹個靜態單變量模型,它是對整個軟件系統進行估算;中級COCOMO模型,是壹個靜態多變量模型;詳細COCOMO模型,將軟件系統模型分為系統、子系統和模塊三個層次。
①基本COCOMO模型估算公式:
E=ab(KLOC)exp(bb)
D=cb(E)exp(db)
式中E為開發所需的人力(人/月)。D為所需的開發時間(月)。KLOC為估計提交的代碼行。
ab、bb、cb和db是指不同軟件開發方式的值。
②中級COCOMO模型。
其估算公式為:E=ai(KLOC)exp(bi)×乘法因子,ai,bi
Putnam成本估算經驗模型
Putnam估算模型是壹種動態多變模型,它是假設在軟件開發的整個生存期中工作量的分布。如下圖:
根據曲線導出關於提交的代碼行數L,人力K(人/年)和時間td(年)之間估算公式:
式中Ck是技術狀況有關的常數,它的典型值如下:
對於差的開發環境 Ck=2500
對於好的開發環境 Ck=10000
對於有的開發環境 Ck=12500
由上述公式可以得到所需開發工作量的公式: