浅谈SQA在探月工程地面应用系统软件过程改进中的实践与经验
摘 要
软件工程中,软件质量保证(SQA,Software Quality Assurance)正日益受到软件工作人员的重视,在军用软件研制过程中显得尤为重要。本文介绍了GJB5000A-2008二级SQA关键过程域的概念,探月工程地面应用系统软件过程改进中的SQA实践活动,以及在SQA活动中取得的宝贵经验。
【关键词】GJB5000A-2008 SQA 软件过程改进
1 引言
近年来,随着中国国防技术的发展,国家启动了一系列国防重大专项任务,计算机软件在各项任务中起着关键性作用,往往作为整个系统的中枢神经。任务中计算机软件一旦崩溃,就可能会导致整个任务失败,从而引起严重的后果。
为提高我国军用软件质量,解放军总装备部吸收国外CMM经验,组织国内专家对其研究并结合我国国情于2003年发布了GJB5000体系标准文件。中国科学院国际天文台在国家重大专项任务探月工程中承担地面应用系统建设任务,软件作为一项重要建设内容,其质量保证工作不可忽视。因此,在软件改进过程中遵循了总装备部发布的 GJB5000A-2008《军用软件研制能力成熟度模型》二级实践。该模型严格定义了过程与产品质量保证(PPQA)关键过程,站在软件的角度,就是软件质量保证(SQA)过程。在GJB5000A-2008二级实践中,SQA是一个关键过程域,它贯穿在整个软件生命周期中,在软件质量保证上起着举足轻重的作用,同时也是最难实现的一个过程域。SQA通过有计划地实施SQA活动来控制软件过程的质量,并通过控制关键过程的质量保证软件产品的质量。
2 GJB5000A二级关键过程域SQA概述
GJB5000A-2008定义软件质量保证是建立一套有计划、有系统的方法,向管理层保证拟定出的标准、步骤、实践和方法能够正确地被项目采用。软件质量保证人员在项目开始时就参与建立计划、标准和过程。质量保证基本目标是:1.软件质量保证工作是有计划进行的;2.客观的验证软件项目产品和工作是否遵循恰当的标准、步骤和需求;3.将软件质量保证工作及结果通知给项目相关组别和个人;4.高级管理者应接触到项目内部不能解决的问题。
GJB5000A-2008二级实践中,过程和产品质量保证活动的流程图如图1所示,
3 SQA在探月工程地面应用系统软件过程改进中的实践
在探月工程地面应用系统软件改进过程改进中,开展的实践活动如下:
3.1 明确项目相关成员以及职责
项目相关成员包括:SQA人员、配置管理员、部门负责人,软件项目负责人,软件开发组,软件测试组;SQA人员负责项目的软件质量保证活动。
3.2 SQA人员参与制定项目计划、标准和规程
SQA人员帮助策划项目的规模、进度、成本和工作量的估计等,参与项目的开发计划、标准和规程的准备,使得验证计划、标准和规程在项目开始时已到位并可用于评审和审计软件项目。主要的标准和规程包括软件项目计划过程规程、质量保证过程规程、需求过程规程、软件跟踪与监督规程、软件配置管理规程、软件测试规程、软件编码标准和文档编写标准等。
3.3 制定和维护SQA工作计划
SQA人员根据项目开发计划制定SQA工作计划,主要描述SQA的目的、范围及SQA计划与其他项目计划之间的关系,内容包括:组织和职责、资源需求、项目各阶段的工作内容、工作方式、评审工作过程和工作产品。SQA工作计划制定后,由部门负责人、软件项目负责人、SQA人员、项目组内其他受影响的小组和个人参加计划的评审。同时在项目进行过程中,根据项目的变化变更与维护质量保证计划。
3.4 软件过程活动评审
SQA人员根据工作计划进行工程过程评审,评审采用正式会议或者非正式会议形式,评审专家依据SQA人员事先制定的检查单进行评审,如果评审发现偏差,评审后SQA人员要对偏差进行跟踪直至问题关闭。从软件需求阶段开始到系统测试为止,软件质量保证过程域软件开发过程是同步的,并在周期例会、评审会上适时地报告当前开发过程的状态,使得软件开发过程可视透明。图2为SQA过程审核活动与软件开发过程的对应关系:
3.5 软件工程产品审计
SQA人员根据工作计划进行工作产品评审,评审采用正式会议或者非正式会议形式,评审专家依据SQA人员事先制定的检查单进行评审,如果评审发现偏差,评审后SQA人员要对偏差进行跟踪直至问题关闭。在一个软件项目的生命周期中,SQA主要审计的工程产品有:软件任务书、软件需求规格说明书、软件概要设计说明书、软件接口设计说明书、软件详细设计说明书、程序源码、软件测试计划、软件测试说明、软件测试报告、软件使用说明以及各类管理报告等。
3.6 配置管理审计
SQA人员定期审计配置管理活动,对照软件配置管理计划检查配置管理员的工作是否符合配置管理计划,软件配置项的变更是否遵循了配置项的变更控制流程。检查配置管理员是否定期报告基线状态,是否定期对配置库进行备份。
3.7 偏差记录与跟踪
在项目质量审核与审计过程中发现的偏差要记录到偏差报告中。发现偏差后要及时有效的与软件负责人沟通,由软件负责人落实偏差的处理负责人以及处理期限,由SQA人员负责进行跟踪,直至问题关闭。同时,SQA人员还应该分析是否存在共性问题,做到防患于未然,提早预防。如果发现的偏差软件负责人无法解决,或者软件负责人和SQA人员对偏差问题无法达成一致意见,SQA人员向部分负责人汇报,由部门负责人决策。
3.8 向部门负责人直接汇报
SQA人员直接对部门负责人负责,具有向部门负责人直接汇报的渠道,定期向部门负责人汇报SQA工作情况,帮助部门负责人了解项目进展以及项目中存在的问题。如果软件负责人和SQA人员对偏差问题无法达成一致意见,或者项目组出现无法解决的问题时,SQA及时向部门负责人汇报并寻求解决途径。
4 SQA活动实践经验总结
在探月工程地面应用系统软件过程改进过程中,总结SQA活动的过程,得到一些经验和教训:
4.1 需要管理者高度重视
首先,管理者决不能认为SQA可有可无,不能狭隘的认为设置SQA只是为了CMM或者GJB-5000A评估的需要;其次,在项目进展过程中,管理者与SQA相关的工作非常多,要积极参加SQA组织的评审、定期听取SQA工作汇报、解决项目组与SQA人员的分歧、对SQA人员工作进行评审与检查。因此,管理者要积极支持SQA人员的工作。
4.2 检查单与项目结合,避免空谈
SQA所有活动均依据检查单进行的,检查单是软件质量保证计划的一项重要内容,也需要经过评审,所以SQA人员要根据不同项目情况适当地裁剪过程和工作产品的检查单内容。只有使用适应于项目的检查单,才能做到检查的有效性,否则就是空谈。
4.3 SQA人员要求专业而且专职
SQA人员要求具有非常丰富的项目开发和管理经验,只有这样才能发现问题与偏差,减少后期无用的返工,以利于项目组保证项目进度和产品质量。同时,必须要求SQA人员是由非项目组成员担任,以保证评价的客观性。SQA人员需要有充分的时间与精力去检查与评价产品与过程,要求SQA人员尽量做到专职,而不是身兼几个职位。
4.4 项目成员配合
在项目中,SQA人员与项目组人员的立场不同,往往是对项目组成员的工作情况实行监督与检查,所以项目组的成员对SQA人员往往不理解、不支持,甚至部分成员会抵制SQA人员工作展开。项目组应该加强SQA活动知识的培训,使项目组成员认识到SQA审计的是过程和产品,而不是针对某个人审计。其中,软件负责人的支持与配合,对SQA工作的展开起着至关重要的作用。
4.5 需要对SQA进行同行评审,确保SQA活动有效性
SQA人员本身也需要被监督,才能保证他的公正性和客观性。管理者、独立SQA专家、软件负责人定期评价SQA活动,并向SQA人员开放评审结果,对SQA活动的不符合问题同样进行跟踪直至关闭,确保SQA活动的有效性。
5 结束语
在软件工程中,SQA活动是保证软件项目质量的关键因素,SQA活动的有效性很大程度上决定了软件项目质量。每一位项目管理者应高度重视SQA工作,并给予充足的人力与物力资源。只有SQA通过积极而客观的检查、评价、独立而有效的多向沟通,有效行使监督指导职责,积极贯彻软件工程化、过程改进理念,增加主动的预防手段,才能有效地促进项目成功。
参考文献
[1]马丽飞.浅谈SQA在GJB5000A二级实施过程中的作用.中国电子科技集团公司第二十七研究所[J].电子质量,2014.
[2]王杨玲等.航天型号软件过程改进实践,北京宇航系统工程研究所[J].航天标准化,2011.
[3]石柱.军用软件能力成熟度模型可重复级实施指南[M].北京:中国标准出版社,2006.
[4]刘彦涛,马闰娟.CMM二级SQA关键过程域与软件过程改进,华东计算机技术研究所[J].计算机工程,2007.
[5]王精明.浅谈在CMM2中如何实现SQA[J].滁州学院学报,2006.
[6]王勇等.CMM质量保证的理论与实践[J].计算机工程与设计,2005.
[7]李晓丽等译.Project Management Success With CMMI Seven CMMI Process Areas[M].北京:机械工业出版社,2008.
作者单位
中国科学院国家天文台 北京市 100012