軟件開發成本估算的經驗模型
Putnam 模型
1978年Putnam提出的,一種動態多變量模型。
L = Ck * K1/3 * td4/3
其中: L-----------源代碼行數(以LOC計)
K-----------整個開發過程所花費的工作量(以人年計)
td-----------開發持續時間(以年計)
Ck----------技術狀態常數,它反映“妨礙開發進展的限制”,取值因開發環境而異,見下表
Ck的典型值 開發環境 開發環境舉例
2000 差 沒有系統的開發方法,缺乏文檔和復審
8000 好 有合適的系統的開發方法,有充分的文檔和復審
11000 優 有自動的開發工具和技術
從上述方程加以變換,可以得到估算工作量的公式: K = L3/(Ck3*td4)
還可以估算開發時間: td = [L3/(Ck3*K)]1/4
COCOMO模型(constructive cost model)
這是由TRW公司開發,Boehm提出的結構化成本估算模型。是一種精確的、易于使用的成本估算方法。
COCOMO模型中用到以下變量:
DSI-------源指令條數。不包括注釋。1KDSI = 1000DSI。
MM-------開發工作量(以人月計) 1MM = 19 人日 = 152 人時 =1/12 人年
TDEV-----開發進度。(以月計)
COCOMO模型中,考慮開發環境,軟件開發項目的類型可以分為3種:
組織型(organic): 相對較小、較簡單的軟件項目。開發人員對開發目標理解比較充分,與軟件系統相關的工作經驗豐富,對軟件的使用環境很熟悉,受硬件的約束較小,程序的規模不是很大(<50000行)
嵌入型(embedded): 要求在緊密聯系的硬件、軟件和操作的限制條件下運行,通常與某種復雜的硬件設備緊密結合在一起。對接口,數據結構,算法的要求高。軟件規模任意。如大而復雜的事務處理系統,大型/超大型操作系統,航天用控制系統,大型指揮系統等。
半獨立型(semidetached): 介于上述兩種軟件之間。規模和復雜度都屬于中等或更高。最大可達30萬行。
估算公式:
基本COCOMO模型估算工作量和進度的公式如下
工作量: MM = r*(KDSI)c
進度: TDKV = a(MM)b
其中經驗常數 r, c, a, b 取決于項目的總體類型。
COCOMO模型按其詳細程度可以分為三級:基本COCOMO模型,中間COCOMO模型,詳細COCOMO模型。其中基本COCOMO模型是是一個靜態單變量模型,它用一個以已估算出來的原代碼行數(LOC)為自變量的經驗函數計算軟件開發工作量。 中級COCOMO模型在基本COCOMO模型的基礎上,再用涉及產品、硬件、人員、項目等方面的影響因素調整工作量的估算。詳細COCOMO模型包括中間COCOMO模型的所有特性,但更進一步考慮了軟件工程中每一步驟(如分析、設計)的影響。
基本COCOMO模型
通過統計63個歷史項目的歷史數據,得到如下計算公式。
總體類型 工作量 進度
組織型 MM = 10.4*(KDSI)1.05 TDKV = 10.5(MM)0.38
半獨立型 MM = 3.0*(KDSI)1.12 TDKV = 10.5(MM)0.35
嵌入型 MM = 3.0*(KDSI)1.20 TDKV = 10.5(MM)0.32
進度計劃是從時間的角度對項目進行規劃,而成本估算則是從費用的角度對項目進行規劃。這里的費用應理解為一個抽象概念,它可以是工時、材料或人員等。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/