張嶄
(中國兵器工業第二〇八研究所 北京市 102202)
軟件規模估算直接關系到新研軟件項目的成敗,常用的軟件規模估算方法包括功能點估算法及代碼行估算法,在項目開始階段多采用功能點估算法。功能點估算法由Albrecht 在1978年創造,現已成為軟件功能規模度量(Functional Size Measurement,FSM)領域一種最流行的方法[1][2]。功能點估算法與現實技術、計算機語言無關,無需歷史數據支持,該方法是從用戶角度來估算軟件規模,基于客觀的外部應用接口和主觀的內部應用復雜度以及總體的系統性能特征,對軟件功能規模進行間接定量估算。
功能點估算的主要步驟包括確定用戶功能需求、分解功能需求、確定加權因子、計算未調整功能點數、確定調整因子和計算交付功能點數。
在IFPUG FPA 方法中,用戶功能需求被模型為一系列的基本功能單元?;竟δ軉卧梢允菙祿募?,也可以是業務處理。數據文件是用戶可定義的邏輯相關的數據,分為內部邏輯文件(internal logical file,ILF)和外部接口文件(external interface file,EIF)。業務處理被包括3 種類型,即外部輸入(external input,EI)、外部輸出(external output,EO)和外部查詢(external query,EQ)。FPA 度量的原理模型如圖 1所示[3]。
軟件的功能需求必須緊密結合硬件實現手段,本軟件用于某發射系統的無實彈模擬訓練,主要硬件為1:1 模擬發射器及顯控設備,依靠軟件模擬作戰使用中的其他要素。軟件的功能主要包括三大部分:場景及環境模擬、目標模擬及設備操作同步。
根據研制要求,場景及環境模擬主要用于虛擬實現不同季節及天氣,并與不同地貌環境形成組合,組合方式為用戶自定義。該部分需實現的功能包括:
(1)接收用戶對場景及環境的設定;
(2)根據設定完成元素模擬;
(3)輸出模擬效果至顯控設備。
表1 給出了該功能模塊下可設定的類別及其對應的被模擬元素。

圖1:FPA 度量原理模型

表1:場景及環境模擬需求

表2:目標模擬需求

表3:ILF 與EIF 復雜度表

表4:EI 與EO 復雜度
軟件對目標的模擬主要分為兩大類,即靜止目標模擬和運動目標模擬,靜止目標包括步兵防御工事、火力點、建筑物、裝甲車輛、汽車、彈藥箱、人員等;運動目標包括裝甲車輛、汽車等。該部分需實現的功能包括:
(1)接收操作人員對目標的設定;

表5:加權因子

表6:通用系統性能特征取值
(2)根據設定完成相應目標元素的模擬;
(3)輸出目標模擬效果至顯控設備。
需模擬的目標類型、種類及其對應被模擬元素如表2所示。
不同于場景模擬和目標模擬,設備操作同步屬于分離硬件之間的信息交互,用戶操作并未直接進入本軟件系統,而是經模擬發射器軟件編譯后實現信息同步。該部分主要用于參訓人員對模擬發射器相應操作的同步、識別及反饋,需實現的功能包括
(1)接收發射器傳遞的信息(包括虛擬瞄準點、擊發操作等);
(2)解算彈藥運動軌跡;
(3)解算空炸點;
(4)輸出發射器操作;
(5)輸出彈藥運動軌跡;
(6)輸出空炸點。
根據IFPUG FPA 方法中各功能單元類型的定義,對上述三大模塊的細分功能進行單元類型分解。
交付功能點數與未調整功能點數之間的關系為:

式(1)中,UFP 為未調整功能點數,VAF 為調整因子,計算方法分別為:

式(2)中,NILF、NEIFNEINEONEQ分別為ILF、EIF、EI、EO、EQ 的數量,θILF、θEIF、θEI、θEO、θEQ分別為各功能單元對應的加權因子;式(3)中n 為系統性能特征個數,Ni為第i 個影響因素的影響程度。
由公式(1)~(3)可知,計算交付功能點數的關鍵在于θ 及Ni的計算。
加權因子的取值決定于各功能單元的復雜度[3]。
2.2.1 ILF 和EIF 復雜度
ILF 和EIF 的復雜度取決于記錄元素類型(RET)和數據元素類型(DET)的數量,本軟件中ILF 和EIF 轉換結果見表3。
2.2.2 EI 和EO 復雜度
EI 和EO 的復雜度取決于引用文件類型(FTR)和數據元素類型(DET)的數量,本軟件中EI 和EO 的轉換結果見表4。
2.2.3 確定加權因子
本軟件的加權因子如表5所示。
按照公式(2),分別將各功能要素中的ILF、EIF、EI、EO及EQ 個數與相應的加權因子相乘,各乘積相加,結果即為未調整的功能點數(UFP)。
調整因子需要依靠14 項通用系統性能特征來確定,每一項的影響度按照實際情況從低到高取0~5 之間的整數值,本軟件中,系統性能特征的影響度取值列入表6 中。
根據表6,可計算本軟件的調整因子VAF=0.65+43/100=0.65+0.43=1.08,本軟件的功能點數FP=UFP×VAF=72×1.08=77.76。
按照GJB8000-2013《軍用軟件研制能力等級要求》的規定,50 ≤FP ≤300 的嵌入式軟件屬于中等規模軟件,該軟件的重要性等級為II 級,按照規定,所需軟件研制單位的研制能力等級最低要求為三級[3][4][5]。承研單位可根據估算出的規模合理估算工作量、所需資源、完工時間等要素。