摘要:软件系统特别是针对信息化武器的软件密集系统的质量问题已经得到了中外、军内外的重视,美军对此研究和实践较为前沿。本文在简要介绍美军软件质量大致现状的基础上,论述了美军对软件失败的认识,以及美军软件系统的质量特性,分析并介绍了美军在软件系统管理中的三种质量适用标准,研究了美军软件质量管理的要点、指标、六大管理问题其解决措施,并以获得国防部软件最高奖的LHMBC和SmartCam3D项目为例对美军的管理实践进行了分析,最后简要地总结了全文。
关键词:美军,武器装备,软件系统,质量管理,标准,能力成熟度模型,案例
作者简介:龙梦廷,男,知远战略与防务研究所高级研究员,《知远防务评论》杂志编辑,长期研究外军装备保障与采办发展趋势。
引言
在《2010联合设想》中,美参谋长联合会议主席阐述了21世纪优先运用软件技术的战略。该设想解释了软件系统对传统的军事行动,如机动、攻击、保护和后勤等将产生影响。指出,通过信息优势,美军将获得全面优势。要获得全面优势,意味着要建造一整套集成的、复杂的软件系统,特别是C4ISR 系统,以获得认知战场态势的优势。
软件系统,包括依靠软件系统的信息化武器系统(也称为软件密集系统)对未来战争的影响。然而,美军武器装备管理者已经认识到,先前习以为常的软件,现在已经被认为几乎是每一个主要防务采办中风险最大的系统部件。据《华盛顿邮报》报道,一项研究表明, 55个航空航天和国防合同中的四分之三的软件项目在极其混乱的状态下进行。
同时,软件研制质量令人不敢乐观,软件系统维护花费的时间和费用也是惊人的。据美国国防部和卡内基—-麦隆大学软件工程研究所的统计,在每1000行代码中一般有5至15处错误。而据五角大楼的一项历经5年的研究表明,跟踪一处错误平均耗费75分钟,纠正一处错误需要2至9小时。总的来说,清除每1000行内的错误就需要耗费150小时,花掉大约30000美元。对于嵌入式系统来说,这种估计甚至是保守的,因为在这些系统中一处关键性的错误将生死枚关。于是,软件系统的采办质量管理和研制质量管理得到极大的重视。
1
美军软件系统的质量特性
1.1 美军对软件失败的认识
Stephen flowers在其《软件的失败——管理的失败》一书认为软件系统“有缺陷但能使用”、“不能使用”、“完全不能使用”和“绝对灾难”都视为软件采办管理的失败,并对软件失败做以下归类:
(1)从来不用。软件完成后,从来没有按原始设计目的进行使用,或者用户对其有敌意而拒绝使用。
(2)费用超过收益。研制费用超过系统在使用周期内可能带来的收益。
(3)没有完成。由于系统的复杂性、项目管理者计划研制周期过长(研制无法与技术进步保持同步)而导致在计划完成前被废止。
作为美军实力最强的R&M研究机构的空军研究实验室(原罗姆实验室)软件数据分析中心(DACS)在20世纪90年代末的一份研究报告中,列出了软件失败的调查结果。
(1)由于各种原因而使计划没有完成并被取消的软件计划占总计划的25%。
(2)在交付的软件中存在缺陷或潜在缺陷的占15%。
(3)修改软件花费的时间占总时间的30%~40%。
(4)延误时间、拖延进度的软件项目达50%。
1.2 美军关于软件系统质量特性的观点
综上所述,美军武器装备软件采办和研制的质量特性可归纳如下:
(1)系统性特性。尤其是系统性风险,如上述“软件完成后,从来没有按原始设计目的进行使用,或者用户对其有敌意而拒绝使用”和“计划没有完成并被取消的软件计划占总计划的25%”这种情况,在硬件系统中尽管存在,但绝没有如此之突出。
(2)时间性特性。由于技术的复杂性和软件在研制过程中具有需要解决许多看起来似乎已经成熟但实际上还需继续进行创新性研发的技术开发特点,所以软件研制的时间性这一质量特性更为突出。“由于系统的复杂性、项目管理者计划研制周期过长(研制无法与技术进步保持同步)而导致在计划完成前被废止”,造成了决策失误和经济的重大损失;“延误时间、拖延进度的软件项目达50%”,也是不能容忍的。
(3)可靠性、保障性特性。软件系统的可靠性、保障性与硬件系统相比,具有明显不同。一是交付的软件存在缺陷或潜在缺陷的质量问题比较普遍,空军研究实验室软件数据分析中心的分析结果是“在交付的软件中存在缺陷或潜在缺陷的占15%”;二是软件保障难度大、技术复杂、要求高;三是软件修改费时费力,“修改软件花费的时间占总时间的30%~40%”;四是对软件改进的要求是经常性和持续性的。
(4)费效分析特性。在软件质量管理中,费效比仍然是一个重要的指标。“研制费用超过系统在使用周期内可能带来的收益”,在《软件的失败——管理的失败》一书中被认为是软件的失败;在软件未能完成而被取消的计划中,费效比失衡占有一定的比例。
(5)安全与保密特性。安全性是指软件系统有理由依靠其不出事故而给以信任的特性;保密性是指软件系统能保守秘密的程度,一般源于客户的要求。安全与保密并不完全由于软件系统能够给予保证的,但软件系统必须具有稳定的性能,并具有防范入侵的能力,包括对攻击的抵御能力、对攻击的识别能力和受到攻击后的恢复能力。
(6)可集成和可修改特性。可集成性是指软件可被集成的程度,使任何软件系统都必须具备的质量属性;软件在运用过程中,难免需要对其进行某些修改,并且应该是可以修改的,这就是软件系统的可修改特性。软件的可修改特性与保障性相关,可修改特性主要指软件的可扩展、可重构、可升级性。
2
美军软件系统质量管理适用标准
在软件产品开发的管理上,软件过程不能重复,不能持续改进的特征依然突出。为了参与竞争的需要,美军企业软件管理采用了先进的管理理论和方法,以提高综合竞争实力。较大的软件企业大都在积极地推行ISO9001或CMM、CMMI质量体系认证。
2.1 ISO/IEC 90003和ISO 9001
ISO 9001认证是由品质保证活动发展起来的。符合ISO 9000族标准已经成为在国际贸易上需方对卖方的一种最低限度的要求。其中,ISO 9001:2000《质量管理体系——要求》,是用于第三方认证和审核的唯一标准。ISO 9001适用于不同的企业,包括制造业、服务业、建筑业等。美军在软件系统质量管理适用标准方面进行了积极推行。
ISO/IEC 90003:2004《软件工程——计算机软件应用ISO9001:2000指南》,是国际标准化组织和国际电工委员会制定的最新标准。它覆盖软件开发、采办、运行、保障的所有方面,适用于商业合同中的软件、组织过程的软件产品、嵌入在硬件产品中的软件开发与服务。ISO/IEC 90003没有修改ISO 9001的要求,只是在其基础上增加了软件管理指南。
2.2 软件能力成熟度模型
软件能力成熟度模型(Capability Maturity Model For Software ,CMM),是由美国卡内基梅隆大学的软件工程研究所(Software Engineering Institute,SEI)受美国国防部委托研究制定并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。
CMM把软件开发过程的成熟度由低到高分为5级,即初始级、可重复级、已定义级、已管理级和优化级,见表1。CMM评估等级的提升有助于客户对该软件企业建立信心。CMM既不是政府标准也不是行业协会标准,但在发达国家,CMM已成为衡量软件公司软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准。
表1
CMM成熟度等级
等级、内容
关键过程
1级:初始级
1级没有关键过程。
2级:可重复级
建立基本的项目管理过程,以跟踪成本、进度和功能。必要的过程记录到位,以便重复以前类似应用领域项目的成功经验。
1.需求管理(RM)——在客户和项目组之间建立对软件项目所涉及的客户需求的共同理解。这种一致性是策划(参见SPP)和管理(参见
SPTO)软件项目的基础。
2.软件项目策划(SPP)——为实施软件工程和管理软件项目制订合理的计划。该计划是管理软件项目的基础(参见SPTO)。
3.软件项目跟踪和监督(SPTO)——对实际进展情况提供适当的可视性,以便管理者在软件项目的绩效与软件计划有重大偏离时能采取有效措施。
4.软件子合同管理(SSM)——为选择合格的软件子承包商并有效地管理他们。它包括RM、SPP和SPTO对基本的管理控制所关心的事情,以及SQA和SCM的必要协调。
5.软件质量保证(SQA)——向管理者提供对项目所用过程和所构造产品的适当可视性。
6.软件配置管理(SCM)——在整个项目生存期中建立和保持软件项目产品的完整性。
3级:已定义级
文档化、标准化管理活动和工程活动的软件过程,并集成至组织的标准软件过程(OSSP)。所有项目使用开发和维护软件的OSSP已批准的剪裁版本。
1.组织过程焦点(OPF)——确定全组织对改进组织的整个软件过程能力的软件过程活动的职责。OPF活动主要结果是软件项目(参见ISM)使用的—组软件过程资产(参见OPD)。
2.组织过程定义(OLD)——开发和维护能改进所有项目绩效的—组有用的软件过程资产。
3.培训大纲(TP)——向人员提供技能和知识,使他们能有效且高效地履行其职责。培训是组织的职责,但软件项目应识别其所需技能,并在项目是独—的情况下提供必要的培训。
4.集成的软件管理(ISM)——将软件工程和管理活动集成为—个项目应遵循的已定义的软件过程,它是从OSSP和有关的过程资产剪裁而来(参见OPD)。ISM包含2级的SPP和SPTO。
5.软件产品工程(SPE)———致地执行—个妥善定义的工程过程,它集成了全部软件工程活动,以便有效且高效地生产正确、—致的软件产品。SPE描述项目的技术活动,例如需求分析、设计、编码和测试。
6.组间协调(IC)——建立—种使软件工程组与其它工程组积极协调的工作方式,以便项目能够更有效且高效地满足客户的需求。
7.同行评审(PR)——及早地、高效地消除软件产品的缺陷。—个重要的必然效果是更好的了解软件产品和可预防的缺陷。
4级:已管理级
收集软件过程和产品质量的详细数据。定量地了解和控制软件过程和产品质量
1.定量过程管理(QPM)——定量地控制软件项目的过程绩效。重点是识别偏离可度量的稳定过程的特殊原因,并在适当时纠正引发瞬间偏差的情况。
2.软件质量管理(SQM)——建立对项目软件产品质量的定量了解,并实现特定的质量目标。
5级:优化级
由过程和试点的创新思想和技术的定量反馈保证持续的过程改进。
1.缺陷预防(DP)——标识缺陷的原因,并防止其再现。—般价值的过程更动转入其他软件项目(参见PCM)。
2.技术更动管理(TCM)——标识新技术(即工具、方法和过程),并以有序的方式引入组织。
3.过程更动管理(PCM)——是持续改进组织中所用的软件过程,以便改进软件质量、提高生产率和缩短产品开发周期。PCM采用DP的增量改进和TCM的创新改进,并向组织提供。
2.3 集成的能力成熟度模型
集成的能力成熟度模型(Capability Maturity Model Integration,CMMI)是CMM的延续和发展。2005年底,基于CMM模型的认证和评估被停止;2006年,原来的CMM完全被CMMI取代。CMMI框架有两个功能:第一,改革了软件采购方法;第二,建立一种从集成产品与过程发展的角度出发,包含健全的系统开发原则的过程改进。CMMI已成为认证和评估的主流模型。CMMI可以解决现有不同CMM模型的重复性、复杂性,并减少由此引起的成本,缩短改进过程。美国防企业在实施CMMI技术的投入都得到了丰厚的回报。据美软件工程研究所(SEI)统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间。
CMMI的目标,第一个是质量,第二个是时间表,第三就是要用最低的成本。特别强调的是,CMMI不是传统的仅局限于软件开发的生命周期,而是应该被运用于更广泛的一个范畴——工程设计的生命周期。CMMI也分为5个等级,即完成级、管理级、定义级、量化管理级和优化级,见表2。CMMI的5个等级也称为5个台阶,而且每一个台阶都是上面一阶台阶的基石。企业在实施CMMI的时候,台阶要一步一步地上。
表2
CMMI等级及特点
等 级
特
点
1级:完成级
(台阶一)
在完成级水平上,企业对项目的目标与要做的努力很清晰,项目的目标得以实现。但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。企业在1级上的项目实施对实施
人员有很大的依赖性。
2级:管理级
(台阶二)
在管理级水平上,企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。企业在2级水平上体现了对项目的一系列的管理程序。这一系列的管理手段排除了企业在1级时完成任务的随机性,保证了企业的所有项目实施都会得到成
功。
3级:定义级
(台阶三)
在定义级水平上,企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化。这样,企业不仅能够在同类项目上得到成功的实施,在不同类的项目上一样能够得到成功的实施。
科学的管理成为企业的一种文化,成为企业的组织财富。
4级:量化管理级
(台阶四)
在量化管理级水平上,企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。
5级:优化级
(台阶五)
在优化级水平上,企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的不合格品予以预防。能够主动
地改善流程,运用新技术,实现流程的优化。
3
美军软件系统质量管理要点及指标
3.1 质量管理要点
为了更好地评估软件产品的成熟度,美军要求项目经理们通过跟踪相应的14个度量指标来处理6个方面的管理问题。
(1)工作完成的进度和进展,包括费用、进度和开发过程的进展。
(2)交付要求能力的增长性和稳定性,包括要求的可跟踪性、要求的稳定性、设计的稳定性、开发过程的进展和复杂性。
(3)完成工作的资金和人力资源,包括费用和人力。
(4)交付产品的质量,包括故障剖面、可靠性、试验的范围、复杂性和试验的深度。
(5)满足项目需求的软件开发性能,即软件工程环境。
(6)软件重用、Ada和标准数据单元利用的技术的充分性,即计算机资源的利用。
3.2 质量管理指标
针对上述管理问题,美国陆军评价中心的陆军软件度量办公室提出了14个指标。
(1)费用。跟踪软件的花费(所花费的美元数/分配的美元数)。
(2)进度。跟踪进度的相应增长(事件/可交付的进展)。
(3)计算机资源利用率。跟踪计划和时间的利用情况(所同资源能力的百分比)。
(4)软件工程环境。开发商的环境,包括开发商的资源和软件开发过程的成熟度。
(5)人力。显示开发商对开发项目的人力资源应用,以及开发商保持足够人力完成项目的能力。
(6)开发进展。显示软件开发工作的完成程度,该指标也可用于判断是否许可进入下一个软件开发阶段。
(7)要求的可跟踪性。跟踪编码要求(跟踪到设计、编码和测试用例要求的百分比)。
(8)要求的稳定性。跟踪要求的变化,即用户/开发者对要求的更改及其影响。
(9)复杂性。评估编码质量。
(10)测试访问范围的广度。跟踪测试要求(功能/被验证的要求的百分比)。
(11)测试的深度。跟踪编码的测试(测试程度)。
(12)故障剖面。跟踪开路对闭路的异常,包括总故障数、已解决的总故障数、按优先顺序的故障开路的总时间。
(13)可靠性。监视可能停机时间,注意软件对任务故障的贡献。
(14)设计稳定性。跟踪设计更改及其影响(设计的更改和完成设计的百分比)。
3.3 质量管理问题及解决措施
应美国国防部部长办公室要求,国防部负责采办和技术副部长办公室(OUSD(A&T))和美国国防工业协会(NDIA)系统和软件工程部,于2006年8月24日至25日,召开会议,专题研究在国防采办项目软件密集系统和部署时面临的最顶层的问题。
会议首先由OUSD(A&T)对国防软件项目状况进行总结,指出许多软件项目存在系统性的问题,具体表现是不能实现预期性能、成本和进度要求。OUSD(A&T)强调国防部应该使用当代的技术,激活软件工程,再造世界级的软件竞争能力。会议研究拟定了国防采办项目软件工程2006年面临的5个顶层问题和2个普通问题及其建议,为国防部制定政策和采取措施提供依据。
(1)顶层问题之一:系统需求对软件系统的开发和维护的影响,没有一致的量化和管理。建议:采办机构和供应机构,全部强制性实施有效的软件需求开发和管理实践,包括变化影响评估。
(2)顶层问题之二:软件工程人员没有充分参与基本的系统工程决策。建议:在系统工程全部活动中,整合软件工程,使其制度化。
(3)顶层问题之三:采办方和供应方没有有效参与软件寿命周期的计划和管理。建议:建立一种定量计划和管理文化,在整个软件寿命周期,采用已经被证明有效的过程和共同决策。
(4)顶层问题之四:软件工程专家的数量和质量不能满足政府和国防企业的需要。建议:在适当级别的工作机构中,推行创新战略,吸引、发展、维系高水平人才,满足政府和国防企业现在和将来对软件工程人才的需要。
(5)顶层问题之五:传统软件验证技术处理现代系统的规模和复杂性,是昂贵和低效的。建议:研究企业现在的软件验证实践,编制指南、进行培训、提高效力,保证寿命周期的产品质量。
(6) 顶层问题问题之六:在分布式环境中无法保证复杂软件正确的、可预测的、安全的和不受攻击的运行。建议:与企业合作,开发用于整个采办周期和供应链的、涉及系统保证的方法、标准和工具。
(7) 顶层问题问题之七:在整个寿命周期中,对于民用现成产品(COTS)和非研制(NDI)产品对寿命周期费用和风险的影响没有给予必要的重视。建议:在整个寿命周期中,改进和扩充有关COTS/NDI问题的指导。
4 软件管理成功案例
2004年度国防部软件最高奖为LHMBC和SmartCam3D等项目。美国软件专家,奖励项目评审委员会委员Tracy L. Stauder在评论这些获奖项目时认为,除了各自具有的功能外,它们共同的特点是在软件开发中执行了明确定义的过程,使软件的质量得到保证并达到使用户满意的目的。
(一)轻型手持式迫击炮弹道计算机
由美国军队研究和开发中心(ARDEC)独立研制的轻型手持式迫击炮弹道计算机(Lightweight Handheld Mortar Ballistic Computer,LHMBC)首次给士兵提供了一个轻型的,功能先进的手持式射击控制系统。系统集成了GPS,具有如下功能:用来确定士兵的位置;支持射击坐标测量;具备执行6种瞬时任务能力;保障3种保护射击;检查射击;数字式气象数据保障;与战场炮兵战术数据系统、前方观察系统连接,发送信息或接受数字信息。
LHMBC是应伊拉克战场的紧急需要开发的,计算机硬件采用市场商品R-PDA。LHMBC的产品型号为XM-32,与其上一代产品M-23迫击炮弹道计算机相比,重量由8磅减至3磅,其大小仅为M-23的三分之一,而且运算速度更快,增加了许多前所未有的功能。
XM-32 LHMBC 是一个软件密集系统,为加速系统的研发过程,沿用了2003年部署的迫击炮火控系统(MFCS)的80000条指令,约占XM-32 LHMBC全部指令的40%,因此节约了240万美元费用和缩短了18个月开发时间。XM-32
LHMBC在20005年第三季度首次部署,在2006至2008财政年度,继续作深度开发。
XM-32 LHMBC开发过程中采用了六西格玛方法,实施了收益价值管理和按照美国软件工程研究所(SEI)软件能力成熟度集成模型CMMI 3级(定义级)的要求实施开发过程,因此提高了项目的总体效率、保证了软件的质量。
ARDEC的软件工程中心(SEC)在对 XM-32 LHMBC成功实施CMMI 3级开发基础上,对LHMBC的后续工作和SEC的其它软件项目,将按照CMMI 5级的要求进行开发,SEI于20005年底对SEC进行了CMMI 5级认证。
(二)SmartCam3D系统
由国家航空和航天局(NASA)和快速成像软件公司(Rapid Imaging Software )共同开发的SmartCam3D(SC3D)系统是一个混合人造视觉系统,它综合了座舱传感器的动态信息和从人造视觉系统得到的数据,构造了一个虚拟的座舱窗口。SmartCam3D可以对国防部各部门、航空航天和商业企业提供强大的支持,尤其有助于遥控无人飞行器飞行、无座舱窗口飞行器飞行和无窗口运载器设计。
混合人造视觉系统(HSVS)综合了传感器动态数据和人造视觉系统提供的信息,构造出一个实时的、视觉丰富的环境。实时传感器系统可以提供关注地区的二次环境信息,而传感器图像受到环境能见度影响,在存在雨、雪、烟、雾和沙尘干扰时,实时传感器的作用受到很大限制。人造视觉系统可以提供丰富的可视信息,但它的视觉环境信息是从人造卫星或飞机运行中采集的,这些信息可能已经过时陈旧,甚至成为错误的信息。混合人造视觉系统使得用户可以避开这两种方法各自的缺陷,为用户提供更加丰富的实时可视信息。
SmartCam3D和它提出的创新概念,已经使传统的依靠视觉操作飞行和仪器控制操作飞行之间的区别变得十分模糊。现在SmartCam3D已经成为美国政府选择飞行器可视系统时的首选。
项目开发组由有经验的软件开发专家、人类工程学专家、可视性技术专家、配置管理专家、航空电子学专家和航空航天飞行员组成。这支专业覆盖范围很宽的开发队伍,是项目获得成功的重要保证。
SmartCam3D使用“螺旋型研制”技术开发,实施敏捷编程实践,采用面向对象设计、面向对象编程,在整个项目开发阶段,实施了严格的质量保证程序。
可靠性是项目开发中最重要的考虑因素。该项目实施了缺陷报告和跟踪制度,缺陷的全部处理和最终解决过程,都在软件质量保证过程的严格监控之中。这种强化的质量保证过程,使得用户对开发过程和产品的质量高度信任。
在军事上,SmartCam3D将用于无人驾驶飞机的作战、侦察,为军用战机的飞行员开发新的人机界面,为训练新老飞行员提供支持。SmartCam3D将对提高美军的战斗力做出贡献。
5 总结与简要启示
要提高认识,形成对软件系统的质量管控体系,促进我军信息化武器装备又好又快发展。美军对软件系统的质量予以高度重视,源于战争实践已经证明了软件的风险更大。因此,提高对软件产品质量的重视程度,也是我军武器装备质量建设者应该有的认识。具体要尽快全面确立软件系统开发应用规范与软件系统质量特性;引进、吸收或建立质量体系适用标准;确定软件质量及其管理的指标体系、问题处理措施等。
参考文献
[1] 总装电子信息基础部标准化研究中心.美军装备采办最新顶层文件(2003年5月版).北京:总装备部军标出版发行部,2003.6
[2]
周红,甘玉虹等译.美军典型项目综合后勤保障计划译文选.北京:总装备部电子信息基础部技术基础局,2006 .3
[3] 刘丽华,谢建华等译.美军软件密集系统成功采办与管理指南.北京:总装备部电子信息基础部技术基础局,2003.3
[4] 黄锡滋,陈光宇.美国防采办项目软件工程实施情况评估.装备质量,2007(4)
[责任编辑:诺方知远]