摘 要: 對(duì)傳統(tǒng)的WideBand Delphi估計(jì)法、功能點(diǎn)法和類比法進(jìn)行了分析、比較,提出了一種改進(jìn)的成本估算方法。該方法以WideBand Delphi估計(jì)法為原型,在專家估計(jì)過(guò)程中,將功能點(diǎn)法和類比法融入其中,有效規(guī)避了WideBand Delphi估計(jì)法過(guò)于依賴專家經(jīng)驗(yàn)的不足,并通過(guò)類比擴(kuò)展了功能點(diǎn)法所局限的應(yīng)用領(lǐng)域,既保證了估計(jì)方法的科學(xué)性,又保證了估計(jì)結(jié)果的準(zhǔn)確性。實(shí)際估算數(shù)據(jù)的比較表明,改進(jìn)后的估算方法具有更高的精確度。
關(guān)鍵詞: WideBand Delphi; COSMIC; 類比; 成本估算
中圖分類號(hào): TN964?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)22?0069?04
軟件成本估算一直是項(xiàng)目管理的一個(gè)薄弱環(huán)節(jié),如果沒(méi)有精確的成本估算,就有可能造成進(jìn)度延期、預(yù)算超支和質(zhì)量缺陷等問(wèn)題,進(jìn)行精確高效的軟件成本估算是項(xiàng)目管理必不可少的組成部分。WideBand Delphi估計(jì)法、功能點(diǎn)法和類比法等是項(xiàng)目管理中常用的幾種成本估算方法,在工程項(xiàng)目中應(yīng)用十分廣泛,但各種方法都有其固有的缺陷和不足。在軟件項(xiàng)目估計(jì)時(shí)對(duì)各類估計(jì)方法進(jìn)行改進(jìn),發(fā)揮優(yōu)勢(shì)、規(guī)避不足成為軟件成本估算的一種趨勢(shì)。文獻(xiàn)[1]以Delphi估計(jì)法為原型,在專家估計(jì)過(guò)程中,將PERT法和類比法融入其中,從而形成一種新的模型估算體系。文獻(xiàn)[2]提出了一種利用估計(jì)項(xiàng)目與歷史項(xiàng)目之間類比度進(jìn)行軟件規(guī)模估計(jì)的改進(jìn)FPA 方法。文獻(xiàn)[3]在類比估算4個(gè)基本步驟的框架下,詳細(xì)說(shuō)明了類比估算所必須進(jìn)行的相關(guān)操作,并根據(jù)估算實(shí)踐,提出了針對(duì)大數(shù)據(jù)集的計(jì)算優(yōu)化方法。文獻(xiàn)[4]提煉出一種綜合功能點(diǎn)估算方法和COCOM0Ⅱ模型的新型估算方法。上述這些估算方法的綜合及改進(jìn),有效規(guī)避了采用單一估算方法的不足,大大提高了估算的精確度。
本文在對(duì)WideBand Delphi估計(jì)法、功能點(diǎn)法和類比法進(jìn)行分析、比較的基礎(chǔ)上,綜合了3種方法的優(yōu)點(diǎn),形成了一種改進(jìn)的、多方法融合的成本估算方法,即MMCE方法。該方法以WideBand Delphi估計(jì)法為原型,在專家估計(jì)過(guò)程中,將功能點(diǎn)法和類比法融入其中,有效規(guī)避了WideBand Delphi估計(jì)法過(guò)于依賴專家經(jīng)驗(yàn)的不足;并且,由于有可類比的歷史數(shù)據(jù)作支持,MMCE方法能夠擴(kuò)展功能點(diǎn)法所局限的應(yīng)用領(lǐng)域,同時(shí),估計(jì)的結(jié)果也更容易為用戶所接受。本文介紹了采用MMCE方法進(jìn)行估算的具體步驟,并通過(guò)應(yīng)用實(shí)例進(jìn)行了說(shuō)明,最后對(duì)WideBand Delphi估計(jì)法、功能點(diǎn)法、類比法和MMCE方法的估算結(jié)果做了比較。
1 軟件成本估算方法簡(jiǎn)介
軟件成本估算方法是進(jìn)行成本估算的核心,選擇合適的方法對(duì)項(xiàng)目的成本估算尤為重要。下面對(duì)常用的幾種估算方法:WideBand Delphi估計(jì)法、COSMIC功能點(diǎn)法和類比估計(jì)法作簡(jiǎn)要介紹。
1.1 WideBand Delphi估計(jì)法
WideBand Delphi估計(jì)法屬于主觀方法中的專家判定法,它是將小組會(huì)議和Delphi技術(shù)結(jié)合起來(lái)提出的一種方法,該方法鼓勵(lì)參加估計(jì)的人員之間就相關(guān)問(wèn)題進(jìn)行討論,能夠充分發(fā)揮集體的力量,使估計(jì)的結(jié)果更切合實(shí)際。利用Wideband Delphi方法進(jìn)行估計(jì)的步驟如下:
步驟1:為每位估計(jì)人員發(fā)放估計(jì)所需相關(guān)材料和估計(jì)表格,表格模板可參考表1;
步驟2:估計(jì)人員開會(huì)討論待估量估計(jì)假定和理由等,并能夠達(dá)成一致意見(jiàn);
步驟3:估計(jì)人員以不記名的方式填寫估計(jì)表格,確保填寫過(guò)程“背靠背”;
步驟4:估計(jì)負(fù)責(zé)人匯總結(jié)果,按照表1中Wideband Delphi綜合估計(jì)表中的計(jì)算方法計(jì)算,并將結(jié)果返回給各個(gè)估計(jì)人員;
步驟5:偏差若小于30%,就不需要再進(jìn)行估計(jì);否則,估計(jì)人員召開小組會(huì)議討論上次的匯總結(jié)果,然后修改個(gè)人估計(jì)。重復(fù)進(jìn)行活動(dòng)步驟3和步驟4,直到各個(gè)估計(jì)人員的估計(jì)逐漸接近并達(dá)到一個(gè)可接受的范圍(建議偏差可接受范圍設(shè)置為30%)。
1.2 COSMIC功能點(diǎn)法
COSMIC功能點(diǎn)法是第二代功能點(diǎn)分析方法,適用于以數(shù)據(jù)處理為主的商務(wù)應(yīng)用軟件或者實(shí)時(shí)軟件,以及兼有以上兩種特點(diǎn)的軟件;但對(duì)于專家系統(tǒng)、模擬系統(tǒng)、天氣預(yù)報(bào)系統(tǒng)等擁有特別復(fù)雜數(shù)學(xué)算法、規(guī)則的軟件等并不適用[5]。COSMIC功能點(diǎn)法的計(jì)算過(guò)程如下:
(1)識(shí)別軟件層次。識(shí)別層次的目的是為了識(shí)別被度量軟件的邊界,清晰地定義被度量軟件的范圍。
(2)識(shí)別軟件邊界。邊界定義為被研究的軟件與其用戶之間的概念性接口,用戶既包括系統(tǒng)的使用人員,也包括其他軟件或者硬件系統(tǒng)。
(3)識(shí)別功能處理。一個(gè)功能處理是用戶功能需求集合的一個(gè)基本部件,包括一組唯一的、內(nèi)聚的、可獨(dú)立執(zhí)行的數(shù)據(jù)移動(dòng)。
(4)識(shí)別數(shù)據(jù)組。一個(gè)數(shù)據(jù)組包含的每個(gè)數(shù)據(jù)屬性描述了感興趣的同一個(gè)對(duì)象的一個(gè)互補(bǔ)的側(cè)面。一個(gè)數(shù)據(jù)組可以是永久存儲(chǔ)的也可以是短期存儲(chǔ)的數(shù)據(jù),它必須在系統(tǒng)中被具體化。
(5)識(shí)別數(shù)據(jù)屬性。一個(gè)數(shù)據(jù)屬性是已識(shí)別的數(shù)據(jù)組中最小的信息包,識(shí)別數(shù)據(jù)屬性并非是必須的活動(dòng)。COSMIC?FFP中基本的功能度量單位是一次數(shù)據(jù)移動(dòng),數(shù)據(jù)移動(dòng)的對(duì)象是數(shù)據(jù)組,數(shù)據(jù)組是數(shù)據(jù)屬性的集合。
(6)識(shí)別數(shù)據(jù)移動(dòng),計(jì)算并匯總
COSMIC功能點(diǎn)法就是一個(gè)計(jì)算數(shù)據(jù)移動(dòng)的過(guò)程。每一個(gè)有效的數(shù)據(jù)移動(dòng)都被看成一個(gè) COSMIC功能的規(guī)模大小單位,為每一個(gè)功能過(guò)程找到其所有的數(shù)據(jù)移動(dòng)之后,將它們累加在一起就是這個(gè)功能過(guò)程的軟件大小,可以表示為:
[SizeFPi=Size數(shù)據(jù)入i+Size數(shù)據(jù)出i+ Size讀i+Size寫i]
將所有功能過(guò)程的大小數(shù)值累計(jì)就可以得到整個(gè)軟件程序的規(guī)模大?。?/p>
[SizeSoftware=SizeFPi]
通過(guò)該度量方法,可將一個(gè)十分復(fù)雜的軟件系統(tǒng)最終轉(zhuǎn)換成一些具體的數(shù)值,以表示軟件實(shí)際規(guī)模大小。
1.3 類比估計(jì)法
類比估計(jì)法就是把當(dāng)前項(xiàng)目和以前做過(guò)的類似項(xiàng)目比較,通過(guò)比較獲得其成本的估算值。該方法需要項(xiàng)目組保留以前完成項(xiàng)目的歷史記錄。類比估計(jì)既可以在整個(gè)項(xiàng)目級(jí)上進(jìn)行,也可以在子系統(tǒng)級(jí)上進(jìn)行。應(yīng)用類比法的前提是確定比較因子,即提取項(xiàng)目的特性因子,以此作為相似項(xiàng)目比較的基礎(chǔ)。類比估計(jì)法的基本步驟是:
步驟1:整理出項(xiàng)目比較因子。比較因子需結(jié)合軟件開發(fā)項(xiàng)目組和軟件開發(fā)項(xiàng)目的特點(diǎn),由項(xiàng)目組研究確定。常見(jiàn)的比較因子有軟件開發(fā)方法、功能需求文檔數(shù)及接口數(shù)等,具體使用時(shí)需結(jié)合項(xiàng)目特點(diǎn)而定;
步驟2:標(biāo)識(shí)出每個(gè)比較因子與歷史項(xiàng)目的相同點(diǎn)和不同點(diǎn),特別要注意歷史項(xiàng)目做得不夠的地方;
步驟3:計(jì)算各個(gè)任務(wù)或工作產(chǎn)品的估計(jì)值。
計(jì)算方法如下:某任務(wù)或工作產(chǎn)品的估計(jì)結(jié)果 = 類比任務(wù)值 × 調(diào)整系數(shù)。
確定調(diào)整系數(shù)時(shí),不能一個(gè)人說(shuō)了算,一般采用WideBand Delphi,也可由項(xiàng)目組討論決定。
步驟4:合計(jì)得出系統(tǒng)總的估計(jì)值。
例如:當(dāng)前系統(tǒng)與XXX系統(tǒng)類似,XXX系統(tǒng)規(guī)模是2 000代碼行,當(dāng)前系統(tǒng)比XXX系統(tǒng)增加了約20%的功能,設(shè)置調(diào)整系數(shù)為1.2。當(dāng)前系統(tǒng)規(guī)模估計(jì)結(jié)果為2 400(2 000×1.2)代碼行。
2 多方法融合的MMCE估算方法
在現(xiàn)代項(xiàng)目管理中,WideBand Delphi估計(jì)法、功能點(diǎn)法和類比法都得到了廣泛的應(yīng)用,每種方法又都有其優(yōu)勢(shì)和不足[6](如表2所示)。
WideBand Delphi估計(jì)法過(guò)于依賴專家估算,主觀成分比較大;功能點(diǎn)法的應(yīng)用領(lǐng)域有局限性,主要應(yīng)用于商務(wù)應(yīng)用軟件或者實(shí)時(shí)軟件;類比法的調(diào)整系數(shù)不好確定,另外,該方法對(duì)采用新技術(shù)的項(xiàng)目不適用。一般情況下,在有歷史數(shù)據(jù)的情況下使用類比法較多,在沒(méi)有歷史數(shù)據(jù)的情況下使用功能點(diǎn)法、Delphi法或其他估計(jì)方法較多。針對(duì)有類似項(xiàng)目歷史數(shù)據(jù)支持的系統(tǒng)提出了一種集WideBand Delphi估計(jì)法、類比法和功能點(diǎn)法的優(yōu)點(diǎn)于一體的MMCE估算方法,該方法以WideBand Delphi估計(jì)法為原型,在專家估計(jì)過(guò)程中,融入功能點(diǎn)法和類比法,有效規(guī)避了過(guò)于依賴專家主觀意見(jiàn)、類比調(diào)整系數(shù)不好確定等不足,提高了估計(jì)結(jié)果的準(zhǔn)確性。MMCE估算方法的基本原理就是以Delphi法為原型,將類比法和功能點(diǎn)法融入其中所形成的一種估計(jì)模型,在Delphi法的框架中,每個(gè)專家同時(shí)使用類比和功能點(diǎn)法兩種方法進(jìn)行估計(jì),如圖1所示。
具體步驟如下:
步驟1:活動(dòng)負(fù)責(zé)人在本組織以前所做的歷史項(xiàng)目中,選擇相似的歷史項(xiàng)目作為本次成本估計(jì)的參考數(shù)據(jù)。
步驟2:首先要組建評(píng)估組,評(píng)估組成員要求對(duì)該領(lǐng)域非常熟悉。估計(jì)人員開會(huì)討論系統(tǒng)功能等。為每位估計(jì)人員發(fā)放估計(jì)所需相關(guān)材料和估計(jì)表格,表格模板可參考表1。
步驟3:估計(jì)人員采用類比估計(jì)法對(duì)COSMIC功能點(diǎn)法的數(shù)據(jù)入、數(shù)據(jù)出、讀、寫的功能點(diǎn)數(shù)進(jìn)行估計(jì),并根據(jù)單位功能點(diǎn)成本估計(jì)總成本。
步驟4:估計(jì)人員根據(jù)歷史項(xiàng)目確定調(diào)整因子[VAF]。
確定方法:
步驟5:估計(jì)人員根據(jù)[VAF]對(duì)總成本進(jìn)行調(diào)整;
[調(diào)整后的項(xiàng)目成本預(yù)計(jì)=項(xiàng)目成本預(yù)計(jì)×VAF]
步驟6:項(xiàng)目負(fù)責(zé)人匯總結(jié)果,按照表2中Wideband Delphi綜合估計(jì)表中的計(jì)算方法計(jì)算,并將結(jié)果返回給各個(gè)估計(jì)人員;
步驟7:偏差若小于30%,就不需要再進(jìn)行估計(jì);否則,估計(jì)人員召開小組會(huì)議討論上次的匯總結(jié)果,然后修改個(gè)人估計(jì)。重復(fù)進(jìn)行活動(dòng)步驟3和步驟4,直到各個(gè)估計(jì)人員的估計(jì)逐漸接近達(dá)到一個(gè)可接受的范圍(建議偏差可接受范圍設(shè)置為30%)。
3 應(yīng)用實(shí)例
以某信息交換軟件為例給出采用MMCE估計(jì)方法的應(yīng)用實(shí)例。該軟件的功能組成分為以下幾個(gè)功能模塊:數(shù)據(jù)輸入功能、數(shù)據(jù)輸出功能、數(shù)據(jù)處理功能。估計(jì)時(shí)選取了一個(gè)類似的歷史項(xiàng)目,歷史項(xiàng)目實(shí)際成本為52.5萬(wàn)元,預(yù)計(jì)成本為57.3萬(wàn)元,得出調(diào)整因子[VAF]為0.916。考慮與歷史項(xiàng)目的比較,根據(jù)WideBand Delphi估計(jì)法經(jīng)過(guò)2輪估計(jì)得出數(shù)據(jù)入、數(shù)據(jù)出、讀、寫的功能點(diǎn)數(shù),具體數(shù)據(jù)如表3所示。
[調(diào)整后的項(xiàng)目成本預(yù)計(jì)=(35+155+16+28)× 3 000×0.916=643 032 元]
采用WideBand Delphi估計(jì)法、COSMIC功能點(diǎn)法、類比法和MMCE估計(jì)法進(jìn)行估計(jì)時(shí)估計(jì)結(jié)果的比較如表4所示。結(jié)果表明MMCE估計(jì)方法比其他方法具有更高的精確度。
4 結(jié) 論
本文提出的MMCE估算方法綜合了WideBand Delphi估計(jì)法、功能點(diǎn)法和類比法的優(yōu)點(diǎn),彌補(bǔ)了它們各自的不足,因而能在一定程度上提高軟件成本估算的精確度,具有較高的使用和推廣價(jià)值。但是,該方法并不適用所有的項(xiàng)目,使用該方法進(jìn)行估算要有一個(gè)內(nèi)容豐富、準(zhǔn)確、可靠的軟件過(guò)程數(shù)據(jù)庫(kù),準(zhǔn)確記錄類比項(xiàng)目的成本估算信息,例如:采用的估算方法、估算數(shù)據(jù)、預(yù)計(jì)成本、實(shí)際成本等,如果類比項(xiàng)目成本估算時(shí)也采用了COSMIC功能點(diǎn)法,估算的精確度會(huì)更高一些。
參考文獻(xiàn)
[1] 張俊光.基于三法融合的軟件項(xiàng)目進(jìn)度估計(jì)方法研究[J].軟科學(xué)研究成果與動(dòng)態(tài),2009(1):175?181.
[2] 張曉豐,郭建勝,張鳳鳴.基于特征類比的改進(jìn)功能點(diǎn)分析法[J].微電子學(xué)與計(jì)算機(jī),2006(23):85?90.
[3] 曹冬生,王強(qiáng)軍,張?jiān)遥?基于類比的軟件成本估算及其一種改進(jìn)方法[J].計(jì)算機(jī)工程與科學(xué),2009(11):102?106.
[4] 田永青.軟件成本估算方法的研究與改進(jìn)[J].電腦知識(shí)與技術(shù),2008(4):2677?2679.
[5] 王昕渝.COSMIC功能點(diǎn)方法研究及應(yīng)用[D].西安:西北大學(xué),2008.
[6] 李文艷.軟件成本估算技術(shù)比較及趨勢(shì)分析[J].計(jì)算機(jī)與現(xiàn)代化,2009(8):26?28.