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