清华大学郑人杰_殷仁昆教_软件工程讲义-10_第1页
清华大学郑人杰_殷仁昆教_软件工程讲义-10_第2页
清华大学郑人杰_殷仁昆教_软件工程讲义-10_第3页
清华大学郑人杰_殷仁昆教_软件工程讲义-10_第4页
清华大学郑人杰_殷仁昆教_软件工程讲义-10_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程软件工程1 1软件工程软件工程 第十章第十章 软件质量软件质量 10.1 10.1 软件质量和质量模型软件质量和质量模型10.2 10.2 软件质量保证软件质量保证10.3 10.3 程序复杂性度量程序复杂性度量10.4 10.4 软件配置管理软件配置管理10.5 10.5 测试中的可靠性分析测试中的可靠性分析 软件工程软件工程2 210.1 10.1 软件质量与质量模型软件质量与质量模型10.1.1 10.1.1 软件质量的概念软件质量的概念nANSI/IEEE Std 729-1983定义软件质量为定义软件质量为“与软与软件产品满足规定的和隐含的需求的能力有关的特件产品满足规定的和

2、隐含的需求的能力有关的特征或特性的全体征或特性的全体”。nISO 8402-1994定义软件质量为定义软件质量为“反映实体满足明反映实体满足明确和隐含需要的能力的特性的总和确和隐含需要的能力的特性的总和”。此处,实。此处,实体是体是“可以单独描述和研究的事物可以单独描述和研究的事物”,如产品,如产品,活动,过程,组织和体系等。活动,过程,组织和体系等。软件工程软件工程3 3n由此可知,由此可知,质量质量是产品、体系或过程的一组固有是产品、体系或过程的一组固有特性,反映的是满足顾客和其他相关方面要求的特性,反映的是满足顾客和其他相关方面要求的程度。程度。nDavid Garvin提出,提出,“质

3、量是一个复杂的多层面质量是一个复杂的多层面的概念的概念”: 从先验论角度看,质量是可以识别出来的,从先验论角度看,质量是可以识别出来的,但不能明确定义的。但不能明确定义的。 从用户角度看,质量是对目标的满足程度。从用户角度看,质量是对目标的满足程度。 从制造角度看,质量是对规范的符合程度。从制造角度看,质量是对规范的符合程度。 从产品角度看,质量是产品的内在特征。从产品角度看,质量是产品的内在特征。软件工程软件工程4 4 从基于价值的角度看,质量依赖于顾客愿意从基于价值的角度看,质量依赖于顾客愿意出多少钱购买。出多少钱购买。n按用户角度定义质量,按用户角度定义质量,J.M.Juran 提出提出

4、“满足满足使用要求的基础是质量特征使用要求的基础是质量特征”。n下面是一些有关质量的术语:下面是一些有关质量的术语:n软件质量管理软件质量管理是对软件在质量方面指挥和控制是对软件在质量方面指挥和控制组织的协调活动。通常包括制定质量方针和质组织的协调活动。通常包括制定质量方针和质量目标以及质量策划、质量控制、质量保证和量目标以及质量策划、质量控制、质量保证和质量改进。质量改进。1)质量方针质量方针是由组织的最高管理者正式发布的该是由组织的最高管理者正式发布的该组织总的质量宗旨和方向。组织总的质量宗旨和方向。软件工程软件工程5 52)质量目标质量目标是在质量方面所追求的目的。是在质量方面所追求的目

5、的。3)质量策划质量策划是质量管理的一部分,致力于制定质是质量管理的一部分,致力于制定质量目标并规定必要的运行过程和相关资源以实量目标并规定必要的运行过程和相关资源以实现质量目标。现质量目标。4)质量控制质量控制是质量管理的一部分,致力于满足质是质量管理的一部分,致力于满足质量要求。量要求。5)质量保证质量保证是质量管理的一部分,致力于保障质是质量管理的一部分,致力于保障质量会得到满足的信任度。量会得到满足的信任度。6)质量改进质量改进是质量管理的一部分,致力于增强满是质量管理的一部分,致力于增强满足质量要求的能力。足质量要求的能力。软件工程软件工程6 610.1.2 10.1.2 软件质量模

6、型软件质量模型n为满足软件的各项精确定义的功能、性能需求,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。计一些质量特性及其组合。n如果这些质量特性及其组合都能在产品中得到如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。满足,则这个软件产品质量就是高的。n软件质量是各种特性的复杂组合。它随着应用软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同的不同而不同,随着用户提出的质量要求不同而不同。而不同。n软件质量特性,反映软件的本质。讨论一个软软

7、件质量特性,反映软件的本质。讨论一个软件的质量,归结到定义软件的质量特性。件的质量,归结到定义软件的质量特性。软件工程软件工程7 7n定义一个软件的质量,就等价于为该软件定义定义一个软件的质量,就等价于为该软件定义一系列质量特性。一系列质量特性。n人们通常把影响软件质量的特性用软件质量模人们通常把影响软件质量的特性用软件质量模型来描述。型来描述。n软件质量特性定义成分层模型。最基本的叫做软件质量特性定义成分层模型。最基本的叫做基本质量特性,它可以由一些子质量特性定义基本质量特性,它可以由一些子质量特性定义和度量。这些子特性在必要时又可由它的一些和度量。这些子特性在必要时又可由它的一些子特性定义

8、和度量。子特性定义和度量。 1976年年 Boehm质量模型质量模型 1979年年 McCall质量模型质量模型 1985年年 ISO质量模型质量模型软件工程软件工程8 8设备独立性设备独立性自包含性自包含性正确性正确性完备性完备性健壮性健壮性一致性一致性可计测性可计测性设备效率设备效率可存取性可存取性通信性通信性自描述性自描述性结构化性结构化性简单性简单性清晰性清晰性可扩充性可扩充性 软软件件质质量量可移植性可移植性可使用性可使用性可维护性可维护性人类工程人类工程可修改性可修改性可理解性可理解性可测试性可测试性可靠性可靠性效效 率率BoehmBoehm质量模型质量模型软件工程软件工程9 9M

9、cCallMcCall可维护性可维护性(Maintainability)可测试性可测试性(Testability)灵活性灵活性(Flexibility)正确性正确性(Correctness) 可靠性可靠性(Reliability)可使用性可使用性(Usability) 效率效率(Efficiency)完整性完整性(Integrity)互连性互连性(Interoperability) 可移植性可移植性(Portability) 复用性复用性(Reusability)产品运行产品运行Product Operations Product Revitions产品修正产品修正ProductTransit

10、ions 产品转移产品转移软件工程软件工程1010ISOISO的软件质量评价模型的软件质量评价模型n按照按照1991年年 ISO发布的发布的 ISO/IEC 9126 质量特性国质量特性国际标准际标准 ,软件质量度量模型由三层组成,软件质量度量模型由三层组成 软件质量特性软件质量特性 软件质量子特性软件质量子特性 软件质量度量评价准则软件质量度量评价准则n高层和中层建立国际标准,低层可由各使用单位高层和中层建立国际标准,低层可由各使用单位视实际情况制定。视实际情况制定。软件工程软件工程11 11软软件件质质量量功能性可靠性可维护性效率可使用性可移植性适合性准确性互操作性依从性安全性成熟性容错性

11、易恢复性易理解性易学习性易操作性时间特性资源特性易分析性稳定性易变更性易测试性易安装性易替换性适应性遵循性质量特性质量特性质量子特性质量子特性质量度量准则质量度量准则使使用用单单位位自自行行规规定定ISO 9126ISO 9126质量模型质量模型软件工程软件工程1212可移植性可移植性可维护性可维护性效率效率可使用性可使用性可靠性可靠性功能性功能性可移植性可移植性可维护性可维护性效率效率可使用性可使用性可靠性可靠性功能性功能性其中其中, 表示有利影响,表示有利影响, 表示不利表示不利影响。影响。 质量特性之间的竞争质量特性之间的竞争软件工程软件工程1313n1994年对年对ISO/IEC 91

12、26开始进行修正,将原标开始进行修正,将原标准修订为两个序列标准:准修订为两个序列标准:1)ISO/IEC 9126信息技术信息技术 软件产品质量软件产品质量,描述新的软件质量模型,分为描述新的软件质量模型,分为 4 个部分:个部分: 质量模型质量模型(9126-1) 内部质量内部质量(9126-2) 外部质量外部质量(9126-3) 使用质量使用质量(9126-4)2)ISO/IEC 14598信息技术信息技术 软件产品评价软件产品评价,详细描述软件质量评价的方法,分为详细描述软件质量评价的方法,分为 6 个部分:个部分:软件工程软件工程1414 概述概述(14598-1) 策划和管理策划和

13、管理(14598-2) 开发方过程开发方过程(14598-3) 获取方过程获取方过程(14598-4) 评价方过程评价方过程(14598-5) 评价模块的文档评价模块的文档(14598-6)n修订版保留了修订版保留了 6 个质量特性,但明确了它们与内个质量特性,但明确了它们与内部度量和外部度量的关系,并解释了这些特性与部度量和外部度量的关系,并解释了这些特性与使用质量之间的关系。使用质量之间的关系。n修订版还给出了一个质量模型的规格说明,引入修订版还给出了一个质量模型的规格说明,引入了使用质量。了使用质量。软件工程软件工程1515ISO/IEC 9126ISO/IEC 9126与与ISO/IE

14、C 14598ISO/IEC 14598之间的关系之间的关系资源和资源和环境环境评价评价过程过程软件软件产品产品软件产品软件产品的影响的影响评价支持评价支持评价过程评价过程内部度量内部度量外部度量外部度量使用质量使用质量度量度量14598114598314598414598514598114598214598691261912639126291264软件工程软件工程1616内部质量和外部质量的质量模型内部质量和外部质量的质量模型n外部质量外部质量是软件产品在规定条件下使用时,满是软件产品在规定条件下使用时,满足规定的和隐含的要求的程度。外部质量是足规定的和隐含的要求的程度。外部质量是从从外部观

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

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

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

18、周期中各种质量特性的使用n软件的生存周期可以划分为三个大的阶段。软件的生存周期可以划分为三个大的阶段。n在在软件需求定义阶段软件需求定义阶段要定义软件的质量要求;要定义软件的质量要求;在在软件产品开发阶段软件产品开发阶段要使得软件产品具有要求要使得软件产品具有要求的质量;在的质量;在软件运行和维护阶段软件运行和维护阶段要测量软件是要测量软件是否达到了用户的质量要求并维护软件的性能水否达到了用户的质量要求并维护软件的性能水平。平。n用户质量要求可以用使用质量度量、外部质量用户质量要求可以用使用质量度量、外部质量度量表达,有时也可以用内部质量度量来表达。度量表达,有时也可以用内部质量度量来表达。用

19、这些度量表达的要求将作为产品确认的准则用这些度量表达的要求将作为产品确认的准则。软件工程软件工程2020用户质量用户质量要求要求外部质量外部质量要求要求使用质量使用质量外部质量外部质量内部质量内部质量要求要求内部质量内部质量帮助规定帮助规定帮助规定帮助规定使用和反馈使用和反馈确认确认验证验证指示指示指示指示软件工程软件工程2121n外部质量要求从外部的观点规定要求的质量级外部质量要求从外部的观点规定要求的质量级别,包括从用户质量要求导出的要求。别,包括从用户质量要求导出的要求。n外部质量要求用作各开发阶段的确认目标,在外部质量要求用作各开发阶段的确认目标,在质量要求规格说明质量要求规格说明中用

20、外部质量度量规定,中用外部质量度量规定,并应当转换为内部质量要求。并应当转换为内部质量要求。n内部质量要求从内部的观点规定要求的质量级内部质量要求从内部的观点规定要求的质量级别,用于说明中间产品的特性。别,用于说明中间产品的特性。n内部质量要求可以用作各开发阶段的确认目标,内部质量要求可以用作各开发阶段的确认目标,也可以用于定义开发策略和开发期间评价和验也可以用于定义开发策略和开发期间评价和验证的准则。证的准则。n内部质量要求用内部度量数据定量地规定。内部质量要求用内部度量数据定量地规定。软件工程软件工程2222软件产品质量评价软件产品质量评价n软件产品质量在开发过程中形成,在使用中表软件产品

21、质量在开发过程中形成,在使用中表现。现。过程质量过程质量内部质量内部质量属性属性外部质量外部质量属性属性使用质量使用质量属性属性影响影响影响影响影响影响依赖于依赖于依赖于依赖于依赖于依赖于过程质量过程质量测量数据测量数据内部质量内部质量测量数据测量数据外部质量外部质量测量数据测量数据使用质量使用质量测量数据测量数据使用环境使用环境软件产品的效能软件产品的效能软件工程软件工程2323n软件产品质量可通过测量软件产品质量可通过测量 内部质量特性内部质量特性(中间产品的静态测量数据)(中间产品的静态测量数据) 外部质量特性外部质量特性(代码执行的行为)(代码执行的行为) 使用质量特性使用质量特性(使

22、用此软件的系统行为)(使用此软件的系统行为)n来评价。目的是使产品在具体使用环境中具有要来评价。目的是使产品在具体使用环境中具有要求的效能。求的效能。n为了满足开发者、维护者、获取者和最终用户的为了满足开发者、维护者、获取者和最终用户的要求,软件产品的质量要求通常包括内部质量、要求,软件产品的质量要求通常包括内部质量、外部质量和使用质量的评价准则。外部质量和使用质量的评价准则。软件工程软件工程2424可依赖性可依赖性 dependabilitydependabilityn对于某些高可靠性系统,质量特性对于某些高可靠性系统,质量特性“可依赖性可依赖性”显得非常重要,它有四个主要方面:显得非常重要

23、,它有四个主要方面:1) 可用性可用性 (Availability):系统在任何时间都能得系统在任何时间都能得到并能够执行有用服务的可能性。到并能够执行有用服务的可能性。2) 可靠性可靠性 (Raliability):系统在给定的时段内能系统在给定的时段内能提供希望的服务的可能性。提供希望的服务的可能性。3) 安全性或防护性安全性或防护性 (Safety):系统防止发生给人系统防止发生给人和环境造成伤害的失效的可能性。和环境造成伤害的失效的可能性。4) 安全性或保密性安全性或保密性 (Security):系统能够抵抗意系统能够抵抗意外或蓄意的入侵的可能性。外或蓄意的入侵的可能性。软件工程软件工

24、程2525可依赖性的层次可依赖性的层次系统保护自身系统保护自身抵御意外或恶抵御意外或恶意攻击的能力意攻击的能力系统不发生系统不发生灾难性失效灾难性失效运行的能力运行的能力 系统按规定系统按规定要求提供服要求提供服务的能力务的能力系统在需要系统在需要时提供服务时提供服务的能力的能力安全防护性安全防护性安全保密性安全保密性可靠性可靠性可用性可用性可依赖性可依赖性软件工程软件工程262610.1.3 10.1.3 提高质量的方法提高质量的方法 - - 原型化方法原型化方法 n软件需求是度量软件质量的基础。不符合需求的软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。它是各种特性的复杂组合。

25、软件就不具备质量。它是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量它随着应用的不同而不同,随着用户提出的质量要求不同而不同。要求不同而不同。n因此与用户的交流成为提高软件质量的关键。在因此与用户的交流成为提高软件质量的关键。在系统开发中,与用户进行交流的基本技术是原型系统开发中,与用户进行交流的基本技术是原型化方法。化方法。n系统原型是软件系统的初始版本,用于展示设计系统原型是软件系统的初始版本,用于展示设计选择、发现问题和给出可能的解决方案。选择、发现问题和给出可能的解决方案。软件工程软件工程2727n软件原型支持需求工程的两项活动:软件原型支持需求工程的两项活动: 需求获

26、取需求获取 需求有效性验证需求有效性验证n其他用途:其他用途: 用户培训用户培训 系统测试系统测试n主要分类:主要分类: 进化式原型开发进化式原型开发 抛弃式原型开发抛弃式原型开发软件工程软件工程28281. 1. 进化式原型开发进化式原型开发n基本思路是:先给出一个系统的最初实现,让用基本思路是:先给出一个系统的最初实现,让用户去使用和评价,不断进行细化和改善,经过多户去使用和评价,不断进行细化和改善,经过多次这样的反复过程后形成最终的完善的系统。次这样的反复过程后形成最终的完善的系统。开发抽象描述开发抽象描述建立原型系统建立原型系统使用原型系统使用原型系统系统充分吗系统充分吗?交付系统交付

27、系统否否是是软件工程软件工程29292. 2. 抛弃式原型开发抛弃式原型开发n基本思路是:原型的根本作用是弄清楚需求和为基本思路是:原型的根本作用是弄清楚需求和为风险评估提供补充信息。通过评估后,原型被抛风险评估提供补充信息。通过评估后,原型被抛弃,重新规划和实施系统的开发。弃,重新规划和实施系统的开发。框架需求框架需求开发原型开发原型确定系统确定系统评估原型评估原型开发软件开发软件问题问题可可验证系统验证系统问题问题可可交付的软件系统交付的软件系统可复用构件可复用构件软件工程软件工程303010.1.4 10.1.4 软件质量的度量和评价软件质量的度量和评价n软件质量特性度量有两类:软件质量

28、特性度量有两类:预测型预测型和和验收型验收型。n预测度量预测度量是利用定量或定性的方法,估算软件是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的质量的评价值,以得到软件质量的比较精确的估算值。估算值。n验收度量验收度量是在软件开发各阶段的检查点,对软是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,件的要求质量进行确认性检查的具体评价值,它对开发过程中的预测进行评价。它对开发过程中的预测进行评价。软件工程软件工程3131n预测度量预测度量有两种。有两种。 第一种叫做第一种叫做尺度度量尺度度量,这是一种,这是一种定量度量定量度量。它适用于一些能够直接

29、度量的特性,例如,它适用于一些能够直接度量的特性,例如,出错率定义为:错误数出错率定义为:错误数KLOC单位时间。单位时间。 第二种叫做第二种叫做二元度量二元度量,这是一种,这是一种定性度量定性度量。它适用于一些只能间接度量的特性,例如,它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。可使用性、灵活性等等。软件工程软件工程3232尺度度量检查表尺度度量检查表评价评价度度 量量需需 求求设设 计计编编 码码准则准则是是/否否 值值 是是/否否 值值 是是/否否 值值程序程序的的复杂复杂性性(1) 每一模块的复杂性度量每一模块的复杂性度量(McCabe环路)环路)(2) 系统的复杂性度

30、量系统的复杂性度量 = 各个模块复杂性度量之和各个模块复杂性度量之和/系系统的模块数统的模块数 软件工程软件工程3333二元度量检查表二元度量检查表评价评价度度 量量需需 求求设设 计计编编 码码准则准则是是/否否 值值 是是/否否 值值 是是/否否 值值设设计计文文档档的的完完备备性性(1) 无二义性引用(输入无二义性引用(输入/功能功能/输出)输出)(2) 所有引用的数据都可从一所有引用的数据都可从一个外部数据源定义个外部数据源定义/计算计算/取得取得(3) 所有定义的功能都被使用所有定义的功能都被使用(4) 所有使用的功能都被定义所有使用的功能都被定义(5) 对每一个判定点,所有的对每一

31、个判定点,所有的条件和处理都被定义条件和处理都被定义(6) 所有被调用、被引用的调所有被调用、被引用的调用序列的参数都一致用序列的参数都一致 软件工程软件工程3434n通过对照检查项目,确定一种质量特性的有无。通过对照检查项目,确定一种质量特性的有无。n例如,在设计和编码阶段的复杂性度量,利用例如,在设计和编码阶段的复杂性度量,利用尺度度量方法尺度度量方法来做。对模块复杂性的度量采用来做。对模块复杂性的度量采用McCabe 环路度量。环路度量。n对于对于二元度量二元度量,可针对检查表中每一项都应给,可针对检查表中每一项都应给以记分,指定信息存在时记以记分,指定信息存在时记 “1”,否则记,否则

32、记 “0”。表中所有各项的分数相加,即得度量结果。表中所有各项的分数相加,即得度量结果。软件工程软件工程353510.2 软件质量保证10.2.1 质量保证的概念n什么是质量保证?什么是质量保证?ISO/IEC 12207 : 1995 指出:指出:质量保证是一个有计划、有组织的活动,它向质量保证是一个有计划、有组织的活动,它向所有相关的人提供证据,以证明质量功能正在所有相关的人提供证据,以证明质量功能正在按质量要求运行的信心。按质量要求运行的信心。n质量保证的目的是质量保证的目的是1) 内部质量保证:在组织内部向管理者提供信内部质量保证:在组织内部向管理者提供信任保证;任保证;2) 外部质量

33、保证:向顾客或第三方认证提供信外部质量保证:向顾客或第三方认证提供信任保证;任保证;软件工程软件工程363610.2.2 10.2.2 软件质量保证过程与活动软件质量保证过程与活动nISO/IEC 12207:1995指出:软件质量保证过程指出:软件质量保证过程(SQA)是恰当保证为项目生存周期中的软件)是恰当保证为项目生存周期中的软件产品和过程符合规定需求和已制定计划提供足产品和过程符合规定需求和已制定计划提供足够保证的过程。够保证的过程。n软件质量保证过程包括软件质量保证过程包括4方面的活动:方面的活动:a) 过程实施过程实施b) 产品质量保证产品质量保证c) 过程质量保证过程质量保证d)

34、 质量保证体系的质量保证质量保证体系的质量保证软件工程软件工程37371. 1. 美国美国SEISEI推荐的软件质量保证活动推荐的软件质量保证活动1) 为项目制定为项目制定SQA计划计划 该计划规定了软件开发小组和质量保证小组该计划规定了软件开发小组和质量保证小组需要执行的质量保证活动。需要执行的质量保证活动。 SQA计划的要点包括:计划的要点包括:v需要进行哪些评价?需要进行哪些评价?v需要进行哪些审计和评审?需要进行哪些审计和评审?v项目采用的标准;项目采用的标准;v错误报告的要求和跟踪过程;错误报告的要求和跟踪过程;vSQA小组应产生哪些文档小组应产生哪些文档?v向软件项目组提供的反馈数

35、量等。向软件项目组提供的反馈数量等。软件工程软件工程38382) 参与开发该软件项目的软件过程描述参与开发该软件项目的软件过程描述 软件开发小组为开发活动选择软件过程,软件开发小组为开发活动选择软件过程,SQA 小组评审过程说明,确保该过程与组织政策、小组评审过程说明,确保该过程与组织政策、内部、外界标准及软件项目计划的其他部分相内部、外界标准及软件项目计划的其他部分相符。符。3) 评审各项软件工程活动评审各项软件工程活动 评审各项软件工程活动,核实其是否符合已定评审各项软件工程活动,核实其是否符合已定义的软件过程。为此,义的软件过程。为此,SQA小组必须识别、记小组必须识别、记录和跟踪所有偏

36、离过程的偏差,核实其是否已录和跟踪所有偏离过程的偏差,核实其是否已经改正。经改正。软件工程软件工程39394) 审核指定的软件工作产品审核指定的软件工作产品 审核指定的软件工作产品,核实其是否符合已定审核指定的软件工作产品,核实其是否符合已定义的软件过程中的相应部分。义的软件过程中的相应部分。5) 记录软件工作及软件工作产品的偏差记录软件工作及软件工作产品的偏差 确保软件工作及工作产品中的偏差已被记录在案,确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。并根据预定规程进行处理。 6) 跟踪问题的解决跟踪问题的解决 记录所有不符合部分,向管理部门报告。跟踪不记录所有不符合部分

37、,向管理部门报告。跟踪不符合的部分直到问题得到解决。符合的部分直到问题得到解决。7) 协调变更的控制与管理。协调变更的控制与管理。8) 帮助收集和分析软件度量的信息。帮助收集和分析软件度量的信息。软件工程软件工程40402. 2. 微软提出的软件质量保证检查表微软提出的软件质量保证检查表1)你识别出对你的项目很重要的质量特性了吗?你识别出对你的项目很重要的质量特性了吗?2)你让其他人都知道项目的目标了吗你让其他人都知道项目的目标了吗?3)你对外部质量特性(正确性、可用性、有效性、你对外部质量特性(正确性、可用性、有效性、可靠性、完整性、适用性、精确性和健壮性)可靠性、完整性、适用性、精确性和健

38、壮性)和内部质量特性(可维护性、灵活性、可移植和内部质量特性(可维护性、灵活性、可移植性、可复用性、可读性、可测试性和可理解性)性、可复用性、可读性、可测试性和可理解性)作了区分吗作了区分吗?4)有没有想过有些特性是冲突的,而有些是互补有没有想过有些特性是冲突的,而有些是互补的?的?软件工程软件工程41415)你的项目有没有采用几种不同的缺陷发现技术你的项目有没有采用几种不同的缺陷发现技术来分析不同类型的错误?来分析不同类型的错误?6)你的项目计划中有没有包括在软件开发不同阶你的项目计划中有没有包括在软件开发不同阶段进行质量保证的步骤?段进行质量保证的步骤?7)质量有没有测量,以便于了解什么地

39、方质量提质量有没有测量,以便于了解什么地方质量提高了,什么地方质量下降了?高了,什么地方质量下降了?8)管理层是否了解质量保证在(开发)前期增加管理层是否了解质量保证在(开发)前期增加成本而在后期节省成本?成本而在后期节省成本?软件工程软件工程42423.3.日本软件质量管理协会提出的日本软件质量管理协会提出的质量保证活动质量保证活动1)用户要求定义用户要求定义 熟练掌握正确定义用户要求的技术。熟练掌握正确定义用户要求的技术。 熟练使用和指导他人使用定义软件需求的支熟练使用和指导他人使用定义软件需求的支持工具。持工具。 重视领导全体开发人员收集和积累有关用户重视领导全体开发人员收集和积累有关用

40、户业务领域的各种业务的资料和技术技能。业务领域的各种业务的资料和技术技能。2)力争不重复劳动力争不重复劳动 考虑哪些既有软件可以复用。考虑哪些既有软件可以复用。软件工程软件工程4343 在开发过程中,随时考虑所生产软件的复用在开发过程中,随时考虑所生产软件的复用性。性。3)掌握开发新软件的方法掌握开发新软件的方法 在开发新软件的过程中大力使用和推行在开发新软件的过程中大力使用和推行 软件工软件工程中所介绍的开发方法和工具。程中所介绍的开发方法和工具。 使用先进的开发技术:如使用先进的开发技术:如结构化技术结构化技术、面向面向对象技术对象技术。 使用数据库技术或网络化技术。使用数据库技术或网络化

41、技术。软件工程软件工程44444)组织外部力量协作的方法组织外部力量协作的方法 一个软件自始至终由同一个软件组织开发是一个软件自始至终由同一个软件组织开发是最理想的。但在现实中常常难以做到。最理想的。但在现实中常常难以做到。 改善对外部协作部门的开发管理。必须明确改善对外部协作部门的开发管理。必须明确规定进度管理、质量管理、交接检查、维护规定进度管理、质量管理、交接检查、维护体制等各方面要求,建立跟踪检查体制。体制等各方面要求,建立跟踪检查体制。5)排除无效劳动排除无效劳动 一种无效劳动是因需求规格说明有误、设计一种无效劳动是因需求规格说明有误、设计有误而造成的返工。定量记录返工工作量,有误而

42、造成的返工。定量记录返工工作量,收集和分析返工劳动花费数据,采取措施减收集和分析返工劳动花费数据,采取措施减少返工。少返工。软件工程软件工程4545 另一另一种无效劳动种无效劳动是重复劳动,即相似的软件是重复劳动,即相似的软件在几个地方同时开发。建立互相交流、信息在几个地方同时开发。建立互相交流、信息往来通畅、具横向交流特征的信息流通网。往来通畅、具横向交流特征的信息流通网。6)发挥每个开发者的能力发挥每个开发者的能力 软件生产是人的智能生产活动,它依赖于人软件生产是人的智能生产活动,它依赖于人的能力和开发组织团队的能力。的能力和开发组织团队的能力。 开发者必须有学习各专业业务知识、生产技开发

43、者必须有学习各专业业务知识、生产技术和管理技术的能动性。术和管理技术的能动性。 管理者或产品服务者要制定技术培训计划、管理者或产品服务者要制定技术培训计划、技术水平标准,及适用于将来需要的中长期技术水平标准,及适用于将来需要的中长期技术培训计划。技术培训计划。软件工程软件工程46467)提高软件开发的工程能力提高软件开发的工程能力 要想生产出高质量的软件产品必须有高水平要想生产出高质量的软件产品必须有高水平的软件工程能力。在软件开发环境或软件工的软件工程能力。在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。和管理方法开

44、发软件的能力。8)提高计划和管理质量能力提高计划和管理质量能力 项目开发初期计划阶段的项目计划评价。计项目开发初期计划阶段的项目计划评价。计划执行过程中对计划完成报告的评价。划执行过程中对计划完成报告的评价。 将评价、评审工作在工程实施之前就列入整将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中。个开发工程的工程计划中。 提高软件开发项目管理的精确度。提高软件开发项目管理的精确度。软件工程软件工程474710.2.3 10.2.3 软件质量保证体系软件质量保证体系n软件的质量保证活动,是涉及各个部门的部门软件的质量保证活动,是涉及各个部门的部门间的活动。间的活动。n为顺利开展质量保

45、证活动,必须事先明确部门为顺利开展质量保证活动,必须事先明确部门间的质量保证业务,确立部门间的联合与协作间的质量保证业务,确立部门间的联合与协作的机构,这个机构就是质量保证体系。的机构,这个机构就是质量保证体系。1) 必须明确反馈途径。必须明确反馈途径。2) 必须明确各部门的职责。必须明确各部门的职责。3) 必须确定保证系统运行的方法、工具、有关必须确定保证系统运行的方法、工具、有关文档资料,以及系统管理的规程和标准。文档资料,以及系统管理的规程和标准。软件工程软件工程48484) 必须明确决定是否可向下一阶段进展的评价必须明确决定是否可向下一阶段进展的评价项目和评价准则。项目和评价准则。5)

46、 必须不断地总结系统管理的经验教训,能够必须不断地总结系统管理的经验教训,能够修改系统。修改系统。n软件质量保证规程和技术准则软件质量保证规程和技术准则1) 规定在项目的哪个阶段进行评审及如何评审;规定在项目的哪个阶段进行评审及如何评审;2) 规定在项目的哪个阶段应当产生哪些报告和规定在项目的哪个阶段应当产生哪些报告和计划;计划;3) 规定产品各方面测试应达到的水平;规定产品各方面测试应达到的水平;软件工程软件工程49494) 规定在每次评审和测试中发现的错误如何修规定在每次评审和测试中发现的错误如何修正;正;5) 描述希望得到的质量度量;描述希望得到的质量度量;6) 说明各种软件人员的职责,

47、规定为了达到质说明各种软件人员的职责,规定为了达到质量目标他们必须进行哪些活动;量目标他们必须进行哪些活动;7) 建立建立 在各阶段中执行质量评价的质量评价和质在各阶段中执行质量评价的质量评价和质量检查系统。量检查系统。 有效运用质量信息的质量信息系统,并使有效运用质量信息的质量信息系统,并使其运行。其运行。软件工程软件工程5050n建立和实施质量管理体系的方法和步骤:建立和实施质量管理体系的方法和步骤:1) 确定顾客和其他相关方的需求和期望;确定顾客和其他相关方的需求和期望;2) 建立组织的质量方针和质量目标;建立组织的质量方针和质量目标;3) 确定为实现质量目标必须的过程和职责;确定为实现

48、质量目标必须的过程和职责;4) 确定和提供实现质量目标必须的资源;确定和提供实现质量目标必须的资源;5) 规定测量每个过程的有效性和效率的方法;规定测量每个过程的有效性和效率的方法;6) 应用这些测量方法确定每个过程的有效性和应用这些测量方法确定每个过程的有效性和效率;效率;7) 确定防止不合格并消除产生原因的措施;确定防止不合格并消除产生原因的措施;8) 建立和应用持续改进质量管理体系的过程。建立和应用持续改进质量管理体系的过程。软件工程软件工程515110.2.4 10.2.4 质量保证的实施质量保证的实施n软件质量保证的实施需要从纵向和横向两个方软件质量保证的实施需要从纵向和横向两个方面

49、展开。面展开。 要求所有与软件生存期有关的人员都要参加要求所有与软件生存期有关的人员都要参加 要求对产品形成的全过程进行质量管理要求对产品形成的全过程进行质量管理n这要求整个软件部门齐心协力,不断完善软件这要求整个软件部门齐心协力,不断完善软件的开发环境。此外还需要与用户共同合作。的开发环境。此外还需要与用户共同合作。软件工程软件工程52521. 1. 质量目标与度量质量目标与度量n为了开发高质量的软件,需要明确软件的功能,为了开发高质量的软件,需要明确软件的功能,明确软件应达到什么样的质量标准,即质量目明确软件应达到什么样的质量标准,即质量目标。标。n为了达到这个目标,在开发过程中的各个阶段

50、为了达到这个目标,在开发过程中的各个阶段进行检查和评价。进行检查和评价。n在做质量评价时,需要有在做质量评价时,需要有 对质量进行度量的准则和方法;对质量进行度量的准则和方法; 在软件生存期中如何使用这些准则和方法的在软件生存期中如何使用这些准则和方法的质量保证步骤;质量保证步骤; 提高该项作业效率的工具。提高该项作业效率的工具。软件工程软件工程53532.2. 质量保证活动的实施步骤质量保证活动的实施步骤1)Target:以用户要求和开发方针为依据,对质:以用户要求和开发方针为依据,对质量需求准则、质量设计准则的各质量特性设定量需求准则、质量设计准则的各质量特性设定质量目标。质量目标。2)P

51、lan:设定适合于被开发软件的评测检查项目:设定适合于被开发软件的评测检查项目 (质量评价准则)。(质量评价准则)。 研讨实现质量目标的方法研讨实现质量目标的方法或手段。或手段。3)Do:制作高质量的规格说明和程序。在接受质:制作高质量的规格说明和程序。在接受质量检查前先做自我检查。量检查前先做自我检查。 4)Check:以:以Plan阶段设定的质量评价准则进行评阶段设定的质量评价准则进行评价。计算结果用质量图的形式表示出来。比较价。计算结果用质量图的形式表示出来。比较软件工程软件工程5454评价结果的质量得分和质量目标,看其是否合评价结果的质量得分和质量目标,看其是否合格。格。5)Actio

52、n:对评价发现的问题进行改进活动,如果:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。实现并达到了质量目标就转入下一个工程阶段。这样重复这样重复“Plan”到到“Action”的过程的过程,直到整个直到整个开发项目完成。开发项目完成。软件工程软件工程5555用户要求用户要求指导方针指导方针设定质量特性及质量设定质量特性及质量子特性的评价尺度子特性的评价尺度研讨质量度量准则及研讨质量度量准则及质量目标的实现方法质量目标的实现方法各阶段度量的对象各阶段度量的对象开发活动开发活动质量评价质量评价1. 质量度量质量度量2. 质量得分及图示质量得分及图示3. 判断目标达到否

53、判断目标达到否改进活动改进活动管理信息管理信息评测得分表评测得分表质量图示质量图示TargetPlanDoCheckAction软件工程软件工程5656软件工程软件工程5757软件工程软件工程585810.2.5 CMM 210.2.5 CMM 2级级 KPA SQA KPA SQA 介绍介绍nCMM 2级级SQA关键过程域包括关键过程域包括 4 个目标和个目标和 17 项项关键实践。关键实践。4 个目标分别是:个目标分别是:目标目标1 软件质量保证活动是有计划的。软件质量保证活动是有计划的。目标目标2 软件产品和活动遵循适用的标准、规程和软件产品和活动遵循适用的标准、规程和需求的情况得到客观

54、的验证。需求的情况得到客观的验证。目标目标3 受影响的组和个人得到软件质量保证活动受影响的组和个人得到软件质量保证活动和结果的通知。和结果的通知。目标目标4 高级管理者处理在软件项目内部不能解决高级管理者处理在软件项目内部不能解决的不符合问题。的不符合问题。软件工程软件工程5959n仅当这仅当这 4 个目标都已经达到才能说已经满足关个目标都已经达到才能说已经满足关键过程域键过程域 SQA 的要求。的要求。n这些目标的实现依赖于这些目标的实现依赖于 8 项活动的实施,并需项活动的实施,并需要其他方面的关键实践来支持。要其他方面的关键实践来支持。n与软件质量保证有关的关键实践在与软件质量保证有关的

55、关键实践在 5 个共同特个共同特征中的分配如下:征中的分配如下:1.执行约定执行约定1) 组织应制定实施组织应制定实施 SQA 的方针并要求项目遵守。的方针并要求项目遵守。 对于全部项目,对于全部项目,SQA 功能到位;功能到位; SQA 建立向高级管理者报告的渠道;建立向高级管理者报告的渠道;软件工程软件工程6060 高级管理者定期评审高级管理者定期评审 SQA 活动和结果。活动和结果。2.执行能力执行能力有有 4 个关键实践,说明了为有效地实施个关键实践,说明了为有效地实施 SQA 所所必需具备的保证条件。必需具备的保证条件。2) 存在负责协调和实施项目的存在负责协调和实施项目的SQA组。

56、组。3) 为进行为进行 SQA 活动提供足够的资源和资金。活动提供足够的资源和资金。4) 对对 SQA 组的成员进行为完成组的成员进行为完成 SQA 活动所必活动所必需的培训。需的培训。5) 对软件项目成员进行有关对软件项目成员进行有关 SQA 组的任务、职组的任务、职责、权利和价值等的定向培训。责、权利和价值等的定向培训。3.执行活动执行活动软件工程软件工程6161有有 8 项关键实践,均为有效地实施项关键实践,均为有效地实施 SQA 必须执必须执行的活动。行的活动。6) 按文档化规程为软件项目制定软件质量保证按文档化规程为软件项目制定软件质量保证计划(计划(SQAP)。)。7) 按计划进行

57、按计划进行 SQA 组的活动。组的活动。8) 参与制定软件开发计划、标准和规程。参与制定软件开发计划、标准和规程。9) 评审软件工程活动。评审软件工程活动。10)审核指定的软件工作产品。审核指定的软件工作产品。11)定期向软件工程组报告其活动结果。定期向软件工程组报告其活动结果。12)按文档化规程处理评审和审核中发现的偏差按文档化规程处理评审和审核中发现的偏差并建立文档。并建立文档。软件工程软件工程626213)必要时必要时 SQA 组和顾客的组和顾客的 SQA 组一起评审自组一起评审自己的活动与发现。己的活动与发现。4.测量和分析测量和分析14)必须测量必须测量 SQA 过程实施的状况,以便

58、分析和过程实施的状况,以便分析和确定确定 SQA 活动的成本和进度状态。活动的成本和进度状态。 SQA 活动里程碑完成情况与计划比较。活动里程碑完成情况与计划比较。 SQA 所完成的工作、花费的工作量和消耗所完成的工作、花费的工作量和消耗的资金与计划比较。的资金与计划比较。 产品审核和活动评审的次数与计划比较。产品审核和活动评审的次数与计划比较。5.验证实施验证实施 软件工程软件工程6363有有 3 项关键实践,对项关键实践,对 SQA 活动进行不同层次的活动进行不同层次的验证。验证。15)高级管理者定期参与评审高级管理者定期参与评审 SQA 活动。活动。16)项目经理定期地,而且事件驱动地参

59、与评审项目经理定期地,而且事件驱动地参与评审 SQA 的活动。的活动。17)独立于独立于 SQA 组的专家定期评审项目组的专家定期评审项目 SQA 组组的活动和软件工作产品。的活动和软件工作产品。软件工程软件工程6464进入准则进入准则 方针明确方针明确 能力具备能力具备 项目已定义项目已定义 已有两项必要已有两项必要 规程规程按规程为项按规程为项目制定目制定SQAP按计划进行按计划进行SQA活动活动参与准备和参与准备和评审软件开评审软件开发计划、标发计划、标准和规程准和规程评审软件工评审软件工程活动程活动审核指定的审核指定的工作产品工作产品定期向软件工程组报告结果定期向软件工程组报告结果按规

60、程处理偏差并建立文档按规程处理偏差并建立文档与顾客的与顾客的SQA组一起定期评组一起定期评审自己审自己SQA的活动和发现的活动和发现输入输入输出输出退出准则退出准则 产品符合需求产品符合需求 数据记录完整数据记录完整 、受控、受控测量、分析和验证实施测量、分析和验证实施软件工程软件工程656510.3 10.3 程序复杂性度量程序复杂性度量n程序复杂性主要指程序复杂性主要指模块内程序的复杂性模块内程序的复杂性。它直。它直接关联到软件开发费用的多少,开发周期的长接关联到软件开发费用的多少,开发周期的长短和软件内部错误的多少。短和软件内部错误的多少。n程序复杂性度量的参数主要有:程序复杂性度量的参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论