1
 软件工程
1.10.4.2 8.4.2 质量管理

8.4.2 质量管理

概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准,以及所有专业开发的软件都应具有的隐含特征的程度。

1.软件质量的重要性

由于软件的不定性和复杂性等特点,对软件产品的质量会产生特殊的需求,它主要体现在以下几个方面。

(1)随着用户越来越依赖他们的计算机系统,以及软件越来越多地应用于安全性要求很高的领域,如飞行器控制,对软件产品质量的要求更加苛刻。

(2)软件的不定性使得人们无法判断项目中某一特定任务是否圆满完成,软件质量的保证具有很大的难度。

(3)软件开发期积累的错误,可能会对后续步骤产生影响。总的来说,错误发现的越晚,需要修改的费用就越高。因此,在软件产品调试阶段很难对前期的错误有效地控制。

正因为上述原因,质量管理是有效的整体项目管理中的一个重要部分。

2.软件的质量属性

软件的质量标准,可以用一组有关的属性来表示。我国国家标准《软件工程产品质量》(GB/T 16260-2006)把有关软件的质量属性归纳为正确性、健壮性、效率、完整性、可用性、风险、可理解性、可维护性、灵活性、可测试性和可移植性等。表8-7列举了软件开发过程中常用的软件质量评价属性。

表8-7 软件质量评价属性

img162

3.软件的质量计划

制订质量计划是软件质量管理的关键活动。质量计划是整个软件质量管理的行动纲领,通常由项目经理和质量人员共同协商来制订。如果机构有独立的质量人员,那么由质量人员起草《质量保证计划》,递交给项目经理和质量经理审批并由质量保证小组监督实施。如果机构没有独立的质量人员,那么可以由项目经理兼任质量人员和质量经理的角色。表8-8为质量保证计划的参考格式。

表8-8质量保证计划

img163

4.技术评审

技术评审的目的是通过同行专家对工作成果的评审进行讨论,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。理论上讲,为了确保产品的质量,产品的所有工作成果都应当接受技术评审。现实中,为了节约时间,允许人们有选择地对工作成果进行技术评审。在制订质量计划的时候,应该确定技术评审计划。

技术评审是团体活动,一般地,机构没有专职的技术评审人员,当需要技术评审时,临时组织人员就可以了。质量人员应当参与重要的技术评审会议,这样既监督了技术评审,又加深对工作成果的了解。表8-9为技术评审报告的参考格式。

表8-9技术评审报告

img164

5.缺陷跟踪

在执行技术评审、软件测试、质量保证工作时,会发现不少软件缺陷(或其他质量问题)。缺陷跟踪的工作主要包括:根据缺陷类型、状态、优先级、报告者、报告日期等条件查询每个缺陷的当前状态,修改、添加、删除缺陷,绘制缺陷的趋势图,以及缺陷信息发生变动时发送变更消息等工作。其中,缺陷可以根据表8-10所列属性来描述。

表8-10 缺陷属性

img165

6.质量保证

质量保证的实质:检查项目的“工作过程和工作成果”是否符合既定的规范。要点是找出明显不符合规范的工作过程和工作成果,及时指导开发人员纠正问题。当制订质量计划时,质量人员确定主要检查项和检查时间(或频度)。当执行质量保证工作时,如果发现质量问题,应该立即将其记录下来并进行缺陷跟踪工作。

质量人员首先设法在项目内部解决已经发现的质量问题,与项目成员协商,给出解决措施。在项目内难以解决的质量问题,由上级领导给出解决措施。同时,需要定期撰写质量保证报告(格式见表8-11),向项目成员和上级领导汇报现阶段的质量状况。

表8-11 质量保证报告

img166

续表

img167