朱明英,姚文勝,朱海云,邢豫
(中國電信股份有限公司廣東研究院,廣州510630)
軟件開發(fā)項目工作量評估方法的研究和應用探討
朱明英,姚文勝,朱海云,邢豫
(中國電信股份有限公司廣東研究院,廣州510630)
通過對軟件開發(fā)項目工作量評估方法的研究,結合目前電信IT支撐系統(tǒng)軟件開發(fā)項目的特點分析,給出在電信IT支撐系統(tǒng)中使用軟件工作量評估方法的建議,并在實際工作中進行應用。
軟件工作量評估;經(jīng)驗法;模型法
在軟件項目的開發(fā)和采購中,對軟件項目的規(guī)模、工作量、進度、成本等要素的準確估算以及對估算結果的風險評估,對軟件開發(fā)組織有著非常重要的意義。軟件估計主要包括規(guī)模估計、工作量估計、成本估計。規(guī)模估計是工作量估計的基礎,工作量估計的結果是成本估計的基礎。軟件工作量除了依賴軟件規(guī)模的估計,同時與開發(fā)單位的軟件開發(fā)生產(chǎn)率密切相關。完成了工作量估計,軟件成本的估計就相對比較容易,從而保證軟件投資的準確性,達到精益管理的目的。
目前,國際上已有許多軟件規(guī)模估計方法,大致可以分為兩類:經(jīng)驗法和模型法。經(jīng)驗法主要依賴于專家的經(jīng)驗判斷,再借助工具整理計算;模型法則是使用算術模型和輸入?yún)?shù)通過計算得到。
經(jīng)驗法和模型法又可根據(jù)使用的分析方法不同再進行區(qū)分。
1.1 經(jīng)驗法
經(jīng)驗法是基于專家判斷的評估技術,由專家根據(jù)經(jīng)驗預估軟件規(guī)模后,按一定的方法對預估規(guī)模進行整理計算后得到軟件規(guī)模。經(jīng)驗法根據(jù)對專家預估后軟件規(guī)模的分析方法的差異,可以分為類比法,Pert Sizing法和Delphi法。
(1)類比法
類比法適合評估一些與歷史項目在應用領域、環(huán)境和復雜度的相似的項目,通過新項目與歷史項目的比較得到估計數(shù)據(jù)。
類比法的基本步驟是:
①整理出項目功能列表和實現(xiàn)每個功能的工作量;
②標識出每個功能列表與歷史項目的相同點和不同點,特別要注意歷史項目做得不夠的地方;
③通過步驟①和②得出各個功能的估計值;
④產(chǎn)生規(guī)模估計。
由于類比法估計結果的精確度取決于歷史項目數(shù)據(jù)的完整性和準確度,因此,用好類比法的前提條件之一是組織建立起較好的項目后評價與分析機制,對歷史項目的數(shù)據(jù)分析是可信賴的。
(2)Pert Sizing法
Pert Sizing法主要依賴于專家的經(jīng)驗。是一種加權平均法,根據(jù)多位專家單獨對工作任務的最好的、可能的、最壞的三種情況的估計值進行加權平均得到軟件工作量的計算方法。
Pert Sizing法的基本步驟是:
①由專家對軟件規(guī)模進行評估,評估的結果應包括最好的估計(a),可能的估計(b),最壞情況下的估計(c)。
②對多個專家評估的結果進行算術平均。
③以多個專家的算術平均值為輸入,使用Pert公式進行計算,計算得到的預期規(guī)模是E,標準偏差是SD。規(guī)模就在(E-SD)和(E+SD)之間。計算公式如下:
E=(a+4b+c)÷6 SD=(c-a)÷6(3)Delphi法
Delphi法也是一種專家評估技術,通過組成專家組對項目進行估計,以及對估計結果的反饋來獲得較為客觀的估算。
Delphi法的基本步驟是:
①準備估計內(nèi)容,
②成立專家組。專家組一般由3-6名有業(yè)務與技術經(jīng)驗,熟悉被估計的內(nèi)容的專家組成。
③召開估計說明會。向專家介紹估計的內(nèi)容,對被估計的內(nèi)容進行充分的討論和完善,對估計結果的度量單位,估計結果的差異率計算方法和接受準則,估計結束的準則等達成一致。
④專家獨立評估。各專家根據(jù)自己的經(jīng)驗估計,專家之間沒有討論和咨詢
⑤匯總估計結果。收集各專家的估計結果,制作本輪的估計結果表,計算差異率,評估估計結果。對較大的估計差異進行討論。
⑥得到最終估計。對最后匯總的估計結果進行審核,并對結果達成一致,提出改進措施,以使將來的估計活動更加有效。
1.2 模型法
模型法是用一個公式來表達軟件工作量和一個或多個項目特征(成本驅動因子)之間的關系,是一個參數(shù)化的模型,使用系統(tǒng)規(guī)模作為估算過程的關鍵輸入。根據(jù)模型的不同,主要可以分為功能點法和COCOMII模型法。
(1)功能點法
功能點法(FPA)最早由IBM公司的工程師A.J.Albrecht于1979年提出,站在用戶的視角,基于用戶需求來度量軟件規(guī)模的一種方法。隨著各國研究者的不斷研究細化又有許多具體的方法,如國際功能點用戶協(xié)會(IFPUG,The International Function Point UsersGroup)提出的IFPUG方法、英國軟件度量協(xié)會(UKSMA,U-nited Kingdom Software Metrics Association)提出的Mk IIFPA方法、荷蘭功能點用戶協(xié)會(NEFPUG,Netherlands Function Point Users Group)提出的NESMA方法以及軟件度量共同協(xié)會(COSMIC,the COmmon Software Metrics Consortium)提出的COSMIC-FFP方法,這些方法都屬于Albrecht功能點(Function Point)方法的發(fā)展和細化。
功能點發(fā)的基本步驟是:
①根據(jù)需求確定信息域,并確定各信息域的類型。
②計算各個信息域的DET、RET/FTR數(shù)目。DET是指ILF/EIF中唯一的標識字段;RET是指ILF/EIF中DET的集合,通常在一起被Update的DET集合就做為一個RET;FTR是為了完成EI/EO/EQ而被訪問的ILF/ EIF,一個ILF/EIF不管被EI/EQ/EQ訪問了多少次都記為一個FTR。
③根據(jù)各信息域的類型和RET/FTR、DET的數(shù)目以及復雜性參照表確定各信息域的復雜性。
④根據(jù)各信息域的復雜性、各信息域的加權計數(shù)計算未調整功能點(UFP)。
⑤決定系統(tǒng)復雜度調整因子(VAF)。調整因子由14個通用系統(tǒng)特征(GSCs)構成。每個特征都有對應的描述以幫助確定該特征的影響程度。
⑥計算系統(tǒng)功能點(FP)。計算功能點一般使用如下關系式:
FP=UFP×VAF
(2)COCOMII模型法
COCOMOII(COnstructive COst Model,構造性的成本模型)模型是目前世界應用范圍最為廣泛的成本估算模型,1981年BarryW.Boehm提出原始的模型COCOMO,現(xiàn)發(fā)展為COCOMOII。
與多數(shù)軟件成本模型一樣,COCOMOII軟件成本估算模型能被抽象為5個基本參數(shù)的函數(shù),這5個基本參數(shù)是規(guī)模、過程、人員、環(huán)境和所要求的質量。
COCOMII模型法通過用一個以已估算出來的原代碼行數(shù)(LOC)為自變量的經(jīng)驗函數(shù)計算軟件開發(fā)規(guī)模,再用涉及產(chǎn)品、硬件、人員、項目、軟件工程中每一步驟(如分析、設計)等方面的影響因素調整工作量的估算。
在電信的IT支撐系統(tǒng)進行工作量估計時,根據(jù)電信IT支撐系統(tǒng)的情況,可以采用經(jīng)驗法和功能點法相結合的方式來進行。
整個評估流程包括三個環(huán)節(jié):(1)業(yè)務需求轉化為功能數(shù)(2)功能數(shù)得到代碼行(3)代碼行計算出工作量??梢杂萌缦聢D來表示。
圖1
2.1 業(yè)務需求轉化為功能數(shù)
業(yè)務需求轉化為功能數(shù),可以考慮以經(jīng)驗法為主的方式來獲得。具體步驟是:
(1)組成專家評估小組
(2)專家對業(yè)務需求進行分析,形成功能數(shù)。在形成功能數(shù)時,可根據(jù)項目的復雜性,是否有可參照歷史項目等因素,采取類比法或功能點法來進行估計。
(3)對專家評估結果進行整理匯總,得到業(yè)務需求對應的功能數(shù)。
2.2 功能數(shù)轉化為代碼行
功能數(shù)轉化為代碼行,可以考慮以模型法為主的方式來獲得。鑒于COCOMII模型的復雜性,在實際評估時,采用了功能點法的計算方法。
(1)將功能數(shù)轉換為功能點:根據(jù)功能復雜性和功能數(shù),按照功能點法的實現(xiàn)步驟,計算生成功能點;
(2)將功能點轉換為代碼行:采用業(yè)界通用的公式進行轉換,即功能點對應各種語言的代碼行數(shù),計算出代碼行的數(shù)量。
2.3 代碼行計算出工作量
由代碼行和供應商生產(chǎn)率計算生成工作量??赏ㄟ^對歷史項目的分析,來得到供應商生產(chǎn)率。
本文通過對業(yè)務主流軟件估計方法的研究,結合目前電信IT支撐系統(tǒng)的特點,通過將類比法、功能點法相結合的方式,在電信IT支撐系統(tǒng)的軟件評估中進行了實際應用,取得了良好的效果,為建立電信IT支撐系統(tǒng)的工作量評估體系提供了借鑒意義。
[1]劉存.基于FPA的軟件工作量估算研究與實踐,2011.
[2]Jones Capes.Applied Software Measurement:Global Analysis of Productivity and Quality,2008
[3]付雅芳等.基于灰色關聯(lián)分析的軟件工作量估算方法.系統(tǒng)工程與電子技術,2012.
[4]解浪,楊葉.一種軟件工作量估算的不確定性度量方法.計算機工程,2012.
[5]周漢兵,關昕,馬力.功能點度量在軟件開發(fā)中的應用.計算機工程與設計,2006(03).
Research and App lication ofWorkload Evaluation Method for Software Development Project
ZHU Ming-ying,YAOWen-sheng,ZHU Hai-yun,XING Yu
(Guangdong Research Institute of China Telecom Corporation Ltd.,Guangzhou 510630)
Based on the research on the workload evaluationmethod of software development projects,combined with the analysis of the characteristics of business support system software development project,gives a suggestion for using workload evaluationmethod in telecom business support system,which is applied in practicalwork.
Workload Evaluation of Software;Experience Method;ModelMethod
1007-1423(2017)03-0061-04
10.3969/j.issn.1007-1423.2017.03.016
朱明英(1972-),女,湖南人,博士研究生,高級工程師,研究方向為IT系統(tǒng)架構設計、大數(shù)據(jù)研究分析等工作
姚文勝(1969-),男,湖北人,碩士研究生,高級工程師,研究方向為云計算技術及信息化規(guī)劃
朱海云(1977-),女,廣東人,碩士研究生,工程師,研究方向為電信支撐系統(tǒng)、計算機應用等研究
邢豫(1974-),男,河南淅川人,碩士研究生,高級工程師,從事領域為中國電信IT架構互聯(lián)網(wǎng)化、大數(shù)據(jù)分析等研究工作
2016-11-22
2017-01-12