基于CMMI的军事气象水文软件质量控制模型

2015-03-02 12:20程国
软件导刊 2015年1期

程国

摘要:针对军事气象水文软件的特点,结合军事气象水文软件开发中存在的问题,探讨军内常用的软件质量控制方法。根据国际上流行的CMMI软件质量控制方法,建立一种新的适用于军事气象水文软件的质量控制模型,对全面提升军事气象水文软件可靠性具有参考价值。

关键词:软件质量;CMMI;过程域;质量控制模型

DOIDOI:10.11907/rjdk.143680

中图分类号:TP319

文献标识码:A 文章编号文章编号:16727800(2015)001009502

0 引言

军事气象水文保障工作的日益发展,对军事气象水文保障的实时性、精确性和综合性的要求越来越高。保障水平的高低很大程度上依赖于气象水文装备质量的优劣,而软件在气象水文装备系统的研发过程中起着神经中枢的作用,软件质量的好坏关系到气象水文装备的效能能否有效发挥,关系到军队战时能否充分应用气象水文条件。因此根据气象水文软件的特点研发高质量的软件是实施正确的作战指挥,取得作战胜利的重要前提之一。

1 军事气象水文软件特点

(1)政治性。军事气象水文软件的质量关乎国家军队的根本利益,这就要求软件研发人员要始终保持高度的政治敏感性和觉悟,并保持高度的事业心和责任心。

(2)秘密性。军事气象水文软件是整套装备系统的神经枢纽,关乎到国家的安全,必须具有一定的保密等级。

(3)及时性。普通软件的研发往往因为一些意外情况导致项目进程的滞后,但是由于军事气象水文软件的军事属性,要求软件的研发必须按时交付。

(4)精确性。军事气象水文软件是战时军队了解、运用气象水文条件的工具,必须能为军队提供具有代表性、精确性的气象水文资料,不能有丝毫的差错。

军事气象水文软件的特殊性对软件的研发提出了更高的要求。目前,气象水文软件在研发过程中存在诸多问题,导致软件的质量不尽人意,特别是与硬件的可靠性相比,软件的可靠性有待提升。

2 军事气象水文软件开发中存在的问题

(1)软件开发进度难以控制。在军事气象水文软件开发过程中,经常出现资源匮乏、人员流失、资金不到位等情况,导致软件开发难以按计划实施,往往后期为了能按时交付不顾质量好坏而加快进度。

(2)软件研发成本日益增长。随着计算机市场化和民用化进程的加速,软件开发成本不断增加。在硬件成本不断降低的情况下软件成本在整套装备系统中所占的比例越来越大,通过牺牲软件质量来缩减成本的情况日趋明显。

(3)软件交付后难以维护。软件交付并不意味着开发工作结束,软件本身隐含的一些错误只会在某些特定的情况下才暴露出来。随着时间的推移,用户需求及软件的运行环境也会发生变化,从而导致软件的可靠性大大降低。

上述问题是军事气象水文软件研发中普遍存在的现象,亟待改进。要解决上述问题,最根本的一条是必须“树立软件产品质量观念”和“用软件工程方法组织软件开发”[1],并按照软件工程方法的基本原则不断改进软件开发过程。目前,国内控制软件质量比较常用的方法是采用质量管理体系。

3 军内软件质量控制方法及其缺陷

目前,军用软件研制质量控制模型源于GJB 9001B《质量管理体系要求》,该标准明确了军用软件立项论证、设计、研制、生产、试验、审查、维修的质量管理体系,并为实施质量管理体系的评定提供了依据,推动了军工产品质量管理体系建设的迅速发展,促进了军用产品质量与可靠性水平的提高。对于软件的设计和开发,GJB 9001B强调“按软件工程方法,设计和开发计算机软件”[2]。通过强调过程,将组织内所有的工作定义为明确的过程进行质量保证和评估,使影响软件产品质量的因素在产品形成的全过程中始终处于受控状态,以此来提高其使用的可靠性、安全性,将持续改进作为提高质量管理水平的重要手段[3]。

仅依据GJB 9001B《质量管理体系要求》模型来控制军用软件的质量存在一定缺陷:①GJB 9001B主要针对硬件、软件、流程和服务类产品,是由制造业的质量理论和实践总结发展而成,不可能针对软件产品及其制造的特点展开说明,尤其是在型号不断改进,装备状态的多次更改之后,对军用软件的配置管理等更高层次的问题缺乏行之有效的指导;②各组织在实施该标准时没有引起足够的重视,认为不发生安全事故就万事大吉,对质量没有提出更高的要求,忽略了该标准反复强调的“必须持续进行质量改进”[2],研制单位缺乏一套适用的质量管理体系;③GJB 9001B评估的目的是认证组织是否建立了有效的质量管理体系,给出简明、科学、原则性的要求,评估结论只是合格与否,无法找出软件研制过程中的强项和弱项,不能就软件开发过程给出详细描述,对能力提高不能指出简明科学途径。

军事气象水文软件质量控制中应用质量管理体系,采用过程模式,将软件质量的持续改进作为控制软件质量的重要手段,具有深远意义。但仅运用该模式难以使软件质量控制有质的提高,提出一种新的军事气象水文软件质量控制方法势在必行。

4 基于CMMI的军事气象水文软件质量控制方法

4.1 CMMI软件质量控制思想

CMMI(Capability Maturity Model Integration)即能力成熟度集成模型,由美国卡内基·梅隆大学的软件工程研究所提出[4]。它采用了质量管理体系的过程管理思想,将软件开发视为过程,对软件开发和维护过程进行监控和研究,使其更加科学化、标准化,使企业能够更好地实现商业目标;从集成产品与过程发展的角度出发,建立起包含健全系统开发原则的软件过程改进模型。

CMMI侧重软件过程开发的管理及软件工程能力改进与评估[5],它的本质是通过软件研制过程中关键过程域的精确定义,使软件研制从一个不确定的“黑箱”操作过程,变成一个各步骤可视化、偏差可随时控制的“透明”操作过程[6]。消除不同模型之间的不一致和重复,以系统和一致的框架来指导组织改善软件开发过程,降低成本。因此,它被广泛应用于软件开发能力评价并帮助组织改善软件开发质量,是目前国际上最流行、最实用的软件生产过程标准和软件企业成熟度等级认证标准。

4.2 基于CMMI的军事气象水文软件质量控制模型

军事气象水文软件开发程序一般分为问题定义、需求分析、总体设计、详细设计、程序编码和软件测试与评估6个步骤。本文将CMMI中关键过程域与军事气象水文软件开发的一般流程相结合,提出一种新的质量控制模型(见图1)。

图1 基于CMMI的军事气象水文软件质量控制模型

基于该模型,军事气象水文软件质量监控过程如下:

(1)问题定义。本阶段主要任务是对软件需求进行论证,以确定软件开发的目标及可行性。

(2)需求分析。本阶段通过需求管理和需求开发两个关键过程域对软件需要实现的功能进行分析,选定适当的规范,通过与客户交流制定软件质量大纲实施计划。在软件开发全过程中进行需求跟踪和需求验证,将跟踪和验证的结果及时反馈给客户,确保客户需求得到满足。

(3)总体设计。根据GJB 9001B的总体要求,通过项目策划对软件项目进行整体规划。总体设计是软件项目管理的基础,没有切合实际的计划就不可能有效进行项目管理。质量控制的任务是通过估计软件产品的规模及所需要的资源,制定时间表,评估软件风险;根据客户需求、GJB 9001B以及CMMI总体要求编写软件总体设计说明。

(4)详细设计。通过配置管理、过程与产品质量保证、项目监督与控制3个关键过程域对项目进行全方位设计。对项目进行全程监督和质量控制,实现项目进展可视化。更改配置必须遵循软件更改规范,更改后必须进行测试和验证;及时发现项目计划偏离,并采取有效措施进行调整,并最终形成相应的文档;质量管理部门通过评审过程文档,依据CMMI识别软件开发过程中的强项和弱项,针对性地开展工作,保障软件质量。

(5)程序编码。将软件设计的结果转化为计算机可运行的程序代码,进行程序静态分析和单元测试,并编写软件使用说明。严格软件配置管理,确保编码中所有工程活动在CMMI的框架下进行。根据程序单元测试规程进行源程序走查和单元测试,测试完毕后提交测试报告。

(6)软件测试与评估。通过测量分析与验证两个关键过程域检验软件能否满足客户需求。通过文档审阅、代码走查、数据整合和验证进行阶段评审,生成评审结果草案;通过阶段性文档审阅,数据整合和验证检查本阶段的工作是否满足质量要求和技术指标,进而作出决策是否可以进入下一阶段。软件研制成功后,通过内部测试和第三方测试对软件进行质量验证,根据测试结果查找缺陷;根据CMMI评判的等级审阅评审结果草案,采取措施纠正、完善,直到客户满意为止。

(7)持续过程改进。根据评估报告、客户需求及软件交付后运行的实际情况,提出持续改进建议并制定相应计划。通过加强软件配置管理,严格控制软件更改,加强更改后的回归测试和二次评审,使软件质量缺陷得到系统解决。

5 结语

军事气象水文软件的研制应该牢固树立“质量第一”的观点。在信息化高速发展的今天,只有加强质量管理,才能保证军事气象水文软件质量可靠性,提高军事气象保障的精确度和效率。本模型将CMMI关键过程域的理念融入到军事气象水文软件开发常规流程中,通过软件开发过程管理,提升军事气象水文软件的质量及服务能力,进而提高武器装备的质量。