眾所周知,軟件作為一種非實體的產品,其生產方式與傳統的硬件生成迥然不同,而且在軟件的生命周期中存在許多不可預期的情況。為了評估一個產品的成本、價值,軟件工作量的估計是很有必不可少的。但是軟件工作量的估計又僅僅只是簡單的估計而已,因為不准確的估計結果可能對項目產生很大的影響。在此,我將根據查找的資料簡單介紹幾種軟件工作量的估計方法,並基於每種方法的原理特點談談我的一些看法。
1、 基於WBS的工作量估計方法
基於WBS的估計方法是自底向上的方法,即對項目按照WBS原則(包括任務分層原則、80小時原則、責任到人原則等具體見以下鏈接)進行分解。
http://wenku.baidu.com/link?url=2LR28SH3Qbg_GYQAB0cCA0LV4leZamgBYCFuMT5mrnMPJams7cfM54mYl9rvXiSQgHl2V51c0VuWJebkAkzVf8GDdijE-82sUf8MhSeCOZ_
2、 Pert Sizing估算方法
Pert Sizing是一種加權平均法。在估計每一項任務時,首先按最佳的、可能的、悲觀的悲觀的三種情況給出估計值,記作a、m、b。實用下式求得最終估計值。
最終估計值=(a+4*m+b)/6
詳細內容見:http://wenku.baidu.com/link?url=ZU9AWgRdFUuKN47Hyv05otj8dClp4Z6dSHIbzMH8hF3vFPz9Jsw2_ycwsdisJCAh-bhfKvBYtlsELZNFiK0Hjo7rMQbm7mRl504yPlmHjEi
3、 寬帶DELPHI方法估算方法
DELPHI是一種工作量投入較高,估算時間較長的一種估算方法。當然,基於其所做的較多工作,評估結果較為准確。它的估算流程具體如下:
除此之外還有些主要側重於對項目規模的估算方法
1、 基於代碼行(SLOC)的工作量估計方法
基於代碼行的工作量的估算方法,先將項目進行分解,然后同以前的 項目進行類比,估算出代碼行數,最后使用生產率方法、參數模型法將代碼轉化成行數。
2、 功能點分析(FPA)法
功能點的具體過程如下:
(1) 對估算功能單元的類型進行識別
(2) 計算每種類型的復雜度
(3) 計算總體的調整前的功能點數
(4) 根據調整因子對功能點數進行調整
計算公式如下:
FP=UFC*TCF
UFC,未調整的功能點計數;TCF表示技術復雜度因子
3、 用例點(UCP)分析法
詳細內容見http://blog.sina.com.cn/s/blog_93c2f6700101384z.html
以上的方法,並不存在某一種方法勝過所有的方法。在估算的過程中具體使用某一種方法還是要根據實際情況決定。在項目進行的每個階段中,針對不同的軟件項目適於采用的方法都是不同的。比如說在工期緊迫或者在項目中后期重新估算的時候可以采用Pert Sizing估算方法,因為其容易操作和理解,而在項目啟動的階段的初步估算使用DELPHI和基於WBS的工作量估計則更為合適,因為這兩者的估計結果相對而言更為准確。