張嶄
(中國兵器工業(yè)第二〇八研究所 北京市 102202)
軟件規(guī)模估算直接關(guān)系到新研軟件項目的成敗,常用的軟件規(guī)模估算方法包括功能點估算法及代碼行估算法,在項目開始階段多采用功能點估算法。功能點估算法由Albrecht 在1978年創(chuàng)造,現(xiàn)已成為軟件功能規(guī)模度量(Functional Size Measurement,F(xiàn)SM)領(lǐng)域一種最流行的方法[1][2]。功能點估算法與現(xiàn)實技術(shù)、計算機語言無關(guān),無需歷史數(shù)據(jù)支持,該方法是從用戶角度來估算軟件規(guī)模,基于客觀的外部應(yīng)用接口和主觀的內(nèi)部應(yīng)用復(fù)雜度以及總體的系統(tǒng)性能特征,對軟件功能規(guī)模進行間接定量估算。
功能點估算的主要步驟包括確定用戶功能需求、分解功能需求、確定加權(quán)因子、計算未調(diào)整功能點數(shù)、確定調(diào)整因子和計算交付功能點數(shù)。
在IFPUG FPA 方法中,用戶功能需求被模型為一系列的基本功能單元。基本功能單元可以是數(shù)據(jù)文件,也可以是業(yè)務(wù)處理。數(shù)據(jù)文件是用戶可定義的邏輯相關(guān)的數(shù)據(jù),分為內(nèi)部邏輯文件(internal logical file,ILF)和外部接口文件(external interface file,EIF)。業(yè)務(wù)處理被包括3 種類型,即外部輸入(external input,EI)、外部輸出(external output,EO)和外部查詢(external query,EQ)。FPA 度量的原理模型如圖 1所示[3]。
軟件的功能需求必須緊密結(jié)合硬件實現(xiàn)手段,本軟件用于某發(fā)射系統(tǒng)的無實彈模擬訓(xùn)練,主要硬件為1:1 模擬發(fā)射器及顯控設(shè)備,依靠軟件模擬作戰(zhàn)使用中的其他要素。軟件的功能主要包括三大部分:場景及環(huán)境模擬、目標(biāo)模擬及設(shè)備操作同步。
根據(jù)研制要求,場景及環(huán)境模擬主要用于虛擬實現(xiàn)不同季節(jié)及天氣,并與不同地貌環(huán)境形成組合,組合方式為用戶自定義。該部分需實現(xiàn)的功能包括:
(1)接收用戶對場景及環(huán)境的設(shè)定;
(2)根據(jù)設(shè)定完成元素模擬;
(3)輸出模擬效果至顯控設(shè)備。
表1 給出了該功能模塊下可設(shè)定的類別及其對應(yīng)的被模擬元素。
圖1:FPA 度量原理模型
表1:場景及環(huán)境模擬需求
表2:目標(biāo)模擬需求
表3:ILF 與EIF 復(fù)雜度表
表4:EI 與EO 復(fù)雜度
軟件對目標(biāo)的模擬主要分為兩大類,即靜止目標(biāo)模擬和運動目標(biāo)模擬,靜止目標(biāo)包括步兵防御工事、火力點、建筑物、裝甲車輛、汽車、彈藥箱、人員等;運動目標(biāo)包括裝甲車輛、汽車等。該部分需實現(xiàn)的功能包括:
(1)接收操作人員對目標(biāo)的設(shè)定;
表5:加權(quán)因子
表6:通用系統(tǒng)性能特征取值
(2)根據(jù)設(shè)定完成相應(yīng)目標(biāo)元素的模擬;
(3)輸出目標(biāo)模擬效果至顯控設(shè)備。
需模擬的目標(biāo)類型、種類及其對應(yīng)被模擬元素如表2所示。
不同于場景模擬和目標(biāo)模擬,設(shè)備操作同步屬于分離硬件之間的信息交互,用戶操作并未直接進入本軟件系統(tǒng),而是經(jīng)模擬發(fā)射器軟件編譯后實現(xiàn)信息同步。該部分主要用于參訓(xùn)人員對模擬發(fā)射器相應(yīng)操作的同步、識別及反饋,需實現(xiàn)的功能包括
(1)接收發(fā)射器傳遞的信息(包括虛擬瞄準(zhǔn)點、擊發(fā)操作等);
(2)解算彈藥運動軌跡;
(3)解算空炸點;
(4)輸出發(fā)射器操作;
(5)輸出彈藥運動軌跡;
(6)輸出空炸點。
根據(jù)IFPUG FPA 方法中各功能單元類型的定義,對上述三大模塊的細(xì)分功能進行單元類型分解。
交付功能點數(shù)與未調(diào)整功能點數(shù)之間的關(guān)系為:
式(1)中,UFP 為未調(diào)整功能點數(shù),VAF 為調(diào)整因子,計算方法分別為:
式(2)中,NILF、NEIFNEINEONEQ分別為ILF、EIF、EI、EO、EQ 的數(shù)量,θILF、θEIF、θEI、θEO、θEQ分別為各功能單元對應(yīng)的加權(quán)因子;式(3)中n 為系統(tǒng)性能特征個數(shù),Ni為第i 個影響因素的影響程度。
由公式(1)~(3)可知,計算交付功能點數(shù)的關(guān)鍵在于θ 及Ni的計算。
加權(quán)因子的取值決定于各功能單元的復(fù)雜度[3]。
2.2.1 ILF 和EIF 復(fù)雜度
ILF 和EIF 的復(fù)雜度取決于記錄元素類型(RET)和數(shù)據(jù)元素類型(DET)的數(shù)量,本軟件中ILF 和EIF 轉(zhuǎn)換結(jié)果見表3。
2.2.2 EI 和EO 復(fù)雜度
EI 和EO 的復(fù)雜度取決于引用文件類型(FTR)和數(shù)據(jù)元素類型(DET)的數(shù)量,本軟件中EI 和EO 的轉(zhuǎn)換結(jié)果見表4。
2.2.3 確定加權(quán)因子
本軟件的加權(quán)因子如表5所示。
按照公式(2),分別將各功能要素中的ILF、EIF、EI、EO及EQ 個數(shù)與相應(yīng)的加權(quán)因子相乘,各乘積相加,結(jié)果即為未調(diào)整的功能點數(shù)(UFP)。
調(diào)整因子需要依靠14 項通用系統(tǒng)性能特征來確定,每一項的影響度按照實際情況從低到高取0~5 之間的整數(shù)值,本軟件中,系統(tǒng)性能特征的影響度取值列入表6 中。
根據(jù)表6,可計算本軟件的調(diào)整因子VAF=0.65+43/100=0.65+0.43=1.08,本軟件的功能點數(shù)FP=UFP×VAF=72×1.08=77.76。
按照GJB8000-2013《軍用軟件研制能力等級要求》的規(guī)定,50 ≤FP ≤300 的嵌入式軟件屬于中等規(guī)模軟件,該軟件的重要性等級為II 級,按照規(guī)定,所需軟件研制單位的研制能力等級最低要求為三級[3][4][5]。承研單位可根據(jù)估算出的規(guī)模合理估算工作量、所需資源、完工時間等要素。