正題,就是軟件工作量估算方法的總結(jié)啦。很多文章、書籍都做過類似的總結(jié)啦。我主要從估算單位的角度來總結(jié)。首先將工作量估算的方法分為兩類:直接估算法和間接估算法。直接法指基于WBS的工作量估算方法,直接估算出人天工作量;間接估算法是先估算軟件規(guī)模,再轉(zhuǎn)換成人天工作量。根據(jù)估算角度的不同,間接法又分為基于代碼行(SLOC)的工作量估算方法和基于功能點(FP)的工作量估算方法。不管是哪種工作量估算方法,一般都會用到一些基本的估算方法,如類比法、WBS法、專家估算法等。
1、基于WBS的工作量估算
基于WBS的工作量估算方法,是最常見的一種估算方法,也是廠商最常用的?;赪BS的工作量的估算方法,又稱為由底向上法(自下而上法),通常的估算步驟如下:
1)尋找類似的歷史項目,進行項目的類比分析,根據(jù)歷史項目的工作量憑經(jīng)驗估計本項目的總工作量;
2)進行WBS分解,力所能及地將整個項目的任務進行分解;
3)參考類似項目的數(shù)據(jù),采用類比法或?qū)<曳?,估計WBS中每類活動的工作量;
4)匯總得到項目的總工作量;
5)與第1)步的結(jié)果進行印證分析,根據(jù)分析結(jié)果,確定估計結(jié)果。
2、基于SLOC的工作量估算
基于代碼行(SLOC)的工作量估算,是從開發(fā)者的技術角度出發(fā)來度量軟件。代碼行數(shù)是軟件開發(fā)者最早進行規(guī)模測量的主要方法。進行工作量估算時,先采用WBS法、類比法等統(tǒng)計出軟件項目的代碼行數(shù),然后將代碼行數(shù)轉(zhuǎn)換為人天數(shù)。其中,將代碼行(SLOC)轉(zhuǎn)換成人天數(shù)主要有2種方法。
(1)生產(chǎn)率方法:要求有開發(fā)商每人天開發(fā)的代碼行數(shù),估算出代碼行數(shù)后,直接利用代碼行數(shù)÷SLOC/人天,即得工作量人天數(shù)。
(2)參數(shù)模型法:利用模型,將代碼行數(shù)轉(zhuǎn)換成人天數(shù)。
常見的模型有:
Putnam模型
Putnam1978 年提出的一種動態(tài)多變量模型。估算工作量的公式是:K = L^3/(Ck^3*td^4)
其中:L 代表源代碼行數(shù)(以行計),K代表整個開發(fā)過程所花費的工作量(以人年計),td 表示開發(fā)持續(xù)時間(以年計),Ck表示技術狀態(tài)常數(shù),它反映“妨礙開發(fā)進展的限制”,取值因開發(fā)環(huán)境而異,見表1。
? COCOMOⅡ模型
COCOMOⅡ模型由Barry W. Boehm教授提出。模型指出,軟件開發(fā)工作量與軟件規(guī)模呈指數(shù)關系,并且工作量受16個成本驅(qū)動因子的影響。COCOMO Ⅱ的計算步驟如下:
1)估算軟件規(guī)模Size,這里以千代碼行(KSLOC)計。
2)評估比例因子SF,求指數(shù)E。
3)求成本驅(qū)動因子值EMi。求標稱進度工作量PM:
參考文獻:Barry W.Boehm等著 軟件成本估算——COCOMOII 模型方法. 李師賢,杜云梅,李衛(wèi)華等譯. 機械工業(yè)出版社
?IBM模型
IBM模型是1977年IBM公司的Walston和Felix提出的。其中估算工作量的公式如下:E=5.2×L^0.91 ,L是源代碼行數(shù)(以千行計),E是工作量(以人月計)
3、基于FP的工作量估算
基于功能點(FP)的工作量估算,是從用戶的角度來度量軟件。進行工作量估算時,先估計出軟件項目的功能點數(shù),然后將功能點數(shù)(FP)轉(zhuǎn)換為人天數(shù)。其中,估算功能點數(shù)的主要方法有3種:IFPUG法、MarkⅡ法、COSMIC FFP法。這三種方法現(xiàn)在都已經(jīng)成為國際標準,并有詳細的操作手冊。
將功能點(FP)轉(zhuǎn)換成人天數(shù)主要有2種方法。
1)生產(chǎn)率法:要求有開發(fā)商每人天開發(fā)的功能點數(shù),估算出功能點數(shù)后,直接利用功能點數(shù)÷功能點/天,即得工作量人天數(shù)。對于開發(fā)商每人天開發(fā)的功能點數(shù),SPR有統(tǒng)計,中國的值大約在5.5個功能點/人月。
2)經(jīng)驗模型法
可以依照本企業(yè)的歷史數(shù)據(jù)得到關于功能點和工作量的統(tǒng)計方程;也可以采用已有的經(jīng)驗模型,例如:COCOMOⅡ模型(只需將COCOMOⅡ模型中的Size用未調(diào)整功能點數(shù)UFP替換即可,具體可看COCOMO的那本參考書)
3)LOC回火,先從FP到SLOC,再到人天。常用的功能點與編程語言代碼行的轉(zhuǎn)換如表所示:
語言 SLOC/FP
Ada95 53.33
COBOL 106.67
C 128
C++ 64
VB 32
Java 50
好了,大致先總結(jié)這些。碼字好辛苦。有錯誤,請指正。歡迎交流