軟件系統定制開發是指根據用戶的具體需求進行有針對性的軟件設計和開發。軟件開發成本由軟件功能、勞動力成本、開發經驗等主要因素決定,軟件系統開發費包括從項目中標到交付驗收之間的需求分析、設計、編碼、測試、部署實施及相關項目管理所產生的總費用。
軟件系統開發費如何進行估算,我們一般采用多種方法綜合估算,包括任務估算法、功能點估算法、Delphi專家估算法、COCOMO成本估算法和人工成本估算法等。
一、任務估算法
任務估算法是指按照WBS工作分解結構,把項目可交付成果分解成較小的、更易于管理的活動過程,即:項目→任務→工作→活動。然后自底向上逐項核算每個活動開發應投入工作量,乘以人月費率,匯總計算得出軟件系統開發費。計算公式:
軟件系統開發費=Σ工作量×人月費率
需說明的事項:
1、工作分解結構是以可交付成果為導向,對項目要素進行的分組,它歸納和定義了項目的整個工作范圍,每下降一層代表對項目工作的更詳細定義。
2、WBS分解應簡潔有效,不宜分太多層次,根據經驗一般分解為三層即可滿足估算要求,如系統→模塊→具體功能。
3、任務估算法需依靠專家的技術經驗,基于項目建設方案、建設規模、系統架構、業務功能、人員配置、實施計劃、項目屬性等影響軟件費用的因素,對開發費用進行綜合分析評估。
二、功能點估算法
軟件功能點是站在業務角度對軟件規模的一種度量,功能點的多少代表軟件規模的大小。功能點方法最早是在1970年代由IBM提出,并陸續成為許多國家估算軟件規模的國家標準,我國是在2000以后把功能點方法引入國內,2018年工信部發布基于功能點方法的軟件造價標準《GB/T 36964-2018軟件工程 軟件開發成本度量規范》。
(一)概述
功能點是對軟件功能和大小的間接度量單位,一般通過與用戶交互的數目來測算軟件開發工作量的大小。功能點估算法將功能點分為以下5 類:
1、EI:External Input 外部輸入,外部輸入是指用戶維護系統的內部邏輯文件的一個處理過程。
2、EO:External Output 外部輸出,外部輸出是指數據在系統中做了些處理后的輸出,通常是指經過查詢后的結果進行計算而得到的結果。
3、EQ:External Inquiry 外部查詢,外部查詢是數據的檢索,是輸入和輸出的結合,輸入立即引起輸出的產生。
4、ILF:Internal Logical File 內部邏輯文件,軟件內部需要維護的數據,通常是數據庫的表或文件。
5、EIF:External Interface File 外部接口文件,在其它系統中維護但本軟件需要調用的數據。
(二)適用范圍
功能點估算法適用于事務性系統,包括:新開發項目、二次開發的項目和功能增強的項目。
(三)計算公式
工作量=未調整規模的功能點×規模變更調整因子×應用類型調整因子×基準生產率/人月折算系數
1、未調整規模的功能點。未調整規模的功能點可采用預估功能點(也稱快速功能點估算法)和估算功能點兩種方法進行計數。具體參考《軟件工程—軟件開發成本度量規范》(GB/T 36964-2018)。
采用預估功能點法時,計算公式為:UFP=Σ(35×ILF 15×EIF)×復用系數
采用估算功能點法時,計算公式為:UFP=Σ(10×ILF 7×EIF 4×EI 5×EO 4×EQ)×復用系數,復用系數根據對功能復用情況分析,取值為0.3~1。
2、規模變更調整因子。規模變更調整因子是指考慮到項目早前預算時需求較模糊,未來實施時可能會有隱含需求或存在需求變更而設置的調整系數,參考《中國軟件行業基準數據》,規模變更調整因子取值標準如下:
3、應用類型調整因子。應用類型調整因子是指根據不同的軟件應用類型而設定的調整因子。參考《中國軟件行業基準數據》《軟件工程功能規模測量NESMA方法》(SJ/T 11619-2016),結合實際情況,計取應用類型調整因子如下:
4、基準生產率。基準生產率是指開發每個功能點所消耗的人時數。參考《中國軟件行業基準數據》,結合實際情況,基準生產率取值標準如下:
5、人月折算系數。人月折算系數是指每人每月因軟件開發耗費的小時數,按照每人每月工作22天,每天工作8小時計算,取值為176(單位:人時/人月)。
三、Delphi專家估算法
Delphi專家估算法是指把軟件項目功能分解為若干個相對獨立的任務,再由專家作為個體分別估計完成每個任務需要的人員配比及投入時間。Delphi專家估算法的基本步驟是:
第一步,對系統每一個功能模塊所需工作量給出3個規模的估計值,分別是:
①悲觀工作量(Epi):這是一個最保守的估計,可能在編程人員技術不熟練,對業務理解不夠,或有其他影響其正常工作的因素存在的情況下發生。
②正常工作量(Eni):這是一個正常的程序員可能付出的工作量估計。
③樂觀工作量(Esi):這種情況可能在程序員技術相當熟練,對業務相當了解,且以前可能有類似項目開發經驗的情況下所需的工作量。
第二步,針對每一項功能模塊,計算出其開發工作量,計算公式如下:
Ei =(Epi 4×Eni Esi)/ 6
第三步,匯總計算得出軟件系統開發全部工作量。
四、COCOMO成本估算法
COCOMO成本估算法是指基于項目源代碼,通過專家對源代碼的有效性分析,并從功能屬性、系統屬性、人員屬性和項目屬性方面對系統規模進行評估。計算公式如下:
工作量=軟件類型(ab)×代碼行×項目屬性調整因子,代碼行單位為千行代碼的估計值。
五、人工成本估算法
人工成本估算法是指對軟件開發所耗費的人力和時間進行估算,也稱工作量估算法。
工作量=Σ應投入人數×投入時間
總結,每一種估算方法都不是萬能的,均存在一定的局限性。估算結果的準確性與估算模型及專家經驗有關,估算結果與實際或許會存在差異,但并不一定能說明哪個更準確,要理性分析看待。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。