黃李昊 /中國(guó)航天科技集團(tuán)有限公司
王龍 /北京神舟航天軟件技術(shù)股份有限公司
殷艷艷 /北京師范大學(xué)-香港浸會(huì)大學(xué)聯(lián)合國(guó)際學(xué)院
劉振博 /航天工程咨詢(北京)有限公司
當(dāng)前,國(guó)家加快構(gòu)建新發(fā)展格局,大力推進(jìn)現(xiàn)代化產(chǎn)業(yè)體系建設(shè),特別是網(wǎng)絡(luò)強(qiáng)國(guó)和數(shù)字中國(guó)建設(shè)。各大國(guó)有企業(yè)面對(duì)新形勢(shì)、新機(jī)遇、新挑戰(zhàn),積極開(kāi)展信息化建設(shè),為企業(yè)發(fā)展提供充足且有效的信息技術(shù)服務(wù)和支撐。軟件項(xiàng)目在信息化建設(shè)中占有相當(dāng)大比重,但當(dāng)前企業(yè)普遍存在無(wú)法準(zhǔn)確評(píng)估軟件造價(jià)的問(wèn)題,軟件項(xiàng)目的工期、成本難以預(yù)測(cè),工作量的合理性難以衡量。因此,如何進(jìn)行軟件項(xiàng)目的量化造價(jià)評(píng)估成為一個(gè)亟待解決的問(wèn)題。
經(jīng)調(diào)研,國(guó)內(nèi)軟件造價(jià)評(píng)估相關(guān)的國(guó)家標(biāo)準(zhǔn)GB/T 36964—2018《軟件工程 軟件開(kāi)發(fā)成本度量規(guī)范》、北京市地方標(biāo)準(zhǔn)DB11/T 1010—2019《信息化項(xiàng)目軟件開(kāi)發(fā)費(fèi)用測(cè)算規(guī)范》、中國(guó)計(jì)算機(jī)用戶協(xié)會(huì)團(tuán)體標(biāo)準(zhǔn)T/CCUA 005—2023《軟件造價(jià)評(píng)估實(shí)施規(guī)程》、北京軟件造價(jià)聯(lián)盟團(tuán)體標(biāo)準(zhǔn)T/BSCEA 002—2023《軟件造價(jià)評(píng)估實(shí)施規(guī)程》等標(biāo)準(zhǔn)主要基于功能點(diǎn)法和工時(shí)法兩種軟件造價(jià)評(píng)估方法,這兩種方法也是目前行業(yè)里比較常用的軟件造價(jià)費(fèi)用估算方法。
功能點(diǎn)法適用于立項(xiàng)階段需求分析比較詳細(xì)的項(xiàng)目或者用于項(xiàng)目完成階段的最終工作量估算。對(duì)于具備功能點(diǎn)法估算條件的項(xiàng)目,估算方法應(yīng)選用功能點(diǎn)法;對(duì)于不具備功能點(diǎn)法估算條件的項(xiàng)目,即當(dāng)項(xiàng)目需求模糊或不確定時(shí),可采用工時(shí)法,基于以往經(jīng)驗(yàn)進(jìn)行類比或類推,粗略估算工作量和成本。
功能點(diǎn)是軟件規(guī)模度量的單位,通過(guò)測(cè)算功能點(diǎn)規(guī)模即可評(píng)估軟件規(guī)模。國(guó)際商業(yè)機(jī)器公司(IBM)的工程師Allan Albrecht 認(rèn)為衡量軟件造價(jià)的核心在于衡量軟件復(fù)雜程度,并于1979 年提出了功能點(diǎn)法,根據(jù)軟件執(zhí)行功能的數(shù)量和復(fù)雜程度進(jìn)行造價(jià)評(píng)估,不再根據(jù)軟件源代碼行數(shù)進(jìn)行簡(jiǎn)單估算。
功能點(diǎn)是軟件規(guī)模度量的單位,通過(guò)測(cè)算功能點(diǎn)規(guī)模即可評(píng)估軟件規(guī)模。國(guó)際商業(yè)機(jī)器公司(IBM)的工程師Allan Albrecht 認(rèn)為衡量軟件造價(jià)的核心在于衡量軟件復(fù)雜程度,并于1979 年提出了功能點(diǎn)法,根據(jù)軟件執(zhí)行功能的數(shù)量和復(fù)雜程度進(jìn)行造價(jià)評(píng)估,不再根據(jù)軟件源代碼行數(shù)進(jìn)行簡(jiǎn)單估算。
功能點(diǎn)法具有從用戶視角進(jìn)行軟件規(guī)模度量、定義明確、合理性和準(zhǔn)確度高、可重復(fù)、可驗(yàn)算等特點(diǎn),因此功能點(diǎn)法是目前國(guó)際上軟件行業(yè)普遍接受的軟件項(xiàng)目規(guī)模度量模型。目前國(guó)際通用的功能點(diǎn)標(biāo)準(zhǔn)方法有IFPUG、COSMIC、MARK II、NESMA 和FiSMA 等5 種,上述5 種方法適用范圍有所不同,比較情況見(jiàn)表1。經(jīng)對(duì)比,IFPUG 和NESMA 兩種方法各方面特性較為均衡,易學(xué)易用、快速經(jīng)濟(jì),因此在國(guó)際和國(guó)內(nèi)應(yīng)用較廣。
表1 功能點(diǎn)法比較情況表
工時(shí)法通常根據(jù)軟件開(kāi)發(fā)商的開(kāi)發(fā)實(shí)力和過(guò)往經(jīng)驗(yàn),參考類似項(xiàng)目的數(shù)據(jù),采用類比法或?qū)<曳?,判斷每個(gè)需求點(diǎn)需要多少工時(shí)可以完成,通常由資深的項(xiàng)目經(jīng)理或銷售經(jīng)理評(píng)估確定。
工時(shí)法尤其適用于需求極其模糊或不確定的情況,可以根據(jù)與項(xiàng)目類似屬性(如規(guī)模、應(yīng)用類型、復(fù)雜度、開(kāi)發(fā)團(tuán)隊(duì)經(jīng)驗(yàn)等)的一組基準(zhǔn)數(shù)據(jù),在整個(gè)項(xiàng)目級(jí)進(jìn)行類比分析,也可在子系統(tǒng)級(jí)上進(jìn)行類比分析。
工時(shí)法的優(yōu)點(diǎn)是操作比較簡(jiǎn)單,計(jì)算速度快,客戶容易理解,但準(zhǔn)確度較低,對(duì)評(píng)估專家或項(xiàng)目經(jīng)理的要求較高。
功能點(diǎn)法和工時(shí)法對(duì)比情況見(jiàn)表2。
表2 功能點(diǎn)法和工時(shí)法對(duì)比表
綜上所述,功能點(diǎn)法具有覆蓋軟件類別全面、評(píng)估準(zhǔn)確度較高、合理性較高等顯著優(yōu)點(diǎn),是國(guó)家標(biāo)準(zhǔn)、團(tuán)體標(biāo)準(zhǔn)中的首選軟件規(guī)模評(píng)估方法。
考慮某國(guó)企經(jīng)營(yíng)管理信息系統(tǒng)的實(shí)際業(yè)務(wù)場(chǎng)景,此類應(yīng)用系統(tǒng)通常具有容易分解的功能點(diǎn),項(xiàng)目需求清晰明確,適合選用功能點(diǎn)法進(jìn)行軟件造價(jià)估算;該國(guó)企的軟件造價(jià)費(fèi)用不僅包含通常認(rèn)為的軟件開(kāi)發(fā)費(fèi)用,還包括軟件實(shí)施費(fèi)用。
本文針對(duì)企業(yè)經(jīng)營(yíng)管理信息系統(tǒng)需求,考慮功能點(diǎn)法中NESMA 方法各項(xiàng)性能較為均衡且尤其適用于在項(xiàng)目早期進(jìn)行估算的特性,以NESMA 方法為基礎(chǔ)提出了改進(jìn)功能點(diǎn)法。改進(jìn)功能點(diǎn)法將國(guó)家標(biāo)準(zhǔn)GB/T36964—2018《軟件工程軟件開(kāi)發(fā)成本度量規(guī)范》中的功能點(diǎn)法進(jìn)行適當(dāng)改進(jìn),且增加了軟件實(shí)施費(fèi)用項(xiàng),用于軟件造價(jià)評(píng)估。
改進(jìn)功能點(diǎn)法具有操作便捷、針對(duì)性強(qiáng)等特點(diǎn),兼顧了該國(guó)企軟件造價(jià)費(fèi)用包含軟件實(shí)施費(fèi)用的業(yè)務(wù)實(shí)踐。與國(guó)家標(biāo)準(zhǔn)GB/T36964—2018《軟件工程 軟件開(kāi)發(fā)成本度量規(guī)范》中規(guī)定的功能點(diǎn)法相比,改進(jìn)功能點(diǎn)法在部分方面產(chǎn)生了變化,見(jiàn)表3。
表3 改進(jìn)功能點(diǎn)法與GB/T 36964—2018標(biāo)準(zhǔn)功能點(diǎn)法對(duì)比情況表
改進(jìn)功能點(diǎn)法的操作步驟如下。
規(guī)模測(cè)算的主要流程是:采用功能點(diǎn)初步度量軟件規(guī)模,獲得軟件規(guī)模功能點(diǎn)數(shù)量值V,再根據(jù)實(shí)際情況進(jìn)行規(guī)模調(diào)整。
一般首先使用復(fù)用程度調(diào)整,通過(guò)對(duì)待實(shí)現(xiàn)功能復(fù)用情況進(jìn)行分析,識(shí)別出可復(fù)用的功能及可復(fù)用的程度,按照高、中、低進(jìn)行分檔,而后計(jì)算獲得復(fù)用調(diào)整后的功能點(diǎn)數(shù)量值s。最后進(jìn)行隱含需求及需求變更調(diào)整。
考慮到在軟件實(shí)施不同階段都可能存在需求的變更,設(shè)置軟件規(guī)模變更因子項(xiàng)k,調(diào)整后的軟件規(guī)模功能點(diǎn)數(shù)量可通過(guò)S=s×k進(jìn)行調(diào)整。軟件規(guī)模變更因子見(jiàn)表4。
表4 軟件規(guī)模變更因子參數(shù)表
依據(jù)國(guó)家標(biāo)準(zhǔn)GB/T36964—2018《軟件工程 軟件開(kāi)發(fā)成本度量規(guī)范》中推薦使用的方程法計(jì)算工作量,公式如下:
其中,AE表示計(jì)算得到的最終工作量;S表示調(diào)整后的軟件規(guī)模,即由上一個(gè)步驟得到的功能點(diǎn)數(shù)量;PDF表示功能點(diǎn)耗時(shí)率;SWF表示軟件因素調(diào)整因子;RDF表示開(kāi)發(fā)因素調(diào)整因子。PDF取值從2022 年中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)(CSBMK—202210)中全行業(yè)軟件開(kāi)發(fā)生產(chǎn)率基準(zhǔn)數(shù)據(jù)部分獲得,取值范圍為全行業(yè)軟件開(kāi)發(fā)生產(chǎn)率基準(zhǔn)數(shù)據(jù)中值P50 的±10%。
軟件調(diào)整因素SWF一般包括業(yè)務(wù)領(lǐng)域調(diào)整因子、應(yīng)用領(lǐng)域調(diào)整因子、質(zhì)量要求調(diào)整因子、完整性級(jí)別調(diào)整因子。其中,業(yè)務(wù)領(lǐng)域調(diào)整因子如表5所示,應(yīng)用領(lǐng)域調(diào)整因子、完整性級(jí)別調(diào)整因子、質(zhì)量要求調(diào)整因子分別從2022 年中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)(CSBMK—202210)附錄A.1、A.2、A.3 部分獲得。
表5 應(yīng)用類型調(diào)整因子參數(shù)表
依據(jù)上步驟得到的工作量數(shù)據(jù),可計(jì)算獲得軟件開(kāi)發(fā)費(fèi)用,計(jì)算公式如下:
其中,P表示軟件開(kāi)發(fā)費(fèi)用;AE表示測(cè)算的工作量;HM表示人月折算系數(shù),單位通常為人時(shí)每人月,取值為176;F表示平均人力成本費(fèi)率,包括開(kāi)發(fā)方直接人力成本、間接成本及毛利潤(rùn);DNC表示直接非人力成本。典型城市2022 年平均人力成本費(fèi)率和典型城市軟件開(kāi)發(fā)人月費(fèi)率變化情況均從2022 年中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)(CSBMK—202210)人月費(fèi)率部分獲得。
直接非人力成本DNC包括辦公費(fèi)、差旅費(fèi)、業(yè)務(wù)費(fèi)、采購(gòu)費(fèi)以及其他未在以上項(xiàng)目列出但確系開(kāi)發(fā)方為開(kāi)發(fā)此項(xiàng)目所需費(fèi)用。
軟件實(shí)施包括前期需求調(diào)研、功能設(shè)計(jì)、系統(tǒng)開(kāi)發(fā)、測(cè)試、安裝部署、數(shù)據(jù)初始化、用戶培訓(xùn)、技術(shù)支持、數(shù)據(jù)遷移、歷史數(shù)據(jù)導(dǎo)入、數(shù)據(jù)同步等內(nèi)容。
依據(jù)軟件工程理論,實(shí)施成本系數(shù)可按以下公式計(jì)算:
實(shí)施成本系數(shù)=開(kāi)發(fā)成本系數(shù)×實(shí)施因子t
當(dāng)為集中式實(shí)施項(xiàng)目時(shí),實(shí)施因子t與用戶數(shù)有關(guān),當(dāng)0 <用戶數(shù)≤100 時(shí),t=0.2;否則t=0.2+((用戶數(shù)—100)/100)×f,0.03 ≤f≤0.05,具體取值根據(jù)項(xiàng)目實(shí)施難度而定(含差旅費(fèi))。當(dāng)為分布式實(shí)施項(xiàng)目時(shí),實(shí)施因子t與實(shí)施點(diǎn)(單位)數(shù)量有關(guān),t=0.2+(n—1)×k,其中n表示需要實(shí)施的單位數(shù)量,0.08 ≤k≤0.15,k取值依據(jù)項(xiàng)目難度而定。
最終的軟件造價(jià)估算結(jié)果為第3 個(gè)步驟得到的軟件開(kāi)發(fā)費(fèi)用與第4 個(gè)步驟得到的軟件實(shí)施成本之和,即軟件造價(jià)=軟件開(kāi)發(fā)費(fèi)用+軟件實(shí)施費(fèi)用。
本文以某國(guó)有企業(yè)經(jīng)營(yíng)性投資管理系統(tǒng)為例,對(duì)其軟件造價(jià)進(jìn)行了估算和分析。
經(jīng)測(cè)算,未調(diào)整的軟件規(guī)模具有801 個(gè)功能點(diǎn),依據(jù)DB 11/T1010—2019《信息化項(xiàng)目軟件開(kāi)發(fā)費(fèi)用測(cè)算規(guī)范》進(jìn)行規(guī)模調(diào)整,見(jiàn)表6。
表6 系統(tǒng)模塊組成及功能點(diǎn)規(guī)模估算
首先進(jìn)行復(fù)用程度調(diào)整。新開(kāi)發(fā)功能的復(fù)用程度較低,復(fù)用度調(diào)整因子取值為1;對(duì)于需進(jìn)行較大改造才能進(jìn)行復(fù)用的功能點(diǎn),復(fù)用度調(diào)整因子取值為2/3;對(duì)于僅需進(jìn)行較小改造或沿用的功能,復(fù)用度調(diào)整因子取值為1/3。該項(xiàng)目調(diào)整后,軟件規(guī)模s=689 個(gè)功能點(diǎn)。
因該系統(tǒng)需求尚未完全確定,預(yù)計(jì)未來(lái)還會(huì)有需求變更,故規(guī)模變更因子預(yù)算時(shí)取值k=1.39,該項(xiàng)目調(diào)整后的軟件規(guī)模有S=s×k=957.71 個(gè)功能點(diǎn)。
按照2022 年中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)(CSBMK—202210),全行業(yè)軟件開(kāi)發(fā)生產(chǎn)率基準(zhǔn)數(shù)據(jù)50 百分位數(shù)P50=7.01(單位:人時(shí)/功能點(diǎn)),范圍取P50 的±10%即6.31~7.71。
根據(jù)軟件系統(tǒng)特征,業(yè)務(wù)領(lǐng)域調(diào)整因子取值為1,質(zhì)量要求調(diào)整因子取值為0.9,因此計(jì)算可得SWF為0.9。在預(yù)算時(shí)如無(wú)特殊要求,開(kāi)發(fā)因素調(diào)整因子RDF取值為1。
由此,可計(jì)算出工作量AE的最有可能值為957.71×7.01×0.9×1=6042.19 人時(shí)。工作量測(cè)算合理范圍為5437.97 人時(shí)~6646.41 人時(shí)。
按照2022 年中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)(CSBMK—202210),該國(guó)企所在城市2022 年平均軟件開(kāi)發(fā)人月費(fèi)率為3.2343 萬(wàn)元。該系統(tǒng)直接非人力成本包括辦公費(fèi)4 萬(wàn)元、差旅費(fèi)1 萬(wàn)元、業(yè)務(wù)費(fèi)3.7 萬(wàn)元、第三方功能測(cè)試費(fèi)15 萬(wàn)元。
由上述數(shù)據(jù)可得該軟件開(kāi)發(fā)費(fèi)用的行業(yè)建議值為:(6042.19/176)×3.2343+4+1+3.7+15=134.74 萬(wàn)元,軟件開(kāi)發(fā)費(fèi)用的合理范圍為123.64 萬(wàn)元~145.84萬(wàn)元。
該系統(tǒng)暫不考慮在多家單位實(shí)施,取n=1,所以軟件實(shí)施費(fèi)用的行業(yè)建議值為:(6042.19/176)×3.2343×0.2=22.21 萬(wàn)元。軟件實(shí)施費(fèi)用的合理范圍為19.99 萬(wàn)元~24.43 萬(wàn)元。
綜上,該系統(tǒng)的軟件費(fèi)用行業(yè)建議值為:134.74+22.21=156.95 萬(wàn)元,合理范圍為143.63 萬(wàn)元~170.27 萬(wàn)元。
改進(jìn)功能點(diǎn)法與現(xiàn)有的評(píng)估點(diǎn)法相比,能進(jìn)一步細(xì)化造價(jià)預(yù)算的構(gòu)成成分,評(píng)估結(jié)果更接近于項(xiàng)目的實(shí)際預(yù)算。
本文結(jié)合某國(guó)有企業(yè)經(jīng)營(yíng)性投資管理系統(tǒng)項(xiàng)目實(shí)際,基于項(xiàng)目全周期造價(jià)的需求,分析了功能點(diǎn)法和工時(shí)法的優(yōu)缺點(diǎn),建立了有標(biāo)準(zhǔn)依據(jù)的可量化軟件開(kāi)發(fā)投資造價(jià)評(píng)估模型,提出了基于改進(jìn)功能點(diǎn)法的軟件造價(jià)評(píng)估方法,證明了該方法可以對(duì)信息化軟件開(kāi)發(fā)項(xiàng)目的投資預(yù)算和綜合造價(jià)評(píng)估提供定量指導(dǎo),對(duì)提高軟件開(kāi)發(fā)項(xiàng)目投資估算的精細(xì)化程度具有一定的實(shí)用價(jià)值。