中国科技核心期刊      中国指挥与控制学会会刊     军事装备类重点期刊
Equipment Technology

Research on Life Cycle Cost Estimation of Large Complex Military Software

  • LIU Cheng-bin 1, 2 ,
  • GUO Lin-da 1 ,
  • CHENG Yun 1
Expand
  • 1. Graduate School,National Defense University,Beijing 100091
  • 2. Academy of Military Sciences,Consulting Center for Strategic Assessment,Beijing 100091, China

Received date: 2022-02-06

  Revised date: 2022-05-26

  Online published: 2022-12-12

Abstract

Life cycle cost of military software is an important basis for software management department and manufacturing units to make decisions. From the perspective of military software engineering, it is necessary to deeply discuss the connotation and structure of life cycle cost of large complex military software, and to construct the modeling method and flow of life cycle cost estimation for large complex military software, which can lay a foundation for deepening the theoretical research on life cycle cost management of large and complex military software.

Cite this article

LIU Cheng-bin , GUO Lin-da , CHENG Yun . Research on Life Cycle Cost Estimation of Large Complex Military Software[J]. Command Control and Simulation, 2022 , 44(6) : 57 -62 . DOI: 10.3969/j.issn.1673-3819.2022.06.009

随着武器装备信息化的快速发展,软件已列装部队并成为现代联合作战装备体系的重要组成部分,对装备体系能力生成的贡献越来越大。军用软件费用估算作为军用软件工程领域的研究方向之一,在军用软件管理决策中发挥了重要作用,因而备受各方关注。然而,目前国内外研究成果主要集中在软件研发费用估算模型及其运用上,对软件订购以及后期运行维护费用的估算研究重视不够,难以满足武器装备全系统全寿命管理的要求。从已有文献来看,相关的软件费用估算方法、技术和工具种类很多,具体可归纳为两类:一类是从软件功能实现出发建模,如COCOMO模型系列、专家估算、类比估算、回归分析、COBRA和Web-COBRA等估算方法[1]以及PRICE-TRUES[2]、InCoME[3]和SEER-SEM[4]等支持工具,侧重于软件需求满足度指标;另一类从软件质量控制出发建模,如基于软件缺陷(故障)预测技术的成本估算模型[5-6]和基于绩效偏差阈值的军用软件项目挣值管理模型[7]等,侧重于软件研发质量效益的提高。总体来说,近三十年软件成本估算在精确性方面取得的进步成果为开展大型复杂军用软件寿命周期费用估算工作奠定了坚实的基础,但距离建立与军用软件管理新模式相适应的寿命周期费用估算体系还有较大差距,甚至对于军用软件寿命周期费用估算理论与方法等基本问题,至今仍没有形成统一的认识和规范。本文通过探讨大型复杂军用软件寿命周期费用特点及范围,提出了大型复杂军用软件寿命周期费用估算模型构建方法和流程,为深化我军军用软件寿命周期费用管理理论研究奠定了基础,对相关部门或单位加强大型复杂军用软件项目费用管理具有参考价值。

1 军用软件寿命周期费用概述

军用软件是指为实施或保障军事行动在计算机软件、信息系统或武器装备中嵌入的软件,或在提供军用信息系统集成等技术服务时所需的计算机软件[8]。寿命周期费用通常指产品论证、研制、生产、使用和退役各阶段一系列费用的总和。由此,一般将军用软件寿命周期费用界定为:在软件生命周期(规划、设计、构建与运行维护阶段)内,为取得各种软件资源支持,维持软件的研究、生产、运行与管理保障所投入的人、财、物等一切费用,可看作军用软件研究、开发、采购、生产和运行的成本与管理费用的总和,通常包括软件研制开发费、订购费和运行维护费等。
然而,这种简单将寿命周期费用概念应用于军用软件项目的做法,难以满足大型复杂军用软件采购管理的新要求。由于大型复杂军用软件具有需求不明确,更新速度快,安全性、可靠性高等内在特征,决定了传统由立项论证、系统设计、程序开发、测试试验和运行维护等构成的装备寿命周期管理线性模型已不再适用,需根据大型复杂军用软件管理的新特征和新要求,遵循“先试先用,边试边建”的思路,采取螺旋迭代型软件寿命周期管理模型,先期以复杂的军事需求为指导建构软件逻辑,以相对较小的投入进行研发试用,后续根据基层部队(用户)的反馈和对软件运行过程中缺陷规律的把握,通过在已有基础上进行二次定制开发或迁移,逐步满足不同用户、体系和设备的需求。
螺旋迭代型软件寿命周期管理模型是从军用软件工程实现角度出发设计的。它要求军用软件工程统筹考虑规模和风险两方面因素,将软件需求、架构、设计、开发、测试等多个阶段转化为多个版本的迭代过程,每次迭代重点解决某一个或某几个阶段的需求,先试先用,然后逐步升级完善。这一模型的每一次迭代通常包括六个步骤:明确目标,识别风险,确定替代解决方案,开发本次迭代原型并验证,准备下次迭代,提交下次迭代方案[9]。按照军用软件螺旋迭代模型的构建思路,大型复杂军用软件寿命周期费用可分为初始投资费用。迭代升级费用和适应性维护费用三部分。其中,大型复杂军用软件初始投资费用包括软件首版开发费用、缺陷检测与修正费用、定型测评费用以及首版运行周期内的更正性维护、预防性维护费用;迭代升级费用指军用软件经过N次迭代升级或版本更新的总费用,主要是为迭代升级或版本更新而进行的需求分析、设计、编码、集成等工作所需费用;适应性维护费用指军用软件经过M次适应性维护的总费用,主要是为适应软件应用环境变化而开展的软件移植和适应性调整等活动所需的费用。军用软件寿命周期费用分解结构如图1所示。
图1 大型复杂军用软件寿命周期费用分解结构图

2 军用软件寿命周期费用估算模型构建

大型复杂军用软件工程研发、运行和使用维护等寿命周期管理过程中,投资总规模大,业务需求变化大,集成测试活动多,外部使用环境更新快。基于上述对军用软件寿命周期费用概念内涵的界定,本文建立如下军用软件寿命周期费用估算模型。

2.1 军用软件寿命周期费用总体估算模型

假定某大型军用软件在整个寿命周期过程中共经过N次迭代升级和M次适应性维护活动,则该软件全寿命周期费用fLCC的估算模型为
fLCC=fLCC(0)+ n = 1 N f U P - L C C ( n )+ m = 1 MfAD(m)
其中,fLCC(0)为军用软件初始投资费用; f U P - L C C ( n )为军用软件第n次迭代升级费用;fAD(m)为军用软件第m次适应性维护费用。

2.2 军用软件初始投资费用估算模型

军用软件初始投资费用主要指开展军用软件首版研发、缺陷检测与修正、定型测评以及使用过程中的更正性维护和预防性维护等所需的费用,其估算模型为
fLCC(0)=CRD(0)+CTE(0)+CEV(0)+COPM(0)+COPN(0)
其中,CRD(0)为军用软件首版原型开发周期T01内的研发费用;CTE(0)为军用软件首版原型在测试周期T02内的缺陷检测与修正费用;CEV(0)为军用软件首版定型测评费用;COPM(0)为军用软件首版运行周期T03内更正性维护费用;COPN(0)为军用软件首版运行周期T03内预防性维护费用。军用软件首版的寿命周期为T0,包括开发周期T01、测试周期T02和运行周期(服役年限)T03,即T0=T01+T02+T03
军用软件首版研发费用主要是软件研发需求分析、设计、编码、集成及相关项目管理、支持活动等所需费用,包括综合费用和直接人力成本两部分,具体估算模型为
CRD(0)=TC+DNC=UFP×VAF×PDR×F+DNC
其中,TC为军用软件首版开发综合费用,包括军用软件首版研发过程中发生的直接人力成本、间接人力成本和间接非人力成本;DNC为直接非人力成本,包括军用软件首版研制过程中直接发生的会议费、差旅费等事务性开支及其他专用费用支出等;UFP为原始功能规模,根据军用软件首版的需求按软件功能度量国际标准确定(如NESMA标准或IFPUG标准等);VAF为软件开发规模调整因子,由软件开发过程中的环境因素决定,可参照表1确定;PDR为开发效率,单位为人时(人月)/功能点;F为军用软件研发综合费用率,单位为万元/人时(人月);PDRF须根据软件行业有关基准数据和军用软件研制生产效率变化等情况予以确定和调整。
表1 军用软件研发环境因素及其调整因子[10]
系统复杂度 输入输出复杂度 应用复杂度
关键性
数据通信
分布式处理
性能
计算机资源约束
事务率
在线数据输入
在线更新
最终用户使用效率
复杂处理
可重用性
易安装性
易变更性
易操作性
多工作场所
每个环境因素调整因子的取值介于0~5,代表其影响程度的权重。其中,0为无影响;1为偶尔有影响;2为适度影响;3为一般影响;4为重要影响;5为重大影响。VAF=0.65+ l = 1 140.01×AFl,AFl对应第l个环境因素调整因子的取值。
军用软件首版原型的缺陷检测与修正费用是指软件首版原型在测试阶段开展故障排查及修正等活动所需费用,包括测试启动费用、故障修复费用以及修复后的测试费用等,其估算模型为
CTE(0)= C T E - 0+ C T E - 1×rc(T02y+ C T E - 2× e η [ p ( t ) - p 0 ],t≤T02
其中, C T E - 0为军用软件首版测试启动成本,如研发人员与测试人员的协调成本等; C T E - 1为军用软件首版测试阶段修正故障时的单位平均成本;rc(T02)为到T01+T02时刻为止检测到的软件故障累计数的期望值;μy为军用软件首版测试阶段排错时间的期望值; C T E - 2为单位测试资源消耗的测试成本;η为军用软件首版规模参数;p(t)为故障排除效率;p0为故障排除效率平均水平。相关参数可根据历史同类软件的统计数据类比估算得出。
军用软件首版的定型测评费是用于第三方软件测评机构开展软件测评服务所需的费用,其估算模型为
CEV(0)=TC×TCR=TC×AB×β
其中,TC为军用软件首版综合费用;TCR为软件定型测评系数;AB为软件测试类型调整因子,β为软件测评技术难度调整因子,根据软件定型测试调整因子评分标准确定取值。
军用软件首版的更正维护费用是指软件运行(在役)阶段为消除其中所存在的缺陷等活动所需费用,其估算模型为
COPM(0)= C O P M - 1×μw×[rd(T03)-rc(T02)]
其中, C O P M - 1为军用软件首版运行(在役)阶段修正故障时的单位平均成本;μw为软件运行(在役)维护阶段排错时间的期望值;rd(T03)为到T01+T02+T03时刻为止软件故障累计数的期望值。
军用软件首版运行(在役)阶段预防性维护费用是为确保软件稳定可靠运行和更好地适应未来可能的应用需求,修正或补充部分软件功能所需的费用,其估算模型为
COPN(0)= t = 1 T 0 β × W 0 ( 1 + i ) t t≤T0
其中,β为军用软件首版第t年小修费用的系数;T03为军用软件首版运行周期(服役年限);W0为军用软件首版初始研发测试成本,即W0=CRD(0)+CTE(0)+CEV(0);i为银行利率。

2.3 军用软件迭代升级费用估算模型

本文中大型复杂军用软件迭代升级是在原有软件版本基础上的系统设计和版本更替,以实现功能需求的调整、升级和优化。假定某大型军用软件经过N次迭代升级或版本更替,则第n次迭代升级费用是按照软件迭代发展需求,实施软件功能修改所开展的迭代升级开发、缺陷检测与修正、定型测评以及运行(服役)过程中的更正性维护和预防性维护等活动所需费用,其估算模型为
f U P - L C C ( n )=(CRD(n)+CTE(n)+CEV(n)+COPM(n)+COPN(n))/(1+i ) T T 1
其中,CRD(n)为军用软件第n次迭代升级的开发费用,可参照CRD(0)估算模型确定;CTE(n)为军用软件第n次迭代升级后的检测与故障修复费用,可参照CTE(0)估算模型确定;CEV(n)为第n次迭代升级后的第三方测评费用,可参照CEV(0)估算模型确定;COPM(n)为军用软件第n次迭代升级后,在其运行周期Tn内的更正性维护费用,可参照COPM(0)估算模型确定;COPN(n)为军用软件第n次迭代升级后在其运行周期Tn内的预防性维护费用;i为银行利率;TT1为军用软件第n次迭代升级前研发、测试及运行(服役)总周期,TT1= j = 0 n - 1Tj
n次迭代升级后,军用软件运行周期内预防性维护费用的估算模型为
COPN(n)= t = t 0 T n - 3 β × W n ( 1 + i ) t
其中,β为军用软件经过第n次迭代升级后第t年小修费用的系数;Wn为军用软件经第n次迭代升级后的研发测试总费用,即Wn= j = 0 nCRD(j)+CTE(j)+CEV(j);i为银行利率; T n - 3为军用软件经过第n次迭代升级后的运行周期(服役年限);t0为军用软件经过第n次迭代升级后的列装时刻,t0= j = 0 n - 1Tj+ T n - 1+ T n - 2

2.4 军用软件适应性维护费用估算模型

军用软件适应性维护费用是指为适应软件应用环境变化而开展的软件移植和适应性调整等活动所需的费用,包括软件修正费用以及修正后的软件测试费用和运行阶段费用。假定某大型复杂军用软件经过M次适应性维护,且在第m次适应性维护前已进行k次迭代升级,借鉴文献[11]和[12]构建估算模型如下:
fAD(m)= C A D 1 (m)× e I m - I m - 1δ(TAD(m))+ C A D 2 (m)[δ( T A D ( m ) L)-δ(TAD(m))]+ C A D 3 (m)× e I m - I m - 1TAD(m)
其中, C A D 1 (m)、 C A D 3 (m)分别为第m次适应性维护过程中,软件测试阶段内修正单位软件故障费用的估计值和单位时间内测试费用的估计值,可根据开发软件的经验数据得到; C A D 2 (m)为第m次适应性维护后,软件运行阶段内修正单位软件故障费用的估计值;δ( T A D ( m ) L)、δ(TAD(m))分别为第m次适应性维护过程中,软件故障总失效数和测试阶段软件故障失效数,可运用软件可靠性模型测算[11];Im为第m次适应性维护时外部使用环境变化调整因子[12],Im=(Xm-Ym)(1-Zm),XmYmZm是环境因子参数,分别表示第m次适应性维护时环境因子变化的比例、环境因子变化的速率和环境因子的调整系数,可根据已发布的软件版本失效情况或经验数据计算得到;TAD(m) T A D ( m ) L 分别为第m次适应性维护后的部署时间和运行时间。

3 军用软件寿命周期费用估算流程

本文针对大型复杂军用软件工程特点,结合实际工作经验,总结军用软件寿命周期费用估算的基本流程如图2所示。该流程主要从军用软件螺旋式迭代型寿命周期模型出发,依据军用软件系统论证相关文档(主要指立项综合论证报告,报告中描述了软件的组成、功能、性能、新研和改造软件、试验环境需求及研发过程中需开展的测试试验等内容),分别按照首版初次投资费用、后续迭代升级费用和适应性维护费用等三个方面分别进行测算,这样就可得到各类费用数据;在此基础上,对大型复杂军用软件项目寿命周期投入进行汇总测算和综合分析。值得注意的是,在每个环节均需结合经验和对历史数据的分析结论,以求最大限度地接近实际情况。依据不同软件的特点和要求,大致可分以下五个步骤。
图2 军用软件全寿命周期费用估算流程图
1)通过需求分析明确测算对象。根据大型复杂军用软件立项论证综合报告,明确软件应满足的性能要求以及寿命周期任务安排,确定军用软件初始版本研发内容、进度和使用运行周期、运行环境等;参考历史或国外的经验和规律确定软件升级周期与适应性维护周期安排。
2)计算军用软件初始投资费用。以军用软件初始版本的需求论证为基础,按照国际功能点度量标准确定功能点数量,参照同类项目或依据经验测算直接非人力成本,计算军用软件首版的研发费用和定型测评费用;以同类软件在测试阶段与交付运行阶段故障排除的成本、频次、时长等规律,测算军用软件首版缺陷检测与修正费用和更正维护费用;以军用软件首版运行(在役)阶段日常维护工作量和管理要求,测算军用软件首版预防性维护费用。
3)计算军用软件第n次迭代升级费用。依据军用软件第n次迭代升级的功能需求及其相关的工作量,测算第n次迭代升级研发、故障监测与修正、定型测评以及部署后的故障排除和日常维护等费用。
4)计算军用软件第m次适应性维护费用。依据军用软件第m次适应性维护中软硬件环境变化情况,测算第m次适应性维护费用。
5)汇总计算军用软件寿命周期费用。将以上第二至四步分别得出的费用结果进行合并,并考虑合理的利润比例、可能发生的财务费用以及资金的时间价值等因素,最后得出军用软件全寿命周期费用。

4 结束语

有效的软件费用估算是软件工程和软件项目管理中最具挑战、最为重要的问题之一,也是造成软件项目失控最普遍的原因之一[1]。由于大型复杂军用软件项目投资规模大,研发风险高,质量要求严以及对装备体系作战能力的贡献度大等特点,使得大型复杂军用软件费用估算在项目管理中的作用愈加重要,需结合装备全系统全寿命管理的要求,研究军用软件寿命费用估算问题。本文在以往软件研发和维护费用估算模型基础上进一步理论探讨,对原有估算模型的缺陷和适用基础未做深入研究,估算模型的可操作性等也有待实证检验。但本文建立的寿命周期费用模型仍可作为优化军用软件寿命费用管理与控制策略的理论指导,为推动大型复杂军用软件寿命周期费用科学化、精细化、规范化管理打下坚实的基础。
[1]
李明树, 何梅, 杨达, 等. 软件成本估算方法及应用[J]. 软件学报, 2007, 18(4):776-784.

[2]
谢岳, 郭基联, 沈安慰, 等. 装备软件成本估算中先进参数模型运用[J]. 军事经济研究, 2015(10):28-30.

[3]
李效云, 杨达, 叶凯. InCoME软件成本估算工具[J]. 计算机工程与设计, 2010, 31(23):5015-5018.

[4]
[法] Dale Shermon. 软件成本工程[M]. 温志诚,刘晓东,任建军,刘立峰,译. 北京: 国防工业出版社, 2011:231-233.

[5]
焦彦平, 高通, 龚波. 一种软件缺陷排除成本预测方法[J]. 装备指挥技术学院学报, 2001, 22(2):99-102.

[6]
孙胜祥, 慕林霖, 訾书语. 基于可维护性的装备软件成本估算模型[J]. 海军工程大学学报, 2016, 28(6):38-41.

[7]
杨健, 张晓丽. 基于绩效偏差阈值的军用软件项目挣值管理研究[J]. 软件导刊, 2013, 12(6):1-3.

[8]
杨丰. 软件工程理论与应用[M]. 北京: 北京大学出版社, 2010.

[9]
张路. 基于生命周期的软件成本管理[J]. 价值工程, 2011(14):26-27.

[10]
曹济, 温丽. 软件成本评估[M]. 北京: 清华大学出版社, 2016.

[11]
闫雪丽. 嵌入式软件可靠性模型研究[D]. 哈尔滨: 哈尔滨工程大学, 2011.

[12]
高峰, 等. 一种考虑软件测试与运行环境差别的软件成本模型建模方法[P]. 中国专利: 103310073B, 2016.04.20.

Outlines

/