星载软件PPQA域实施方法的研究和实践
2017-08-12潘东梅栾美艳
◆ 吕 平 王 磊 潘东梅 栾美艳 胡 浩/ 文
星载软件PPQA域实施方法的研究和实践
◆ 吕 平 王 磊 潘东梅 栾美艳 胡 浩/ 文
由于星载软件运行于特定的环境中,对其质量有很高的要求。对比传统的航天软件质量保证,发现星载软件开发过程中实施过程和产品质量保证更能满足需求。本文简述了软件研发过程和产品质量保证措施,研究了在星载软件开发中的实施方法和具体实践验证,这些实施方法可以实时监控软件项目的进展,及时发现问题和解决问题,进而提高软件质量。
星载软件;军用软件研制能力成熟度模型;过程和产品质量保证;质量保证
1 引言
随着航天软件在航天型号系统中所占比重不断增加,软件质量已经成为影响航天产品质量的关键。航天星载软件是具有高可靠性、高安全性的实时嵌入式软件,软件质量要求零缺陷。运用传统的航天软件质量保证工作存在以下几个突出问题[1][2]:软件开发文档管理不健全;对软件开发过程的监督不到位;对软件质量缺陷未进行趋势分析。过程和产品质量保证(Process and Product Quality Assurance以下简称“PPQA”)可以解决这些不足之处。但是,不同的软件项目,PPQA的实施方法不尽相同。结合星载软件项目的特点,提出星载软件PPQA实施方法,通过严格的文档标准有效规范软件开发文档;通过检查软件项目日常活动及时监控软件开发过程;通过参与软件开发和测试准确掌握项目中出现的质量问题,规避将来可能出现的问题。这些方法的实施,为交付高质量的航天星载软件提供了保障。
2 过程与产品质量保证过程域简述
PPQA是军用软件研制能力成熟度模型中一个重要的关键过程域,它贯穿于整个软件开发的生命周期。PPQA过程域涉及三个方面[3][4]:对照适用的过程说明、标准和规程客观地评价所实施的过程、工作产品和服务;标识并文档化不符合问题,确保不符合项问题得到解决;向项目团队成员和各级领导提供关于质量保证活动结果的反馈。其中,客观的评价过程符合性是PPQA对其他过程域执行情况进行检查和验证的前提,确保其他过程域在执行过程中,按照已定义的过程说明、标准和规程正确执行,最终保证了达到其他过程域执行的目标。以军用软件研制能力成熟度模型二级为例,PPQA过程域与其他过程域之间的相互关系如图1 所示。
图2是PPQA的具体工作流程,图中的“输入”为PPQA每项活动执行的依据,“输出”为每项活动完成后形成的PPQA工作产品。
2.1 评价过程活动和工作产品
过程活动评审需根据软件项目的特征,确定需要检查的各过程域中质量保证(以下简称“QA”)的任务和活动,并估计检查次数、时间和人员。评审的频度可分为事件性、阶段性、每月例行等。活动评审通过检查评审的形式实施。
工作产品审核需根据软件项目开发计划中的软件产品评审计划规定的工作产品和评价准则,安排参与软件产品审核计划。评审形式包括QA独立审核、参与同行评审和参与评审。
2.2 通报并确保不符合问题解决
不符合问题是QA人员在产品审核和过程活动评审中发现的问题,它们反映出项目在遵循使用的标准、过程描述或规程中的不足。评审任务完成后或活动结束后,对评审中发现的软件过程活动不符合项,QA人员需要跟踪不符合问题的解决情况,直至问题关闭。
2.3 建立记录并通报QA活动结果
图1 PPQA域与其他过程域相互关系
QA人员建立并维护质量保证活动的记录,并向相关人员通报QA活动结果。在此过程中产生的软件工作产品审核检查单、软件活动评审检查单、软件不符合项跟踪状态表和QA阶段报告纳入开发库;软件质量保证计划和QA总结报告纳入受控库。
图2 过程和产品质量保证工作流程图
3 过程与产品质量保证实施方法
3.1 制定软件质量保证计划
QA人员参与软件生存周期模型的定义和软件开发计划的制订,根据软件开发计划制定软件质量保证计划,计划定义出各过程活动的检查重点,标识出审核的工作产品对象,定义得越详细,对QA人员今后的工作指导性就越强。计划的主要内容如下表1所示。对于不同的项目,QA计划在应用模板的同时,应再根据项目的具体要求在较低层次上进行个性化处理。选用不同的软件研制模型,软件研制阶段也不相同,QA人员应根据项目的生命周期模型制定活动评审计划。例如,对于中小型星载软件项目,制定软件产品的工作分解结构时,一次分解到位,不进行二次分解;在定义过程活动时,可以删减每个阶段开始前的实施策划活动评审,提高QA人员的工作效率。
3.2 参与阶段性评审和审核
阶段过程活动评审重点是审查项目定义的过程是否得到实现。在评审的过程中,需根据软件项目具体情况,剪裁或细化检查单。例如,每月例行评审检查单中的配置管理日常活动评审项是针对项目是否按照《软件配置审核规程》进行审核、出入库是否符合规程要求等进行评审的。但是,对于时间周期短的星载软件项目,再按照每月例行评审检查配置管理相关活动,实效性不足,应将每月例行评审检查单中的配置管理日常活动评审项进行裁减,对于项目开发过程中进行工作产品出入库活动使用专门进行配置管理评审的检查单进行实时评审。
阶段产品审核的侧重点应放在软件工作产品的符合性、可理解性、文档的一致性和可追踪性等方面。对工作产品内容的正确性一般不做审核,只审核内容的有无,是否符合规范,确保设计文档可以为后续工作提供切实的指导。同时,针对星载软件项目的特点,对具有里程碑意义的工作产品,QA人员在进行了重点详细的独立审核后,应再组织同行评审。
3.3 检查软件项目日常活动
只参与阶段性评审和审核,无法及时监督项目团队的进展情况。QA人员可以通过参加双周例会,及时获取软件项目的任务分配和跟踪、风险跟踪信息。在软件开发的两个阶段点之间进行项目监控检查,提供监控报告给项目负责人和QA组长,如开发进度及不符合项问题的数量是否合理等,以便能及时反映出项目团队中存在的问题,并对其进行跟踪,把问题控制在最小的范围之内。
3.4 参与软件开发和测试
软件开发过程中一些关键的质量问题往往出现在具体的开发过程中,QA人员应参与开发和测试。在进行设计和测试文档的审核时,不仅对工作产品的符合性、一致性和可理解性进行审核,还应当从文档的规范性、文档的具体内容上进行审核,给项目团队提供有力的支持。同时,QA人员在这个过程中可以及时准确地掌握项目中出现的质量问题,并能更好地融入到项目团队中,有利于质量保证工作的展开。
3.5 跟踪问题的解决情况
在评审过程活动、工作产品和项目日常工作中发现问题,QA人员要及时填写《软件不符合项报告》,与软件项目负责人及问题相关负责人讨论问题的解决措施,并填写《软件不符合项跟踪状态表》,进行全程跟踪,指导所有不符合问题得到解决。对于在项目团队内可以解决的问题应尽量在项目团队内部解决,对于在项目团队内不能解决或逾期未能解决的不符合问题,例如超出承诺期限、项目不愿意修改等,QA人员可以利用其独立汇报的渠道将问题上报给高层领导寻求支持,协助项目团队尽快解决问题。
3.6 分析软件质量趋势
在软件项目的QA活动实施过程中,QA人员将在过程活动评审、工作产品审核后创建评审/审核报告,并在开发阶段、里程碑时进行测量统计。根据测量统计结果分析确定QA活动的状态,写入阶段报告及总结报告中,提交给软件项目负责人及相关报告对象,向他们给出相关的质量趋势。在进行质量趋势分析时,应充分利用图表,以便一目了然。QA阶段报告与QA总结报告内容侧重点是不一样的,在QA阶段报告中应重点分析此阶段的过程活动评审和工作产品审核中发现的不符合问题及问题产生的原因,避免在下个开发阶段出现类似问题。而在QA总结报告中应通过对已发生问题的数据进行对比、统计、时间序列等分析,来判断软件产品质量的总体趋势,为评估软件整体质量提供参考数据,并为将来的项目开展积累经验和数据。
4 PPQA在星载软件开发中的具体实践
下文是PPQA实施方法在星载软件开发过程中的实践,详细描述QA人员在每个开发阶段的检查任务、发现的问题、原因的分析及纠正措施。
4.1 项目策划阶段
表1 质量保证计划内容
PPQA工作在软件项目启动时就开始进行。QA人员参与编制软件开发计划,为软件项目负责人提供适合项目的使用标准和规程,并以此为基准制定项目质量保证计划。将通过评审的质量保证计划纳入到受控库中,并发送给项目相关人员。QA人员审核的工作产品包括软件项目估计表、软件开发计划和配置管理计划。
4.4 需求分析阶段
需求分析阶段在软件生命周期模型中被设置为里程碑阶段。QA人员为项目团队提供有关软件需求分析的标准、模板要求指导和文档撰写咨询。对软件需求规格说明书进行工作产品审核,以确保需求的一致性和可追踪性。审核后的需求规格说明书经过评审入受控库后,建立基线库。此阶段的需求管理活动和配置管理活动多,QA人员评审的重点是用户需求确认活动、功能基线建立和发布活动、需求跟踪活动和配置审核控制活动。
4.3 软件设计阶段
软件设计阶段工作包括概要设计和详细设计。QA人员为项目团队提供有关体系结构设计和详细设计的标准、模板要求指导和文档撰写咨询。概要设计说明和详细设计说明的工作产品审核重点是确保设计的规范性和文档编制的符合性与一致性。过程活动评审从保证评审过程有效性方面入手,如评审过程是否符合标准等。
4.4 软件编码阶段
编码阶段是开发人员根据通过评审后的设计说明,进行编码实现。QA人员帮助项目团队理解编程规范等与过程有关的规程和标准。根据项目所使用的设计语言对源代码进行编码规范检查,检查原则为20%抽样方法。QA人员对被抽样源代码的审核重点是版面风格、代码规则审查和注释率等。
4.5 软件测试阶段
测试阶段是软件开发过程中非常重要的阶段,直接影响软件代码质量。QA人员帮助项目团队理解测试计划和测试用例的撰写要求,向项目团队提供有关测试规程和标准的咨询。软件测试包括单元测试、集成测试和配置项测试。QA人员对工作产品的审核主要是测试计划、测试说明和测试分析报告的编写是否符合规范,是否按照要求完成。
5 结论
PPQA在星载软件开发过程中的实施,需要根据项目的具体情况进行剪裁或者细化过程活动的评审和工作产品的审核。在星载软件开发过程的具体实践中,由于软件项目负责人的工作任务多,导致项目的监控力度不足;设计文档的编写人员对文档编写标准理解不深入,导致项目工作产品审核中存在不符合问题增多等问题,通过调整项目负责人的工作分配和加强培训设计文档编写人员,保证项目进展良好。实践证明:有效的过程和产品质量保证实施方法可以加强对软件开发过程的控制,提高开发文档的规范化,积累宝贵的软件研制管理经验。
[1]石柱.军用软件能力成熟度模型可重复级实施指南[M]. 北京:中国标准出版社,2006年12月.
[2]刘根.军用软件质量保证问题研究[J].质量与可靠性,2010,147(3):48-50.
[3]李华北,刘小茵,郑丹丹,等.过程改进基本原理及CMMI实施[M]. 北京:中国标准出版社,2009年11月.
[4]常柏林,孙中泉,刘阳.GJB5000A 2级军用软件过程管理[J].四川兵工学报,2010,10(31):141-143.
(作者单位:航天电子技术研究所)