2026年2月,美作战采办大学(原国防采办大学DAU)发文《美战争部项目软件成本测算模型研究》(An Examination of Software Cost Estimation Models for DoW Programs),利用海军航空系统司令部(NAVAIR)软件资源数据报告(SRDR)数据库与空军寿命周期管理中心(AFLCMC)成本库整合后的328个已完成软件合同、43个国防部项目的历史数据,分别以等效源代码行数(ESLOC)和源代码行数(SLOC)为核心规模输入,构建了两个可用于预测软件成本的成本测算关系式(CER)。

图1 《美战争部项目软件成本测算模型研究》报告封面(美作战采办大学图片)
研究结论表明:编程工时(Hours)是软件成本的最强驱动因素;电子/自动化软件(E/AS)类型与固定价格(Fixed Price)合同类型的软件成本显著较低;基于等效源代码行数与基于源代码行数的两个模型预测能力相当,可作为军用软件项目早期(论证与方案阶段)成本测算及主流测算工具交叉校验的补充手段。
一、研究背景
软件已经成为现代装备系统的核心组成部分。从战斗机、直升机、导弹等主战平台的飞行控制与任务系统,到指挥控制、通信导航、情报监视等支撑体系,软件深度嵌入各类作战平台的“大脑”与“神经”,直接决定装备能否形成预期作战能力。正因如此,软件成本在美军项目总成本中的占比持续上升,对国防预算的编制、项目规划与资源配置的影响日益显著。据美国政府问责署(GAO)统计,当前国防部软件项目的成本测算实践存在明显缺陷,导致显著的成本与进度增长,多个大型信息技术项目因需求变更,全寿命周期成本增长超过20%,进度延误从1个月到5年不等。这种“成本超支+进度延期”的反复出现,暴露出两大问题:一是软件规模与成本的测算手段不精确,二是需求变动对成本的传导缺乏有效控制。
同时,从应用场景层面看,软件项目之间在应用领域、平台环境、复杂程度、开发方法上差异巨大。例如,机载任务系统软件与地面指挥控制软件、导弹制导软件与卫星通信软件,其开发难度、测试要求、集成复杂度等差异较大。将不同软件项目视为“同质”并按统一规则测算成本,必然产生系统性偏差。因此,建立具有预测能力的、精细化的软件成本测算方法,始终是美军进行预算、规划与资源配置的前提条件。
另外,从方法论层面看,软件成本测算长期依赖源代码行数等规模度量,而源代码行数的计数标准、语言差异、复杂度差异都会造成测算失真。传统模型如COCOMO(构造性成本模型)、SLIM(软件生命周期管理模型)虽然以代码行数为核心输入,但往往需要大量本地化校准才能在新的项目环境中取得可接受的精度。这一矛盾在技术复杂、规模庞大、环境多样的军用软件项目中尤为突出。
二、基础数据
数据来源方面,该研究主要使用了两个数据库,突破了以往单一军种、单一数据库的样本限制,覆盖43个不同的国防部项目中328个已完成的软件合同,涵盖战术导弹与弹药、战斗机、直升机、预警指挥与电子战、通信导航与网络、运输与巡逻机等六类装备的机载与地面软件以及固定价格类、成本补偿类与混合类(Hybrid)等三种合同类型,为军用软件成本建模提供了更全面的数据基础:一是海军航空系统司令部的软件资源数据报告数据库,该数据库汇集了跨多个军种的软件项目信息,包括工作分解结构要素、合同信息、能力成熟度模型集成(CMMI)评级、应用程序类型、采办阶段、开发方法、经验水平、人员配置、编程语言、各类源代码行数形态、工时数据、质量记录等;二是空军寿命周期管理中心的成本库,该成本数据最初采集自成本评估数据平台(CADE)数据库,并被纳入空军寿命周期管理中心汇编的“活力项目-2”(Project Ginger Ⅱ)数据库,包括装备类型、阶段、任务设计、项目、合同类型与成本等信息。
数据处理方面,该研究在模型构建之前进行了系统性的数据清洗与标准化处理:一是价格平减,采用美国劳工统计局(BLS)的生产者价格指数(PPI)中的3364指数“航空航天产品与部件价格指数”,将成本数据统一折算至2024年定值美元;二是缺失值处理,对于缺失源代码行数类型(如新代码、修改代码)的项目,以零值填充,表示该项目不存在该类代码行,对于源代码行数或工时数据不可靠的项目,则保留空白,作为“未知”处理,不参与相应分析;三是样本筛选,仅纳入已完成的合同,并同时包含成本数据以及等效源代码行数或源代码行数数据(二者至少其一)。
三、研究方法
美军软件成本测算的方法体系大致可分为三类:
一是参数化模型。以构造性成本模型和软件生命周期管理模型为代表。构造性成本模型以源代码行数为主要成本因子,通过规模指数和成本驱动因子调整来测算工作量与成本;软件生命周期管理模型同样以源代码行数为核心输入,结合生产率与人力约束进行测算。这类模型的共同特点是形式化程度高、可复算性强,但其在新的应用环境中往往需要大量本地化校准才能达到可接受的精度。
二是基于历史项目类比的测算方法。通过寻找历史相似项目,类比其成本数据来推算新项目成本。这类方法依赖高质量的历史数据积累与项目相似度判断,其可靠性随样本库的丰富而提升。
三是专家判断与分解法。依靠领域专家的经验进行自下而上的工作分解与成本汇总,适用于信息有限的早期阶段,但受主观因素影响较大,稳定性较差。
传统上,美国业界与学术界普遍采用源代码行数或代码行数来量化软件规模。其逻辑在于:软件规模越大,所需的开发工作量与成本通常越高。美国成本评估与项目评价办公室(CAPE)发布的《国防部成本测算指南》也将代码行数列为度量软件项目规模的主要手段之一。然而,源代码行数并非一个“放之四海而皆准”的度量。美国软件工程研究所(SEI)与电气和电子工程师协会(IEEE)虽然制定了源代码行数计数的相关定义与准则,但在实际计数中,不同组织对计数标准的理解与实现方式差异仍然很大。这种不一致性直接影响源代码行数在不同组织间的可比性,进而影响成本测算的可靠性。为克服源代码行数的局限,等效源代码行数应运而生。等效源代码行数在原始代码行数的基础上,对代码复用、代码修改等因素进行折算调整,从而提供一种更为标准化的软件规模度量。其核心思想是:通过归一化不同项目的开发工作量差异,把“复用了多少代码”、“改写了多少代码”等影响实际工作量的因素纳入度量,使不同项目之间的规模具有可比性。基于等效源代码行数进行成本归一化,可以更可靠地比较不同项目的效率与成本效益,也有利于识别真正的成本驱动因素。
该研究指出,软件规模仍是驱动软件成本的最主要变量之一,并主要从数据库中提取源代码行数、等效源代码行数与编程工时三类核心变量。
四、模型构建与验证
建模技术方面,该研究的统计分析在JMP Pro 15软件中完成,采用普通最小二乘法(OLS)构建两个成本测算关系式,并利用逐步回归进行解释变量的筛选。为了将装备类别、合同类型等分类变量纳入回归,该研究为每个类别创建了虚拟变量:如定义X1=1表示装备类别为电子/自动化软件,其余为0。数据共涉及六类装备与三种合同类型,据此创建了10个虚拟变量。需要说明的是,“混合合同类型”表示整个合同同时包含固定价格与成本补偿要素,但该归类基于整个合同,可能不完全反映软件组件的实际情况。同时,为控制多重比较带来的整体第一类错误膨胀,该研究引入了邦费罗尼(Bonferroni)校正,将单个变量的显著性水平调整为0.05除以显著解释变量个数。两个最终成本测算关系式的响应变量均为软件成本的自然对数,经自然指数回代后,所得测算为中位数成本而非均值成本——这是对数线性模型的固有属性,也是使用该成本测算关系式时必须注意的口径。
该研究在构建两个成本测算关系式时遵循“先初选、后精简”的两阶段策略。第一阶段,以自然对数的等效源代码行数和源代码行数、自然对数的编程工时、装备类型虚拟变量、合同类型虚拟变量为候选解释变量,进行逐步回归,保留p值满足0.05显著性要求的变量;第二阶段,对初选模型应用邦费罗尼校正,剔除校正后不再显著的变量,得到最终模型;两个成本测算关系式的唯一区别在于规模输入变量:CER-1以Ln(ESLOC)为核心规模输入,CER-2以Ln(SLOC)为核心规模输入,二者在逐步回归中互不混用,从而保证模型的可对比性。
据此得到第一个基于等效源代码行数的成本测算关系式(CER-1)如下:
(电子/自动化软件项目)
(非电子/自动化软件项目)
其中,e为自然指数。为便于应用,该研究将电子/自动化软件的-0.88系数并入截距(0.62-0.88=-0.26),从而保持变量显著性不变的同时简化了公式形式。
第二个基于源代码行数的成本测算关系式(CER-2)如下:
(电子/自动化软件项目)
(非电子/自动化软件项目)
其中,“Fixed Price”(固定价格)为虚拟变量,固定价格合同取1,否则取0(0.74-0.88=-0.14为电子/自动化软件项目的简化截距)。
两个成本测算关系式均通过了所有普通最小二乘法假设检验与诊断:残差正态性与方差齐性满足要求;Ln(ESLOC)与Ln(Hours)之间的VIF约为3,远低于10的阈值,不存在多重共线性问题;未发现显著影响模型有效性的异常值或强影响点。
下表从系数结构、拟合优度与预测稳定性三个维度对上述两个模型进行了对比。
表1 两个成本测算关系式的对比汇总

从下图(两模型验证指标对比)可以直观看到,源代码行数模型在R²(0.63对0.62)与PRESS R²(0.62对0.61)上均略占优势,但差距很小,处于统计上可忽略的水平;调整R²两者持平。换句话说,两个模型预测能力相当,并未发现等效源代码行数相对源代码行数的显著优势。
这一结果具有方法论意义:长期以来,美国业界与学术界倾向于认为等效源代码行数通过对复用、修改代码的折算调整,能更真实地反映工作量,因而应优于原始源代码行数。然而,在当前等效源代码行规范化技术下,其预测优势并不明显。这一结论可能受到当前ESLOC归一化方法的影响——如果等效源代码行数的折算规则本身不够完善,其潜在优势就难以显现。

图2 两个成本测算关系式模型验证指标对比
五、研究结论
该研究利用海军航空系统司令部与空军寿命周期管理中心整合后的328个已完成软件合同、43个国防部项目的历史数据,构建了两个可预测软件成本中位数的成本测算关系式,其核心发现可归纳为五点:
第一,编程工时是软件成本最主导的驱动因素。在对数模型中,编程工时的弹性系数(0.57—0.62)显著高于规模变量,且与成本的相关系数(0.74)最强,表明工时作为成本解释变量的核心地位。
第二,电子/自动化软件类项目成本显著较低。该虚拟变量系数在两个模型中均为-0.88,对应成本约低59%,且该类项目占样本近四成,其“无复杂平台集成负担”的成本结构特征值得关注。
第三,固定价格合同成本显著较低。CER-2中该系数为-0.61,对应成本约低46%,提示合同激励结构对软件成本具有较大影响。
第四,等效源代码行与源代码行模型的预测能力相当。两个模型R²分别为0.62与0.63,调整R²与PRESS R²均十分接近,未发现等效源代码行相对源代码行的显著优势,“等效源代码行必然更优”的既有假设需要进一步验证。
第五,模型统计质量良好。两个成本测算关系式均通过正态性、方差性检验,不存在多重共线性(VIF约3)与异常值问题,PRESS R²与调整R²一致表明预测稳定、且未过度拟合。
六、几点认识
该研究最突出的方法论贡献,在于展示了跨军种、跨数据库数据整合对成本建模能力的提升作用,有以下几点可参考借鉴:
一是方法论上,应加快构建软件成本测算关系式,可参照该研究“对数变换+逐步回归+稳健诊断”的建模流程,基于实际成本数据构建本土化成本测算关系式。
二是数据上,应大力推进软件成本历史数据的一体化建设,整合软件项目成本、规模、工时等数据资源,建立统一规范的软件成本数据库,为建模、分析与决策提供支撑。
三是标准上,应加强软件规模度量标准与规范化,研究适合软件特点的规模度量与折算规范,为成本测算提供标准化输入。
四是管理上,应重视合同类型与成本控制的关系,在合同类型选择与定价时应统筹考虑技术成熟度、需求确定性与成本控制目标,优化激励结构设计。
五是应用上,应坚持“多模型交叉校验”的测算文化,推动成本测算从“单一模型”走向“多模型融合、证据交叉验证”,提升测算结果的稳健性与公信力。
(中国航空工业发展研究中心 张海涛)
声明:本文来自空天防务观察,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。