張帆 郭巍 張軍峰 張樂
(宇航動力學(xué)國家重點實驗室, 西安, 710043)
根據(jù)現(xiàn)行軟件計價規(guī)范, 軟件研制計價包括預(yù)計成本、 收益和稅金。 預(yù)計成本包括綜合費用、 直接非人力成本, 綜合費用的計算核心是計算軟件研發(fā)工作量, 軟件研發(fā)工作量取決于度量軟件功能規(guī)模。 軟件功能規(guī)模度量方法是以用戶角度, 參考荷蘭軟件度量協(xié)會 (NESMA) 等國際標(biāo)準(zhǔn)[1-3], 采用功能點作為計量單位測量軟件規(guī)模的一種方法。 本文依據(jù)軟件計價規(guī)范進行航天測控軟件裝備研制概算實踐, 針對功能點調(diào)整因素的取值范圍增加了具體確定方法; 針對用戶功能需求分解為最小功能單元的類型, 明確了分解規(guī)則; 以某航天測控顯示系統(tǒng)為范例, 演示航天測控軟件裝備研制概算的情況。
在進行軟件功能規(guī)模度量前, 為了明確系統(tǒng)建設(shè)要求, 編制了系統(tǒng)建設(shè)方案, 主要包括系統(tǒng)功能、 指標(biāo)要求、 項目管理、 計劃進度等[4]。
某航天測控顯示系統(tǒng)的主要功能需求為: 以地理信息數(shù)據(jù)為基礎(chǔ), 完成靜態(tài)信息標(biāo)繪、 飛行軌跡等數(shù)據(jù)信息的預(yù)示; 接收并處理遙測、 外測等動態(tài)數(shù)據(jù), 通過設(shè)定的邏輯規(guī)則, 根據(jù)計劃編排展示場景。 該系統(tǒng)要實現(xiàn)數(shù)據(jù)集成、 導(dǎo)演編排、 場景顯示、 綜合狀態(tài)顯示、 數(shù)據(jù)接口可擴展、 多環(huán)境運行等功能。
NESMA 法將功能點分為5 類: 內(nèi)部邏輯文件 (Internal Logical File, ILF)、 外部接口文件(External Interface File, EIF)、 外部輸入 (External Input, EI)、 外部輸出 (External Output,EO) 和外部查詢 (External Query, EQ)。 功能點分解識別規(guī)則見表1。
表1 功能點分解識別規(guī)則
分解識別功能點的數(shù)量, 很大程度決定了系統(tǒng)的最終概算。 因此, 在分解識別功能點時, 既要分解到可被估算的最小功能單元, 又要避免重復(fù)度量[3][5]。
根據(jù)某航天測控顯示系統(tǒng)建設(shè)方案中的功能需求, 分解識別各類最小功能單元, 分解識別結(jié)果見表2, 其中NILF、 NEIF、 NEI、 NEO、 NEQ分別為ILF、 EIF、 EI、 EO、 EQ 的數(shù)量。
表2 最小功能單元分解計數(shù)
原始功能點數(shù) (Unadjusted Functional Point,UFP) 按公式 (1) 進行計算。
根據(jù)表2 計算得出某航天測控顯示系統(tǒng)的原始功能點數(shù)為1140。
使用既有的軟件來實現(xiàn)指定功能, 可使得某些指定功能的開發(fā)變得簡單。 這些指定功能是被計算在功能點計數(shù)中的, 需要在分析復(fù)用情況的基礎(chǔ)上將復(fù)用度定量化后折算。 從系統(tǒng)功能的復(fù)用度入手, 對每個邏輯文件的復(fù)用度給出明確的定義和系數(shù)[6], 見表3。
表3 邏輯文件的復(fù)用度定義及復(fù)用系數(shù)
在確定了估算對象每個邏輯文件的復(fù)用系數(shù)后, 估算對象的復(fù)用因子RE 按公式 (2) 計算。
根據(jù)公式 (2) 計算某航天測控顯示系統(tǒng)的RE= (2×33%+5×67%+2×100%+1×33%+3×67%+4×100%) /(9+8) ≈0.7。
規(guī)模調(diào)整因子 (Value Adjustment Factor,VAF) 評分標(biāo)準(zhǔn)見表4。 根據(jù)估算對象的實際情況確定每一項取值, 按公式 (3) 計算。
表4 規(guī)模調(diào)整因子評分標(biāo)準(zhǔn)
計算某航天測控顯示系統(tǒng)的規(guī)模調(diào)整因子,VAF=1.0+0.1×(1+1+1+0+1+1+1)=1.6。
調(diào)整后的功能點數(shù) (Functional Point, FP)按公式 (4) 計算。
經(jīng)計算某航天測控顯示系統(tǒng)的FP=0.7×1140×1.6=1276.8。
研制概算計價范圍包括綜合費用、 直接非人力成本、 收益和稅金。 某航天測控顯示系統(tǒng)的計價范圍、 細分項目、 定義、 計算公式、 計算過程及結(jié)果見表5[7]。
表5 某航天測控顯示系統(tǒng)的概算計價過程
航天測控軟件產(chǎn)品可分為計算分析類和新技術(shù)預(yù)研類, 這兩類軟件裝備研發(fā)中含有密集算法、 數(shù)據(jù)模型、 概念創(chuàng)新等, 不適用軟件功能規(guī)模度量方法計算功能規(guī)模。 針對這兩類軟件裝備, 可以參考項目策劃領(lǐng)域知識, 在有相關(guān)歷史數(shù)據(jù)時, 采用類比法或類推法估計規(guī)模或工作量; 在沒有相關(guān)歷史數(shù)據(jù)時, 通過調(diào)研分析, 對估算對象使用分解結(jié)構(gòu)法 (Work Breakdown Structure, WBS) 分解并給出估計假設(shè), 采用Delphi 法進行規(guī)?;蚬ぷ髁抗烙?。 使用上述方法實施研制概算, 可一方面積累經(jīng)驗, 另一方面積累組織資產(chǎn)相關(guān)數(shù)據(jù), 有利于后續(xù)同類項目更加準(zhǔn)確地進行概算計價。