服務(wù)熱線
0564-3214800
信息化管理部門來說,信息化造價的價值在于提高生態(tài)圈協(xié)同效率、信息化資金績效、架構(gòu)治理、項目管理合規(guī)等水平。對軟件研發(fā)機構(gòu)來說,科學(xué)客觀且結(jié)合實際情況的評估工作會提高軟件價值,優(yōu)化軟件生態(tài),促進良性競爭,提高軟件組織盈利能力,杜絕重大預(yù)算浪費,有助發(fā)展自主可控的軟件研發(fā)。
估算方法選擇
軟件開發(fā)項目規(guī)模估算是軟件工作量及成本度量的基礎(chǔ),能否科學(xué)評價軟件規(guī)模是有效開展成本度量工作的前提,這在軟件研發(fā)成本度量以及測試成本度量兩個工作中都有體現(xiàn)。目前,估算軟件規(guī)模的方法有兩種:基于開發(fā)視角和基于業(yè)務(wù)視角。
基于開發(fā)視角的方法是從開發(fā)者角度出發(fā),如代碼行、數(shù)據(jù)庫表、服務(wù)數(shù)、接口數(shù)等。優(yōu)點是操作簡單、實施容易。但非技術(shù)人員難以理解,不容易在項目干系人之間達成一致,往往會引起較多的分歧??傮w來說,任何程序大小或代碼行數(shù)的猜想,實際上都是從系統(tǒng)要提供的功能性推演出來,基于開發(fā)視角的評估方法雖然在實際工作中有著普遍的應(yīng)用,但更多地局限于軟件開發(fā)團隊內(nèi)部。
基于業(yè)務(wù)視角的方法是從用戶角度出發(fā),與軟件開發(fā)技術(shù)無關(guān),如功能點、故事點、用例點、對象點等方法。優(yōu)點是操作具有一致性、客觀性、可復(fù)制、可驗證、不冒進,且與技術(shù)無關(guān)。同時,功能點方法從用戶視角和業(yè)務(wù)價值度量軟件的規(guī)模,需求方、開發(fā)方、管理方也都能使用此方法。
其中,功能點方法是通過識別內(nèi)外部邏輯文件及功能的方式,評估軟件工程的規(guī)模、工作量及費用,該方法與軟件開發(fā)技術(shù)無關(guān),不受不同評估人員的主觀因素影響,比對象點、用例點、故事點等都更具有科學(xué)依據(jù),《軟件工程軟件開發(fā)成本度量規(guī)范》就是使用功能點法。
功能點法介紹
上世紀八十年代,IBM公司率先提出功能點法,并發(fā)布功能點使用指南。它是對軟件用戶功能需求進行度量的一種方法,功能點(FP)是功能價值(Function Value)的計量單位,類似于平方米、公斤等計量單位。
隨著功能點法的不斷發(fā)展,已成為國內(nèi)外軟件規(guī)劃度量的標(biāo)準(zhǔn)。它簡單實用,對于用戶來說通過功能點的多少就能衡量軟件規(guī)模的大小。能夠在項目早期進行規(guī)模度量,有項目需求規(guī)格說明書、設(shè)計文檔等即可分析軟件的功能規(guī)模。度量方式更客觀,不用考慮編程語言、實現(xiàn)技術(shù)或者硬件平臺信息。不同的人員對相同的軟件需求會有高度近似的功能點計數(shù)結(jié)果,誤差可在±5%之內(nèi)。用這個方法結(jié)合一些基準(zhǔn)數(shù)據(jù)以及估算模型就可以對軟件開發(fā)的工作量進行估算。
近年來,功能點方法實踐與應(yīng)用的場景越來越多。隨著5G、大數(shù)據(jù)、人工智能等新型技術(shù)的不斷發(fā)展,軟件市場進一步擴大,度量成為項目管理工作的基礎(chǔ)性要求,功能點法簡單實用,被廣泛認可和接受。對于外包軟件項目來說,功能點方法是軟件項目通用、基本的成本計算方法,可客觀、獨立的對軟件項目規(guī)模進行估計,確定開發(fā)成本和投標(biāo)價格。隨著國際標(biāo)準(zhǔn)化組織開始建立相應(yīng)的標(biāo)準(zhǔn),從根本上肯定了功能點分析方法的科學(xué)性。功能點法以功能點數(shù)的形式來表示軟件的規(guī)模,對于提高軟件開發(fā)效益,有著明顯效果。
功能點法中的規(guī)模估算
快速功能點度量方法是依據(jù)國際ISO標(biāo)準(zhǔn)提出的一種軟件規(guī)模度量方法,可采用預(yù)估功能點和估算功能點進行軟件項目規(guī)模的估算和測量。
? 確定應(yīng)用類型。軟件工程分為新開發(fā)、增強開發(fā)、已有系統(tǒng)等。新開發(fā)主要為識別所有新增功能;增強開發(fā)主要為識別變化功能,包括新增、修改及刪除;已有系統(tǒng)計數(shù)主要為識別最終交付功能。
? 識別系統(tǒng)邊界。系統(tǒng)內(nèi)屬于項目創(chuàng)建內(nèi)容,系統(tǒng)外不需要創(chuàng)建,但需要考慮和它們之間的接口。除了能確定系統(tǒng)內(nèi)元素外,還應(yīng)界定本系統(tǒng)對外的輸入與輸出,即本系統(tǒng)與外部環(huán)境的關(guān)系。
? 識別功能點計數(shù)項。功能點計數(shù)項分為數(shù)據(jù)功能和交易功能2大類。具體包括:內(nèi)部邏輯文件(ILF)、外部接口文件(EIF)、外部輸入(EI)、外部輸出(EO)、外部查詢(EQ)。估算數(shù)據(jù)功能的復(fù)雜度就是估算ILF、EIF的復(fù)雜度,也可以簡單理解為對數(shù)據(jù)庫復(fù)雜度的計算。功能確定后,即可估算ILF和EIF的個數(shù)。估算交互功能的復(fù)雜度就是估算EI、EO、EQ的復(fù)雜度,也可以簡單理解為對程序開發(fā)復(fù)雜度的計算。和用戶之間的接口確定后,即可估算EI、EQ、EO的個數(shù)。
? 調(diào)整計數(shù)項復(fù)雜度。一是識別應(yīng)用程序中的ILF、EIF、EI、EQ、EO的個數(shù),并根據(jù)復(fù)雜度決定取值后計算。所有的功能點計數(shù)項都有其對應(yīng)規(guī)則,比如:ILF是用戶能夠識別的、存在內(nèi)在邏輯關(guān)系的一組數(shù)據(jù)或控制信息;EIF是用戶能夠識別的、在本應(yīng)用中被引用的、存在內(nèi)在邏輯關(guān)系的一組數(shù)據(jù)或控制信息。二是確認數(shù)據(jù)功能、交易功能的復(fù)雜度。數(shù)據(jù)功能的復(fù)雜性是由其包含的RET數(shù)目和DET數(shù)目決定。數(shù)據(jù)功能的復(fù)雜性分為低、中、高三個等級,每個等級對應(yīng)的DET和RET數(shù)目范圍不同。
? 確定GSC因子。標(biāo)準(zhǔn)功能點方法共有14個通用系統(tǒng)特征分別賦值。包括數(shù)據(jù)通訊、分布式處理、性能、高使用強度的配置、事務(wù)頻度、在線數(shù)據(jù)輸入、終端用戶效率、在線更新、復(fù)雜處理、可重用性、易安裝性、易操作性、多點運行、易變更。調(diào)整范圍在0.65-1.35之間。
? 計算調(diào)整后的功能點。根據(jù)未調(diào)整功能點和調(diào)整因子計算已調(diào)整功能點,即FPC=UFP*VAF。
目前,規(guī)模估算已廣泛應(yīng)用于開發(fā)及運維費用估算、工期合理性評估、外包管理、產(chǎn)品管理以及項目后評價等多種場景,并在持續(xù)的實踐中不斷完善,發(fā)揮日益重要的作用。