第7章软件项目质量管理质量的含义与属性所谓质量,指产品或服务满足用户规定或潜在需要的一组固有特性的总和。对于不同对象,质量所能满足用户明确和隐含的需求在实质内容上也不同,例如:对“有形产品”来说,质量主要是指产品能够满足用户使用要求所具备的功能特性,包括产品的性能、寿命、可靠性、安全性、经济性等;对“服务过程”来说,质量主要是指服务所能够满足顾客心理期望的程度大小,客户心理期望的满足程度越高,质量越好。软件质量的基本概念软件质量是指软件产品的本身与明确地叙述的功能和性能需求、文档中明确描述的开发标准,以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。7.1.3影响软件质量的因素软件编程专家McCall把影响软件质量的因素分成了三组,分别是产品运行、产品修正和产品转移,如图所示。软件质量管理的过程在软件项目管理中,质量管理包含质量保证过程和质量控制过程两方面,二者相互作用,在实际应用中还可能会发生交叉。质量保证是在项目过程中实施的有计划、有系统的活动,确保项目满足相关的标准;而质量控制是采取适当的方法监控项目结果,确保其符合质量标准,还包括跟踪缺陷的排除情况。7.2.2软件质量管理的实施下图是软件质量管理贯穿产品生产全过程的示意图7.2.3软件质量管理的原则在软件项目质量管理的实施过程中,必须遵循如下三个基本原则:(1)应强调软件总体质量(“低成本高质量”。(2)在软件生产的整个生命周期的各个阶段,包括规划、分析、设计、编程、测试等环节,都要注意软件的质量。(3)应制定软件质量的综合评价标准,定量地来评价软件质量,并要定期地评价设定的质量体系。软件项目的质量计划1.质量计划的含义与作用质量计划是指识别哪些质量标准适用于本项目,并确定如何满足这些标准的要求,并建立相关文档,以便作为软件质量工作指南,帮助项目经理确保所有工作按计划完成。2.质量计划中的主要指标(1)可用度。(2)初期故障率。(3)偶然故障率。(4)平均失效前时间。(5)平均失效间隔时间。(6)缺陷密度。(7)平均失效恢复时间。7.3.1软件项目的质量计划3.质量计划中的常用工具(1)成本效益分析。(2)基准对照。(3)流程图。(4)戴明环。4.质量计划文档的编写制定质量计划后,还要编写质量计划文档,包括质量保证计划和质量控制计划两个大的方面。其中,质量保证计划要包括质量保证的方法、职责和时间安排等;质量控制计划也可以包含在开发活动的计划中,例如代码走查、单元测试、集成测试、系统测试等。7.3.2软件项目的质量保证1.软件质量保证的含义软件质量保证(SoftwareQualityAssurance,简称SQA)是指确定、达到和维护所需要的软件质量而进行的所有有计划、有组织的管理活动。2.软件质量保证的参与人员3.软件质量保证的实施方法4.软件质量保证的输出结果7.3.3软件项目的质量控制1.软件项目质量控制的含义质量控制(QualityControl,简称QC)是软件项目质量管理的一个重要部分,其目标就是发现和消除软件产品的缺陷,确保软件项目的质量能满足各个方面提出的质量要求(如适用性、可靠性、安全性等)。2.常见软件项目的质量问题(1)违背软件项目开发与管理的规律。(2)技术方案本身的缺陷。(3)基本部件不合格。(4)实施中的管理问题。7.3.3软件项目的质量控制3.软件项目质量控制的流程(1)事前质量控制(2)事中质量控制(3)事后质量控制4.软件项目质量控制的活动软件项目质量控制的主要活动是技术评审、代码走查、代码评审、单元测试、集成测试、系统测试、验收测试和缺陷追踪等。5.软件项目质量控制的工具6.软件项目质量控制的结果7.4案例与讨论案例7-1讨论题1.EIS系统存在哪些质量问题?2.对于上述问题应该怎样做?3.一个项目团队如何知晓他们的项目是否交付了一个高质量产品?4.如果你是斯考特,你会编制怎样一个质量计划(保证和控制)来防止未来的IT项目发生质量问题?7.4案例与讨论案例7-2讨论题1.在复杂项目开发中一般会遇到哪些问题?IBM是如何解决这些问题的?2.质量管理工作小组的人员构成有哪些特点?3.工作小组的会议为什么最好不在办公室召开?4.“任务说明”具有哪些特点?它起什么作用?