清华大学殷人昆项目管理ppt课件07软件项目质量管理

上传人:M****1 文档编号:567967917 上传时间:2024-07-22 格式:PPT 页数:208 大小:682KB
返回 下载 相关 举报
清华大学殷人昆项目管理ppt课件07软件项目质量管理_第1页
第1页 / 共208页
清华大学殷人昆项目管理ppt课件07软件项目质量管理_第2页
第2页 / 共208页
清华大学殷人昆项目管理ppt课件07软件项目质量管理_第3页
第3页 / 共208页
清华大学殷人昆项目管理ppt课件07软件项目质量管理_第4页
第4页 / 共208页
清华大学殷人昆项目管理ppt课件07软件项目质量管理_第5页
第5页 / 共208页
点击查看更多>>
资源描述

《清华大学殷人昆项目管理ppt课件07软件项目质量管理》由会员分享,可在线阅读,更多相关《清华大学殷人昆项目管理ppt课件07软件项目质量管理(208页珍藏版)》请在金锄头文库上搜索。

1、软件项目管理软件项目管理第七章第七章 软件项目质量管理软件项目质量管理Software Project QualitySoftware Project QualityManagementManagement清华大学计算机系清华大学计算机系 殷人昆殷人昆1软件项目管理2 2一个成功的项目管理是在一个成功的项目管理是在约定的时间约定的时间、范围范围、预算预算的成本的成本以及以及要求的质量要求的质量下,达到或超过项目干系人下,达到或超过项目干系人的期望。的期望。由此可见,项目质量管理是项目管理的重要方面,由此可见,项目质量管理是项目管理的重要方面,它与绩效、成本、时间是项目成功的关键因素。它与绩效、

2、成本、时间是项目成功的关键因素。项目质量管理是由质量方针、组织结构、项目过程项目质量管理是由质量方针、组织结构、项目过程中的活动以及相应的资源组成中的活动以及相应的资源组成,包括整体管理职能,包括整体管理职能的活动,这些活动确定质量的政策、目标、责任,的活动,这些活动确定质量的政策、目标、责任,并在质量体系中凭借质量计划编制、质量控制、质并在质量体系中凭借质量计划编制、质量控制、质量保证和质量提高等措施履行质量的目标。量保证和质量提高等措施履行质量的目标。软件项目管理3 37.1 项目质量与质量模型项目质量与质量模型7.2 项目质量管理项目质量管理7.3 项目质量计划的编制项目质量计划的编制7

3、.4 项目质量保证项目质量保证7.5 项目质量控制项目质量控制7.6 质量保证体系质量保证体系7.7 CMM的质量过程的质量过程7.8 软件验证和确认技术软件验证和确认技术软件项目管理4 47.1 7.1 项目质量与质量模型项目质量与质量模型7.1.1 7.1.1 项目质量的概念项目质量的概念ISO 8402-1994 定义质量为定义质量为 “反映实体满足明确和隐反映实体满足明确和隐含需求的能力的特性的总和含需求的能力的特性的总和”。其中,。其中,实体实体是是“可以单独描述和研究的事物可以单独描述和研究的事物”,如产品,如产品,活动,过程,组织和体系等。活动,过程,组织和体系等。明确需求明确需

4、求是指在标准、规范、合同、技术要求和其是指在标准、规范、合同、技术要求和其他文件中明确规定的要求。他文件中明确规定的要求。隐含需求隐含需求是指用户和社会对实体的期望,以及公认是指用户和社会对实体的期望,以及公认的不必明确的要求。的不必明确的要求。软件项目管理5 5在项目范围内,在项目范围内,质量管理质量管理的重要方面是通过项目管的重要方面是通过项目管理把隐含需求转变成明确需求。理把隐含需求转变成明确需求。David Garvin提出,提出,“质量是一个复杂的多层面的质量是一个复杂的多层面的概念概念”:v从先验论角度看,质量是可以识别出来的,但不从先验论角度看,质量是可以识别出来的,但不能明确定

5、义的。能明确定义的。v从用户角度看,质量是对目标的满足程度。从用户角度看,质量是对目标的满足程度。v从制造角度看,质量是对规范的符合程度。从制造角度看,质量是对规范的符合程度。v从产品角度看,质量是产品的内在特征。从产品角度看,质量是产品的内在特征。v从基于价值的角度看,质量依赖于顾客愿意出多从基于价值的角度看,质量依赖于顾客愿意出多少钱购买。少钱购买。软件项目管理6 6质量的两个主要特点:质量的两个主要特点:v质量是质量是综合的概念综合的概念,它要求功能、成本、服务、,它要求功能、成本、服务、环境、心理等诸方面都能满足用户的需要。环境、心理等诸方面都能满足用户的需要。v质量是一个质量是一个动

6、态的动态的、相对的相对的、变化的变化的、发展的发展的概念概念,随着地域、时期、使用对象、社会环境、,随着地域、时期、使用对象、社会环境、市场竞争的变化而被赋予不同的内容和要求,市场竞争的变化而被赋予不同的内容和要求,而且随着社会的进步及知识创新,其内涵和要而且随着社会的进步及知识创新,其内涵和要求也是不断更新、丰富的。求也是不断更新、丰富的。另外,质量还包括对项目过程的要求,如规定执行另外,质量还包括对项目过程的要求,如规定执行过程必须遵循的规范和标准等。过程必须遵循的规范和标准等。软件项目管理7 77.1.27.1.2 软件质量特性软件质量特性按照按照 ISO 8402- -1994 规定,

7、软件质量是规定,软件质量是“对用户在对用户在功能和性能方面需求的满足,对规定的标准和规范功能和性能方面需求的满足,对规定的标准和规范的遵循,正规化软件某些公认的应该具有的本质的遵循,正规化软件某些公认的应该具有的本质”。包涵的含义有三:包涵的含义有三:(1)用户的需求是软件质量评价的基础。用户的需求是软件质量评价的基础。(2)已经规定的标准和规范是软件开发的共同准则。已经规定的标准和规范是软件开发的共同准则。(3)软件的某些要求虽然没有明确提出,但是业内软件的某些要求虽然没有明确提出,但是业内公认和执行的,也应得到满足。公认和执行的,也应得到满足。软件项目管理8 8软件质量不是绝对的,而是相对

8、的概念。软件质量不是绝对的,而是相对的概念。软件质量概念需要建立在预先定义的需求的基础上,软件质量概念需要建立在预先定义的需求的基础上,而预先定义的需求在很大程度上依赖于描述它们的而预先定义的需求在很大程度上依赖于描述它们的人员。人员。这些人员可能来自软件产品不同的开发环境,对软这些人员可能来自软件产品不同的开发环境,对软件质量有不同的理解,因此提出了关于软件产品的件质量有不同的理解,因此提出了关于软件产品的质量特性及其组合。质量特性及其组合。如果这些质量特性及其组合都能在产品中得到满足,如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。则这个软件产品质量就是高的。软件

9、质量是各种特性的复杂组合。它随着应用的不软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。同而不同,随着用户提出的质量要求不同而不同。软件项目管理9 97.1.37.1.3 软件质量模型软件质量模型软件质量特性,反映了软件的本质。讨论一个软件软件质量特性,反映了软件的本质。讨论一个软件的质量,归结到定义软件的质量特性。的质量,归结到定义软件的质量特性。定义一个软件的质量,就等价于为该软件定义一系定义一个软件的质量,就等价于为该软件定义一系列质量特性。列质量特性。人们通常把影响软件质量的特性用软件质量模型来人们通常把影响软件质量的特性用软件质量模型来描述。描

10、述。软件质量特性定义成分层模型。最基本的叫做基本软件质量特性定义成分层模型。最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。质量特性,它可以由一些子质量特性定义和度量。这些子特性在必要时又可由它的一些子特性定义和这些子特性在必要时又可由它的一些子特性定义和度量。度量。软件项目管理10101976年年 B. W. Boehm、T. R. Brown 和和 M. Lipow首首次提出软件质量模型,他们认为软件产品的质量基次提出软件质量模型,他们认为软件产品的质量基本上可以从下列本上可以从下列 3 个方面来考虑:软件的个方面来考虑:软件的可使用性可使用性、可维护性可维护性和和可移植性可移

11、植性。这些质量特性又可分为若干。这些质量特性又可分为若干层次,对最低层次的质量子特性引入数量化的概念。层次,对最低层次的质量子特性引入数量化的概念。1979年,年,McCall 和和 Walters 提出新的软件质量模提出新的软件质量模型与度量,该模型得到公认和广泛的应用,并成为型与度量,该模型得到公认和广泛的应用,并成为 ISO 质量模型及其他模型的基础。该模型提出软件质量模型及其他模型的基础。该模型提出软件的的 11 个质量特性,集中分布在个质量特性,集中分布在3 个方面:软件产个方面:软件产品的品的运行特性运行特性、修正特性修正特性和和转移特性转移特性。软件项目管理1111设备独立性设备

12、独立性自包含性自包含性正确性正确性完备性完备性健壮性健壮性一致性一致性可计测性可计测性设备效率设备效率可存取性可存取性通信性通信性自描述性自描述性结构化性结构化性简单性简单性清晰性清晰性可扩充性可扩充性 软软件件质质量量可移植性可移植性可使用性可使用性可维护性可维护性人类工程人类工程可修改性可修改性可理解性可理解性可测试性可测试性可靠性可靠性效效 率率BoehmBoehm质量模型质量模型软件项目管理1212McCallMcCall质量模型质量模型可维护性可维护性(Maintainability)可测试性可测试性(Testability)灵活性灵活性(Flexibility)正确性正确性(Cor

13、rectness) 可靠性可靠性(Reliability)可使用性可使用性(Usability) 效率效率(Efficiency)完整性完整性(Integrity)互连性互连性(Interoperability) 可移植性可移植性(Portability) 复用性复用性(Reusability)产品运行产品运行Product Operations Product Revitions产品修正产品修正ProductTransitions 产品转移产品转移软件项目管理1313ISOISO的软件质量评价模型的软件质量评价模型按照按照 1991 年年 ISO 发布的发布的 ISO/IEC 9126 质量

14、特性国质量特性国际标准际标准 ,软件质量度量模型由三层组成软件质量度量模型由三层组成 软件质量特性软件质量特性 软件质量子特性软件质量子特性 软件质量度量评价准则软件质量度量评价准则高层和中层建立国际标准,低层可由各使用单位视高层和中层建立国际标准,低层可由各使用单位视实际情况制定。实际情况制定。软件项目管理1414软软软软件件件件质质质质量量量量功能性可靠性可维护性效率可使用性可移植性适合性准确性互操作性依从性安全性成熟性容错性易恢复性易理解性易学习性易操作性时间特性资源特性易分析性稳定性易变更性易测试性易安装性易替换性适应性遵循性质量特性质量子特性质量度量准则使使用用单单位位自自行行规规定

15、定ISO 9126ISO 9126质量模型质量模型软件项目管理1515可移植性可移植性可可维护性维护性效率效率可使用性可使用性可靠性可靠性功能性功能性可移植性可移植性可可维护性维护性效率效率可使用性可使用性可靠性可靠性功能性功能性其中其中, 表示有利影响,表示有利影响, 表示不利表示不利影响。影响。 质量特性之间的竞争质量特性之间的竞争软件项目管理16161994年对年对ISO/IEC 9126开始进行修正,将原标准修开始进行修正,将原标准修订为两个序列标准:订为两个序列标准:1.ISO/IEC 9126信息技术信息技术 软件产品质量软件产品质量,描述描述新的软件质量模型,分为新的软件质量模型

16、,分为 4 个部分:个部分:(1)质量模型质量模型(9126-1)(2)内部质量内部质量(9126-2)(3)外部质量外部质量(9126-3)(4)使用质量使用质量(9126-4)2.ISO/IEC 14598信息技术信息技术 软件产品评价软件产品评价,详细详细描述软件质量评价的方法,分为描述软件质量评价的方法,分为 6 个部分:个部分:软件项目管理1717(1)概述概述(14598-1)(2)策划和管理策划和管理(14598-2)(3)开发方过程开发方过程(14598-3)(4)获取方过程获取方过程(14598-4)(5)评价方过程评价方过程(14598-5)(6)评价模块的文档评价模块的文

17、档(14598-6)修订版保留了修订版保留了 6 个质量特性,但明确了它们与内部个质量特性,但明确了它们与内部度量和外部度量的关系,并解释了这些特性与使用度量和外部度量的关系,并解释了这些特性与使用质量之间的关系。质量之间的关系。修订版还给出了一个质量模型的规格说明,引入了修订版还给出了一个质量模型的规格说明,引入了使用质量。使用质量。软件项目管理1919内部质量和外部质量的质量模型内部质量和外部质量的质量模型外部质量外部质量是软件产品在规定条件下使用时,满足规定是软件产品在规定条件下使用时,满足规定的和隐含的要求的程度。外部质量是从外部观点看软的和隐含的要求的程度。外部质量是从外部观点看软件

18、产品的全部特性。件产品的全部特性。内部质量内部质量是软件产品在规定条件下使用时,决定其满是软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的产品属性的全体。内足规定的和隐含的要求的能力的产品属性的全体。内部质量是从内部的观点看软件产品的全部特性。部质量是从内部的观点看软件产品的全部特性。在质量模型中有在质量模型中有 6 个软件质量特性,这些特性按用户个软件质量特性,这些特性按用户观点描述软件的外部质量,每个质量特性按开发者的观点描述软件的外部质量,每个质量特性按开发者的观点又分解为子特性。观点又分解为子特性。软件项目管理2020外部和内部质量的质量模型外部和内部质量的质量模型适合

19、性适合性正确性正确性互用性互用性保密性保密性功能性功能性符合性符合性成熟性成熟性容错性容错性恢复性恢复性可靠性可靠性符合性符合性易理解性易理解性易学会性易学会性操作性操作性吸引性吸引性易用性符易用性符合性合性时间特性时间特性资源利用资源利用效率符合效率符合性性易分析性易分析性易变更性易变更性稳定性稳定性易测试性易测试性可维护性可维护性符合性符合性适应性适应性易安装性易安装性共存性共存性可替换性可替换性可移植性可移植性符合性符合性外部质量和内部质量外部质量和内部质量功能性功能性可靠性可靠性可使用性可使用性效率效率可维护性可维护性可移植性可移植性软件项目管理2121使用质量的质量模型使用质量的质量

20、模型使用质量使用质量是软件产品在规定的使用环境中,规定的用是软件产品在规定的使用环境中,规定的用户能实现规定目标的要求,并具有有效性、生产率、户能实现规定目标的要求,并具有有效性、生产率、安全性和满意度的能力。安全性和满意度的能力。使用质量是从软件所处的环境的观点,用软件在这个使用质量是从软件所处的环境的观点,用软件在这个环境中的使用绩效来测量的,而不是依靠软件本身的环境中的使用绩效来测量的,而不是依靠软件本身的特性来测量。特性来测量。有效性有效性生产率生产率满意度满意度安全性安全性使用质量使用质量软件项目管理2222在生存期中各种质量特性的使用在生存期中各种质量特性的使用软件的生存期可以划分

21、为三个大的阶段。软件的生存期可以划分为三个大的阶段。v在在软件需求定义阶段软件需求定义阶段定义软件的质量要求;定义软件的质量要求;v在在软件产品开发阶段软件产品开发阶段要使得软件产品具有要求要使得软件产品具有要求的质量;的质量;v在在软件运行和维护阶段软件运行和维护阶段要测量软件是否达到了要测量软件是否达到了用户的质量要求并维护软件的性能水平。用户的质量要求并维护软件的性能水平。用户质量要求可以用使用质量度量、外部质量度量用户质量要求可以用使用质量度量、外部质量度量表达,有时也可以用内部质量度量来表达。表达,有时也可以用内部质量度量来表达。用这些用这些度量表达的要求将作为产品确认的准则。度量表

22、达的要求将作为产品确认的准则。软件项目管理25257.2 7.2 项目质量管理项目质量管理项目质量管理理论产生于项目质量管理理论产生于 1920 年代,其主要目的年代,其主要目的是:最经济、最有效地开发、设计、生产用户最满是:最经济、最有效地开发、设计、生产用户最满意的产品和服务。意的产品和服务。质量管理的发展阶段:质量管理的发展阶段:1.以产品为中心的质量检验合同及质量控制阶段以产品为中心的质量检验合同及质量控制阶段(1950年)年)7.2.1 7.2.1 项目质量管理的概念项目质量管理的概念检验检验统计质统计质量控制量控制质量质量保证保证质量质量管理管理全面质全面质量管理量管理软件项目管理

23、26262.以顾客为中心的质量保证阶段(以顾客为中心的质量保证阶段(1950 年年1987 年)年)3.强调持续改进的质量保证阶段(强调持续改进的质量保证阶段(1987年年现在)现在)4.全面质量管理阶段全面质量管理阶段目前质量管理理论和实践的中心是目前质量管理理论和实践的中心是针对过程针对过程的质量的质量管理。主张管理。主张在生产过程中保证质量在生产过程中保证质量,而,而不是在传统不是在传统的生产过程结束后才发现质量问题的生产过程结束后才发现质量问题,这就比产品质,这就比产品质量检验控制更具有先期性和主动性。量检验控制更具有先期性和主动性。一般地,开发过程的质量直接影响可交付产品的质一般地,

24、开发过程的质量直接影响可交付产品的质量,产品质量直接与生产过程有关。量,产品质量直接与生产过程有关。软件项目管理2828软件在其开发过程中可以借用一般产品生产的质量软件在其开发过程中可以借用一般产品生产的质量管理基本思想。管理基本思想。软件开发过程基本可以划分为几个阶段:需求分析、软件开发过程基本可以划分为几个阶段:需求分析、概要设计、详细设计、程序编码与单元测试、集成概要设计、详细设计、程序编码与单元测试、集成与测试、版本发行等。它们的与测试、版本发行等。它们的质量形成过程质量形成过程同样同样涉涉及到各个部门及其相关人员及到各个部门及其相关人员,也,也涉及到生产企业内涉及到生产企业内外相关人

25、员和用户外相关人员和用户。因为产品的形成受到开发过程的影响,故对生产过因为产品的形成受到开发过程的影响,故对生产过程的质量因素分析必须基于过程进行。程的质量因素分析必须基于过程进行。影响产品质量的因素很多。根据对质量影响大小来影响产品质量的因素很多。根据对质量影响大小来看,可分为看,可分为偶然因素偶然因素和和异常因素异常因素。软件项目管理2929v偶然因素偶然因素始终存在,对质量影响较小。始终存在,对质量影响较小。 v异常因素异常因素对产品质量影响较大,应尽快找出,对产品质量影响较大,应尽快找出,采取措施加以消除。采取措施加以消除。根据来源不同,质量因素可分为根据来源不同,质量因素可分为 5M

26、1E:v材料材料(Material)v方法方法(Method)v设备设备(Machine)v操作人员操作人员(Man)v测量测量(Measurement)v环境环境(Environment)软件产品的质量因素可以参照软件产品的质量因素可以参照 5M1E 进行来源分析,进行来源分析,并着重于异常因素的来源分析。并着重于异常因素的来源分析。软件项目管理30307.2.27.2.2 全面质量管理全面质量管理ISO 9000:2000 对质量管理的定义是:对质量管理的定义是:“在质量方面在质量方面指挥和控制组织的协调的活动指挥和控制组织的协调的活动”。因此,质量管理。因此,质量管理确定质量方针、目标和

27、责任,指导和控制组织所有确定质量方针、目标和责任,指导和控制组织所有与质量有关的相互协调的活动。与质量有关的相互协调的活动。1950 年代末,美国质量管理专家年代末,美国质量管理专家 W.E.Deming 和和 J.M.Juran 等人提出了等人提出了全面质量管理全面质量管理 TQC(Total Quality Control)的概念。)的概念。通过多年实践,全面质量管理从通过多年实践,全面质量管理从以质量管理专业人以质量管理专业人员为核心进行质量管理员为核心进行质量管理,发展到,发展到管理者推动、组织管理者推动、组织各层次、各部门人员来学习和实施质量管理各层次、各部门人员来学习和实施质量管理

28、。软件项目管理31311994 年年 ISO 8402 标准将全面质量管理定义为标准将全面质量管理定义为TQM (Total Quality Management)。其描述为)。其描述为 “一个一个组织以质量为中心,以全员参与为基础,目的在于组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径到长期成功的管理途径”。换言之,换言之,TQM 就是就是运用质量管理的科学理论、技运用质量管理的科学理论、技术、方法,建立起贯穿于产品质量形成全过程的质术、方法,建立起贯穿于产品质量形成全过程的质量保证体系

29、量保证体系,使企业全体职工树立质量观点,提高,使企业全体职工树立质量观点,提高工作质量,经济地生产用户满足的产品。工作质量,经济地生产用户满足的产品。全面质量管理针对的是广义的质量,即全面质量管理针对的是广义的质量,即产品质量产品质量和和工作质量工作质量的综合。的综合。软件项目管理3232工作质量是指工作质量是指与质量有关的各项工作与质量有关的各项工作,即保证产品,即保证产品质量的各种手段。质量的各种手段。从系统的观点来看,要获得高的产品质量,必须把从系统的观点来看,要获得高的产品质量,必须把重点放在工作质量上。工作质量保证了过程质量,重点放在工作质量上。工作质量保证了过程质量,过程质量直接影

30、响了产品质量。过程质量直接影响了产品质量。全面质量管理的特点:全面质量管理的特点:(1)全过程的质量管理。全过程的质量管理。产品质量有一个逐步形成产品质量有一个逐步形成的过程,因此要求事前控制生产过程的质量,的过程,因此要求事前控制生产过程的质量,保证一切环节的质量良好。保证一切环节的质量良好。(2)全员的质量管理。全员的质量管理。产品质量取决于全体员工对产品质量取决于全体员工对产品质量的认识,以及与产品质量有关的工作产品质量的认识,以及与产品质量有关的工作软件项目管理3333质量。因此,需要重视人的因素,发挥人的主质量。因此,需要重视人的因素,发挥人的主观能动性。观能动性。(3)全企业的质量

31、管理。全企业的质量管理。质量管理光靠技术是不够质量管理光靠技术是不够的,要靠组织上下各个层次开展重点不同的质的,要靠组织上下各个层次开展重点不同的质量活动。量活动。全面质量管理的基本方法是全面质量管理的基本方法是 PDCA 循环法循环法。它把。它把质量管理过程分为计划(质量管理过程分为计划(Plan)、)、实施(实施(Do)、)、检查(检查(Check)、)、处理(处理(Action)等)等 4 个阶段个阶段 8 个个步骤,强调按此顺序循环反复,执行质量管理步骤。步骤,强调按此顺序循环反复,执行质量管理步骤。1.计划(计划(Plan):):v分析质量现状,找出存在的质量问题。分析质量现状,找出

32、存在的质量问题。软件项目管理3434v分析产生问题的原因及各种影响因素。分析产生问题的原因及各种影响因素。v从众多原因中找出影响质量的主要原因,从从众多原因中找出影响质量的主要原因,从而找出影响质量的主要因素。而找出影响质量的主要因素。v针对影响质量的主要因素制定相应的应对措针对影响质量的主要因素制定相应的应对措施(质量过程),制定改进质量的计划。施(质量过程),制定改进质量的计划。2.实施(实施(Do):):v贯彻和实施既定的质量计划,展开质量过程。贯彻和实施既定的质量计划,展开质量过程。3.检查(检查(Check):):v检查质量过程执行的结果,评价质量过程的检查质量过程执行的结果,评价质

33、量过程的实施是否有效地达到了计划的预期效果。实施是否有效地达到了计划的预期效果。软件项目管理35354.处理(处理(Action):):v总结经验教训,肯定成功的经验。总结经验教训,肯定成功的经验。v明确尚未解决或者新发现的问题,并转入下明确尚未解决或者新发现的问题,并转入下一个一个 PDCA 循环。循环。PDCA问问题题原原因因主主因因计计划划实实施施检检查查经验经验教训教训遗留遗留问题问题软件项目管理3636全面质量管理从过去的事后检验,以全面质量管理从过去的事后检验,以“把关把关”为主,为主,转换到以预防、改进为主;从管转换到以预防、改进为主;从管“结果结果”转换为管转换为管“因素因素”

34、,找出影响产品质量的因素,并抓住主要,找出影响产品质量的因素,并抓住主要因素。因素。这要求全体人员要树立这要求全体人员要树立 3 个观点:个观点:v系统的观点系统的观点:将生产企业视为一个开放的系统,:将生产企业视为一个开放的系统,运用系统科学原理和方法,对所有环节进行全运用系统科学原理和方法,对所有环节进行全面的组织管理。面的组织管理。v为用户服务的观点为用户服务的观点:树立质量第一、用户第一的:树立质量第一、用户第一的思想。思想。v预防为主的观点预防为主的观点:使生产经营活动处于受控状态。:使生产经营活动处于受控状态。软件项目管理37377.2.37.2.3 项目质量管理的描述项目质量管理

35、的描述项目质量管理包含一些过程,它要求保证该项目能项目质量管理包含一些过程,它要求保证该项目能够兑现它的关于满足各种需求的承诺。够兑现它的关于满足各种需求的承诺。它包括它包括在质量体系中与决定质量工作的策略、目标在质量体系中与决定质量工作的策略、目标和责任的全部管理功能有关的各种活动和责任的全部管理功能有关的各种活动,并通过诸,并通过诸如质量计划、质量保证和质量提高等手段来完成这如质量计划、质量保证和质量提高等手段来完成这些活动。些活动。项目质量管理主要包括项目质量管理主要包括质量计划编制质量计划编制、质量保证质量保证、质量控制质量控制三个过程。三个过程。这些过程相互影响,并与其他知识体系的过

36、程之间这些过程相互影响,并与其他知识体系的过程之间也相互影响。也相互影响。 软件项目管理38381. 输入输入 质量方针质量方针 范围说明范围说明 产品说明产品说明 标准和规则标准和规则 其他过程的输出其他过程的输出2. 方法与技术方法与技术 效益效益/成本分析成本分析 基本水平标准基本水平标准 流程图流程图 实验设计实验设计3. 输出输出 质量管理计划质量管理计划 操作性定义操作性定义 评审单评审单 对其他过程的输对其他过程的输入入质量计划质量计划1. 输入输入 质量管理计划质量管理计划 质量控制检验结质量控制检验结果果 操作性定义操作性定义2. 方法与技术方法与技术 质量计划方法质量计划方

37、法 质量评审质量评审3. 输出输出 质量提高质量提高质量保证质量保证1. 输入输入 工作成果工作成果 质量管理计划质量管理计划 操作性定义操作性定义 评审单评审单2. 方法与技术方法与技术 检查检查 控制表控制表 Pareto图图 抽样调查统计抽样调查统计 流程图流程图 趋势分析趋势分析3. 输出输出 质量提高质量提高 可接受的决定可接受的决定 返工返工 完成后的评审单完成后的评审单 程序调整程序调整质量控制质量控制项目质量管理项目质量管理软件项目管理39397.37.3 项目质量计划的编制项目质量计划的编制项目质量计划包括识别哪些质量目标与项目有关,项目质量计划包括识别哪些质量目标与项目有关

38、,并确定如何满足这些质量目标。并确定如何满足这些质量目标。在项目计划阶段,质量计划编制是其辅助过程之一,在项目计划阶段,质量计划编制是其辅助过程之一,与其他过程并行进行。例如,实施产品的需求变更,与其他过程并行进行。例如,实施产品的需求变更,可能需要对成本或进度计划进行调整,还可能需要可能需要对成本或进度计划进行调整,还可能需要对问题进行风险分析。对问题进行风险分析。质量计划的要点:质量计划的要点:1.引言引言1.1 目的目的1.2 定义和缩写词定义和缩写词1.3 参考资料参考资料软件项目管理40402.项目概述项目概述2.1 功能概述功能概述2.2 项目生存期模型项目生存期模型2.3 项目阶

39、段划分及其准则项目阶段划分及其准则3.实施策略实施策略3.1 项目特征项目特征3.2 主要工作主要工作4.项目组织项目组织4.1 项目组织结构项目组织结构 机构组成及来自各相关单位机构组成及来自各相关单位质量管理人员在机构中关系质量管理人员在机构中关系4.2 SQA组的组织组的组织4.3 SQA组的权力和职责组的权力和职责软件项目管理41415.质量对象分析与选择质量对象分析与选择6.质量任务质量任务6.1 基本任务基本任务6.2 活动反馈方式活动反馈方式6.3 争议上报方式争议上报方式6.4 测试计划测试计划6.5 采购产品的验证和确认采购产品的验证和确认6.6 客户提供产品的验证客户提供产

40、品的验证7.实施计划实施计划7.1 工作计划工作计划7.2 高级管理层定期评审安排高级管理层定期评审安排7.3 项目经理定期和基于事件的评审安排项目经理定期和基于事件的评审安排软件项目管理42428.资源计划资源计划9.记录的收集、维护和保存记录的收集、维护和保存9.1 记录范围记录范围9.2 SQA记录的收集、维护和保存记录的收集、维护和保存n质量计划需要根据项目的具体情况决定采取什么形质量计划需要根据项目的具体情况决定采取什么形式。有的质量计划包括质量保证计划和质量控制计式。有的质量计划包括质量保证计划和质量控制计划。划。n质量保证计划质量保证计划包括质量保证(审核、评审软件过程、包括质量

41、保证(审核、评审软件过程、活动和软件产品等)的方法、职责、时间安排等;活动和软件产品等)的方法、职责、时间安排等;质量控制计划质量控制计划可以包括在可以包括在 开发活动的计划中,如代开发活动的计划中,如代码走查、单元测试、集成测试、系统测试等。码走查、单元测试、集成测试、系统测试等。软件项目管理43437.3.17.3.1 项目质量计划编制的依据项目质量计划编制的依据项目质量计划编制的目的是项目质量计划编制的目的是识别项目相关的质量目识别项目相关的质量目标标,以及,以及确定如何满足这些相关的质量目标确定如何满足这些相关的质量目标。质量计划编制通过参照或依据实施项目组织的质量计划编制通过参照或依

42、据实施项目组织的质量质量方针方针、项目的、项目的范围说明范围说明、产品说明产品说明等,识别出项目等,识别出项目相关的所有相关的所有质量目标质量目标,从而达到或超过项目的客户,从而达到或超过项目的客户及其他项目干系人的期望和要求。及其他项目干系人的期望和要求。1.质量方针质量方针 ISO 9000:2000 对质量方针的定义是对质量方针的定义是“由组织的最由组织的最高管理者正式发布的该组织总的质量意图和质量方高管理者正式发布的该组织总的质量意图和质量方向向”。 软件项目管理4444项目质量方针应与实施该项目的组织的质量方针一项目质量方针应与实施该项目的组织的质量方针一致。组织的最高管理者应在以下

43、几方面确保致。组织的最高管理者应在以下几方面确保:(1)与组织的宗旨相适应与组织的宗旨相适应 即组织的质量方针应与即组织的质量方针应与组织的总体经营宗旨相一致。由于不同组织提组织的总体经营宗旨相一致。由于不同组织提供的产品、服务及规模、目的不尽相同,其经供的产品、服务及规模、目的不尽相同,其经营宗旨也各不相同,质量方针也应有所不同。营宗旨也各不相同,质量方针也应有所不同。(2)包含有包含有对满足要求和持续改进质量管理体系有对满足要求和持续改进质量管理体系有效性的承诺效性的承诺 这种承诺的对象是与组织利益关这种承诺的对象是与组织利益关系一致的各个相关方(包括客户、员工、供方系一致的各个相关方(包

44、括客户、员工、供方和社会等),其中对客户的承诺是最重要的,和社会等),其中对客户的承诺是最重要的,主要是满足客户对产品的要求。主要是满足客户对产品的要求。软件项目管理4545(3)提供制定和评审质量目标的框架提供制定和评审质量目标的框架 由于质量方针由于质量方针指出了组织的质量方向,而质量目标是对这一方指出了组织的质量方向,而质量目标是对这一方向的落实和展开,因此质量方针应是制定和评审向的落实和展开,因此质量方针应是制定和评审质量目标的框架和基础。质量目标的框架和基础。(4)在组织内得到沟通和理解在组织内得到沟通和理解 为了质量方针的最终为了质量方针的最终实现,组织的最高管理者必须将它传达到组

45、织内实现,组织的最高管理者必须将它传达到组织内各适当层次的有关人员,使他们相互沟通和充分各适当层次的有关人员,使他们相互沟通和充分理解质量方针。理解质量方针。(5)在持续适宜性方面得到评审在持续适宜性方面得到评审 组织应对质量方针组织应对质量方针是否适合于发展,进行定期评审和修订,以反映是否适合于发展,进行定期评审和修订,以反映不断变化的内外部条件和信息。这种评审,一般不断变化的内外部条件和信息。这种评审,一般在组织定期的管理评审中进行。在组织定期的管理评审中进行。软件项目管理46462.质量目标质量目标ISO 9000 : 2000 要求组织的最高管理者应在以下几要求组织的最高管理者应在以下

46、几方面确保建立和实现质量目标方面确保建立和实现质量目标:(1)质量目标的制定质量目标的制定 组织制定质量目标的原则应组织制定质量目标的原则应是持续改进、提高质量、使客户满意。应考虑是持续改进、提高质量、使客户满意。应考虑市场当前和未来的需要,还应考虑当前的产品市场当前和未来的需要,还应考虑当前的产品及顾客满意的状况。及顾客满意的状况。(2)质量目标应予以分解和展开质量目标应予以分解和展开 质量目标必须分质量目标必须分解到组织中与质量管理体系有关的各职能部门解到组织中与质量管理体系有关的各职能部门及层次(如决策层、执行层、作业层)中,相及层次(如决策层、执行层、作业层)中,相关职能和层次的员工都

47、应把质量目标转化或展关职能和层次的员工都应把质量目标转化或展开为各自的工作任务。开为各自的工作任务。软件项目管理4747(3)质量目标应是可测量的质量目标应是可测量的 作业层的质量目标应作业层的质量目标应该尽可能定量地设定。通过检验、计算或其他该尽可能定量地设定。通过检验、计算或其他测量方法可以确定其量度值。并与设定值进行测量方法可以确定其量度值。并与设定值进行比较,以确定实现的程度。比较,以确定实现的程度。质量目标作为质量管理体系有效的判定指标,质量目标作为质量管理体系有效的判定指标,其可测量性可以增加质量目标的可评审性。其可测量性可以增加质量目标的可评审性。(3)与质量方针保持一致与质量方

48、针保持一致 质量目标应在质量方针质量目标应在质量方针的基础上建立,在质量方针给定的框架内展开,的基础上建立,在质量方针给定的框架内展开,内容应与质量方针保持一致,在管理评审中与内容应与质量方针保持一致,在管理评审中与质量方针一起进行评审。质量方针一起进行评审。(4)质量目标的内容质量目标的内容软件项目管理4848a)产品要求产品要求,即体现产品的固有特性(例如功,即体现产品的固有特性(例如功能、性能、行为、心理、时间特性)和产品能、性能、行为、心理、时间特性)和产品的赋予特性(如价格)。的赋予特性(如价格)。b)满足产品要求所需的内容满足产品要求所需的内容,即满足产品要求,即满足产品要求所需的

49、资源、过程、文件和活动。所需的资源、过程、文件和活动。c)包括对持续改进的承诺包括对持续改进的承诺,体现分阶段实现的,体现分阶段实现的原则。原则。总之,组织应根据行业的特点、产品和服务的总之,组织应根据行业的特点、产品和服务的特点、自身的特点确定质量目标的内容。特点、自身的特点确定质量目标的内容。3.项目范围说明项目范围说明这是质量计划编制过程中关键的一个依据,它记录这是质量计划编制过程中关键的一个依据,它记录软件项目管理4949了该项目的所有主要可交付物,也用来帮助定义重了该项目的所有主要可交付物,也用来帮助定义重要项目干系人的需求。要项目干系人的需求。3.项目的产品说明书项目的产品说明书它

50、详细地记录了项目交付物的功能、特点、需要达它详细地记录了项目交付物的功能、特点、需要达到的性能指标以及相关的技术细节。到的性能指标以及相关的技术细节。了解产品说明书可以帮助识别项目相关的质量目标,了解产品说明书可以帮助识别项目相关的质量目标,并根据其产品特性和技术细节得出该项目的质量目并根据其产品特性和技术细节得出该项目的质量目标。标。4.标准和规则标准和规则项目管理者还必须考虑任何适用于特定领域的专门项目管理者还必须考虑任何适用于特定领域的专门标准和规则。标准和规则。软件项目管理5050例如,在一个城域网项目中,根据项目本身的要求例如,在一个城域网项目中,根据项目本身的要求和相关业务领域要求

51、,参照和相关业务领域要求,参照“高端路由器规范高端路由器规范YDT 1156- -2001”、“低端路由器规范低端路由器规范YDT 1098- -2001”等标准,给项目的结果提供一个质量目标。等标准,给项目的结果提供一个质量目标。5.其他过程的输出其他过程的输出除了项目范围说明和产品说明,其他知识体系中的除了项目范围说明和产品说明,其他知识体系中的过程所产生的结果也可作为项目质量计划编制的依过程所产生的结果也可作为项目质量计划编制的依据。例如,参照项目采购管理过程的输出结果据。例如,参照项目采购管理过程的输出结果“采采购计划购计划”,可以在项目质量计划中加入对承包商的,可以在项目质量计划中加

52、入对承包商的质量要求。质量要求。软件项目管理51511.收益收益/成本分析成本分析质量计划中的效益是指做好各种项目工作,以满足质量计划中的效益是指做好各种项目工作,以满足项目的质量需求。项目的质量需求。衡量项目收益的指标是返工率降衡量项目收益的指标是返工率降低、生产率提高、成本节省和项目干系人满意度提低、生产率提高、成本节省和项目干系人满意度提高。高。满足质量要求的成本是与项目管理活动有关的费用。满足质量要求的成本是与项目管理活动有关的费用。编制质量计划的目的是编制质量计划的目的是努力使获得的收益远远超出努力使获得的收益远远超出实施过程的成本。实施过程的成本。2.基准比较法基准比较法将计划或实

53、际实施过程中的项目做法与其他类似项将计划或实际实施过程中的项目做法与其他类似项7.3.2 7.3.2 项目质量计划编制的方法项目质量计划编制的方法软件项目管理5252目的实际做法进行比较目的实际做法进行比较,通过比较来改善与提高当,通过比较来改善与提高当前项目的质量管理,以达到项目预期的质量或其他前项目的质量管理,以达到项目预期的质量或其他目标。类似项目可以是同一应用领域的,也可以不目标。类似项目可以是同一应用领域的,也可以不是。是。3.因果图因果图因果图是反映因果图是反映影响项目的各种潜在原因或结果与各影响项目的各种潜在原因或结果与各种可能出现的问题之间关系种可能出现的问题之间关系的一种图表

54、。也称为鱼的一种图表。也称为鱼骨图或石川(骨图或石川( )图。)图。因果图方法首先确定结果(质量问题),然后分析因果图方法首先确定结果(质量问题),然后分析造成这种结果的原因。每根鱼刺都代表可能的差错造成这种结果的原因。每根鱼刺都代表可能的差错原因,用于查明质量问题的可能原因和设立相应检原因,用于查明质量问题的可能原因和设立相应检验点。验点。软件项目管理5353因果图例因果图例 1 1计算机计算机系统没有系统没有按时交付按时交付预算限制预算限制缺乏经验缺乏经验不不适宜适宜缺乏培训缺乏培训用户不能用户不能确定需求确定需求责任图不责任图不能保持能保持组织组织技术技术资金资金管理管理原材料原材料人员

55、人员子承包商问题子承包商问题缺乏相缺乏相应技能应技能不合适的不合适的外围设备外围设备供应商交付供应商交付硬件受阻硬件受阻没有定义没有定义优先级优先级缺乏交流缺乏交流授权失败授权失败软件项目管理54544.实验设计实验设计是一种统计分析技术,用于识别和找出哪些变量对是一种统计分析技术,用于识别和找出哪些变量对项目结果的影响最大。例如,网络设计师可通过实项目结果的影响最大。例如,网络设计师可通过实验确定更能满足客户需求的方案。验确定更能满足客户需求的方案。实验设计也可用于平衡成本和进度计划等项目管理实验设计也可用于平衡成本和进度计划等项目管理问题。例如,使用资深工程师比使用年轻工程师花问题。例如,

56、使用资深工程师比使用年轻工程师花费成本多,但解决问题快,能保证项目的时间进度。费成本多,但解决问题快,能保证项目的时间进度。适当设计的适当设计的“实验实验”可从有限的几种相关情况中找可从有限的几种相关情况中找出最佳的方案。例如,根据高级工程师和初级工程出最佳的方案。例如,根据高级工程师和初级工程师的不同组合计算成本和工期。师的不同组合计算成本和工期。软件项目管理55555.质量成本质量成本指为了达到产品或服务的质量进行的全部工作所发指为了达到产品或服务的质量进行的全部工作所发生的成本,它以货币为表现形式。生的成本,它以货币为表现形式。质量成本可分为一致成本和非一致成本。质量成本可分为一致成本和

57、非一致成本。(1)一致成本一致成本 是为确保与要求一致所做的全部工是为确保与要求一致所做的全部工作,包括培训、指导、查证、确认、测试、维作,包括培训、指导、查证、确认、测试、维持、测量、评审。持、测量、评审。(2)非一致成本非一致成本 指由于不符合要求所引起的全部指由于不符合要求所引起的全部工作,包括损耗、返工、维修许可、产品回收、工作,包括损耗、返工、维修许可、产品回收、投诉处理等。投诉处理等。通过缩减一致成本来节省项目费用会带来灾难性的通过缩减一致成本来节省项目费用会带来灾难性的后果。后果。软件项目管理5656质量成本的另一种分类为质量成本的另一种分类为(1)预防成本预防成本培训、设计评价

58、、质量计划、过程培训、设计评价、质量计划、过程能力研究、卖方供货商调查等费用。能力研究、卖方供货商调查等费用。(2)评估成本评估成本 检查和测量、设备维护、设计评审、检查和测量、设备维护、设计评审、内部设计审核、走查、整理并报告检查数据的内部设计审核、走查、整理并报告检查数据的成本。成本。(3)内部缺陷成本内部缺陷成本 废品与返工、与推迟付款有关废品与返工、与推迟付款有关的费用、缺陷存留、工程变动成本、根本设计的费用、缺陷存留、工程变动成本、根本设计错误和纠正文档的成本。错误和纠正文档的成本。(4)外部缺陷成本外部缺陷成本 客户退货和补贴、现场服务、客户退货和补贴、现场服务、人员培训、产品责任

59、诉讼、担保、投诉处理、人员培训、产品责任诉讼、担保、投诉处理、未来经营损失等费用。未来经营损失等费用。软件项目管理5757一般的软件质量成本主要是软件设计的质量成本。一般的软件质量成本主要是软件设计的质量成本。软件设计的质量成本是指软件设计的质量成本是指软件组织为保证软件产品软件组织为保证软件产品的质量满足用户的要求所投入的费用的质量满足用户的要求所投入的费用,以及,以及设计缺设计缺陷所造成的损失陷所造成的损失。(1)设计质量投入设计质量投入 用户需求分析、运行平台与环境用户需求分析、运行平台与环境分析、编制可靠性大纲、培训设计开发人员等所分析、编制可靠性大纲、培训设计开发人员等所花费的成本。

60、花费的成本。(2)设计缺陷损失设计缺陷损失 是指由于设计方案存在缺陷而被是指由于设计方案存在缺陷而被迫修改设计,甚至重新设计所花费的成本;或者迫修改设计,甚至重新设计所花费的成本;或者由于设计方案所选择技术标准不恰当,未达到规由于设计方案所选择技术标准不恰当,未达到规定的质量要求,导致检验费用增加及售后服务的定的质量要求,导致检验费用增加及售后服务的损失。损失。软件项目管理58587.3.37.3.3 项目质量计划编制的结果项目质量计划编制的结果1.质量管理计划质量管理计划项目质量管理计划描述项目管理团队如何建立它的项目质量管理计划描述项目管理团队如何建立它的质量方针,描述项目质量体系即组织结

61、构、职责、质量方针,描述项目质量体系即组织结构、职责、规程、工作过程,以及建立质量管理所需的资源。规程、工作过程,以及建立质量管理所需的资源。质量管理计划是整个项目计划的一部分,根据项目质量管理计划是整个项目计划的一部分,根据项目的需要可以是正式的也可以是非正式的。除了描述的需要可以是正式的也可以是非正式的。除了描述项目的质量方针外,它还要兼顾质量保证和质量控项目的质量方针外,它还要兼顾质量保证和质量控制,从而提高项目的质量。制,从而提高项目的质量。2.操作定义操作定义操作定义是用专业化的术语描述各项操作规程的定操作定义是用专业化的术语描述各项操作规程的定软件项目管理5959义,并定义相应的质

62、量控制过程对它们的进行检测,义,并定义相应的质量控制过程对它们的进行检测,以确保操作规程的实施符合质量要求。以确保操作规程的实施符合质量要求。3.检测列表检测列表即测试手册。用于证实需要执行的一系列步骤已经即测试手册。用于证实需要执行的一系列步骤已经得到贯彻执行。得到贯彻执行。软件项目管理60607.47.4 项目质量保证项目质量保证n制定一个项目质量计划以确保一个项目的质量是一制定一个项目质量计划以确保一个项目的质量是一回事,确保实际交付高质量的产品和服务是另一回回事,确保实际交付高质量的产品和服务是另一回事。事。nISO/IEC 12207 : 1995 指出:指出:软件质量保证是一个软件

63、质量保证是一个有计划、有组织的活动,它向所有相关的人提供证有计划、有组织的活动,它向所有相关的人提供证据,以证明质量功能正在按质量要求运行的信心。据,以证明质量功能正在按质量要求运行的信心。nISO/IEC 12207 : 1995 还指出:还指出:软件质量保证过程软件质量保证过程(SQA)是恰当保证为项目生存期中的软件产品和)是恰当保证为项目生存期中的软件产品和过程符合规定需求和已制定计划提供足够保证的过过程符合规定需求和已制定计划提供足够保证的过程程。软件项目管理6161n从以上定义可知,质量保证是一种管理活动,其目从以上定义可知,质量保证是一种管理活动,其目的是确保在软件开发过程中遵循了

64、合适的过程和标的是确保在软件开发过程中遵循了合适的过程和标准。它应贯穿于整个项目的始终。准。它应贯穿于整个项目的始终。n质质量保证过程是通过评价项目的整体绩效,建立起量保证过程是通过评价项目的整体绩效,建立起对项目质量的信任。通过质量保证过程,使得软件对项目质量的信任。通过质量保证过程,使得软件项目过程和项目本身对相关各方透明化。项目过程和项目本身对相关各方透明化。n软件质量保证过程包括软件质量保证过程包括 4 方面的活动:方面的活动:v过程实施过程实施v产品质量保证产品质量保证v过程质量保证过程质量保证v质量保证体系的质量保证质量保证体系的质量保证软件项目管理62627.4.17.4.1 质

65、量保证过程及依据质量保证过程及依据质量保证是在质量系统内实施的计划中的所有活动,质量保证是在质量系统内实施的计划中的所有活动,是保证质量管理计划得以实施的一组过程和步骤。是保证质量管理计划得以实施的一组过程和步骤。从本质上讲,从本质上讲,质量保证是对质量计划和质量控制过质量保证是对质量计划和质量控制过程的质量控制程的质量控制。其要点是:。其要点是:(1)在项目进展过程中,定期对项目各方面的表现在项目进展过程中,定期对项目各方面的表现进行评价;进行评价;(2)通过评价,推测项目最后是否能够达到相关的通过评价,推测项目最后是否能够达到相关的质量指标;质量指标;(3)通过质量评价,帮助项目(内、外部

66、)相关人通过质量评价,帮助项目(内、外部)相关人员建立对项目员建立对项目质量的信心。质量的信心。软件项目管理63631.项目产品或服务的质量保证项目产品或服务的质量保证(1)清晰的规格说明清晰的规格说明 对一个具体的项目,要明确对一个具体的项目,要明确项目的最终产品是什么,项目的中间产品是什项目的最终产品是什么,项目的中间产品是什么。这些中间产品包括各项工作的里程碑以及么。这些中间产品包括各项工作的里程碑以及项目低层次活动产生的中间产品。项目低层次活动产生的中间产品。(2)使用完善的标准使用完善的标准 即一个标准设计的工作包,即一个标准设计的工作包,它是从以往被证实能够达到要求的结果的经验它是

67、从以往被证实能够达到要求的结果的经验中得出的。完善的标准对于保证实现项目产品中得出的。完善的标准对于保证实现项目产品或服务的质量是非常重要的。或服务的质量是非常重要的。(3)历史经验历史经验 历史经验越多,制定的方针和规格历史经验越多,制定的方针和规格说明就越好。而高新技术项目或新的项目组织说明就越好。而高新技术项目或新的项目组织由于经验缺乏,通常不能创建一个清晰的规格由于经验缺乏,通常不能创建一个清晰的规格软件项目管理6464说明。说明。(4)合格的资源合格的资源 如果项目成员熟悉项目的领域知如果项目成员熟悉项目的领域知识和系统开发技能,就能够更好地应用标准来识和系统开发技能,就能够更好地应

68、用标准来实现项目特定的规格。此外,合格的资源还将实现项目特定的规格。此外,合格的资源还将包括在项目实施过程中所使用的原材料和财政包括在项目实施过程中所使用的原材料和财政资源等。资源等。(5)公正的设计评审公正的设计评审 设计评审是为了保证在设计设计评审是为了保证在设计阶段能够满足用户的需求。但这样做有一定副阶段能够满足用户的需求。但这样做有一定副作用:开发人员要花很多时间来验证、测试他作用:开发人员要花很多时间来验证、测试他们的工作,影响新的开发任务的实施。们的工作,影响新的开发任务的实施。(6)变更控制变更控制 为达到项目预期的质量目标,在质为达到项目预期的质量目标,在质量实施的过程中,变更

69、不可避免。因此,要仔量实施的过程中,变更不可避免。因此,要仔软件项目管理6565细定义好每个变更的目的,同时认真评价对程细定义好每个变更的目的,同时认真评价对程序设计的影响,做好费用序设计的影响,做好费用 效益分析,在预定目效益分析,在预定目标的基础上做好变更控制工作。标的基础上做好变更控制工作。2.管理过程的质量保证管理过程的质量保证为了保证管理过程的质量,也要采取与产品的质量为了保证管理过程的质量,也要采取与产品的质量保证类似的步骤,即要保证类似的步骤,即要有一套完善的进行项目管理有一套完善的进行项目管理的规程的规程。该规程要清晰地指明项目怎样管理好满足项目要求该规程要清晰地指明项目怎样管

70、理好满足项目要求的资源。的资源。下面列出的是微软提出的软件质量保证检查表:下面列出的是微软提出的软件质量保证检查表:1)你识别出对你的项目很重要的质量特性了吗你识别出对你的项目很重要的质量特性了吗?软件项目管理66662)你让其他人都知道项目的目标了吗你让其他人都知道项目的目标了吗?3)你对外部质量特性(正确性、可用性、有效性、你对外部质量特性(正确性、可用性、有效性、可靠性、完整性、适用性、精确性和健壮性)和可靠性、完整性、适用性、精确性和健壮性)和内部质量特性(可维护性、灵活性、可移植性、内部质量特性(可维护性、灵活性、可移植性、可复用性、可读性、可测试性和可理解性)作了可复用性、可读性、

71、可测试性和可理解性)作了区分吗区分吗?4)有没有想过有些特性是冲突的,而有些是互补的有没有想过有些特性是冲突的,而有些是互补的?5)你的项目有没有采用几种不同的缺陷发现技术来你的项目有没有采用几种不同的缺陷发现技术来分析不同类型的错误?分析不同类型的错误?6)你的项目计划中有没有包括在软件开发不同阶段你的项目计划中有没有包括在软件开发不同阶段进行质量保证的步骤?进行质量保证的步骤?软件项目管理67677)质量有没有测量,以便于了解什么地方质量提高质量有没有测量,以便于了解什么地方质量提高了,什么地方质量下降了?了,什么地方质量下降了?8)管理层是否了解质量保证在(开发)前期增加成管理层是否了解

72、质量保证在(开发)前期增加成本而在后期节省成本?本而在后期节省成本?项目质量保证一般通过项目质量保证一般通过质量管理信息系统质量管理信息系统实现。当实现。当项目的产品和服务交付后,借助质量管理信息系统项目的产品和服务交付后,借助质量管理信息系统继续跟踪产品和服务的运行情况。如果在保质期内继续跟踪产品和服务的运行情况。如果在保质期内发现了产品的质量问题,应由专门人员记录问题,发现了产品的质量问题,应由专门人员记录问题,进行分类,根据问题的级别进行处理。进行分类,根据问题的级别进行处理。软件项目管理68683.质量保证的依据质量保证的依据(1)质量管理计划质量管理计划 该计划描述了项目质量管理体该

73、计划描述了项目质量管理体系,即组织结构、职责、规程、工作过程和质系,即组织结构、职责、规程、工作过程和质量管理所需要的资源。所有与质量相关的活动量管理所需要的资源。所有与质量相关的活动都要以该管理计划为依据。都要以该管理计划为依据。(2)质量控制检测结果质量控制检测结果 这是对质量控制的监测和这是对质量控制的监测和测试,以比较、分析的形式做出的报告。测试,以比较、分析的形式做出的报告。(3)操作定义操作定义 它是质量管理计划编制的输出。用它是质量管理计划编制的输出。用以描述各种操作规程的含义,并确定如何通过以描述各种操作规程的含义,并确定如何通过质量控制规程对它们进行检测。质量控制规程对它们进

74、行检测。软件项目管理69691.质量计划的工具和方法质量计划的工具和方法策划质量保证计划的方法通常包括策划质量保证计划的方法通常包括收益成本分析收益成本分析、基准比较法基准比较法、因果图因果图、实验设计法实验设计法、质量成本法质量成本法等。等。2.质量审计质量审计v质量审计可以是有计划的或随机的,可以由内部质量审计可以是有计划的或随机的,可以由内部审计师进行,或者由第三方代理人进行。审计师进行,或者由第三方代理人进行。v项目产品审计过程项目产品审计过程是根据质量保证计划对项目进是根据质量保证计划对项目进展过程中的工作制品进行质量审查的过程。质展过程中的工作制品进行质量审查的过程。质量保证管理人

75、员进行质量审计时:量保证管理人员进行质量审计时:7.4.27.4.2 质量保证的方法质量保证的方法软件项目管理70701)预先预先依据相关的产品标准编写产品审计要素;依据相关的产品标准编写产品审计要素;2)然后在整个项目进展过程中根据这些产品审然后在整个项目进展过程中根据这些产品审计要素对提交的工作制品或产品进行审计,计要素对提交的工作制品或产品进行审计,同时记录不符合项;同时记录不符合项;3)再与相关人员会商确认这些不符合项;再与相关人员会商确认这些不符合项;4)最后质量保证管理员根据确认结果编写产品最后质量保证管理员根据确认结果编写产品审计报告,提交给项目经理和其他相关人员。审计报告,提交

76、给项目经理和其他相关人员。v项目过程质量审计是项目过程质量审计是对质量管理活动的结构性审对质量管理活动的结构性审查查,是对项目的执行过程进行检查,确保所有的,是对项目的执行过程进行检查,确保所有的软件项目管理7171活动都遵循(计划的)规程进行。过程质量审计活动都遵循(计划的)规程进行。过程质量审计的目标是的目标是通过对其质量管理活动的审查总结出一通过对其质量管理活动的审查总结出一些经验教训,从而提高该项目以及实施项目的组些经验教训,从而提高该项目以及实施项目的组织内其他项目的执行水平。织内其他项目的执行水平。v执行过程质量审计的质量保证人员一方面是作为执行过程质量审计的质量保证人员一方面是作

77、为项目过程的观察员,监督审查质量体系的执行,项目过程的观察员,监督审查质量体系的执行,另一方面是作为项目质量状态的报告员,报告项另一方面是作为项目质量状态的报告员,报告项目的质量现状和质量过程的状态。目的质量现状和质量过程的状态。v如何具体执行各个过程,应参照组织内相应的质如何具体执行各个过程,应参照组织内相应的质量体系的定义,以及为项目定制的专用过程定义量体系的定义,以及为项目定制的专用过程定义等。例如,下面是一个产品审计的实例。等。例如,下面是一个产品审计的实例。软件项目管理7272R1:质量经理:质量经理参与角色参与角色R2:质量保证人员:质量保证人员R3:待审计产品的负责人:待审计产品

78、的负责人进入条件进入条件E1:已提交待审计产品:已提交待审计产品输输 入入I1:待审计产品的产品标准:待审计产品的产品标准I2:待审计产品:待审计产品A1:质量保证人员依据产品标准从用户的角度编写产品:质量保证人员依据产品标准从用户的角度编写产品 审计要素。审计要素。活活 动动A2:质量保证人员根据产品审计要素对产品进行审核,:质量保证人员根据产品审计要素对产品进行审核, 并记录不符合项,与项目相关人员确认不符合项。并记录不符合项,与项目相关人员确认不符合项。A3:质量保证人员根据确认结果编写产品审计报告。:质量保证人员根据确认结果编写产品审计报告。A4:质量保证人员向项目管理者提交产品审计报

79、告。:质量保证人员向项目管理者提交产品审计报告。A5:质量保证人员将产品审计报告入库。:质量保证人员将产品审计报告入库。输输 出出O1:产品审计报告:产品审计报告完成标志完成标志F1:产品审计报告入库:产品审计报告入库软件项目管理73733.美国美国CMU SEI 推荐的软件质量保证活动推荐的软件质量保证活动(1)为项目制定为项目制定SQA计划计划 该计划规定了软件开发小组和质量保证小组需该计划规定了软件开发小组和质量保证小组需要执行的质量保证活动。要执行的质量保证活动。SQA计划的要点包括:计划的要点包括:需要进行哪些评价?需要进行哪些评价?需要进行哪些审计和评审?需要进行哪些审计和评审?项

80、目采用的标准;项目采用的标准;错误报告的要求和跟踪过程;错误报告的要求和跟踪过程;SQA小组应产生哪些文档?小组应产生哪些文档?向软件项目组提供的反馈数量等。向软件项目组提供的反馈数量等。软件项目管理7474(2)参与开发该软件项目的软件过程描述参与开发该软件项目的软件过程描述软件开发小组为开发活动选择软件过程,软件开发小组为开发活动选择软件过程,SQA小组评审过程说明,确保该过程与组织政策、小组评审过程说明,确保该过程与组织政策、内部、外界标准及软件项目计划的其他部分相内部、外界标准及软件项目计划的其他部分相符。符。(3)评审各项软件工程活动评审各项软件工程活动评审各项软件工程活动,核实其是

81、否符合已定评审各项软件工程活动,核实其是否符合已定义的软件过程。为此,义的软件过程。为此,SQA小组必须识别、记小组必须识别、记录和跟踪所有偏离过程的偏差,核实其是否已录和跟踪所有偏离过程的偏差,核实其是否已经改正。经改正。(4)审计指定的软件工作产品审计指定的软件工作产品审计指定的软件工作产品,核实其是否符合已审计指定的软件工作产品,核实其是否符合已软件项目管理7575定义的软件过程中的相应部分。定义的软件过程中的相应部分。(5)记记录软件工作及软件工作产品的偏差录软件工作及软件工作产品的偏差 确保软件工作及工作产品中的偏差已被记录在确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程

82、进行处理。案,并根据预定规程进行处理。 (6)跟踪问题的解决跟踪问题的解决 记录所有不符合部分,向管理部门报告。跟踪记录所有不符合部分,向管理部门报告。跟踪不符合的部分直到问题得到解决。不符合的部分直到问题得到解决。(7)协调变更的控制与管理。协调变更的控制与管理。(8)帮助收集和分析软件度量的信息。帮助收集和分析软件度量的信息。软件项目管理76767.4.37.4.3 质量保证的结果质量保证的结果质量保证的结果就是一个:质量提高。质量提高包质量保证的结果就是一个:质量提高。质量提高包括采取措施提高项目的效力和效能,为项目干系人括采取措施提高项目的效力和效能,为项目干系人提供更多的利益。提供更

83、多的利益。在多数情况下,为提高质量必须做好变更需求或采在多数情况下,为提高质量必须做好变更需求或采取纠正措施的准备,并按照整体变更控制的规程进取纠正措施的准备,并按照整体变更控制的规程进行。行。软件项目管理77777.57.5 项目质量控制项目质量控制项目质量控制就是项目管理人员项目质量控制就是项目管理人员采取有效措施监采取有效措施监督项目的具体实施结果督项目的具体实施结果,判断它们是否符合有关判断它们是否符合有关的项目质量标准的项目质量标准,并,并确定消除产生不良结果的原确定消除产生不良结果的原因的方法因的方法。项目质量控制活动一般包括:项目质量控制活动一般包括:(1)保证由内部或外部机构进

84、行监测管理的一致性。保证由内部或外部机构进行监测管理的一致性。(2)发现与质量标准之间的差异。发现与质量标准之间的差异。(3)消除产品或服务处理中性能不能满足的因素。消除产品或服务处理中性能不能满足的因素。(4)审查质量标准以决定可以达到的目标。审查质量标准以决定可以达到的目标。软件项目管理7878(5)需要时修订项目的质量标准或项目的具体目标。需要时修订项目的质量标准或项目的具体目标。项目具体结果包括:项目具体结果包括:(1)项目的最终产品(可交付成果)或服务。项目的最终产品(可交付成果)或服务。(2)项目过程的中间结果。项目过程的中间结果。项目产品的质量控制由项目产品的质量控制由质量控制的

85、职能部门质量控制的职能部门负责,负责,而项目中间产品的质量则由而项目中间产品的质量则由项目管理组织的成员项目管理组织的成员进进行控制。行控制。质量控制过程还可能包括质量控制过程还可能包括详细的活动详细的活动和和资源计划资源计划。项目的质量控制工作是一个系统工程,应从项目的项目的质量控制工作是一个系统工程,应从项目的全过程入手,全面、综合地进行控制。全过程入手,全面、综合地进行控制。软件项目管理7979项目的质量控制工作有两个方面。项目的质量控制工作有两个方面。(1)项目产品或服务的质量控制项目产品或服务的质量控制项目产品或服务的质量控制是项目产品或服务的质量控制是一个诊断和治疗一个诊断和治疗的

86、过程的过程。当产品生产出来后要检查产品的规格。当产品生产出来后要检查产品的规格是否符合需求的标准。产品的质量控制活动包是否符合需求的标准。产品的质量控制活动包括括验证和确认(验证和确认(V&V)、测试测试、记录记录和和分析分析。(2)项目管理过程的质量控制项目管理过程的质量控制项目管理过程的质量过程通过项目审核来进行。项目管理过程的质量过程通过项目审核来进行。项目审核通过比较管理过程的作业与成功实践项目审核通过比较管理过程的作业与成功实践的标准进行详细的检查。的标准进行详细的检查。在软件开发项目情形,管理过程的质量控制就在软件开发项目情形,管理过程的质量控制就是开发过程的质量控制。是开发过程的

87、质量控制。软件项目管理8080项目审核人员在软件开发过程的项目审核人员在软件开发过程的各开发阶段的检查各开发阶段的检查点上对该阶段的工作成果进行评审点上对该阶段的工作成果进行评审,以确定是否达,以确定是否达到该阶段的项目质量要求。如果达到预定的目标,到该阶段的项目质量要求。如果达到预定的目标,则项目可进入下一个阶段。下图是针对设计的评审则项目可进入下一个阶段。下图是针对设计的评审流程。流程。每个具体的里程碑与软件开发组某一具体的角色相每个具体的里程碑与软件开发组某一具体的角色相关联关联,不同的角色属于不同的业务部门,而人员的,不同的角色属于不同的业务部门,而人员的业绩评估与管理归属于各自的业务

88、部门。业绩评估与管理归属于各自的业务部门。因此,因此,基于里程碑的软件质量控制必然会演变成对基于里程碑的软件质量控制必然会演变成对角色的质量控制角色的质量控制,这样才能真正达到对软件的质量,这样才能真正达到对软件的质量控制。控制。软件项目管理8282基于角色的质量控制系统基于角色的质量控制系统研发部经理研发部经理研发部规范研发部规范研发人员研发人员功能规格说明功能规格说明设设 计计编编 码码集集 成成测试组经理测试组经理测试组规范测试组规范测试人员测试人员测试计划测试计划测试用例测试用例测试执行测试执行测试报告测试报告产品部经理产品部经理产品部规范产品部规范产品管理人员产品管理人员在线帮助在线

89、帮助安装手册安装手册使用手册使用手册软件生产软件生产开发项目组开发项目组人员构成人员构成主要任务主要任务控制标准控制标准归属部门归属部门软件项目管理84847.5.17.5.1 质量控制的依据质量控制的依据质量控制是检测特定的项目结果,确定这些项目结质量控制是检测特定的项目结果,确定这些项目结果是否满足相关的项目质量标准,并找出解决问题果是否满足相关的项目质量标准,并找出解决问题的方法。的方法。在实施质量控制之前,质量控制人员必须知道实施在实施质量控制之前,质量控制人员必须知道实施质量控制的依据。质量控制的依据。1.项目工作结果项目工作结果项目工作结果包括项目工作结果包括项目产品结果项目产品结

90、果和和项目管理结果项目管理结果,是实施质量控制的对象。因此,在做质量控制之前是实施质量控制的对象。因此,在做质量控制之前要得到工作结果,对它们进行检测,判断是否满足要得到工作结果,对它们进行检测,判断是否满足项目相关的质量标准。项目相关的质量标准。软件项目管理8585如果不能满足相关的质量标准,要根据结果找出不如果不能满足相关的质量标准,要根据结果找出不能满足的原因,找出解决的办法。能满足的原因,找出解决的办法。2.质量管理计划质量管理计划质量管理计划是整个质量管理的计划文档,它描述质量管理计划是整个质量管理的计划文档,它描述了了项目质量系统项目质量系统,包括组织结构、职责、规程、过,包括组织

91、结构、职责、规程、过程和用于质量管理的资源。质量管理计划贯穿于整程和用于质量管理的资源。质量管理计划贯穿于整个项目生存期,用于指导质量保证和质量控制。个项目生存期,用于指导质量保证和质量控制。3.操作定义和检测列表操作定义和检测列表操作定义是用专业化的术语描述各种操作规程的含操作定义是用专业化的术语描述各种操作规程的含义,以及如何通过质量控制规程对它们进行检测。义,以及如何通过质量控制规程对它们进行检测。检测列表则用于检测需要执行的一系列步骤是否得检测列表则用于检测需要执行的一系列步骤是否得到贯彻执行。到贯彻执行。软件项目管理86867.5.27.5.2 质量控制的方法质量控制的方法质量控制通

92、常包括:监控指定的项目工作成果,判质量控制通常包括:监控指定的项目工作成果,判断它们是否符合有关的质量标准,并探寻导致项目断它们是否符合有关的质量标准,并探寻导致项目工作成果不能令人满意的原因,找出消除这些原因工作成果不能令人满意的原因,找出消除这些原因的方法。的方法。质量控制应贯穿于项目执行的全过程。质量控制应贯穿于项目执行的全过程。软件项目质量控制的主要活动是技术评审,通过在软件项目质量控制的主要活动是技术评审,通过在软件生存期的各个阶段执行验证和确认工作来消除软件生存期的各个阶段执行验证和确认工作来消除缺陷,保证软件产品和过程的质量。缺陷,保证软件产品和过程的质量。由于人的认识不可能百分

93、之百地符合客观实际,因由于人的认识不可能百分之百地符合客观实际,因此生存期每个阶段的工作中都可能出错。此生存期每个阶段的工作中都可能出错。软件项目管理8787由于前一阶段的成果是后一阶段工作的基础,前由于前一阶段的成果是后一阶段工作的基础,前一阶段的错误自然会导致后一阶段的工作中有相一阶段的错误自然会导致后一阶段的工作中有相应的错误,而且错误会逐渐累积,越来越多。应的错误,而且错误会逐渐累积,越来越多。此外,及时进行评审不仅有利于软件质量的提高,此外,及时进行评审不仅有利于软件质量的提高,还能进一步提高工程师的工作效率。还能进一步提高工程师的工作效率。v对于开发工程师,可以减少修订缺陷的时间,

94、对于开发工程师,可以减少修订缺陷的时间,提高编程效率;减少测试和调试时间。提高编程效率;减少测试和调试时间。v对于测试工程师,可以将更多的精力放到测对于测试工程师,可以将更多的精力放到测试用例设计上,以进一步提高测试效率。试用例设计上,以进一步提高测试效率。v对于维护人员,可以减少维护工作量,增强对于维护人员,可以减少维护工作量,增强产品的可维护性。产品的可维护性。 软件项目管理8888技术评审是对技术评审是对产品产品以及以及各阶段的输出内容各阶段的输出内容进行评估。进行评估。技术评审的目的是技术评审的目的是揭示软件在逻辑、执行以及功能揭示软件在逻辑、执行以及功能和编码上的错误和编码上的错误;

95、验证软件是否符合需求验证软件是否符合需求;确保软确保软件的一致性件的一致性。技术评审后,需要以书面的形式对评审结果进行总技术评审后,需要以书面的形式对评审结果进行总结。技术评审会分为正式和非正式两种,通常有技结。技术评审会分为正式和非正式两种,通常有技术负责人或技术骨干制定详细的评审计划,包括评术负责人或技术骨干制定详细的评审计划,包括评审时间、地点以及定义所需的输入文件。审时间、地点以及定义所需的输入文件。在完成技术评审的过程中,不仅需要关注上述的评在完成技术评审的过程中,不仅需要关注上述的评审目标,还需要注意技术的共享和延续性。审目标,还需要注意技术的共享和延续性。技术评审的对象包括系统开

96、发规程、需求说明书、技术评审的对象包括系统开发规程、需求说明书、设计说明书、测试计划、用户手册、安装规程、产设计说明书、测试计划、用户手册、安装规程、产软件项目管理8989品发布说明、维护手册等。品发布说明、维护手册等。在评审过程中,评审小组会议按照评审检查表对需在评审过程中,评审小组会议按照评审检查表对需要评审的内容逐项进行检查,确定每个项目的状态,要评审的内容逐项进行检查,确定每个项目的状态,检查项目的状态可以分为合格、不合格、待定、不检查项目的状态可以分为合格、不合格、待定、不适用几个等级。适用几个等级。评审结束后,评审小组需要列出存在问题,建议措评审结束后,评审小组需要列出存在问题,建

97、议措施,责任人等,并完成最终的评审报告。施,责任人等,并完成最终的评审报告。技术评审报告需要提供如下的内容:技术评审报告需要提供如下的内容:会议的基本信会议的基本信息息;存在的问题和建议措施存在的问题和建议措施;评审结论和意见评审结论和意见;问问题跟踪表格题跟踪表格;技术评审问答记录技术评审问答记录(通常作为附录出(通常作为附录出现在报告中)。现在报告中)。软件项目管理9090n评审检查的项目包括评审检查的项目包括(1)软件需求评审软件需求评审 确保规格说明中规定的各种确保规格说明中规定的各种需求的合适性需求的合适性(2)概要设计评审概要设计评审 评价总体结构、外部接口、评价总体结构、外部接口

98、、主要部件功能分配、全局数据结构以及各主主要部件功能分配、全局数据结构以及各主要部件间接口的合适性要部件间接口的合适性(3)详细设计评审详细设计评审 确认详细设计在功能、算法、确认详细设计在功能、算法、过程描述等方面的合适性过程描述等方面的合适性(4)软件验证和确认评审软件验证和确认评审 评价软件验证和确认评价软件验证和确认计划中规定的验证和确认方法的合适性和完计划中规定的验证和确认方法的合适性和完整性整性软件项目管理9191(5)功能检查功能检查 软件发行前要检查所有功能是否与软件发行前要检查所有功能是否与需求规格说明中的规定相符需求规格说明中的规定相符(6)物理检查物理检查 验收前检查程序

99、与文档是否一致,验收前检查程序与文档是否一致,是否已做好交付的准备是否已做好交付的准备(7)综合检查综合检查 软件验收时,用户委托专家进行设软件验收时,用户委托专家进行设计抽样检查。检查计抽样检查。检查v代码与设计文档的一致性代码与设计文档的一致性v(硬件和软件硬件和软件) 接口说明间的一致性接口说明间的一致性v设计与功能需求的一致性设计与功能需求的一致性v功能需求与测试描述的一致性功能需求与测试描述的一致性n评审的方法和技术包括:评审的方法和技术包括: 软件项目管理92921.临时评审临时评审一位程序员临时请另一位程序员花几分钟帮他查找一位程序员临时请另一位程序员花几分钟帮他查找一个缺陷即属

100、于临时评审。这是最不正式的一种评一个缺陷即属于临时评审。这是最不正式的一种评审,但在软件小组合作中却十分自然。它能快速获审,但在软件小组合作中却十分自然。它能快速获取别人的意见或帮助,其他人往往能够发现开发者取别人的意见或帮助,其他人往往能够发现开发者本人不易发现的错误。本人不易发现的错误。2.桌面检查或轮查桌面检查或轮查最不正式的最不正式的最正式的最正式的临时临时 桌面桌面检查检查 结对结对 走查走查 小组小组 审查审查评审评审 或轮查或轮查 评审评审 评审评审软件项目管理9393又称为分配审查方法。是一种由多人组成的并行的又称为分配审查方法。是一种由多人组成的并行的同行桌面检查。与只有一个

101、人进行桌面检查不同,同行桌面检查。与只有一个人进行桌面检查不同,作者将需要评审的内容发送给几位评审员,并收集作者将需要评审的内容发送给几位评审员,并收集整理他们的反馈意见。整理他们的反馈意见。这种评审方法适合于由于地理位置或时间限制而无这种评审方法适合于由于地理位置或时间限制而无法面对面开会的情况。法面对面开会的情况。3.结对评审结对评审又称为同行桌面检查或伙伴检查。这种评审是除作又称为同行桌面检查或伙伴检查。这种评审是除作者外,再请一位评审员对工作产品进行桌面检查。者外,再请一位评审员对工作产品进行桌面检查。如果评审员使用了缺陷检查表、专门的分析方法和如果评审员使用了缺陷检查表、专门的分析方

102、法和为小组评审度量采集所用的标准表格,那么这种评为小组评审度量采集所用的标准表格,那么这种评审就是相当正式的。审就是相当正式的。软件项目管理9494在评审完成时,评审员把缺陷表交给作者,或者两在评审完成时,评审员把缺陷表交给作者,或者两个人一起坐下来共同准备缺陷表。评审员也可以简个人一起坐下来共同准备缺陷表。评审员也可以简单地把做过标记的工作产品交给作者。单地把做过标记的工作产品交给作者。 结对评审是最便宜的同行评审方法。寻找一位足够结对评审是最便宜的同行评审方法。寻找一位足够专业且值得信赖的人,相互交换工作产品来进行同专业且值得信赖的人,相互交换工作产品来进行同行桌面检查,除了能保证编程的质

103、量外,也是一种行桌面检查,除了能保证编程的质量外,也是一种好的训练方法,使评审活动有效完成。好的训练方法,使评审活动有效完成。4.走查走查走查是一种非正式的评审,在软件项目中被广泛使走查是一种非正式的评审,在软件项目中被广泛使用。走查的方法有两种。用。走查的方法有两种。(1)使用一批样品数据作为测试用例,一步步地执使用一批样品数据作为测试用例,一步步地执行模块,几位参与评审的同事一起检查以确保行模块,几位参与评审的同事一起检查以确保软件项目管理9595正确的逻辑和行为。正确的逻辑和行为。(2)一种走查是按照脚本执行,通过脚本描述一个一种走查是按照脚本执行,通过脚本描述一个具体的任务或场景,用以

104、说明系统如何在交互具体的任务或场景,用以说明系统如何在交互中完成预定的功能。中完成预定的功能。在走查中,作者占有主导地位,由作者描述产品的在走查中,作者占有主导地位,由作者描述产品的功能和结构以及完成任务情况等。走查的目的是希功能和结构以及完成任务情况等。走查的目的是希望参与评审的其他同事可以发现产品中的错误,了望参与评审的其他同事可以发现产品中的错误,了解产品,并对模块的功能和实现等达成一致意见。解产品,并对模块的功能和实现等达成一致意见。5.小组评审小组评审小组评审简称为评审,是一种小组评审简称为评审,是一种“轻型轻型”的审查。的审查。它是有计划的和结构化的,非常接近于最正式的它是有计划的

105、和结构化的,非常接近于最正式的软件项目管理9696评审技术。小组评审允许由一组有资格的人来判断评审技术。小组评审允许由一组有资格的人来判断产品是否合用,并找出该产品没能达到规格说明和产品是否合用,并找出该产品没能达到规格说明和规范要求的方面。规范要求的方面。小组评审比结对评审开销要大,但不同的评审者能小组评审比结对评审开销要大,但不同的评审者能发现不同的问题。发现不同的问题。小组评审适用于不需要严格审查过程的工作产品。小组评审适用于不需要严格审查过程的工作产品。由于没有正式审查严格,小组评审可以节省出一些由于没有正式审查严格,小组评审可以节省出一些会议时间来讨论解决问题的思路,并使评审者对技会

106、议时间来讨论解决问题的思路,并使评审者对技术方法达到共识。术方法达到共识。6.正式审查正式审查正式审查是由评审者,而不是工作产品的作者来主正式审查是由评审者,而不是工作产品的作者来主导评审会议,他们向评审小组成员介绍要评审导评审会议,他们向评审小组成员介绍要评审软件项目管理9797的工作产品,并记录下评审小组提出的问题。的工作产品,并记录下评审小组提出的问题。正式审查的主要活动是:正式审查的主要活动是:v通过审查验证产品是否满足功能规格说明、质通过审查验证产品是否满足功能规格说明、质量特性以及用户需求,并识别偏差;量特性以及用户需求,并识别偏差;v通过审查验证产品是否符合相关标准、规范、通过审

107、查验证产品是否符合相关标准、规范、规则、计划和过程,并识别偏差;规则、计划和过程,并识别偏差;v提供缺陷和审查工作量的度量,以改进审查过提供缺陷和审查工作量的度量,以改进审查过程和组织的软件工程过程。程和组织的软件工程过程。用于质量控制的其他方法包括:用于质量控制的其他方法包括:(1)统计抽样统计抽样统计抽样统计抽样选取收益总体的一部分进行检查选取收益总体的一部分进行检查。例如,。例如,软件项目管理9898从从 75 个模块中随机抽取个模块中随机抽取 10 个模块。适当的采个模块。适当的采样能够降低质量控制的成本。样能够降低质量控制的成本。有关统计抽样,有一套完整的知识体系。项目有关统计抽样,

108、有一套完整的知识体系。项目管理人员应熟悉自己应用领域的一些统计抽样管理人员应熟悉自己应用领域的一些统计抽样技术。技术。(2)检查表检查表检查表用于检查表用于检查和核对一系列必须采取的步骤检查和核对一系列必须采取的步骤是否已经实施是否已经实施,其具体内容因行业而异。,其具体内容因行业而异。检查表也被称为提问单,其语言表达形式可以检查表也被称为提问单,其语言表达形式可以是命令口吻,如是命令口吻,如 “为调试在程序中设置开关为调试在程序中设置开关”,也可以是询问口吻,如,也可以是询问口吻,如“为调试是否在程为调试是否在程序中设置了开关?序中设置了开关?”软件项目管理1081087.5.37.5.3

109、质量控制的结果质量控制的结果1.接受决策接受决策决定决定作为项目的一部分的产品或服务是否被接受作为项目的一部分的产品或服务是否被接受。如果项目干系人拒绝接受则一定要返工。如果项目干系人拒绝接受则一定要返工。2.返工返工采取措施,使拒收事项达到或满足产品相关的质量采取措施,使拒收事项达到或满足产品相关的质量要求、规范或相关人员的其他期望。要求、规范或相关人员的其他期望。返工特别是没返工特别是没有预见的返工,一般会造成项目在进度上的延迟或有预见的返工,一般会造成项目在进度上的延迟或成本上的增加。项目管理者应尽量做好质量计划编成本上的增加。项目管理者应尽量做好质量计划编制和质量保证,使返工达到最少。

110、制和质量保证,使返工达到最少。软件项目管理1091093.过程调整过程调整在质量控制度量的基础上,纠正或防止质量问题在质量控制度量的基础上,纠正或防止质量问题的发生。必要时要按照整体项目控制管理的过程的发生。必要时要按照整体项目控制管理的过程来完成过程调整或对项目计划进行调整。来完成过程调整或对项目计划进行调整。n软件质量改进是软件质量控制的一个重要的延伸软件质量改进是软件质量控制的一个重要的延伸环节。一旦通过产品的质量评审发现缺陷,就需环节。一旦通过产品的质量评审发现缺陷,就需要进一步查找造成失误的原因,总结经验教训,要进一步查找造成失误的原因,总结经验教训,改正缺陷,并预防新的故障。改正缺

111、陷,并预防新的故障。n通常,审计、评审和测试是为了查出问题,但它通常,审计、评审和测试是为了查出问题,但它们不负责解决问题,解决问题要靠质量改进。们不负责解决问题,解决问题要靠质量改进。7.5.4 7.5.4 软件质量改进的建议软件质量改进的建议软件项目管理110110为了更好地进行质量改进,有几点建议:为了更好地进行质量改进,有几点建议:(1)软件质量活动必须经过规划;软件质量活动必须经过规划;(2)软件质量活动计划必须明文规定;软件质量活动计划必须明文规定;(3)软件活动必须尽早开始;软件活动必须尽早开始;(4)质量小组尽可能独立存在;质量小组尽可能独立存在;(5)质量小组的成员必须经过培

112、训。质量小组的成员必须经过培训。软件质量管理必须与项目管理的其他知识领域的过软件质量管理必须与项目管理的其他知识领域的过程保持协调。例如,为尽可能满足客户要求而要求程保持协调。例如,为尽可能满足客户要求而要求开发组成员加班,可能导致跳槽的小组成员不断增开发组成员加班,可能导致跳槽的小组成员不断增加;又例如,为保证进度不致延误而加快质量评审加;又例如,为保证进度不致延误而加快质量评审活动或干脆省去质量评审活动,可能导致某些严重活动或干脆省去质量评审活动,可能导致某些严重错误遗留到客户那里。所以必须考虑其影响。错误遗留到客户那里。所以必须考虑其影响。软件项目管理1111117.67.6 质量保证体

113、系质量保证体系软件的质量保证活动,是涉及各个部门的部门间的软件的质量保证活动,是涉及各个部门的部门间的活动。活动。为顺利开展质量保证活动,必须事先明确部门间的为顺利开展质量保证活动,必须事先明确部门间的质量保证业务,确立部门间的联合与协作的机构,质量保证业务,确立部门间的联合与协作的机构,这个机构就是质量保证体系。这个机构就是质量保证体系。部门间的质量保证业务包括部门间的质量保证业务包括:(1)必须明确反馈途径。必须明确反馈途径。(2)必须明确各部门的职责。必须明确各部门的职责。(3)必须确定保证系统运行的方法、工具、有关文必须确定保证系统运行的方法、工具、有关文档,以及系统管理的规程和标准。

114、档,以及系统管理的规程和标准。软件项目管理112112(4)规定在每次评审和测试中发现的错误如何修正;规定在每次评审和测试中发现的错误如何修正;(5)描述希望得到的质量度量;描述希望得到的质量度量;(6)说明各种软件人员的职责,规定为了达到质量说明各种软件人员的职责,规定为了达到质量目标他们必须进行哪些活动;目标他们必须进行哪些活动;(7)建立在各阶段中执行质量评价的质量评价和质建立在各阶段中执行质量评价的质量评价和质量检查系统;有效运用质量信息的质量信息系量检查系统;有效运用质量信息的质量信息系统,并使其运行。统,并使其运行。软件项目管理1131137.6.17.6.1 软件质量体系软件质量

115、体系ISO 8402- -1994 定义质量体系定义质量体系为为“为了实施质量管理为了实施质量管理的组织结构、职责、规程、过程和资源的组织结构、职责、规程、过程和资源”的一种特的一种特定的体系定的体系。它所包含的内容仅仅需要满足实现质量。它所包含的内容仅仅需要满足实现质量的要求。的要求。一个质量体系的要素可以分为两大类:一是一个质量体系的要素可以分为两大类:一是质量体质量体系的构成要素系的构成要素,二是,二是质量体系的选择要素质量体系的选择要素。质量体系构成要素由质量体系构成要素由组织结构组织结构、职责和权限职责和权限、资源资源和人员和人员、工作规程工作规程、技术状态管理技术状态管理组成。组成

116、。质量体系选择要素涉及质量体系选择要素涉及产品生存期的全部阶段产品生存期的全部阶段,从,从最初需求识别到最终满足需要的所有过程的质量最初需求识别到最终满足需要的所有过程的质量软件项目管理114114质量管理活动,包括质量管理活动,包括需求识别质量需求识别质量、规范和设计质规范和设计质量量、采购质量采购质量、过程质量过程质量、产品检验产品检验、测试测试、纠正纠正措施措施等。等。ISO 9000 是是 1987 年由国际标准化组织年由国际标准化组织 ISO 公布的公布的有关质量保证的系列国际标准。有关质量保证的系列国际标准。现在,世界上绝大多数国家在不同程度上都采用了现在,世界上绝大多数国家在不同

117、程度上都采用了该系列标准。该系列标准。ISO 系列标准是一个家族,由系列标准是一个家族,由 5 部分组成:部分组成:(1)质量术语标准;质量术语标准;(2)质量保证标准;质量保证标准;7.6.2 ISO 90007.6.2 ISO 9000质量体系质量体系软件项目管理115115(3)质量管理标准;质量管理标准;(4)质量管理和质量保证标准的选用和实施指南;质量管理和质量保证标准的选用和实施指南;(5)支持性技术标准。支持性技术标准。1.质量术语标准质量术语标准质量术语标准是对质量管理领域中常用的质量术语质量术语标准是对质量管理领域中常用的质量术语进行规范和定义。常用的质量术语包括:进行规范和

118、定义。常用的质量术语包括:v基本术语基本术语(13个);个);v与质量有关的术语与质量有关的术语(19个);个);v与质量体系有关的术语与质量体系有关的术语(16个);个);v工具和技术相关的术语工具和技术相关的术语(19个)。个)。软件项目管理116116质量质量保证保证标准标准ISO 9001 设计、开发、生产设计、开发、生产 和服务和服务ISO 9002 生产、安装和服务生产、安装和服务ISO 9003 最终检验和试验最终检验和试验标准标准选用选用和和实施实施指南指南ISO 9000-1 选择和使用指南选择和使用指南ISO 9000-2 是是ISO 9001- -ISO 9003实施通用

119、指实施通用指 南南ISO 9000-3 计算机软件中的计算机软件中的 实施指南实施指南ISO 9000-4 可信性大纲指南可信性大纲指南质量质量管理管理标准标准ISO 9004-1 指南指南ISO 9004-2 服务指南服务指南ISO 9004-3 流程性材料流程性材料ISO 9004-4 质量改进质量改进质量术语标准质量术语标准支持性标准支持性标准ISO 9000ISO 9000标标准系列框架准系列框架软件项目管理1181183.质量保证标准质量保证标准质量保证标准是质量保证标准是 ISO 9000 的核心内容,是质量体的核心内容,是质量体系认证的依据。此标准包括系认证的依据。此标准包括 3

120、 个模式:个模式:ISO 9001、ISO 9002 和和 ISO 9003。其中其中 ISO 9001 包括的内容包括的内容最多,认证费用最高,同时它包含了最多,认证费用最高,同时它包含了ISO 9002 和和 ISO 9003 的主要内容。的主要内容。(1)ISO 9001 质量体系质量体系是针对设计、开发、生产、安装和服务的质量是针对设计、开发、生产、安装和服务的质量保证模式,它由保证模式,它由 20 个要素组成:个要素组成:管理职责管理职责 (1) 质量体系质量体系 (2) 合同评审合同评审 (3) 软件项目管理119119设计控制设计控制 (4) 文件和资料控制文件和资料控制 (5)

121、 采购采购 (6) 顾客提供产品的控制顾客提供产品的控制 (7) 产品标识和可追溯性产品标识和可追溯性 (8) 过程控制过程控制 (9) 检验和试验检验和试验 (10) 检验、测量和实验设备的控制检验、测量和实验设备的控制 (11)检验和试验状态检验和试验状态 (12) 不合格品的控制不合格品的控制 (13)纠正和预防措施纠正和预防措施 (14)搬运、储存、包装、防护和交付搬运、储存、包装、防护和交付 (15) 软件项目管理120120质量记录质量记录 (16) 内部质量审核内部质量审核 (17) 培训培训 (18) 服务服务 (19) 统计技术统计技术 (20) (2)ISO 9002是生产

122、、安装和服务的质量保证模式。该标准是生产、安装和服务的质量保证模式。该标准包括包括 19 个要素,主要用于评估那些设计已定型个要素,主要用于评估那些设计已定型的产品以及设计规范的产品。它去除了的产品以及设计规范的产品。它去除了 ISO 9001 中的中的“设计控制设计控制”要素。要素。ISO 9003是最终检验和试验的质量保证模式。该标准包是最终检验和试验的质量保证模式。该标准包软件项目管理121121括括 16 个要素,它去除了个要素,它去除了 ISO 9001 中的中的“设计设计控制控制”、“采购采购”、“过程控制过程控制”、“服务服务”等等 4 个要素。个要素。v质量管理和质量保证标准的

123、选用和实施指南质量管理和质量保证标准的选用和实施指南vISO 9000- -1是选择和使用指南。它既是一个指导性文件,是选择和使用指南。它既是一个指导性文件,又是一个实施标准的路线图。其主要内容有:又是一个实施标准的路线图。其主要内容有:主要质量标准和质量职责主要质量标准和质量职责受益者及其期望受益者及其期望质量体系要求和产品要求的区分质量体系要求和产品要求的区分通用产品分类(硬件、软件、流程性材料、通用产品分类(硬件、软件、流程性材料、服务)服务) 软件项目管理122122若干方面的质量(包括产品需求、产品设计、若干方面的质量(包括产品需求、产品设计、制造、售后服务)制造、售后服务)过程的概

124、念过程的概念组织的过程网络组织的过程网络质量体系和过程网络的关系质量体系和过程网络的关系评价质量体系评价质量体系(2)ISO 9000- -2是是 ISO 9001、ISO 9002 和和 ISO 9003 的实施通的实施通用指南。它不是补充而是说明。即它不是对上用指南。它不是补充而是说明。即它不是对上述述 3 个模式进行补充和修改,而是对个模式进行补充和修改,而是对 3 个模式个模式逐条逐句地加以说明。逐条逐句地加以说明。软件项目管理123123(3)ISO 9000- -3是软件开发、供应和维护的指南。是软件开发、供应和维护的指南。鉴于软件产品的特殊性,鉴于软件产品的特殊性,ISO 特别制

125、定了特别制定了 ISO 9000- -3。该指南重视评价的结果。通过评估,该指南能该指南重视评价的结果。通过评估,该指南能表明被评估的软件产品能否通过表明被评估的软件产品能否通过 ISO 9000 系列系列的认证。但此指南仅仅能满足软件需求者的最的认证。但此指南仅仅能满足软件需求者的最低标准,需要补充有关过程控制和持续改进的低标准,需要补充有关过程控制和持续改进的内容。内容。(4)ISO 9000- -4是可信性大纲管理指南,主要适用于使用和维是可信性大纲管理指南,主要适用于使用和维修阶段,对可靠性、可维护性和可用性要求特修阶段,对可靠性、可维护性和可用性要求特软件项目管理124124别高的产

126、品。如通信、运输和信息服务。其中别高的产品。如通信、运输和信息服务。其中的可信性包括可靠性、可维护性和可用性。的可信性包括可靠性、可维护性和可用性。5.质量管理标准质量管理标准描述了有关实施质量标准的管理工作。描述了有关实施质量标准的管理工作。ISO 9004- -1 质量管理和质量体系要素的第质量管理和质量体系要素的第 1 部部分:通用性指南分:通用性指南ISO 9004- -2 质量管理和质量体系要素的第质量管理和质量体系要素的第 2 部部分:服务指南分:服务指南ISO 9004- -3 质量管理和质量体系要素的第质量管理和质量体系要素的第 3 部部分:流程性材料指南。流程性材料主要是指流

127、分:流程性材料指南。流程性材料主要是指流体、气体等特定形态的产品。体、气体等特定形态的产品。软件项目管理125125ISO 9004- -4 质量管理和质量体系要素的第质量管理和质量体系要素的第 4 部部分:质量改进指南分:质量改进指南ISO 9000:2000 版是版是 2000 年公布的,它将重点从年公布的,它将重点从“产品质量产品质量”转移到转移到“过程质量过程质量”。2000 版不再突出版不再突出强调质量保证,而将其提高到质量管理的水平。强调质量保证,而将其提高到质量管理的水平。修改后的修改后的 2000 版包括版包括 4 个核心标准、个核心标准、8 大原则和若大原则和若干技术报告。干

128、技术报告。7.6.3 ISO 9000 7.6.3 ISO 9000 质量体系的原则质量体系的原则软件项目管理1261264 个核心标准是:个核心标准是:vISO 9000 质量管理体系的基本原理和术语质量管理体系的基本原理和术语vISO 9001 质量管理体系的要求质量管理体系的要求vISO 9004 质量管理体系的业绩改进指南。引导质量管理体系的业绩改进指南。引导企业不断改进工作。企业不断改进工作。vISO 19011 质量环境审核指南质量环境审核指南质量管理质量管理 8 大原则是:大原则是:1.以顾客为中心以顾客为中心软件开发组织依存于它们的顾客。因此,组织软件开发组织依存于它们的顾客。

129、因此,组织应理解顾客当前的和未来的需求,满足顾客要应理解顾客当前的和未来的需求,满足顾客要求并争取超越顾客期望。求并争取超越顾客期望。软件项目管理1271272.领导作用领导作用领导必须统一本组织的宗旨、明确方向和建设领导必须统一本组织的宗旨、明确方向和建设良好的内部环境,并创造使员工能够充分参与良好的内部环境,并创造使员工能够充分参与实现本组织目标的活动、建立以质量为中心的实现本组织目标的活动、建立以质量为中心的环境。环境。3.全员参与全员参与各级人员是组织的根本。有他们的充分参与,各级人员是组织的根本。有他们的充分参与,才能使他们的才干为组织带来最大的收益。才能使他们的才干为组织带来最大的

130、收益。4.过程方法过程方法将相关的资源和活动作为过程进行管理,可以将相关的资源和活动作为过程进行管理,可以更高效地得到期望的结果。更高效地得到期望的结果。软件项目管理128128过程方法的原则不仅适用于某些简单的过程,过程方法的原则不仅适用于某些简单的过程,也适用于由许多过程构成的过程网络。也适用于由许多过程构成的过程网络。在应用于质量管理体系时,在应用于质量管理体系时,ISO 9000 2000 版建版建立了一个过程模式。此模式把立了一个过程模式。此模式把v管理职责管理职责v资源管理资源管理v产品实现产品实现v测量、分析与改进测量、分析与改进作为体系的四大主要过程,描述其相互关系,作为体系的

131、四大主要过程,描述其相互关系,并以顾客要求为输入,提供给顾客的产品为输并以顾客要求为输入,提供给顾客的产品为输出,通过信息反馈来测定的顾客满意度,评价出,通过信息反馈来测定的顾客满意度,评价质量管理体系的业绩。质量管理体系的业绩。软件项目管理1291295.管理的系统方法管理的系统方法针对设定的目标,识别、理解并管理一个由相针对设定的目标,识别、理解并管理一个由相互关联的过程所组成的体系,有助于提高组织互关联的过程所组成的体系,有助于提高组织的有效性和效率。的有效性和效率。6.持续改进持续改进通过管理评审、内外部审核以及纠正预防措通过管理评审、内外部审核以及纠正预防措施,持续地改进质量体系的可

132、用性。施,持续地改进质量体系的可用性。7.基于事实的决策方法基于事实的决策方法对数据和信息的逻辑分析或直觉判断是有效决对数据和信息的逻辑分析或直觉判断是有效决策的基础。策的基础。以事实为依据做决策,可防止决策失误。在对以事实为依据做决策,可防止决策失误。在对信息和资料做科学分析时,统计技术是最重要信息和资料做科学分析时,统计技术是最重要软件项目管理130130的工具之一。它可以用来测量、分析和说明产的工具之一。它可以用来测量、分析和说明产品和过程的变异性,为持续改进的决策提供依品和过程的变异性,为持续改进的决策提供依据。据。8.互利的供方关系互利的供方关系通过互利的关系,增强组织及其供方创造价

133、值通过互利的关系,增强组织及其供方创造价值的能力。供方提供的产品将对组织向顾客提供的能力。供方提供的产品将对组织向顾客提供满意的产品可能产生重要的影响,一次处理好满意的产品可能产生重要的影响,一次处理好与供方的关系,影响到组织能否持续稳定地提与供方的关系,影响到组织能否持续稳定地提供顾客满意地产品。供顾客满意地产品。对供方不能只讲控制,不讲合作互利。对供方不能只讲控制,不讲合作互利。特别对特别对关键供方,更要建立互利关系。这对组织和供关键供方,更要建立互利关系。这对组织和供方双方都是有利的。方双方都是有利的。软件项目管理1311317.77.7 CMMCMM的质量的质量过程过程CMM 对于过程

134、域的定义是对于过程域的定义是“一组彼此相关的活动,一组彼此相关的活动,这组活动执行后,使得过程可以达到某些目标,以这组活动执行后,使得过程可以达到某些目标,以证明其有这样的能力,满足用户有关的质量要求证明其有这样的能力,满足用户有关的质量要求”。因而,质量管理体系策划的第一步是识别和定义过因而,质量管理体系策划的第一步是识别和定义过程。程。软件组织的质量工程通常包含两种类型:软件组织的质量工程通常包含两种类型:软件工程软件工程过程过程和和组织支持过程组织支持过程。7.7.1 7.7.1 软件工程过程软件工程过程软件项目管理132132软件工程过程是软件生产的基本活动软件工程过程是软件生产的基本

135、活动,包括软件需,包括软件需求分析、软件设计、编码和单元测试、集成和系统求分析、软件设计、编码和单元测试、集成和系统测试、交付、安装和软件维护。测试、交付、安装和软件维护。将软件工程的基本活动按照一定的生存期模型组织将软件工程的基本活动按照一定的生存期模型组织起来,就构成软件的基本生产过程。起来,就构成软件的基本生产过程。一个组织的软件过程策划一般包括两个阶段:一个组织的软件过程策划一般包括两个阶段:组织组织标准生产过程的策划标准生产过程的策划和和项目产品策划项目产品策划。CMM 定义了定义了 3 个关键过程域来实现这两极策划:个关键过程域来实现这两极策划:1.组织过程定义组织过程定义识别和确

136、定组织的质量过程,将组织必须的和识别和确定组织的质量过程,将组织必须的和较成熟的软件过程、过程资源要求、过程规程较成熟的软件过程、过程资源要求、过程规程软件项目管理133133以及过程产品要求等通过文档化形成制度,并以及过程产品要求等通过文档化形成制度,并通过培训等贯彻到整个组织,以改进所有项目通过培训等贯彻到整个组织,以改进所有项目的过程性能。的过程性能。2.软件项目策划软件项目策划对应于对应于ISO 9001 的的产品策划产品策划。目的是为具体软。目的是为具体软件项目的开发、检查等活动制定合理的计划。件项目的开发、检查等活动制定合理的计划。软件项目策划本身就是质量策划的一个活动软件项目策划

137、本身就是质量策划的一个活动。项目策划的主要内容为确定项目开发的主要活项目策划的主要内容为确定项目开发的主要活动及活动之间的关系、制定项目的开发进度、动及活动之间的关系、制定项目的开发进度、配置合适的资源、设定合适的检查点和检查方配置合适的资源、设定合适的检查点和检查方式等。式等。软件项目管理1341343.软件产品工程软件产品工程产品工程的目的是协调一致地执行良好定义的产品工程的目的是协调一致地执行良好定义的工程过程,将软件工程活动组织成一个有机的工程过程,将软件工程活动组织成一个有机的整体,以生产出更好、更符合的软件产品。整体,以生产出更好、更符合的软件产品。软件产品工程描述了项目的技术活动

138、,如需求软件产品工程描述了项目的技术活动,如需求分析、设计、编码和测试。分析、设计、编码和测试。组织支持过程是软件组织为组织支持过程是软件组织为保证软件过程的实施和保证软件过程的实施和检查检查而建立的一组公共支持过程。而建立的一组公共支持过程。组织支持过程通常不属于软件生存期的活动,它组织支持过程通常不属于软件生存期的活动,它7.7.27.7.2 组织支持过程组织支持过程软件项目管理135135主要包括:主要包括:v管理过程管理过程:包括:包括评审、检查、文档管理、不合评审、检查、文档管理、不合格品管理、配置管理、内部质量审核和管理评格品管理、配置管理、内部质量审核和管理评审。审。v支持过程支

139、持过程:包括:包括合同评审、子合同管理、采购、合同评审、子合同管理、采购、培训、进货检验、设备检验、度量和服务。培训、进货检验、设备检验、度量和服务。在在 CMM 中也有对应的关键过程域。中也有对应的关键过程域。1.需求管理需求管理需求管理对应于需求管理对应于 ISO 9001:2000 的的合同评审合同评审,目的是保证客户要求得到一致的理解,并且软目的是保证客户要求得到一致的理解,并且软件组织有能力满足客户要求。当客户要求变更件组织有能力满足客户要求。当客户要求变更软件项目管理136136时,保证组织原来的和变化了的承诺都可以实时,保证组织原来的和变化了的承诺都可以实现,保证变更正确地传递到

140、组织各有关部门。现,保证变更正确地传递到组织各有关部门。2.软件子合同管理软件子合同管理子合同管理对应于子合同管理对应于 ISO 9001:2000 的的采购过程控采购过程控制制,其目的是选择合适的分包商,并对它们进,其目的是选择合适的分包商,并对它们进行有效的管理。行有效的管理。3.软件质量保证软件质量保证软件质量保证对应于软件质量保证对应于 ISO 9001:2000 的的设计评审设计评审、验证验证、确认确认、过程检验过程检验、产品检验产品检验。其目的是。其目的是通过对软件项目开发过程中适当的、可见的阶通过对软件项目开发过程中适当的、可见的阶段性成果和最终产品进行检查,实现对软件产段性成果

141、和最终产品进行检查,实现对软件产品的质量管理。品的质量管理。软件项目管理1371374.软件配置管理软件配置管理软件配置管理对应于软件配置管理对应于 ISO 9001:2000 的的文件控制文件控制和和产品标识产品标识,其目的是建立和维护软件项目产,其目的是建立和维护软件项目产品在其生存期中的完整性。品在其生存期中的完整性。5.培训计划培训计划培训计划目的是提高员工的技能和知识,使他培训计划目的是提高员工的技能和知识,使他们可以更有效、更好地完成任务。培训是软件们可以更有效、更好地完成任务。培训是软件组织主动地、有计划地安排的活动,但特定的组织主动地、有计划地安排的活动,但特定的软件项目应提出

142、具体的培训要求。软件项目应提出具体的培训要求。6.同行评审同行评审同行评审的目的是尽早地、有效地清除软件工同行评审的目的是尽早地、有效地清除软件工作产品的缺陷。同行评审可以使用软件产品工作产品的缺陷。同行评审可以使用软件产品工软件项目管理138138工程中所描述的技术活动之外的其他有效的工工程中所描述的技术活动之外的其他有效的工程方法,如程方法,如Fagan 风格的审查、结构化遍历及风格的审查、结构化遍历及其他许多评审方法。其他许多评审方法。这是这是 IBM 建立的一套正式和结构化的检查过程,建立的一套正式和结构化的检查过程,其要点为:其要点为:1.对所有主要的交付物都进行检查;对所有主要的交

143、付物都进行检查;2.所有的错误都需加以注意,而不仅是逻辑的和所有的错误都需加以注意,而不仅是逻辑的和功能的错误;功能的错误;3.检查可以由在所有层次的人员(除了最上层的检查可以由在所有层次的人员(除了最上层的人员外)进行检查;人员外)进行检查;7.7.3 Fagan 7.7.3 Fagan 检查检查软件项目管理1391391.检查采用预定义的步骤进行;检查采用预定义的步骤进行;2.检查会议不超过两小时;检查会议不超过两小时;3.检查由一个经过训练的检查由一个经过训练的“moderator”来领导;来领导;4.其他参与者也有定义的角色,例如一个人员担其他参与者也有定义的角色,例如一个人员担任记录

144、员,另一担任阅读者等;任记录员,另一担任阅读者等;5.采用检查表来帮助检查过程的实施;采用检查表来帮助检查过程的实施;6.检查材料时采用检查材料时采用 100 行一小时的速度;行一小时的速度;7.采用统计方法来对检查过程的有效性进行监控;采用统计方法来对检查过程的有效性进行监控;软件项目管理1401407.7.4 CMM 27.7.4 CMM 2级级 KPA SQA KPA SQA 介绍介绍CMM 2 级级SQA关键过程域包括关键过程域包括 4 个目标和个目标和 17 项项关键实践。关键实践。4 个目标分别是:个目标分别是:v目标目标1 软件质量保证活动是有计划的。软件质量保证活动是有计划的。

145、v目标目标2 软件产品和活动遵循适用的标准、规程软件产品和活动遵循适用的标准、规程和需求的情况得到客观的验证。和需求的情况得到客观的验证。v目标目标3 受影响的组和个人得到软件质量保证活受影响的组和个人得到软件质量保证活动和结果的通知。动和结果的通知。v目标目标4 高级管理者处理在软件项目内部不能解高级管理者处理在软件项目内部不能解决的不符合问题。决的不符合问题。仅当这仅当这 4 个目标都已经达到才能说已经满足关键个目标都已经达到才能说已经满足关键软件项目管理141141过程域过程域 SQA 的要求。的要求。这些目标的实现依赖于这些目标的实现依赖于 8 项活动的实施,并需要其项活动的实施,并需

146、要其他方面的关键实践来支持。他方面的关键实践来支持。8 项执行活动是:项执行活动是:AC1 按归档化规程为软件项目制定软件质量保证按归档化规程为软件项目制定软件质量保证计划(计划(SQAP)。该计划规定了软件项目组和质)。该计划规定了软件项目组和质量保证组需要执行的质量保证活动。量保证组需要执行的质量保证活动。AC2 按计划进行按计划进行 SQA 组的活动。软件项目管理人组的活动。软件项目管理人员为开发活动选择软件过程,员为开发活动选择软件过程,SQA 组评审过程组评审过程说明,确保该过程与组织政策、内部、外界标说明,确保该过程与组织政策、内部、外界标准及软件项目计划其他部分相符。准及软件项目

147、计划其他部分相符。软件项目管理142142AC3 参与制定软件开发计划、标准和规程。参与制定软件开发计划、标准和规程。AC4 评审各项软件工程活动。核实其是否符合已评审各项软件工程活动。核实其是否符合已定义的软件过程。为此,定义的软件过程。为此,SQA 小组必须识别、小组必须识别、记录和跟踪所有偏离过程的偏差,核实其是否记录和跟踪所有偏离过程的偏差,核实其是否已经改正。已经改正。AC5 审核指定的软件工作产品。核实其是否符合审核指定的软件工作产品。核实其是否符合已定义的软件过程中的相应部分。已定义的软件过程中的相应部分。AC6 定期向软件工程组报告其活动结果。定期向软件工程组报告其活动结果。A

148、C7 按归档化规程处理评审和审核中发现的偏差按归档化规程处理评审和审核中发现的偏差并建立文档。确保软件工作及工作产品中的偏并建立文档。确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。差已被记录在案,并根据预定规程进行处理。AC8 必要时必要时 SQA 组和顾客的组和顾客的 SQA 组一起评审自组一起评审自软件项目管理143143己的活动与发现。己的活动与发现。记录所有不符合部分,向管记录所有不符合部分,向管理部门报告。跟踪不符合的部分直到问题得到理部门报告。跟踪不符合的部分直到问题得到解决。解决。其他关键实践其他关键实践1.执行约定执行约定(1)组织应制定实施组织应制定实施

149、 SQA 的方针并要求项目遵守。的方针并要求项目遵守。对于全部项目,对于全部项目,SQA 功能到位;功能到位;SQA 有向高级管理者报告的渠道;有向高级管理者报告的渠道;高级管理者定期评审高级管理者定期评审 SQA 活动和结果。活动和结果。2.执行能力执行能力有有 4 个关键实践,说明为有效地实施个关键实践,说明为有效地实施 SQA 所必需所必需具备的保证条件。具备的保证条件。软件项目管理144144(1)存在负责协调和实施项目的存在负责协调和实施项目的 SQA 组。组。(2)为进行为进行 SQA 活动提供足够的资源和资金。活动提供足够的资源和资金。(3)对对 SQA 组的成员进行为完成组的成

150、员进行为完成 SQA 活动所必需活动所必需的培训。的培训。(4)对软件项目成员进行有关对软件项目成员进行有关 SQA 组的任务、职责、组的任务、职责、权利和价值等的定向培训。权利和价值等的定向培训。3.测量和分析测量和分析(1)必须测量必须测量 SQA 过程实施的状况,以便分析和确过程实施的状况,以便分析和确定定 SQA 活动的成本和进度状态。活动的成本和进度状态。SQA 活动里程碑完成情况与计划比较。活动里程碑完成情况与计划比较。SQA 所完成的工作、花费的工作量和消耗的所完成的工作、花费的工作量和消耗的资金与计划比较。资金与计划比较。软件项目管理145145产品审核和活动评审的次数与计划比

151、较。产品审核和活动评审的次数与计划比较。4.验证实施验证实施 有有 3 项关键实践,对项关键实践,对 SQA 活动进行不同层次的验活动进行不同层次的验证。证。(1)高级管理者定期参与评审高级管理者定期参与评审 SQA 活动。活动。(2)项目经理定期地,而且事件驱动地参与评审项目经理定期地,而且事件驱动地参与评审 SQA 的活动。的活动。(3)独立于独立于 SQA 组的专家定期评审项目组的专家定期评审项目 SQA 组的组的活动和软件工作产品。活动和软件工作产品。软件项目管理146146进入准则进入准则 方针明确方针明确 能力具备能力具备 项目已定义项目已定义 已有两项必要已有两项必要 规程规程按

152、按规程为项规程为项目制定目制定SQAP按计划进行按计划进行SQA活动活动参与准备和参与准备和评审软件开评审软件开发计划、标发计划、标准和规程准和规程评审软件工评审软件工程活动程活动审核指定的审核指定的工作产品工作产品定期向软件工程组报告结果定期向软件工程组报告结果按按规程处理偏差并建立文档规程处理偏差并建立文档与与顾客的顾客的SQA组一起定期评组一起定期评审自己审自己SQA的活动和发现的活动和发现输入输入输出输出退出准则退出准则 产品符合需求产品符合需求 数据记录完整数据记录完整 、受控、受控测测量量、分分析析和和验验证证实实施施软件质量保证软件质量保证活动概貌活动概貌软件项目管理147147

153、7.8 7.8 软件验证和确认技术软件验证和确认技术软件质量保证是一种通过采取组织、规程、方法软件质量保证是一种通过采取组织、规程、方法和资源等各种手段的保证,从而得到高质量软件和资源等各种手段的保证,从而得到高质量软件产品的过程;而软件质量控制则是直接对项目工产品的过程;而软件质量控制则是直接对项目工作结果的质量进行把关的过程。作结果的质量进行把关的过程。前者是为了保证产品质量,从整体上进行的监督前者是为了保证产品质量,从整体上进行的监督和指导,从而给内外部的人士以信心;而后者是和指导,从而给内外部的人士以信心;而后者是从具体环节上进行审查和反馈,促进产品质量的从具体环节上进行审查和反馈,促

154、进产品质量的不断改进。不断改进。为为了达到良好的效果,最好的选择是采用软件验了达到良好的效果,最好的选择是采用软件验证和确认技术。证和确认技术。软件项目管理148148nBohem给出一个经典的定义:给出一个经典的定义:验证(验证(Verification) :我们是否在:我们是否在正确地正确地建造建造一个产品(强调过程的正确性);一个产品(强调过程的正确性);确认(确认(Validation):我们是否在建成一个:我们是否在建成一个正确正确的的产品(强调产品的正确性)。产品(强调产品的正确性)。n就是说,验证是要检查软件生存期各个阶段过程活就是说,验证是要检查软件生存期各个阶段过程活动的结果

155、是否满足规格说明的描述,证实各阶段和动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认则阶段之间的逻辑协调性、完备性和正确性。确认则是想证实在一个给定的外部环境中软件的逻辑正确是想证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。性,即是否满足用户的要求。1.1. 什么是软件验证和确认什么是软件验证和确认软件项目管理149149用户要求用户要求用户:用户:我要什么?我要什么?需求说明书需求说明书分析员分析员我可以提供我可以提供什么?什么?运行结果运行结果计算机:计算机:程序运行得程序运行得到的结果到的结果相符吗?相符吗?源程序源程序程序员程序

156、员我要让计算我要让计算机怎么做?机怎么做?设计说明书设计说明书设计员设计员我要让软件我要让软件做什么?做什么?理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性软件项目管理150150验证和确认工作的目标验证和确认工作的目标n验证和确认工作的目标是要发现缺陷,并确定软件验证和确认工作的目标是要发现缺陷,并确定软件系统是否实现了需要的功能和质量特性。系统是否实现了需要的功能和质量特性。n验证和确认活动主要对软件开发的产品进行操作,验证和确认活动主要对软件开发的产品进行

157、操作,并支持以下内容:并支持以下内容:(1)验证生存期每个阶段的产品验证生存期每个阶段的产品遵循前一个生存期阶段的需求和产品(正确性、遵循前一个生存期阶段的需求和产品(正确性、完整性、连续性、准确性)完整性、连续性、准确性)满足阶段的标准、惯例和协定满足阶段的标准、惯例和协定建立适当基础以启动下一生存期阶段活动建立适当基础以启动下一生存期阶段活动(2)确认最终产品遵循了已建立的软件与系统的需确认最终产品遵循了已建立的软件与系统的需求求 软件项目管理151151软件验证和确认任务软件验证和确认任务n软件验证和确认任务相互支持并合成一个强有力的软件验证和确认任务相互支持并合成一个强有力的工具,它可

158、以完成以下工作:工具,它可以完成以下工作:(1)尽可能早地在软件生存期中发现错误尽可能早地在软件生存期中发现错误;(2)确保要求的软件质量被计划并在系统中被实现确保要求的软件质量被计划并在系统中被实现;(3)预测中间产品和最终产品满足用户需求的程度预测中间产品和最终产品满足用户需求的程度;(4)保证遵循标准要求保证遵循标准要求;(5)确定安全性和保密性功能确定安全性和保密性功能;(6)帮助避免在产品发布的最后时刻发现问题帮助避免在产品发布的最后时刻发现问题;(7)提供高可信度的软件可靠性提供高可信度的软件可靠性;(8)为管理提供决策的标准为管理提供决策的标准;软件项目管理152152(9)降低

159、操作变化的频率降低操作变化的频率;(10)评估验证和确认活动提出的修改建议的影响范围评估验证和确认活动提出的修改建议的影响范围和严重程度。和严重程度。n验证和确认任务的选取不仅要考虑验证和确认工作验证和确认任务的选取不仅要考虑验证和确认工作是如何直接服务于验证和确认目标的,而且要考虑是如何直接服务于验证和确认目标的,而且要考虑它们是如何服务于整个项目的。它们是如何服务于整个项目的。n验证和确认工作包括:验证和确认工作包括:(1)管理任务管理任务(如计划、组织和监控验证和确认工作)(如计划、组织和监控验证和确认工作)(2)技术任务技术任务(如分析、评估、审计和测试软件开发(如分析、评估、审计和测

160、试软件开发过程和产品)过程和产品)软件项目管理153153发布前发布前发布后发布后由于进度失控由于进度失控造成利润损失造成利润损失返工开销返工开销软件设计软件设计设计评审设计评审程序设计程序设计代码审查代码审查集成测试集成测试确认软件确认软件文档更新文档更新软件缺陷开销软件缺陷开销软件缺陷开销模型软件项目管理1541542. 2. 软件验证和确认计划软件验证和确认计划n软件验证和确认计划(软件验证和确认计划(Software Verification & Validation Plan, SVVP)和计划文档的目的在于)和计划文档的目的在于:(1)有效地利用验证和确认资源有效地利用验证和确认资

161、源(2)监督和控制验证和确认过程监督和控制验证和确认过程(3)确保每个参与者的角色和职责被标识确保每个参与者的角色和职责被标识n每个项目都要有它自己的验证和确认计划,具体的每个项目都要有它自己的验证和确认计划,具体的计划要能够适应项目的需要。计划要能够适应项目的需要。n制定验证和确认计划的过程如下:制定验证和确认计划的过程如下: (1)明确验证和确认的范围明确验证和确认的范围应该尽可能早地定义软件任务应该尽可能早地定义软件任务;软件项目管理155155根据任务需要确定采用的验证和确认方法。根据任务需要确定采用的验证和确认方法。 (2)从总的项目范围中确定特定的目标从总的项目范围中确定特定的目标

162、 规定类似负载极限和响应时间这样的可测量规定类似负载极限和响应时间这样的可测量的准则的准则;确定在验证和确认工作中相应的规程和工作确定在验证和确认工作中相应的规程和工作流流;尽可能早地暴露不明确和有分歧的地方。尽可能早地暴露不明确和有分歧的地方。(3)在选择验证确认工具、技术以及准备计划之前在选择验证确认工具、技术以及准备计划之前分析项目的输入分析项目的输入 在项目各阶段中对可以获得的具体产品、信在项目各阶段中对可以获得的具体产品、信息和文档进行输入分析。息和文档进行输入分析。软件项目管理156156输入可分为两种类型:输入可分为两种类型: a)项目刚开始时的产品和信息项目刚开始时的产品和信息

163、b)项目下一个开发阶段中将要用到的产品和项目下一个开发阶段中将要用到的产品和信息信息 (4)选择工具和技术选择工具和技术选择可用于项目的工具和技术(如那些支持选择可用于项目的工具和技术(如那些支持可跟踪分析的工具和技术),并收集足够的可跟踪分析的工具和技术),并收集足够的信息来为决策提供选择。信息来为决策提供选择。在技术方面,需要的信息包括需要的输入、在技术方面,需要的信息包括需要的输入、应用的范围、资源和需要的技能等。应用的范围、资源和需要的技能等。在工具方面,需要的信息包括工具和相关文在工具方面,需要的信息包括工具和相关文软件项目管理157157档档的可获得性、可应用性以及操作和培训所的可

164、获得性、可应用性以及操作和培训所涉及的资源需求等。涉及的资源需求等。(5)开发计划开发计划 分析上一步的结果并准备一套详细的任务以分析上一步的结果并准备一套详细的任务以便满足验证和确认的目的和约束。便满足验证和确认的目的和约束。n软件验证和确认整个过程包含了众多活动,这些软件验证和确认整个过程包含了众多活动,这些活动彼此关联,共同组成了一个跨越各生存期阶活动彼此关联,共同组成了一个跨越各生存期阶段的连续活动。这些活动使得验证工作得以更有段的连续活动。这些活动使得验证工作得以更有效地执行。效地执行。3. 3. 验证和确认任务分析验证和确认任务分析软件项目管理158158nSVVP 制定者应考虑在

165、生存期的整个过程中集成和制定者应考虑在生存期的整个过程中集成和分配资源,以便连续活动中的所有任务的计划和分配资源,以便连续活动中的所有任务的计划和执行能够有效地开展。执行能够有效地开展。 n验证与确认的主要活动有验证与确认的主要活动有关键性分析关键性分析、可跟踪性可跟踪性分析分析、评估评估、接口分析接口分析、测试测试等。等。n关键性分析是一种把验证和确认的关键性分析是一种把验证和确认的资源分配资源分配到软到软件中最重要部分的系统分析方法。件中最重要部分的系统分析方法。n关键性分析的目的是为了关键性分析的目的是为了保证资源的有效利用保证资源的有效利用,尤其在需求资源得不到满足时,有必要在整体上尤

166、其在需求资源得不到满足时,有必要在整体上分析整个系统的资源分配策略。分析整个系统的资源分配策略。(1 1)关键性分析关键性分析软件项目管理159159n关键性分析由关键性分析由 4 步组成:步组成:(1)为待为待开发的系统建立关键性级别开发的系统建立关键性级别在在IEEE标准中,使用软件集成级别方法来标准中,使用软件集成级别方法来对软件关键程度进行界定。对软件关键程度进行界定。 关关键程度程度描描 述述级别高高所所选择的功能将影响系的功能将影响系统关关键性能性能4重要重要所所选择的功能将影响系的功能将影响系统重要性能重要性能3中中所所选择的功能将影响系的功能将影响系统性能,但工作性能,但工作区

167、策略可以区策略可以对其其进行行补偿2低低所所选择的功能将影响系的功能将影响系统功能,但只是功能,但只是给用用户操作操作带来不便来不便1软件项目管理160160对于一个给定的系统,经常有几种不同类型的对于一个给定的系统,经常有几种不同类型的关键性。比如安全性、系统任务、金融风险、关键性。比如安全性、系统任务、金融风险、技术复杂性等,是常见的关键性类型。技术复杂性等,是常见的关键性类型。级别应该定义得清楚明白、无歧义,不同的分级别应该定义得清楚明白、无歧义,不同的分析员各自独立工作时可以得到相同的判断。析员各自独立工作时可以得到相同的判断。例如,关键性类型为安全性的系统的级别定义例如,关键性类型为

168、安全性的系统的级别定义 级别级别说说 明明高高如果系统失效的话会导致人员伤害、死亡、财产如果系统失效的话会导致人员伤害、死亡、财产损失等。损失等。中中系统失效会导致设备的损坏系统失效会导致设备的损坏低低系统失效不影响人员和财产系统失效不影响人员和财产软件项目管理161161为了计划验证和确认过程,软件集成级别在为了计划验证和确认过程,软件集成级别在开发早期就被分配,最好是在开发早期就被分配,最好是在系统需求分析系统需求分析和体系结构设计和体系结构设计时进行。软件集成级别可以时进行。软件集成级别可以分配到软件需求、功能、功能组或构件、子分配到软件需求、功能、功能组或构件、子系统中。系统中。 (2

169、)定义满足系统特征的需求定义满足系统特征的需求这一步必须是开发过程的一部分。这一步必须是开发过程的一部分。细节的实际关键性级别依赖于系统的复杂情细节的实际关键性级别依赖于系统的复杂情况。给每个定义好的需求加一个编号,并与况。给每个定义好的需求加一个编号,并与其在需求规格说明中的段落编号相对应。其在需求规格说明中的段落编号相对应。(3)针对每种关键性类型,为每个需求定义关键性级针对每种关键性类型,为每个需求定义关键性级别,再把多个级别合成简单的关键性级别。别,再把多个级别合成简单的关键性级别。软件项目管理162162(4)针对每个需求,使用关键性级别来决定验证和针对每个需求,使用关键性级别来决定

170、验证和确认方法适用于需求的强度级别。确认方法适用于需求的强度级别。 例如关键性级别比较高的需求,可以采用全例如关键性级别比较高的需求,可以采用全面的技术和专用的开发工具。关键性较低的面的技术和专用的开发工具。关键性较低的只需使用一般的分析,或者在资源严重受限只需使用一般的分析,或者在资源严重受限的情况下什么都不做。的情况下什么都不做。 n可跟踪性就是标识原始需求和它们的结果之间关系可跟踪性就是标识原始需求和它们的结果之间关系的能力。它容许一个系统的生存期中在由需求的的能力。它容许一个系统的生存期中在由需求的分解和细化所产生的惯性关系网络中正向(向前)分解和细化所产生的惯性关系网络中正向(向前)

171、和反向(向后)跟踪。和反向(向后)跟踪。(2 2)可跟踪性分析)可跟踪性分析软件项目管理163163n 进行可跟踪性分析的目的是保证:进行可跟踪性分析的目的是保证:(1)规格说明中的每项需要都被正确标识;规格说明中的每项需要都被正确标识;(2)从前一阶段到当前阶段的全部跟踪线索都是连从前一阶段到当前阶段的全部跟踪线索都是连续的;续的;(3)当前阶段与前后阶段之间跟踪是一致的;当前阶段与前后阶段之间跟踪是一致的;(4)从每个规格说明开始的正向跟踪完全支持规格从每个规格说明开始的正向跟踪完全支持规格说明;说明;(5)每个当前的规格说明或特性都完全被反向可跟每个当前的规格说明或特性都完全被反向可跟踪

172、的前驱规格说明所支持。踪的前驱规格说明所支持。n可跟踪性分析开始于从概念和需求规格说明推进可跟踪性分析开始于从概念和需求规格说明推进到下列活动时:到下列活动时:软件项目管理164164(1)概念和需求规格推进到设计规格;概念和需求规格推进到设计规格;(2)概念和需求规格在代码中实现;概念和需求规格在代码中实现;(3)概念和需求规格在测试计划和用例中包含;概念和需求规格在测试计划和用例中包含;(4)概念和需求规格在最后系统中提供给用户和消费概念和需求规格在最后系统中提供给用户和消费者。者。n借助于正向和反向跟踪,可以方便地构成高效的测借助于正向和反向跟踪,可以方便地构成高效的测试计划试计划,并允

173、许对覆盖了功能和设计需求特性变,并允许对覆盖了功能和设计需求特性变化的测试用例的实测结果进行验证。化的测试用例的实测结果进行验证。n当从所有软件需求跟踪到概念文档,再对系统需求当从所有软件需求跟踪到概念文档,再对系统需求进行验证时,就是可跟踪性分析,这包括从软件需进行验证时,就是可跟踪性分析,这包括从软件需求到整个开发的输出、用户文档、测试文档等。求到整个开发的输出、用户文档、测试文档等。软件项目管理165165每个跟踪按每个跟踪按一致性一致性、完整性完整性和和正确性正确性来分析,以便来分析,以便验证全部的软件需求是否在软件中得以实现验证全部的软件需求是否在软件中得以实现以及以及是是否与正确的

174、设计、代码和测试信息相联系否与正确的设计、代码和测试信息相联系。n在软件生存期的各个阶段都需要评估,对中间产品在软件生存期的各个阶段都需要评估,对中间产品或对最终产品都要进行评估,对一个系统的评估可或对最终产品都要进行评估,对一个系统的评估可能是全面的,也可能是有选择的。能是全面的,也可能是有选择的。n为使产品具有使用价值,评估要保证以下几点:为使产品具有使用价值,评估要保证以下几点:产品符合规格说明;产品符合规格说明;产品正确;产品正确; (3 3)评估)评估 软件项目管理166166产品完整、清楚、一致;产品完整、清楚、一致;考虑了合适的替代品;考虑了合适的替代品;产品遵循所用的适用标准;

175、产品遵循所用的适用标准;产品满足所有规定的质量特征。产品满足所有规定的质量特征。n评估不仅是找错,而且它还通过推荐以下方案来帮评估不仅是找错,而且它还通过推荐以下方案来帮助确定软件开发的过程。助确定软件开发的过程。阶段的连续性;阶段的连续性;先改正规格再继续;先改正规格再继续;回溯几个步骤并改正错误;回溯几个步骤并改正错误;在系统的某部分优化之前,进行追加评估,如在系统的某部分优化之前,进行追加评估,如进行模拟;进行模拟; 软件项目管理167167监督一个质量可疑部分的执行过程;监督一个质量可疑部分的执行过程;更改方法或工具;更改方法或工具;更改时间表;更改时间表;进行机构决策,如附加资源、附

176、加培训或变更进行机构决策,如附加资源、附加培训或变更任命。任命。n下面下面 3 种方法有助于选择评估技术:种方法有助于选择评估技术:(1)静态分析规格(如评审、检查、结构分析)静态分析规格(如评审、检查、结构分析)(2)动态分析预期的软件行为(如模拟、建模、屏动态分析预期的软件行为(如模拟、建模、屏幕仿真、分支执行分析)幕仿真、分支执行分析)(3)形式化分析(如数学校对)形式化分析(如数学校对)软件项目管理168168n静态分析静态分析是通过对软件产品进行手工和自动的检查是通过对软件产品进行手工和自动的检查来发现错误和不足,而不用执行软件代码。来发现错误和不足,而不用执行软件代码。 n动态分析

177、动态分析需要执行软件本身或其模型、或其简化版需要执行软件本身或其模型、或其简化版本,以此来确定它的一些属性是否有效。本,以此来确定它的一些属性是否有效。n接口分析的目的是评估软件交付物(包括需求、设接口分析的目的是评估软件交付物(包括需求、设计、编码)正确地、一致地、完整地和准确地说明计、编码)正确地、一致地、完整地和准确地说明了接口需求。了接口需求。n接口分析是和数据流联系在一起的。接口分析是和数据流联系在一起的。n接口数据接受方必须保证每一个接口是必要且充分接口数据接受方必须保证每一个接口是必要且充分(4 4)接口分析)接口分析软件项目管理169169的。接口的正确性依赖于接口的用途,形式

178、和内容。的。接口的正确性依赖于接口的用途,形式和内容。n接口分析必须关注以下接口分析必须关注以下 3 个接口领域个接口领域。(1)用用户接口户接口:分析人员和软件产品的接口形式,:分析人员和软件产品的接口形式,例如,所需的屏幕格式、保护机制、页面布置、例如,所需的屏幕格式、保护机制、页面布置、报告内容、输入和输出的时间间隔。报告内容、输入和输出的时间间隔。(2)硬件接口硬件接口:分析系统软件和硬件之间每一个接:分析系统软件和硬件之间每一个接口的逻辑特征,确定电子器件、固件、通信装口的逻辑特征,确定电子器件、固件、通信装置和输出装置。再确定接口的适用的标准,检置和输出装置。再确定接口的适用的标准

179、,检验当前的应用接口。验当前的应用接口。(3)软件接口软件接口:分析本软件和系统软件(数据库管:分析本软件和系统软件(数据库管理系统、操作系统、库程序包),本软件与应理系统、操作系统、库程序包),本软件与应软件项目管理170170用用系统之间的接口。确定系统软件的可应用标准系统之间的接口。确定系统软件的可应用标准和与应用系统之间的接口。检验它们之间的软件和与应用系统之间的接口。检验它们之间的软件接口是否正确。接口是否正确。n通常接口分析考虑以下几点:通常接口分析考虑以下几点:是否在技术上对接口有足够的和深刻的是否在技术上对接口有足够的和深刻的理解理解。是否所有的是否所有的数据要素数据要素被清晰

180、定义。被清晰定义。是否所有的是否所有的限制和约束限制和约束被清晰定义。被清晰定义。是否所有是否所有不同的接口不同的接口都被说明和正确描述。都被说明和正确描述。是否所有的是否所有的软硬件接口软硬件接口被量化确定,被量化确定,例如,消例如,消息单元、速率、消息格式、优先级规则等。息单元、速率、消息格式、优先级规则等。是否所有软件接口功能和所有的数据接口都被量是否所有软件接口功能和所有的数据接口都被量软件项目管理171171化确定,化确定,例如,数据时限、数据定义、数据格例如,数据时限、数据定义、数据格式、优先级规则、消息内容和通信协议。式、优先级规则、消息内容和通信协议。接口的性能需求是否定义,限

181、定是否明确。接口的性能需求是否定义,限定是否明确。接口的关键程度是否被充分考虑。接口的关键程度是否被充分考虑。如果接口降级将带来什么影响。如果接口降级将带来什么影响。接口是否可测和可维护。接口是否可测和可维护。是否关于接口的所有适用的标准都被确定,包是否关于接口的所有适用的标准都被确定,包括把当前软件应用到其应用环境。括把当前软件应用到其应用环境。n测试是检测软件的过程,通过测试检测出软件和需测试是检测软件的过程,通过测试检测出软件和需(5 5)测试)测试软件项目管理172172求条件之间的差异,评估软件的特性。求条件之间的差异,评估软件的特性。n在软件检查和验证的过程中,测试可以被定义为在软

182、件检查和验证的过程中,测试可以被定义为支持验证和确认目标的测试。这种测试的目标不支持验证和确认目标的测试。这种测试的目标不同于开发人员的测试。同于开发人员的测试。例如:验证和确认测试可例如:验证和确认测试可以集中在一个窄的、关键的区域或保证开发者计以集中在一个窄的、关键的区域或保证开发者计划测试的一致性。划测试的一致性。 n尽管许多验证和确认任务跨越了生存期阶段,但是尽管许多验证和确认任务跨越了生存期阶段,但是大部分的大部分的 SVVP 还是按照特定的生存期阶段来制定还是按照特定的生存期阶段来制定和管理任务。和管理任务。4. 4. 软件生存期各个阶段软件生存期各个阶段的验证和确认活动的验证和确

183、认活动软件项目管理173173(1 1)管理阶段的验证和确认)管理阶段的验证和确认nIEEE 标准把管理作为一个阶段来定义。实际上管标准把管理作为一个阶段来定义。实际上管理并不是一个单独的生存期阶段,而是跨越每一理并不是一个单独的生存期阶段,而是跨越每一个生存期阶段的一种活动,并且与所有活动紧密个生存期阶段的一种活动,并且与所有活动紧密联系,形成一个统一的、有意义的过程。联系,形成一个统一的、有意义的过程。n验证和确认的管理贯彻于所有的生存期阶段。验证和确认的管理贯彻于所有的生存期阶段。n软件开发是一个循环或迭代的过程。针对在开发软件开发是一个循环或迭代的过程。针对在开发过程引发的软件修改,验

184、证和确认工作必须重复过程引发的软件修改,验证和确认工作必须重复旧的或进行新的验证和确认任务。旧的或进行新的验证和确认任务。n在验证和确认的输入和输出中如果发现了错误,在验证和确认的输入和输出中如果发现了错误,就要重复验证和确认任务。就要重复验证和确认任务。 软件项目管理174174n理论上,管理的职责是要确保验证确认活动和其他理论上,管理的职责是要确保验证确认活动和其他软件开发活动之间能够正向地、成功地配合,从而软件开发活动之间能够正向地、成功地配合,从而保证开发出无缺陷的软件。保证开发出无缺陷的软件。n对所有的软件,验证和确认的管理应该包括如下的对所有的软件,验证和确认的管理应该包括如下的最

185、小任务集:最小任务集:(1)生成软件确认和验证计划;生成软件确认和验证计划;(2)基线变更评估;基线变更评估;(3)V&V管理评审;管理评审;(4)管理和技术评审支持;管理和技术评审支持;(5)与组织和支持过程的接口。与组织和支持过程的接口。 软件项目管理175175(2 2)概念阶段的验证和确认)概念阶段的验证和确认 n 概念阶段将明确系统创建的原因。概念阶段将明确系统创建的原因。(1)细化反映系统主要特性的概念细化反映系统主要特性的概念;(2)列出系统所有目标和在技术与商业上的风险列出系统所有目标和在技术与商业上的风险;(3)选择系统的体系结构选择系统的体系结构;(4)将系统需求被分解到硬

186、件、软件和用户界面等子将系统需求被分解到硬件、软件和用户界面等子系统。系统。n概念阶段的验证和确认活动主要关注系统需求分析概念阶段的验证和确认活动主要关注系统需求分析和系统体系结构设计。验证和确认的目标是和系统体系结构设计。验证和确认的目标是:(1)验证系统需求的分配验证系统需求的分配;(2)确认所选择的解决方案确认所选择的解决方案软件项目管理176176(3)确保不成立的假设不被引人方案之中。确保不成立的假设不被引人方案之中。 n验证和确认验证和确认创建了有关风险和约束的描述创建了有关风险和约束的描述列出了所有可能妨碍系统开发的有关技术以及商列出了所有可能妨碍系统开发的有关技术以及商业或政策

187、上值得考虑的因素业或政策上值得考虑的因素还包括初始的计划,并列出对每一次迭代所期望还包括初始的计划,并列出对每一次迭代所期望的人员配备、时间和花费。的人员配备、时间和花费。n另外,应当预先规定好管理系统和它的开发过程所另外,应当预先规定好管理系统和它的开发过程所涉及的任何规则和政策,同时给出备选方案,并分涉及的任何规则和政策,同时给出备选方案,并分析其利弊。析其利弊。n概念阶段包括的验证和确认任务有:概念阶段包括的验证和确认任务有:软件项目管理177177概念阶段的验证和确认活动概念阶段的验证和确认活动输入输入l开发时间进度表开发时间进度表l概念文档概念文档最小最小VV活动集活动集l概念文档评

188、估概念文档评估l硬件需求软件需硬件需求软件需 求用户需求分解求用户需求分解 分析分析l可跟踪情况分析可跟踪情况分析l危险程度分析危险程度分析输出输出l概念阶段任务概念阶段任务 报告报告l异常报告异常报告l VV阶段总结阶段总结 报告报告软件项目管理178178n需求阶段是软件生存期的一个组成部分,在这个需求阶段是软件生存期的一个组成部分,在这个阶段,定义和文档化所有的需求,包括软件产品阶段,定义和文档化所有的需求,包括软件产品的功能性和非功能性的需求。的功能性和非功能性的需求。n需求阶段的主要输出是需求阶段的主要输出是软件规格说明软件规格说明SRS(sofiware Requirement S

189、pecification SRS)。)。n在在SRS中需要准确地描述软件的任务。中需要准确地描述软件的任务。SRS 应可应可以反向跟踪,回溯到用户需求和概念文档中所定以反向跟踪,回溯到用户需求和概念文档中所定义的系统概念。义的系统概念。n在需求规格说明中应该为后面的设计和实现提供在需求规格说明中应该为后面的设计和实现提供质量和数量两个方面的约束。有质量和数量两个方面的约束。有 5 类需求:类需求: (3 3)需求阶段的验证和确认)需求阶段的验证和确认 软件项目管理179179(1)功能类功能类(2)外部接口类外部接口类(3)性能类性能类(4)设计约束类设计约束类(5)质量属性类质量属性类n需求

190、的验证和确认活动主要关注软件需求分析。其需求的验证和确认活动主要关注软件需求分析。其目标是确保目标是确保正确性正确性、完整性完整性、准确性准确性、可测试性可测试性和和需求的一致性需求的一致性。n需求阶段验证与确认工作所包含的最小任务集如下需求阶段验证与确认工作所包含的最小任务集如下图所示:图所示:软件项目管理180180需求阶段的验证和确认活动需求阶段的验证和确认活动输入输入l概念文档概念文档l软件需求规格说软件需求规格说 明明l接口需求文档接口需求文档l用户手册用户手册最小最小VV活动集活动集l需求可跟踪性分析需求可跟踪性分析l软件需求评估软件需求评估l接口需求分析接口需求分析l系统测试计划

191、系统测试计划V&Vl接受测试计划接受测试计划V&Vl危险程度分析危险程度分析l配置管理评估配置管理评估输出输出l需求阶段任务报需求阶段任务报 告告l测试计划测试计划 系统测试系统测试 接受测试接受测试l异常报告异常报告l VV阶段总结阶段总结 报告报告软件项目管理181181n在设计阶段中要进行在设计阶段中要进行软件体系结构框架软件体系结构框架、软件单元软件单元、接口接口和和数据数据的设计,同时还要把这些设计记录在的设计,同时还要把这些设计记录在文档中,并验证它们是否满足需求。文档中,并验证它们是否满足需求。n在此阶段中,修改设计中的错误会大大减少后续编在此阶段中,修改设计中的错误会大大减少后

192、续编码阶段错误的发生率,降低软件生存期中产品和码阶段错误的发生率,降低软件生存期中产品和项目的风险。项目的风险。n设计应分为多个步骤。首先设计设计应分为多个步骤。首先设计体系结构框架体系结构框架(例(例如子系统及其接口)。再通过如子系统及其接口)。再通过增加细节增加细节进行扩充,进行扩充,直到最后子系统可以开始编码。直到最后子系统可以开始编码。n设计人员所关心的质量目标,包括:设计人员所关心的质量目标,包括:(4 4)设计阶段的验证和确认)设计阶段的验证和确认 软件项目管理182182(1)在所有的设计层次跟踪需求,保证设计与需求相在所有的设计层次跟踪需求,保证设计与需求相适应;适应;(2)进

193、行体系结构设计,使其符合系统目标和产品质进行体系结构设计,使其符合系统目标和产品质量特性;量特性;(3)描述所有的硬件、操作和软件接口;描述所有的硬件、操作和软件接口;(4)将设计遵守的标准、惯例、约定等写入文档;将设计遵守的标准、惯例、约定等写入文档;(5)设计在全部集成时应当满足需求;设计在全部集成时应当满足需求;(6)编制设计文档以便于编码人员与以后的产品维护编制设计文档以便于编码人员与以后的产品维护人员阅读理解;人员阅读理解;(7)在设计中包括足够的信息可支持测试活动的计划、在设计中包括足够的信息可支持测试活动的计划、设计和执行;设计和执行;软件项目管理183183(8)控制设计配置,

194、保证所有的文档都是完整的和控制设计配置,保证所有的文档都是完整的和可发布的,特别是使用混合媒体(如,图表、可发布的,特别是使用混合媒体(如,图表、文字说明)的情况下。文字说明)的情况下。n验证和确认的计划人员的责任是为设计的产品验证和确认的计划人员的责任是为设计的产品(包括各个阶段的规格说明)选择验证和确认任(包括各个阶段的规格说明)选择验证和确认任务,并确信在实际中已满足了这些目标。务,并确信在实际中已满足了这些目标。n例如,在概要设计中对算法选择进行评估是合适例如,在概要设计中对算法选择进行评估是合适的,在详细设计中对算法进行数学分析更合适。的,在详细设计中对算法进行数学分析更合适。n验证

195、和确认工作的范围由设计工作的复杂性来决验证和确认工作的范围由设计工作的复杂性来决定。当计划设计阶段的验证和确认任务时,应考定。当计划设计阶段的验证和确认任务时,应考虑以下方面:虑以下方面: 软件项目管理184184(1)项目计划所连带的责任(例如,支持关键设计项目计划所连带的责任(例如,支持关键设计的评审)的评审)(2)设计方法学设计方法学(3)设计标准设计标准(4)设计中的关键点和高难度部分设计中的关键点和高难度部分(5)需要证明的设计假设(或证明的引用)需要证明的设计假设(或证明的引用)(6)罗列需要进一步分析的复杂算法罗列需要进一步分析的复杂算法(7)需要进行大小和性能分析的资源限制(如

196、,可需要进行大小和性能分析的资源限制(如,可利用的计算机硬件,时间限制等)利用的计算机硬件,时间限制等)(8)需要进行安全性分析的数据库的保密和访问需要进行安全性分析的数据库的保密和访问(9)设计的层次(如,不同的设计的层次(如,不同的V&V任务和方法分别任务和方法分别适用于概要设计和详细设计上)适用于概要设计和详细设计上)软件项目管理185185(10) 单元测试和集成测试所需的不同方法单元测试和集成测试所需的不同方法(11) 表达设计的媒体和格式表达设计的媒体和格式验证和确认的计划中应提供注解和在设计的验证和验证和确认的计划中应提供注解和在设计的验证和确认任务中标注异常情况。确认任务中标注

197、异常情况。另外,潜在风险也应提出来,它们应与开发中的测另外,潜在风险也应提出来,它们应与开发中的测试计划相对应。试计划相对应。设计阶段的软件验证与确认工作所包括的最小任务设计阶段的软件验证与确认工作所包括的最小任务集如下图所示。集如下图所示。软件项目管理186186设计阶段的验证和确认活动设计阶段的验证和确认活动输入输入l标准标准l软件需求规格说软件需求规格说 明明l系统体系结构描系统体系结构描 述述l接口需求文档接口需求文档l接口设计文档接口设计文档l用户文档用户文档最小最小VV活动集活动集l设计可跟踪性分析设计可跟踪性分析l设计评估设计评估l接口分析接口分析l构件测试计划构件测试计划V&V

198、l接口测试计划接口测试计划V&Vl测试设计测试设计V&Vl危险程度分析危险程度分析l风险分析风险分析输出输出l设计阶段任务报设计阶段任务报 告告l测试计划测试计划 单元测试单元测试 集成测试集成测试l测试设计测试设计 单元测试单元测试 集成测试集成测试 系统测试系统测试 确认测试确认测试l异常报告异常报告l VV阶段总结阶段总结 报告报告软件项目管理187187n编码阶段是软件生存期中从设计文档到调试形成软编码阶段是软件生存期中从设计文档到调试形成软件产品的阶段。件产品的阶段。n在编码阶段,验证和确认的任务集中在在编码阶段,验证和确认的任务集中在代码代码和和代码代码符合设计规格说明和编码标准符

199、合设计规格说明和编码标准的程度上,在这个的程度上,在这个阶段,验证和确认的目标是确定代码的质量。阶段,验证和确认的目标是确定代码的质量。n代码的质量由几个方面来确定。代码的质量由几个方面来确定。(1)设计规格可正向跟踪到程序相应的代码;代码设计规格可正向跟踪到程序相应的代码;代码可反向跟踪到需求。这些步骤的开展可确保没可反向跟踪到需求。这些步骤的开展可确保没有需求要增加、修改或被遗漏。有需求要增加、修改或被遗漏。(2)程序的接口与接口文档相对应。程序的接口与接口文档相对应。 (5 5)编码阶段的验证和确认)编码阶段的验证和确认 软件项目管理188188(3)程程序代码的详细评估表明,程序对设计

200、说明做了序代码的详细评估表明,程序对设计说明做了正确翻译,且与程序编码标准相符。正确翻译,且与程序编码标准相符。n编码阶段的另一项活动是生成不同测试(如单元测编码阶段的另一项活动是生成不同测试(如单元测试、集成测试、系统测试和接受测试)的测试用例试、集成测试、系统测试和接受测试)的测试用例和测试过程,以及执行单元层次上的测试过程。和测试过程,以及执行单元层次上的测试过程。n编码阶段软件验证和确认工作的最小任务集如下图编码阶段软件验证和确认工作的最小任务集如下图所示。所示。软件项目管理189189编码阶段的验证和确认活动编码阶段的验证和确认活动输入输入l标准标准l系统体系结构描系统体系结构描 述

201、述l源代码清单源代码清单l执行代码执行代码l接口设计文档接口设计文档l用户文档用户文档最小最小VV活动集活动集l代码可跟踪性分析代码可跟踪性分析l源代码评估源代码评估l接口分析接口分析l源代码文档评估源代码文档评估l测试用例测试用例V&Vl测试规程测试规程V&Vl构件测试执行构件测试执行V&Vl风险分析风险分析输出输出l编码阶段任务报编码阶段任务报 告告l测试用例测试用例 单元测试单元测试 集成测试集成测试 系统测试系统测试 接受测试接受测试l测试过程测试过程 单元测试单元测试 集成测试集成测试 系统测试系统测试l异常报告异常报告l VV阶段总结阶段总结 报告报告软件项目管理190190(6

202、6)测试阶段的验证和确认)测试阶段的验证和确认n在测试阶段,将已经过单元测试的软件单元(或称在测试阶段,将已经过单元测试的软件单元(或称构件)集成成为系统,并对集成后的软件系统进行构件)集成成为系统,并对集成后的软件系统进行评测以确定是否满足需求。与此同时,还需要进行评测以确定是否满足需求。与此同时,还需要进行测试阶段的验证和确认活动。测试阶段的验证和确认活动。n制定测试规程、执行测试和分析测试结果的计划高制定测试规程、执行测试和分析测试结果的计划高度地依赖于诸如度地依赖于诸如组织组织、进度进度、资源资源、责任责任、工具工具、技术技术和和方法论方法论等因素。组织的性质和在组织内如何等因素。组织

203、的性质和在组织内如何开展验证和确认任务,将决定测试阶段的活动成功开展验证和确认任务,将决定测试阶段的活动成功与否。与否。n测试阶段什么时候开始测试阶段什么时候开始和和测试结果大致需多久才能测试结果大致需多久才能得到得到,这由整个软件开发工作的安排决定。应定期这由整个软件开发工作的安排决定。应定期软件项目管理191191地评估这个安排,以确保有充足的时间来完成测试地评估这个安排,以确保有充足的时间来完成测试阶段。阶段。n在这个阶段正确地在这个阶段正确地协调协调和下达和下达完成期限完成期限十分必要。十分必要。因为一个大项目往往包括各种人员和各种不同的小因为一个大项目往往包括各种人员和各种不同的小组

204、,所有这些人员在项目进展过程中是并行地彼此组,所有这些人员在项目进展过程中是并行地彼此独立地为这些复杂的相互有关联的任务工作,他们独立地为这些复杂的相互有关联的任务工作,他们之间因产品本身关系互相之间有依赖关系,所以要之间因产品本身关系互相之间有依赖关系,所以要求完成期限是必须的。求完成期限是必须的。n另外,通过诸如另外,通过诸如变更控制变更控制,配置管理和报告配置管理和报告等控制等控制机制来实现整体协同工作也很重要。机制来实现整体协同工作也很重要。n测试阶段的软件验证和确认工作的最小任务集如下测试阶段的软件验证和确认工作的最小任务集如下图所示:图所示:软件项目管理192192测试阶段的验证和

205、确认活动测试阶段的验证和确认活动输入输入l源代码清单源代码清单l执行代码执行代码l用户文档用户文档l可跟踪性分析可跟踪性分析l接受测试接受测试V&V过程过程 的制定和检验的制定和检验l集成测试集成测试V&V的执的执 行和检验行和检验l系统测试系统测试V&V的执的执 行和检验行和检验l接受测试接受测试V&V的执的执 行和检验行和检验l危险程度分析危险程度分析l风险分析风险分析最小最小VV活动集活动集输出输出l测试阶段任务报测试阶段任务报 告告l测试过程测试过程 接受测试接受测试 l异常报告异常报告l VV阶段总结阶段总结 报告报告软件项目管理193193(7 7)安装和检验阶段的验证和确认)安装

206、和检验阶段的验证和确认 n在安装和检验阶段中,软件被集成到其运行环境中,在安装和检验阶段中,软件被集成到其运行环境中,并经过测试以保证软件满足运行要求。安装特性包并经过测试以保证软件满足运行要求。安装特性包括括(1)安装人员安装人员(2)安装过程持续时间安装过程持续时间(3)安装地点数目安装地点数目(4)系统版本数目系统版本数目(5)配置的齐全性配置的齐全性n安装方式应当满足使用该系统时的用户要求。安装方式应当满足使用该系统时的用户要求。软件项目管理194194n有时安装过程与开发工作是分开的,由另一个组织有时安装过程与开发工作是分开的,由另一个组织来完成,安装者不是系统的开发者或测试者,而是

207、来完成,安装者不是系统的开发者或测试者,而是现场或客户支持工程师或系统的终端用户。现场或客户支持工程师或系统的终端用户。n有时安装是分步进行的:初次先交付一个或多个子有时安装是分步进行的:初次先交付一个或多个子系统,每一次安装后由用户进行一段时间的确认测系统,每一次安装后由用户进行一段时间的确认测试。在进行确认测试前,每个子系统应当能够很好试。在进行确认测试前,每个子系统应当能够很好地融合到先前的子系统中。地融合到先前的子系统中。n安装可能会重复多次:对每一个安装场地都要分别安装可能会重复多次:对每一个安装场地都要分别执行一次安装执行一次安装。根据安装场地的不同,产品可能要根据安装场地的不同,

208、产品可能要进行相应修改,例如,设置与场地相关的参数,建进行相应修改,例如,设置与场地相关的参数,建立与地点相关的命令表等。此外,每个场地的安装立与地点相关的命令表等。此外,每个场地的安装流程要求也可能不同。流程要求也可能不同。软件项目管理195195验证和确认的安装和检验过程要保证:验证和确认的安装和检验过程要保证:(1)每一个与安装场地相关的设置正确、完整每一个与安装场地相关的设置正确、完整;(2)每一个场地的安装说明是准确的,并能够完备每一个场地的安装说明是准确的,并能够完备地表现该设置地表现该设置;(3)安装说明的内容应当适合安装人员的水平安装说明的内容应当适合安装人员的水平;(4)面向

209、用户的验收测试应能说明安装是否成功面向用户的验收测试应能说明安装是否成功;(5)用来发货安装的软件应与通过审核和批准的软用来发货安装的软件应与通过审核和批准的软件是同一个软件。件是同一个软件。因为前述的原因,制定验证和确认的安装检验进度因为前述的原因,制定验证和确认的安装检验进度计划可能很困难。假如软件要在多个场所安装,事计划可能很困难。假如软件要在多个场所安装,事先就必须制定一个通用的安装进度计划表,再根据先就必须制定一个通用的安装进度计划表,再根据软件项目管理196196时间和资源的因素,针对每一个特殊的安装修改时间和资源的因素,针对每一个特殊的安装修改这个进度计划表。为此,可以使用过程流

210、程图或这个进度计划表。为此,可以使用过程流程图或检验清单。检验清单。制定制定V&V安装和检验计划时需要考虑以下各点:安装和检验计划时需要考虑以下各点:(1)核实准确性和完整性核实准确性和完整性。通过控制准确性和完整。通过控制准确性和完整性,保证安装前、中、后的数据完整。性,保证安装前、中、后的数据完整。(2)保留并核实安装过程的检查跟踪报告保留并核实安装过程的检查跟踪报告。在安装。在安装过程中发生的流程和修改都应当有记录。过程中发生的流程和修改都应当有记录。(3)保证老系统的完整性保证老系统的完整性。很多情况下,被安装的。很多情况下,被安装的软件是要替代一个现存的老系统。要保证在安软件是要替代

211、一个现存的老系统。要保证在安装过程中,在新系统被正式接受并声明可以运装过程中,在新系统被正式接受并声明可以运行之前,允许老系统继续运行。行之前,允许老系统继续运行。软件项目管理197197很有必要让新老两个系统并行运行一段时间,很有必要让新老两个系统并行运行一段时间,或保留老系统以防新系统失败。或保留老系统以防新系统失败。(4)核实是否遵循安装和检验标准核实是否遵循安装和检验标准。确保安装和检。确保安装和检验过程按照适当的标准、流程、指导方针执行。验过程按照适当的标准、流程、指导方针执行。n安装和检验阶段的软件验证和确认工作的最小任务安装和检验阶段的软件验证和确认工作的最小任务集如下图所示。集

212、如下图所示。软件项目管理198198安装和检验阶段的验证和确认活动安装和检验阶段的验证和确认活动输入输入l安装包安装包l用户文档用户文档最小最小VV活动集活动集l安装配置审计安装配置审计l安装检验安装检验l风险分析风险分析l撰写撰写VV最终报告最终报告输出输出l安装和检验阶段安装和检验阶段 总结报告总结报告l异常报告异常报告l VV阶段总结阶段总结 报告报告l VV最终报告最终报告软件项目管理199199n在运行和维护阶段,软件产品工作在它的运行环在运行和维护阶段,软件产品工作在它的运行环境之中,需要进行功能和性能监视。如有必要,境之中,需要进行功能和性能监视。如有必要,还需要对软件系统进行修

213、改。还需要对软件系统进行修改。n有时,运行和维护阶段并不像软件生存期中的顺有时,运行和维护阶段并不像软件生存期中的顺序子集,序子集,同一个软件可能会有多个版本同时使用同一个软件可能会有多个版本同时使用。每一个版本可能会出现在多个场地,每一个版本每一个版本可能会出现在多个场地,每一个版本都有它自己特殊的安装参数,设备驱动程序或其都有它自己特殊的安装参数,设备驱动程序或其他代码。不同安装可能会在不同的时间进行版本他代码。不同安装可能会在不同的时间进行版本升级。升级。 n为此,在制定运行和维护阶段的验证和确认的标为此,在制定运行和维护阶段的验证和确认的标准时,要考虑两种情况:准时,要考虑两种情况:(

214、8 8)运行和维护阶段的验证和确认)运行和维护阶段的验证和确认 软件项目管理200200(1)开发时软件经过验证和确认(可能在标准控制开发时软件经过验证和确认(可能在标准控制下);下);(2)开发时软件没有进行充分的或正式的验证和确开发时软件没有进行充分的或正式的验证和确认。认。n制定运行和维护过程中的制定运行和维护过程中的V&V计划,应该考虑软计划,应该考虑软件属于上述两种情况的哪一种。件属于上述两种情况的哪一种。(1)为开发初期做过验证和确认的软件做为开发初期做过验证和确认的软件做V&V计划计划时,有很多有利因素。因为存在有完整的最新时,有很多有利因素。因为存在有完整的最新的文档,审核和批

215、准过程可以适当地拿来使用,的文档,审核和批准过程可以适当地拿来使用,而且有历史记录作为下一步计划的基础。而且有历史记录作为下一步计划的基础。(2)如果在维护前没有对软件做过验证和确认,做如果在维护前没有对软件做过验证和确认,做软件项目管理201201运行和维护计划的人就会面临一些新问题:因为运行和维护计划的人就会面临一些新问题:因为文档可能不存在或已经失效(这样可能比根本没文档可能不存在或已经失效(这样可能比根本没有文档更糟)。有文档更糟)。n对于关键性软件,在维护中还需要进行验证和确对于关键性软件,在维护中还需要进行验证和确认,不管它在开发过程中是否曾验证和确认过。认,不管它在开发过程中是否

216、曾验证和确认过。n如果开发过程中软件被验证过,在维护过程中验如果开发过程中软件被验证过,在维护过程中验证和确认的投入将会产生重要的回报。证和确认的投入将会产生重要的回报。n在运行和维护阶段必须使用完整的适时的文档记录在运行和维护阶段必须使用完整的适时的文档记录验证和确认过程。运行和维护过程中的大部分工作验证和确认过程。运行和维护过程中的大部分工作用在准备和更新那些不合适的文档。用在准备和更新那些不合适的文档。n如果要扩充新的功能或要彻底掌握现存系统,必须如果要扩充新的功能或要彻底掌握现存系统,必须完善残缺的文档。完善残缺的文档。软件项目管理202202运行和维护阶段的验证和确认活动运行和维护阶

217、段的验证和确认活动输入输入l开发时间进度表开发时间进度表l概念文档概念文档l软件需求规格说软件需求规格说 明明l接口需求文档接口需求文档l系统结构描述系统结构描述l接口设计文档接口设计文档l源代码清单源代码清单l执行代码执行代码l用户文档用户文档lSVVPl建议建议/批准的变批准的变更更l异常报告异常报告最小最小VV活动集活动集l新约束和限制评估新约束和限制评估l变更建议评估变更建议评估l操作规程评估操作规程评估l SVVP修订修订l异常评估异常评估l移植评议移植评议l更换评议更换评议l危险程度分析危险程度分析l风险分析风险分析l重复阶段任务重复阶段任务输出输出l修订后的修订后的SVVPl运行

218、和维护阶段运行和维护阶段 任务报告任务报告l异常报告异常报告l重复的阶段的输重复的阶段的输 出出软件项目管理2032035. 5. 验证和确认的报告验证和确认的报告n验证和确认报告记录了验证和确认执行的验证和确认报告记录了验证和确认执行的状态状态以及以及在验证和确认执行中发现的所有在验证和确认执行中发现的所有需要关注的内容需要关注的内容。n许多不同的人和组织承担验证和确认任务,验证和许多不同的人和组织承担验证和确认任务,验证和确认活动结果也会涉及各种各样的人员。读者的多确认活动结果也会涉及各种各样的人员。读者的多样化要求对报告的发行、格式和内容进行合适的修样化要求对报告的发行、格式和内容进行合

219、适的修改。改。n验证和确认报告可以加深对软件产品开发过程的认验证和确认报告可以加深对软件产品开发过程的认识,加强对产品更完整的理解。识,加强对产品更完整的理解。n在软件开发中并行执行验证和确认的最大好处就是在软件开发中并行执行验证和确认的最大好处就是可将验证和确认的结果及时地通知开发人员。可将验证和确认的结果及时地通知开发人员。 软件项目管理204204n所有的验证和确认活动都要报告。进行验证和确认所有的验证和确认活动都要报告。进行验证和确认规划时要给报告安排足够的时间。规划时要给报告安排足够的时间。n验证和确认报告有多种命名和格式,比如验证和确认报告有多种命名和格式,比如备忘录备忘录、简介简

220、介、做过标记的、做过标记的历史文档备份历史文档备份、会议记录会议记录、工作工作项项、状态报告状态报告、评估分析报告评估分析报告、审计报告审计报告、检查报检查报告告、测试报告测试报告、异常报告异常报告、问题报告问题报告等。等。nIEEE 要求提供要求提供 4 种类型的验证和确认报告,它们的种类型的验证和确认报告,它们的等级范围涉及从软件中发现个别明显的缺陷(异常等级范围涉及从软件中发现个别明显的缺陷(异常报告)到对这个开发工程的复杂评估(最终验证和报告)到对这个开发工程的复杂评估(最终验证和确认报告)。确认报告)。IEEEIEEE标准标准要求的报告要求的报告软件项目管理205205n异常报告异常

221、报告通常要求及时反馈给开发人员。异常报告通常要求及时反馈给开发人员。异常报告的详细描述包括的详细描述包括1)对每一个异常的描述对每一个异常的描述;2)每个异常准确的范围的描述每个异常准确的范围的描述;3)重现技巧的描述重现技巧的描述;4)对异常所需管理的描述。对异常所需管理的描述。n任务报告任务报告总是伴随着每一个严格定义的验证和确认总是伴随着每一个严格定义的验证和确认任务。任务。(1 1)异常报告)异常报告(2 2)任务报告)任务报告软件项目管理206206任务报告是给验证和确认的管理者查看的,用任务报告是给验证和确认的管理者查看的,用来作为验证和确认不断改善的证据。来作为验证和确认不断改善

222、的证据。任务报告还为开发过程或验证与确认计划中间任务报告还为开发过程或验证与确认计划中间过程的修正提供关键的需求点,并被纳入验证过程的修正提供关键的需求点,并被纳入验证和确认管理历史。和确认管理历史。任务报告的内容和进度,是随着验证和确认任任务报告的内容和进度,是随着验证和确认任务的顺序和时间安排而计划的。务的顺序和时间安排而计划的。n阶段总结报告阶段总结报告总结了不同组织执行的每一个生存期总结了不同组织执行的每一个生存期阶段的验证和确认活动结果。阶段的验证和确认活动结果。(3 3)阶段总结报告)阶段总结报告软件项目管理207207阶段总结报告可以作为一个正式文档或一个简要阶段总结报告可以作为

223、一个正式文档或一个简要的非正式的通知,这取决于在一个特定阶段验证的非正式的通知,这取决于在一个特定阶段验证和确认活动进行的深度和广度。和确认活动进行的深度和广度。这个报告也可以是一个阶段一个回顾的一个简要这个报告也可以是一个阶段一个回顾的一个简要提交,例如:初步的设计回顾。提交,例如:初步的设计回顾。如果信息要求非常严格而不能等到整个阶段的结如果信息要求非常严格而不能等到整个阶段的结尾,就可以在合适的时候产生一个临时的报告。尾,就可以在合适的时候产生一个临时的报告。n最终报告最终报告综合软件异常报告、验证和确认任务报告综合软件异常报告、验证和确认任务报告以及所有验证和确认的阶段报告的结果。以及

224、所有验证和确认的阶段报告的结果。(4 4)最终报告最终报告软件项目管理208208验证和确认最终报告是在所有验证和确认任务验证和确认最终报告是在所有验证和确认任务完成时准备的,它会提供软件质量的一个总的完成时准备的,它会提供软件质量的一个总的评估及对产品和或开发过程的建议。评估及对产品和或开发过程的建议。nIEEE 标准中还提到了其他一些可选报告,对这些标准中还提到了其他一些可选报告,对这些报告的格式和内容没有特别的指导方针。报告的格式和内容没有特别的指导方针。n它们也是一些特殊验证和确认的结果。它们也是一些特殊验证和确认的结果。n可选报告要求按时、适当地分发。它们要明确指可选报告要求按时、适当地分发。它们要明确指出验证和确认活动的目的,描述使用的方法,并出验证和确认活动的目的,描述使用的方法,并在一个合适的层次报告它们的结果。在一个合适的层次报告它们的结果。 IEEEIEEE标准的可选报告标准的可选报告

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号