第7章IT软件项目质量管理第7章IT软件项目质量管理7.1质量管理基本概念7.2IT软件质量管理基本知识7.3软件项目质量计划7.4软件项目评审7.5软件质量体系7.6软件过程能力成熟度模型(CMM)7.1质量管理基本概念7.1.1质量、质量特性、质量管理的定义7.1.2质量管理发展过程及影响因素7.1.3全面质量管理7.1.1质量的定义实体是指可单独描述和研究的事物,也就是有关质量工作的对象,它的内涵十分广泛,可以是活动、过程、产品(软件、硬件、服务)或者组织等。明确需求是指在标准、规范、图样、技术要求和其他文件中已做出规定的需要。隐含需求是指用户和社会对实体的期望以及公认的、不必明确的需求,需要对其加以分析研究、识别并加以确定的。质量:国际标准组织对质量的定义:“反映实体满足主体明确和隐含需求的能力的特性总和”7.1.1质量特性的定义质量是综合的概念,它要求功能、成本、服务、环境、心理等诸方面都能满足用户的需要。质量是一个动态的、相对的、变化的、发展的概念,随着地域、时期、使用对象、社会环境、市场竞争的变化而被赋予不同的内容和要求,而且随着社会的进步及知识创新,其内涵和要求也是不断更新、丰富的。质量特性:“是指实体所特有的性质,它反映实体满足需求的能力”7.1.1质量管理的定义质量管理是项目管理的重要组成部分,是一个项目的性能(功能)、成本、进度3项指标实现的重要领域。质量管理主要就是监控项目的可交付产品和项目执行的过程,以确保它们符合相关的要求和标准,同时确保不合格项能够按照正确方法或者预先规定的方式处理。质量管理:“确定质量方针、目标和职责并在质量体系中通过质量计划、质量控制、质量保证和质量改进使其实施的全部管理职能的所有活动”7.1.2质量管理发展过程及影响因素以产品为中心的质量检验和统计质量控制阶段(18世纪——1950年)。以顾客为中心的质量保证阶段(1950年——1987年)。强调持续改进的质量管理阶段(1987年——现在)。全面质量管理阶段(TQM)。检验统计质量控制质量保证质量管理全面质量管理图7.1质量管理发展阶段7.1.2质量管理发展过程及影响因素供应单位用户采购制定工艺产品研制市场研究服务销售检验生产图7.2产品质量循环7.1.2质量管理发展过程及影响因素产品质量材料方法设备测量人员环境图7.3产品质量的主要影响因素7.1.3全面质量管理1.系统的观点产品质量的形成和发展过程包括了许多相互联系、相互制约的环节,不论是保证和提高产品质量还是解决产品质量问题,都应该把生产企业看成一个开放的系统,运用系统科学的原理和方法,对所有环节进行全面的组织管理。2.向用户服务的观点,用户满意是第一原则要树立质量第一、用户第一的思想,满足广义用户(产品的使用者以及企业生产过程的下一阶段)对产品质量的要求。3.预防为主的观点,事前主动进行质量管理这个观点要求生产企业的质量管理重点应从事后检验把关转移到事前预防,从管结果转变为管因素,找出影响产品质量的各种因素,抓住主要因素,使生产经营活动处于受控状态。7.1.3全面质量管理APCD检查执行经验教训遗留问题问题原因主要原因计划图7.4质量管理的PDCA循环图7.2IT软件质量管理基本知识7.2.1软件质量概念7.2.2软件质量影响因素7.2.3软件度量标准7.2.4软件项目质量保证7.2.5软件质量管理7.2.1软件质量概念•ISO8402定义:“对用户在功能和性能方面需求的满足、对规定的标准和规范的遵循以及正规软件某些公认的应该具有的本质”•ANSI/IEEE定义:“与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体”•软件质量不是绝对的,而是相对的概念,讨论软件的质量,最终将归结为定义软件的质量特性,而定义一个软件的质量,就等价于为该软件定义一系列质量特性软件质量:7.2.1软件质量概念•B.W.Boehm、T.R.Brown和M.Lipow于1976年首次提出软件质量模型•1977年Walters和McCall提出了新的软件质量层次模型与度量•1994年ISO9000-3软件质量国际标准(ISO的软件质量评价模型)给出了6个软件质量特性和与其相关的21个质量子特性的明确定义软件质量模型:7.2.1软件质量概念Boehm软件质量模型:总体效用可移植性可维护性可使用性可靠性效率人性化可测试性易理解性可修改性设备无关性自包含性准确性完备性健壮性一致性可说明性设备效率易存取性易交流性自描述性结构性简明性易读性可扩充性图7.5Boehm软件质量模型7.2.1软件质量概念McCall软件质量模型:产品修改产品升级产品运行正确性、可靠性、高效性、易用性、完整性可维护性灵活性可测试性可移植性可重用性互操作性图7.6McCall软件质量模型7.2.2软件质量影响因素正确性健壮性效率完整性(安全性)可用性风险可理解性可维修性灵活性(适应性)可测试性可移植性可重用性互操作性7.2.3软件度量标准软件度量标准可以分为:“控制度量标准”“预测度量标准”7.2.3软件度量标准预测度量标准:软件过程控制度量标准管理决策软件产品预测度量标准图7.7预测与控制度量标准7.2.3软件度量标准自动数据收集过程:软件系统有用数据错误数据图7.8自动化数据收集过程7.2.4软件项目质量保证质量保证(QualityAssurance,QA)包括:质量管理方法。有效的工程技术。整个过程采用的正式复审技术。多层次的测试技术。对文档及其修改的控制。项目的标准及规格等。7.2.4软件项目质量保证软件质量保证(SoftwareQualityAssurance,SQA)包括:质量方针的制定和贯彻。质量保证方针和质量保证标准的制定。质量保证体系的质量保证工作。明确各阶段的质量保证工作。各阶段的质量评审。确保设计质量。重要质量问题的提出与分析。总结实现阶段的质量保证活动。整理面向用户的文档、说明书等。产品质量鉴定、质量保证系统鉴定。质量信息的搜集、分析和使用等。7.2.5软件质量管理软件产品的质量软件产品的质量目标开发过程的质量目标开发过程的质量图7.9开发过程质量和软件产品质量的关系7.3软件项目质量计划7.3.1软件质量标准7.3.2软件项目质量计划7.3.3软件项目质量保证7.3.4软件项目质量控制7.3.5软件质量管理的实施7.3.1软件质量标准软件质量标准的定义,有3个重要方面需要强调:软件需求是进行质量度量的基础,与需求不符就是质量不高。指定的标准定义了一组指导软件开发的准则。如果不遵循这些准则,就极有可能导致软件质量的不高。软件需求中通常有一组“隐含需求”是很少被提及的,如对易维护的要求,如果软件符合了明确需求却没有满足隐含需求,软件的质量仍然值得怀疑。7.3.2软件项目质量计划依据:质量方针。质量方针是由高层管理者对项目的整个质量目标和方向制定的一个指导性的文件。但是,在项目实施过程中,可以根据实际情况对质量方针进行适当的修正。范围描述。项目的范围描述说明了投资人对项目的需求以及项目的主要要求和目标,因此,范围描述是质量计划的重要依据。产品描述。产品描述包含了更多的技术细节和性能标准,是制定质量计划必不可少的部分。标准和规则。项目质量计划的制定必须参考相关领域的各项标准和特殊规定。其他工作的输出。在项目中,其他方面的工作成果也会影响质量计划的制定。7.3.2软件项目质量计划方法和技术:效益/成本分析法。质量计划必须考虑效益与成本的关系。满足质量需求的主要效益是减少了重复性工作,即高产出、低成本、高用户满意度。质量管理的基本原则是效益与成本之比尽可能大。基准法。主要是通过比较项目的实施与其他同类项目的实施过程,为改进项目的实施过程提供借鉴和思路,并作为一个实施的参考标准。流程图。流程图是一个由箭线和结点表示的若干因素关系图,可以包括原因结果图、系统流程图、处理流程图等。因此,流程图经常用于项目质量控制过程中,其主要目的是确定以及分析问题产生的原因。试验设计。试验设计对于分析整个项目输出结果是最有影响的因素,也是十分有效的。对于软件开发,设计原型解决核心技术问题和主要需求也是可行和有效的。但是,这种方法存在费用与进度交换的问题。7.3.2软件项目质量计划阶段成果:质量管理计划。主要描述了项目管理小组应该如何实施项目质量方针,包括对组织结构、责任、方法、步骤、资源等实施质量管理。质量计划提供了对整个项目进行质量控制、质量保证及质量改进的基础。操作说明。对于质量计划中的一些特殊条款需要附加的操作说明,包括注解、如何控制、如何度量,以及在何种情况下采取何种措施和方法等说明。检查表。各种检查表是记录项目执行情况和进行分析的工具,既可以简单,也可以复杂,但需要项目小组形成一种较标准的体系。7.3.3软件项目质量保证质量保证的主要依据是:质量管理计划。质量控制度量结果。质量控制的度量是为了对质量控制测试记录和度量进行比较和分析。操作说明。在实施质量保证时,主要采取的工具和方法是:质量计划编制工具和技术。应用与质量计划制定过程的工具和方法也基本适用于质量保证过程。质量审核。7.3.3软件项目质量保证《软件质量保证计划》:1.计划目的2.参考文献3.管理3.1组织3.2任务3.3责任4.文档4.1目的4.2要求的软件工程文档4.3其他文档5.标准和约定5.1目的5.2约定7.测试8.问题报告和改正活动9.工具、技术和方法10.媒体控制11.供应者控制12.记录收集、维护保密13.培训14.风险管理6.评审和审计6.1目的6.2评审要求6.2.1软件需求的评审6.2.2设计评审6.2.3软件验证和确认评审6.2.4功能评审6.2.5物理评审6.2.6内部过程评审6.2.7管理评审7.3.4软件项目质量控制依据:项目的阶段工作成果。包括项目的实施结果和产品结果。项目质量管理计划。操作描述。检查表。7.3.4软件项目质量控制方法和技术:检查。包括度量、考察、测试、对比等。控制图。监控项目的进度和费用变化、范围变化的幅度和频率、项目的其他管理结果等。统计样本。对项目实际执行情况的统计。流程图。包括原因结果图、系统流程图、处理流程图等。因此,流程图经常用于项目质量控制过程中,其主要目的是确定以及分析问题产生的原因。趋势分析。应用数学方法根据历史数据预测项目将来的发展趋势。可以用于监控项目的技术参数,例如,一般规模的软件存在多少个错误以及多少识别和修改,多少错误仍然未被发现等;也可以用于对费用和进度参数的预测。7.3.4软件项目质量控制产生的工作成果:项目质量改进的措施。可接受的决定。每个项目的工作都有可能被接受或拒绝,不被接受的工作需要重新进行。返工。确定需要返工工作的方案,以确定最小的成本和最少的返工工作量。检查表。进行项目质量检查时,需要随时完成对项目质量的纪录,完成相应的各种检查表。过程调整。包括了对质量控制度量结果的纠正以及采取预防工作等。7.3.5软件质量管理的实施定义过程开发产品评估产品质量改正过程过程标准化NY合格?图7.10软件质量管理贯穿产品生产的全过程7.3.5软件质量管理的实施遵循以下一些基本原则:控制项目所有过程的质量。过程控制的出发点是预防不合格。质量管理的中心任务是建立并实施文档化管理的质量体系。持续的质量改进。有效的质量体系应满足顾客和组织内部双方的需要和利益。定期评价质量体系。搞好质量管理的关键在于领导。7.4软件项目评审7.4.1软件项目评审的基本概念7.4.2软件项目评审阶段7.4.3软件项目评审的作用7.4.1软件项目评审的基本概念评审是一种质量保证的机制:指出开发和管理人员或者软件产品所需改进的部分。确定软件产品中不需要或者不希望改进的部分。通过质量复审,得到更加一致的、更可预测的技术工作的质量,从而使得技术工作更加容易管理。7.4.1软件项目评审的基本概念软