軟件開發(fā)成本估算主要指軟件開發(fā)過程中所花費的工作量及相應的代價。不同與傳統(tǒng)的工業(yè)產(chǎn)品,軟件的成本不包括原材料和能源的消耗,主要是人的勞動的消耗。另外,軟件也沒有一個明顯的制造過程,它的開發(fā)成本是以一次性開發(fā)過程所花費的代價來計算的。因此,軟件開發(fā)成本的估算,應是從軟件計劃、需求分析、設(shè)計、編碼、單元測試、集成測試到認證測試,整個開發(fā)過程所花費的代價作為依據(jù)的。
軟件開發(fā)成本估算的經(jīng)驗模型
Putnam 模型
1978年P(guān)utnam提出的,一種動態(tài)多變量模型。
L = Ck * K1/3 * td4/3
其中: L-----------源代碼行數(shù)(以LOC計)
K-----------整個開發(fā)過程所花費的工作量(以人年計)
td-----------開發(fā)持續(xù)時間(以年計)
Ck----------技術(shù)狀態(tài)常數(shù),它反映“妨礙開發(fā)進展的限制”,取值因開發(fā)環(huán)境而異,見下表
Ck的典型值 開發(fā)環(huán)境 開發(fā)環(huán)境舉例
2000 差 沒有系統(tǒng)的開發(fā)方法,缺乏文檔和復審
8000 好 有合適的系統(tǒng)的開發(fā)方法,有充分的文檔和復審
11000 優(yōu) 有自動的開發(fā)工具和技術(shù)
從上述方程加以變換,可以得到估算工作量的公式: K = L3/(Ck3*td4)
還可以估算開發(fā)時間: td = [L3/(Ck3*K)]1/4
COCOMO模型(constructive cost model)
這是由TRW公司開發(fā),Boehm提出的結(jié)構(gòu)化成本估算模型。是一種精確的、易于使用的成本估算方法。
COCOMO模型中用到以下變量:
DSI-------源指令條數(shù)。不包括注釋。1KDSI = 1000DSI。
MM-------開發(fā)工作量(以人月計) 1MM = 19 人日 = 152 人時 =1/12 人年
TDEV-----開發(fā)進度。(以月計)
COCOMO模型中,考慮開發(fā)環(huán)境,軟件開發(fā)項目的類型可以分為3種:
組織型(organic): 相對較小、較簡單的軟件項目。開發(fā)人員對開發(fā)目標理解比較充分,與軟件系統(tǒng)相關(guān)的工作經(jīng)驗豐富,對軟件的使用環(huán)境很熟悉,受硬件的約束較小,程序的規(guī)模不是很大(<50000行)
嵌入型(embedded): 要求在緊密聯(lián)系的硬件、軟件和操作的限制條件下運行,通常與某種復雜的硬件設(shè)備緊密結(jié)合在一起。對接口,數(shù)據(jù)結(jié)構(gòu),算法的要求高。軟件規(guī)模任意。如大而復雜的事務處理系統(tǒng),大型/超大型操作系統(tǒng),航天用控制系統(tǒng),大型指揮系統(tǒng)等。
半獨立型(semidetached): 介于上述兩種軟件之間。規(guī)模和復雜度都屬于中等或更高。最大可達30萬行。
估算公式:
基本COCOMO模型估算工作量和進度的公式如下
工作量: MM = r*(KDSI)c
進度: TDKV = a(MM)b
其中經(jīng)驗常數(shù) r, c, a, b 取決于項目的總體類型。
COCOMO模型按其詳細程度可以分為三級:基本COCOMO模型,中間COCOMO模型,詳細COCOMO模型。其中基本COCOMO模型是是一個靜態(tài)單變量模型,它用一個以已估算出來的原代碼行數(shù)(LOC)為自變量的經(jīng)驗函數(shù)計算軟件開發(fā)工作量。中級COCOMO模型在基本COCOMO模型的基礎(chǔ)上,再用涉及產(chǎn)品、硬件、人員、項目等方面的影響因素調(diào)整工作量的估算。詳細COCOMO模型包括中間 COCOMO模型的所有特性,但更進一步考慮了軟件工程中每一步驟(如分析、設(shè)計)的影響。
基本COCOMO模型
通過統(tǒng)計63個歷史項目的歷史數(shù)據(jù),得到如下計算公式。
總體類型 工作量 進度
組織型 MM = 10.4*(KDSI)1.05 TDKV = 10.5(MM)0.38
半獨立型&n