1. 程式人生 > >軟件開發成本估算方法【轉】

軟件開發成本估算方法【轉】

ec2 結果 div 列表 持續時間 整理 str 似的 cti

轉自:http://hi.baidu.com/wangziming/blog/item/d8ee34010b18cf0e7bec2c4b.html


我的學習感悟:對於這個並不懂,尤其是什麽靜態單變量、動態多變量的。先暫時留著,以後繼續學習。
目前,有三種基本的軟件項目成本估算方法:自頂向下、自底向上和差別估算法。自頂向下的方法是對整個項目的總開發時間和總工作量做出估算,然後把它們按階段、步驟和工作單元進行分配;自底向上的方法是分別估算個工作單元所需的開發時間,然後匯總得出總的工作量和開發時間;差別估算是將開發項目與一個或多個已完成的類似項目進行比較,找出與某個類似項目的若幹不同之處,並估算每個不同之處對成本的影響,導出開發項目的總成本。
專家估算法
專家估算法是依靠一個或多個專家對項目做出估計,它要求專家具有專門知識和豐富的經驗,是一種近似的猜測。Delphi法是最流行的專家評估技術,在沒有歷史數據的情況下,這種方式適用於評定過去與將來,新技術與特定程序之間的差別,但專家"專"的程度及對項目的理解程度是工作中的難點,盡管Delphi技術可以減輕這種偏差,專家評估技術在評定一個新軟件實際成本時通常用得不多,但是,這種方式對決定其它模型的輸入時特別有用。Delphi法鼓勵參加者就問題相互討論,要求有多種軟件相關經驗人的參與,互相說服對方。

類推估算法
類推估算法是比較科學的一種傳統估算方法,它適合評估一些與歷史項目在應用領域、環境和復雜度的相似的項目,通過新項目與歷史項目的比較得到規模估計。類推估算法估計結果的精確度取決於歷史項目數據的完整性和準確度,因此,用好類推估算法的前提條件之一是組織建立起較好的項目後評價與分析機制,對歷史項目的數據分析是可信賴的。
這種方法的基本步驟是:
(1) 整理出項目功能列表和實現每個功能的代碼行;
(2) 標識出每個功能列表與歷史項目的相同點和不同點,特別要註意歷史項目做得不夠的地方;
(3) 通過步驟1和2得出各個功能的估計值;
(4) 產生規模估計。
算式估算法
算式估算法利用經驗模型進行成本估算,它通常采用經驗公式來預測軟件項目計劃所需要的成本、工作量和進度數據。目前還沒有一種估算模型能夠適用於所有的軟件類型和開發環境,從這些模型中得到的結果必須慎重使用。
(1) Putnam模型
Putnam模型是一種動態多變量模型,它是假定軟件開發的整個生存期中工作量的分布,如一個30人年以上的項目,其人力使用分布如圖7.3所示。
然後根據曲線導出一個估算公式:

(2) COCOMO模型
結構性成本模型COCOMO(COnstructive COst MOdel)是一種精確的、易於使用的成本估算方法,它分為基本COCOMO模型和中級COCOMO模型兩種類型。基本COCOMO模型是一個靜態單變量模型,它用一個以已估算出來的源代碼行數(LOC)為自變量的經驗函數來計算軟件開發工作量。中間COCOMO模型則在用LOC為自變量的函數計算軟件開發工作量的基礎上,再用涉及產品、硬件、人員、項目等方面屬性的影響因素來調整工作量的估算。更詳細的COCOMO模型除了包括中間COCOMO模型的所有特性外,還考慮了在需求分析、軟件設計等每一步的影響。
* 基本COCOMO模型估算公式
E=ab(KLOC)exp(bb)
D=cb(E)exp(db)
其中,E為開發所需的人力(人月),D為所需的開發時間(月),KLOC為估計提交的代碼行,ab、bb、cb和db為不同軟件開發方式的值,見下表。
方式
ab
bb
cb
db
組織型
2.41.052.50.38
半獨立型
3.01.122.50.35
嵌入型
3.61.22.50.32 由以上公式可以導出生產率和所需人數的公式:
生產率=(KLOC)/E(代碼行/人月)
人數=E/D
* 中級COCOMO模型估算公式
中級COCOMO模型先產生一個基本COCOMO模型一樣形式的估算公式,然後對15個成本驅動屬性打分,定出乘法因子,對公式進行修正。
15個影響軟件工作量的因素見下表:
工作量因素fi
非常低
正常
非常高
超高
產品因素軟件可靠性
數據庫規模
產品復雜性0.750.881.001.151.400.941.001.081.160.700.851.001.151.301.65計算機因素執行時間限制
存儲限制
虛擬機易變性
環境周轉時間

0.87
0.871.00
1.00
1.00
1.001.11
1.06
1.15
1.071.30
1.21
1.30
1.151.66
1.56人的因素分析員能力
應用論域實際經驗
程序員能力
虛擬機使用經驗
程序語言使用經驗
1.29
1.42
1.21
1.411.46
1.13
1.17
1.10
1.071.00
1.00
1.00
1.00
1.000.86
0.91
0.86
0.90
0.950.71
0.82
0.70項目因素現代程序設計技術
軟件工具的使用
開發進度限制1.24
1.24
1.231.10
1.10
1.081.00
1.00
1.000.91
0.91
1.040.82
0.83
1.10 中級COCOMO模型的估算公式:
E=ai(KLOC)exp(bi)×乘法因子
其中ai和bi的值見下表。
方式aibi組織型3.21.05半獨立型3.01.12嵌入型2.81.2(3) IBM模型
1977年,Walston和Felix總結了IBM的60個項目數據,提出了如下的估算公式:
E=5.2×L0.91, L是源代碼行數(以KLOC計),E是工作量(以PM計)
D=4.1×L0.36=2.4×E0.35, D是項目持續時間(以月計)
S=0.54×E0.6, S是人員需要量(以人計)
DOC=49×L1.01, DOC是文檔數量(以頁計) http://blog.sina.com.cn/s/blog_632f3ee30100uf8s.html

軟件開發成本估算方法【轉】