李志伟
(空军第一航空学院 计算机教研室,信阳 464000)
随着信息技术的飞速发展,军事对抗更加信息化和电子化,军用计算机软件在军队信息化建设中作用越来越明显,尤其是涉及武器装备、信息安全和保密方面的关键系统,军用软件的质量越发显得重要。
军用软件的质量管理是一项系统活动。从软件生存周期的过程来看,在软件设计、开发、测试和集成等活动中,不仅需要采用多种方式进行过程控制,而且需要采用先进的管理技术,加强质量管理。质量管理不仅是提高军用软件开发水平的重要途径,也是提高军用软件产品质量的重要保证[1]。
图1 影响软件产品质量的因素
计算机软件是计算机应用的核心,软件产品质量的高低直接关系到计算机系统应用的成败。虽然影响软件产品质量的因素很多,但其主要包括如下几个方面:软件开发所采用的技术、软件开发人员的能力、对软件开发过程的质量控制和软件开发所受限的时间与成本等,如图1所示。
此外,软件产品质量还与软件的质量需求密切相关,包括对于软件产品内部质量、外部质量和使用质量等方面的需求,同时还与软件的测试方法、质量评估准则等有关。
软件质量管理是指在软件质量方面的指挥和控制活动[2]。这些活动包括:制定质量方针和质量目标,实施质量策划、质量控制、质量保证和质量改进等。
从图1可以看出,软件开发的质量管理,不仅包括技术方面的内容,还包括人事方面的内容,如软件开发组人员配备、技术水平、组织形式、工作计划与步骤等。如果人员技术水平较低,组织管理不当,都会直接或间接地影响软件质量。因此,对于军用软件的开发,既要加强软件开发的过程控制,又要加强软件开发的质量管理,并采用工程化的管理理念,对软件开发构建一个全过程、全方位、多层次的三维质量管理体系[2],保证软件产品的开发质量。
该体系框架模型如图2所示。
图2 软件质量管理的三维框架模型
1)时间维:在软件生存周期内实施软件开发的全过程控制;
2)空间维:对软件质量有关的关键因素实施全方位管理;
3)组织维:构建从“软件开发者个人---软件项目组---软件开发单位”的多层次管理模式。
即采用软件工程的方法开发软件。
为了加强对军用软件产品的质量管理,需要按照软件生存周期分阶段制定、实施开发计划,并逐个阶段予以验证,实现对生存周期内软件开发的全过程控制[3]。
在软件生存周期内,为了描述软件开发、操作和维护所需要实施的过程、活动和任务,人们提出了很多生存周期模型,其中,在军用软件开发中被广泛应用的有:瀑布模型、螺旋模型、V型模型等。这些生存周期模型为软件的工程化管理提供了一个基本框架。它们从不同角度描述了软件过程,提供了不同的软件开发方法。
软件工程的实践表明,没有一个单一的解决方法能够解决所有的问题,没有一个生存周期、分析方法、设计方法、测试方法、产品评估方法适合于所有的软件工程项目。因此,应根据工作对象和范围的不同,以及软件开发人员经验的差异,选用合适的软件生存周期模型。
软件产品与硬件产品一样,要想保证其质量,首先要保证开发过程具有高质量。软件产品的质量控制实际上是对软件开发的过程控制。为此,在软件开发工作的开始,就要科学地选定软件生存周期模型,按照所选模型妥善定义整个软件开发过程所划分的各个阶段,并将其作为该软件开发和管理工作的共同依据。
军用软件的基本要求就是要具有高质量和高可靠性,因此,通常需要采用一些精细的软件质量方法对软件的开发过程进行管理,这些方法主要有:
1)严格执行标准化设计规范和代码审查制度;
2)通过质量保证部门,由专业软件人员进行软件评审、缺陷预估、缺陷测量、审查协调等;
3)使用质量预估工具预测可能出现的错误,及时采取缺陷预防和清除操作;
4)在需求阶段完成或基本完成时进行风险分析,对技术风险、财务风险和进度风险等进行正确评估。
值得一提的是,软件审查一直被看做是最有效、最强大的软件缺陷清除方法。在美国,除军用软件外,航空软件、电信软件、医疗设备软件及系统软件和操作系统等所有高可靠性软件的开发商都会在测试前对软件进行审查,并将审查作为首选的软件缺陷清除方法。
近年来,美国军方在软件研制过程中由于采用了精细化管理,其软件的缺陷清除率已达到95%,可以和系统软件相媲美。
军用软件开发管理的工程化,是指对于军用软件工程项目的开发,要按照工程化的方法组织、计划、协调和监督软件开发的整个过程,即采用软件工程的方法管理软件。
良好的质量管理是获得高质量软件的重要保证,所以在软件开发自始至终的全过程,都必须认真加强对软件质量的管理工作。因为,没有适当的管理,就不能实现软件开发的工程化,更不能保证软件开发的高质量。
软件工程项目越大、越复杂,管理工作在整个软件开发过程中所占工作量的比例就越大。
由于软件开发、维护本身的特点,相对于硬件,软件质量既取决于技术,更取决于管理。而且,软件开发过程难于策划,软件技术状态难于把握,软件质量度量难度较大,因此,必须采用工程化方法管理软件生存周期内的各个阶段,尤其是对影响软件质量的各个关键要素进行严格管理,使软件开发按照软件质量规范化要求组织实施,实现对软件质量的全方位管理。
以武器装备系统软件研制为例,其软件开发质量全方位管理的主要内容包括[2]:
1)软件分级管理
2)软件文档管理
3)软件需求管理
4)软件评审管理
5)软件配置管理
6)软件测试管理
7)建立软件失效报告、分析和纠正措施系统(SFRACAS)
8)软件分承包单位管理
在软件开发实践中,要根据每项内容的具体要求组织实施好管理活动。
军用软件的标准化管理是军用软件开发质量管理的重要组成部分,其核心是军用软件工程标准。
军用软件工程标准是指军用软件开发、运行、维护和引退的方法以及过程等方面的标准。军用软件工程标准体系非常复杂,其主要组成有:基础标准、软件工程环境标准、软件过程标准、软件产品标准等。
为了能够及时地把最新的软件技术和管理手段引入到军用软件的研制中,美国国防部已经建立了一套完善的软件工程标准化政策和工作体系,一方面通过大量采用非政府标准,来满足国防部软件采办的标准需求;另一方面通过组建一些专门的研究机构,从事信息系统标准的研究和制定工作。
长期以来,我国军用软件工程标准体系建设一直将美国军用标准作为主要的参照对象,并且将多项美军标准转化为我军标准,在我国武器装备软件研制中起到了很大作用。
随着我军信息化建设的不断深入,对军用软件工程标准化提出了更高的要求,加强军用软件工程标准体系建设,有效发挥军用标准化的作用,对保证军用软件产品的质量将起到关键作用。
军用软件开发的多层次管理模式是将“软件开发者个人---软件项目组---软件开发单位”组成一个三位一体的开发管理体系。这一多层次的组织体系能使与软件开发相关的每一层人员都能自觉地参与到不同层面的管理中去,从而保证软件开发过程中人员能力的充分发挥。
软件能力成熟度模型CMM(Capability Maturity Model for Software)起初是受美国军方委托而进行的一项研究成果,用来评估军用软件承包商的软件过程,以便评价其软件开发能力,降低军用软件的采购风险。因此,它的针对对象是公司或单位的软件开发能力。
由于CMM描述了软件过程不断改进的科学途径,使软件开发组织能够自我分析,找出尽快提高软件过程能力的策略,因此,该方法一经推出,便引起了国际软件产业界和软件工程界的广泛关注,并为许多承担政府重大软件项目的公司(如休斯飞机公司等)所采用,用以改进软件过程,提高软件开发过程能力。
TSP(Team Software Process,即小组软件过程)的针对对象是软件开发团队(Team)。在该团队中,需要明确每个成员的角色,并且为这些角色确定管理目标及量化的质量评价准则等。
TSP的目标是建立一个具有高度凝聚力的软件开发团队。该团队应当团结、协作、高效地工作,使其整体实力大于每个个人实力的总和。
PSP(Personal Software Process),即个体软件过程。它的针对对象是软件开发者个人。
在传统的软件开发管理模式中,管理只是软件开发单位管理部门的事,不能调动和激发软件开发个人和小组参与管理的积极性。而在PSP中,不仅要求软件开发者个人进行软件开发工作,而且要求个人参与管理工作,使其能够自己进行过程策划、跟踪管理,并制定出管理计划和具体的定量质量要求等。
PSP是一种可以用于控制和改进个人软件开发工作的自我改善过程,可使软件开发人员大大减少软件缺陷。据统计,通过采用PSP,在开发阶段总缺陷数可减少58%,在测试阶段发现的缺陷数可减少71. 9%,生产率可提高20. 8%[4]。
由此可见,通过PSP、TSP和CMM,可以构建一个由“个人----团队----单位”组成的三位一体的多层次软件开发管理模式,如图3所示。
图3 三位一体的多层次软件开发管理模式
通过这种三位一体的多层次软件开发管理模式,可以改变传统的单一组织管理形式,使软件开发组织从无序、不可控的混乱情形转变为有序、可控的规范状态。
这里,PSP、TSP和CMM都有一个共同特性,即它们既关心软件开发过程,又关注软件开发管理,由此共同组成了一套先进的软件开发管理模式。该模式不仅可以用来衡量软件开发单位、软件项目组和软件开发者个人的能力,而且可以用来有效地帮助改进和优化管理,提高软件产品的质量。
军用软件开发的质量管理是一个复杂的系统工程,需要在软件工程的具体实践中不断探索、研究新的理论与方法,寻求更加优化的质量管理途径。
目前,我军正处于机械化向信息化的战略转型时期,军用软件开发和应用的范围越来越广,军用软件的开发质量对军队信息化建设起着至关重要的作用。因此,在软件工程实践中,一方面要积极采用新技术、新方法,按照软件工程原理,分阶段组织实施软件的过程控制和质量管理;另一方面要严格执行国家军用标准,充分发挥军用软件质量管理体系的作用,保证军用软件的可靠性和安全性,提高我国军用软件产品的质量。
[1] 徐亚妮,扈延光,查国清.军工产品RMS过程审核程序及方法研究[J].科技管理研究,2008,(12):320-322.
[2] 阮镰,陆民燕,韩峰岩.装备软件质量和可靠性管理[M].北京:国防工业出版社,2006.
[3] 常好丽,杨海成,何苗,等.面向多级供应商的航天型号产品研制过程质量管理研究[J].制造业自动化,2009,31(1):1-4.
[4] 石柱.军用软件能力成熟度模型可重复级实施指南[M].北京:中国标准出版社,2006.