航天测控软件装备研制概算实践与思考
2023-03-20张帆郭巍张军峰张乐
张帆 郭巍 张军峰 张乐
(宇航动力学国家重点实验室, 西安, 710043)
根据现行软件计价规范, 软件研制计价包括预计成本、 收益和税金。 预计成本包括综合费用、 直接非人力成本, 综合费用的计算核心是计算软件研发工作量, 软件研发工作量取决于度量软件功能规模。 软件功能规模度量方法是以用户角度, 参考荷兰软件度量协会 (NESMA) 等国际标准[1-3], 采用功能点作为计量单位测量软件规模的一种方法。 本文依据软件计价规范进行航天测控软件装备研制概算实践, 针对功能点调整因素的取值范围增加了具体确定方法; 针对用户功能需求分解为最小功能单元的类型, 明确了分解规则; 以某航天测控显示系统为范例, 演示航天测控软件装备研制概算的情况。
1 软件功能度量准备
在进行软件功能规模度量前, 为了明确系统建设要求, 编制了系统建设方案, 主要包括系统功能、 指标要求、 项目管理、 计划进度等[4]。
某航天测控显示系统的主要功能需求为: 以地理信息数据为基础, 完成静态信息标绘、 飞行轨迹等数据信息的预示; 接收并处理遥测、 外测等动态数据, 通过设定的逻辑规则, 根据计划编排展示场景。 该系统要实现数据集成、 导演编排、 场景显示、 综合状态显示、 数据接口可扩展、 多环境运行等功能。
2 建立需求分解识别规则
NESMA 法将功能点分为5 类: 内部逻辑文件 (Internal Logical File, ILF)、 外部接口文件(External Interface File, EIF)、 外部输入 (External Input, EI)、 外部输出 (External Output,EO) 和外部查询 (External Query, EQ)。 功能点分解识别规则见表1。
表1 功能点分解识别规则
分解识别功能点的数量, 很大程度决定了系统的最终概算。 因此, 在分解识别功能点时, 既要分解到可被估算的最小功能单元, 又要避免重复度量[3][5]。
3 计算原始功能点数
根据某航天测控显示系统建设方案中的功能需求, 分解识别各类最小功能单元, 分解识别结果见表2, 其中NILF、 NEIF、 NEI、 NEO、 NEQ分别为ILF、 EIF、 EI、 EO、 EQ 的数量。
表2 最小功能单元分解计数
原始功能点数 (Unadjusted Functional Point,UFP) 按公式 (1) 进行计算。
根据表2 计算得出某航天测控显示系统的原始功能点数为1140。
4 计算复用因子
使用既有的软件来实现指定功能, 可使得某些指定功能的开发变得简单。 这些指定功能是被计算在功能点计数中的, 需要在分析复用情况的基础上将复用度定量化后折算。 从系统功能的复用度入手, 对每个逻辑文件的复用度给出明确的定义和系数[6], 见表3。
表3 逻辑文件的复用度定义及复用系数
在确定了估算对象每个逻辑文件的复用系数后, 估算对象的复用因子RE 按公式 (2) 计算。
根据公式 (2) 计算某航天测控显示系统的RE= (2×33%+5×67%+2×100%+1×33%+3×67%+4×100%) /(9+8) ≈0.7。
5 计算规模调整因子
规模调整因子 (Value Adjustment Factor,VAF) 评分标准见表4。 根据估算对象的实际情况确定每一项取值, 按公式 (3) 计算。
表4 规模调整因子评分标准
计算某航天测控显示系统的规模调整因子,VAF=1.0+0.1×(1+1+1+0+1+1+1)=1.6。
6 计算调整后功能点数
调整后的功能点数 (Functional Point, FP)按公式 (4) 计算。
经计算某航天测控显示系统的FP=0.7×1140×1.6=1276.8。
7 概算计价
研制概算计价范围包括综合费用、 直接非人力成本、 收益和税金。 某航天测控显示系统的计价范围、 细分项目、 定义、 计算公式、 计算过程及结果见表5[7]。
表5 某航天测控显示系统的概算计价过程
8 后续应用思考
航天测控软件产品可分为计算分析类和新技术预研类, 这两类软件装备研发中含有密集算法、 数据模型、 概念创新等, 不适用软件功能规模度量方法计算功能规模。 针对这两类软件装备, 可以参考项目策划领域知识, 在有相关历史数据时, 采用类比法或类推法估计规模或工作量; 在没有相关历史数据时, 通过调研分析, 对估算对象使用分解结构法 (Work Breakdown Structure, WBS) 分解并给出估计假设, 采用Delphi 法进行规模或工作量估计。 使用上述方法实施研制概算, 可一方面积累经验, 另一方面积累组织资产相关数据, 有利于后续同类项目更加准确地进行概算计价。