版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程 第三部分 质量管理质量管理涉及问题v高质量软件的一般特性是什么?高质量软件的一般特性是什么?v如何评审质量,如何有效地进行质量评审?如何评审质量,如何有效地进行质量评审?v什么是软件质量保证?什么是软件质量保证?v软件测试需要应用什么策略?软件测试需要应用什么策略?v使用什么方法才能设计出有效的测试用例?使用什么方法才能设计出有效的测试用例?v有没有确保软件正确性的可行方法?有没有确保软件正确性的可行方法?v如何管理和控制软件开发过程中经常发生的变如何管理和控制软件开发过程中经常发生的变更?更?第十一章 质量概念质量概念v如果软件团队在所有软件工程活动中强调如果软件团队在所有软件工程
2、活动中强调质量,就可以减少很多必需的返工,结果质量,就可以减少很多必需的返工,结果是降低了成本,更为重要的是缩短了上市是降低了成本,更为重要的是缩短了上市时间。时间。v为实现高质量软件,必须做为实现高质量软件,必须做4项活动:已项活动:已验证的软件过程和实践、扎实的项目管理、验证的软件过程和实践、扎实的项目管理、全面的质量控制和具有质量保证基础设施。全面的质量控制和具有质量保证基础设施。质量概念vRic01提到:尽管意愿良好,有缺陷的提到:尽管意愿良好,有缺陷的代码仍然是软件工业的幽灵,计算机系统代码仍然是软件工业的幽灵,计算机系统的故障时间高达的故障时间高达45%,美国公司去年花,美国公司去
3、年花费了大约一千亿美元,用在了丧失的生产费了大约一千亿美元,用在了丧失的生产率和修补上,这还不包括使客户生气而失率和修补上,这还不包括使客户生气而失去了这些客户的代价。去了这些客户的代价。质量概念v 怎样差的软件才是劣质软件呢?定义是怎样差的软件才是劣质软件呢?定义是不同的,专家认为,只要每不同的,专家认为,只要每1000行代码行代码有有3或或4处缺陷就能使程序执行得很差,大处缺陷就能使程序执行得很差,大多数程序员每写多数程序员每写10行代码大约注入一个错行代码大约注入一个错误,许多商业产品有数百万行代码,软件误,许多商业产品有数百万行代码,软件经销商至少将开发预算的一半花费在了测经销商至少将
4、开发预算的一半花费在了测试时修改错误上。试时修改错误上。质量概念v如今,软件质量仍然是个问题,但是应该如今,软件质量仍然是个问题,但是应该责备谁?客户责备开发人员,认为粗心的责备谁?客户责备开发人员,认为粗心的实践导致低质量的软件。开发人员责备客实践导致低质量的软件。开发人员责备客户,认为不合理的交工日期以及连续不断户,认为不合理的交工日期以及连续不断的变更使开发人员在还没有完全验证时就的变更使开发人员在还没有完全验证时就交付了软件。交付了软件。什么是质量v质量是一个复杂多面的概念。可以从质量是一个复杂多面的概念。可以从5个个不同的观点来描述。玄妙观点认为质量是不同的观点来描述。玄妙观点认为质
5、量是马上就能识别的东西,却不能清楚地定义。马上就能识别的东西,却不能清楚地定义。用户观点是从最终用户的具体目标来说的。用户观点是从最终用户的具体目标来说的。如果产品达到这些目标,就显示出质量。如果产品达到这些目标,就显示出质量。制造商观点是从产品的原始规格说明的角制造商观点是从产品的原始规格说明的角度来定义质量,如果产品符合规格说明,度来定义质量,如果产品符合规格说明,就显示出质量。产品观点认为质量是产品就显示出质量。产品观点认为质量是产品的固有属性。最后,基于价值的观点根据的固有属性。最后,基于价值的观点根据客户愿意为产品支付多少钱来评测质量。客户愿意为产品支付多少钱来评测质量。什么是质量v
6、在软件开发中,设计质量包括设计满足需在软件开发中,设计质量包括设计满足需求模型规定的功能和特性的程度。符合质量求模型规定的功能和特性的程度。符合质量关注的是实现遵从设计的程度以及所得到的关注的是实现遵从设计的程度以及所得到的系统满足需求和性能目标的程度。系统满足需求和性能目标的程度。v用户满意度用户满意度=合格的产品合格的产品+好的质量好的质量+按预按预算和进度安排交付算和进度安排交付软件质量v软件质量可以这样定义:在一定程度上应用有软件质量可以这样定义:在一定程度上应用有效的软件过程,创造有用的产品,为生产者和效的软件过程,创造有用的产品,为生产者和使用者提供明显的价值。该定义强调了以下使用
7、者提供明显的价值。该定义强调了以下3个个重要方面:重要方面:v有效的软件过程为生产高质量的软件产品奠定了基有效的软件过程为生产高质量的软件产品奠定了基础。础。v有用的产品是指交付最终用户要求的内容、功能和有用的产品是指交付最终用户要求的内容、功能和特征,但最重要的是,以可靠、无误的方式交付这特征,但最重要的是,以可靠、无误的方式交付这些东西。些东西。v通过为软件产品的生产者和使用者增值,高质量软通过为软件产品的生产者和使用者增值,高质量软件为软件组织和最终用户群体带来了收益。件为软件组织和最终用户群体带来了收益。Garvin的质量维度v性能质量性能质量。软件是否交付了所有的内容、功能。软件是否
8、交付了所有的内容、功能和特性,这些内容、功能和特性在某种程度上和特性,这些内容、功能和特性在某种程度上是需求模型所规定的一部分,可以为最终用户是需求模型所规定的一部分,可以为最终用户提供价值。提供价值。v特性质量特性质量。软件是否首次提供了使最终用户惊。软件是否首次提供了使最终用户惊喜的特性?喜的特性?v可靠性可靠性。软件是否无误地提供了所有的特性和。软件是否无误地提供了所有的特性和能力,当需要(使用该软件)时,它是否是可能力,当需要(使用该软件)时,它是否是可用的,是否无错地提供了功能?用的,是否无错地提供了功能?v符合性符合性。软件是否遵从本地的和外部的与应用。软件是否遵从本地的和外部的与
9、应用领域相关的软件标准,是否遵循了事实存在的领域相关的软件标准,是否遵循了事实存在的设计惯例和编码惯例?设计惯例和编码惯例?Garvin的质量维度v耐久性耐久性。是否能够对软件进行维护或改正,而。是否能够对软件进行维护或改正,而不会粗心大意地产生料想不到的副作用?随着不会粗心大意地产生料想不到的副作用?随着时间的推移,变更会使错误率或可靠性变得更时间的推移,变更会使错误率或可靠性变得更糟吗?糟吗?v适用性适用性。软件能在可接受的短时期内完成维护。软件能在可接受的短时期内完成维护和改正吗?技术支持人员能得到所需的所有信和改正吗?技术支持人员能得到所需的所有信息以进行变更和修正缺陷吗?息以进行变更
10、和修正缺陷吗?v审美审美。美的东西具有某种优雅、特有的流畅和。美的东西具有某种优雅、特有的流畅和醒目的外在,这些都是很难量化的,但显然是醒目的外在,这些都是很难量化的,但显然是不可缺少的。美的软件具有这些特征。不可缺少的。美的软件具有这些特征。v感知感知。在某些情况下,一些偏见将影响人们对。在某些情况下,一些偏见将影响人们对质量的感知。质量的感知。McCall的质量因素vMcC77提出了影响软件质量因素的一提出了影响软件质量因素的一种有用的分类。这些软件质量因素侧重于种有用的分类。这些软件质量因素侧重于软件产品的软件产品的3个重要方面:操作特性、承个重要方面:操作特性、承受变更的能力以及对新环
11、境的适应能力,受变更的能力以及对新环境的适应能力,如图如图11-1所示。所示。McCall的质量因素图11-1McCall的软件质量因素McCall的质量因素v正确性正确性:程序满足其需求规格说明和完成用户:程序满足其需求规格说明和完成用户任务目标的程度。任务目标的程度。v可靠性可靠性:期望程序以所要求的精度完成其预期:期望程序以所要求的精度完成其预期功能的程度。功能的程度。v效率效率:程序完成其功能所需的计算资源和代码:程序完成其功能所需的计算资源和代码的数量。的数量。v完整性完整性:对未授权的人员访问软件或数据的可:对未授权的人员访问软件或数据的可控程度。控程度。v易用性易用性:对程序进行
12、学习、操作、准备输入和:对程序进行学习、操作、准备输入和解释输出所需要的工作量。解释输出所需要的工作量。McCall的质量因素v维护性维护性:查出和修复程序中的一个错误所需要:查出和修复程序中的一个错误所需要的工作量。的工作量。v灵活性灵活性:修改一个运行的程序所需的工作量。:修改一个运行的程序所需的工作量。v易测试性易测试性:测试程序以确保它能完成预期功能:测试程序以确保它能完成预期功能所需要的工作量。所需要的工作量。v可移植性可移植性:将程序从一个硬件和(或)软件系:将程序从一个硬件和(或)软件系统环境移植到另一个环境所需要的工作量。统环境移植到另一个环境所需要的工作量。v可复用性可复用性
13、:程序(或程序的一部分)可以在另:程序(或程序的一部分)可以在另一个应用系统中使用的程度。一个应用系统中使用的程度。v互操作性互操作性:将一个系统连接到另一系统所需要:将一个系统连接到另一系统所需要的工作量。的工作量。ISO 9126质量因素v功能性功能性:软件满足已确定要求的程度,由以下子属性表:软件满足已确定要求的程度,由以下子属性表征:适合性、准确性、互操作性、依从性和安全保密性。征:适合性、准确性、互操作性、依从性和安全保密性。v可靠性可靠性:软件可用的时间长度,由以下子属性表征:成:软件可用的时间长度,由以下子属性表征:成熟性、容错性和易恢复性。熟性、容错性和易恢复性。v易用性易用性
14、:软件容易使用的程度,由以下子属性表征:易:软件容易使用的程度,由以下子属性表征:易理解性、易学习性和易操作性。理解性、易学习性和易操作性。v效率效率:软件优化使用系统资源的程度,由以下子属性表:软件优化使用系统资源的程度,由以下子属性表征:时间特性和资源利用特性。征:时间特性和资源利用特性。v维护性维护性:软件易于修复的程度,由以下子属性表征:易:软件易于修复的程度,由以下子属性表征:易分析性、易改变性、稳定性和易测试性。分析性、易改变性、稳定性和易测试性。v可移植性可移植性:软件可以从一个环境移植到另一个环境的容:软件可以从一个环境移植到另一个环境的容易程度,由以下子属性表征:适应性、易安
15、装性、符合易程度,由以下子属性表征:适应性、易安装性、符合性和易替换性。性和易替换性。定向质量因素v直觉直觉:界面遵照预期使用模式的程度,使:界面遵照预期使用模式的程度,使得即使是新手,不经过专门培训也能使用。得即使是新手,不经过专门培训也能使用。v效率效率:定位或初步了解操作和信息的程度。:定位或初步了解操作和信息的程度。v健壮性健壮性:软件处理有错的输入数据或不恰:软件处理有错的输入数据或不恰当的用户交互的程度。当的用户交互的程度。v丰富性丰富性:界面提供丰富特征集的程度。:界面提供丰富特征集的程度。软件质量困境v如果生产了一个存在严重质量问题的软件系统,如果生产了一个存在严重质量问题的软
16、件系统,你将受到损失,因为没有人想去购买。另一方你将受到损失,因为没有人想去购买。另一方面,如果你花费无限的时间、极大的工作量和面,如果你花费无限的时间、极大的工作量和高额的资金来开发一个绝对完美的软件,那么高额的资金来开发一个绝对完美的软件,那么完成该软件将花费很长的时间,生产成本是极完成该软件将花费很长的时间,生产成本是极其高昂的,以至于破产。要么错过了市场机会,其高昂的,以至于破产。要么错过了市场机会,要么几乎耗尽所有的资源。所以企业界的人们要么几乎耗尽所有的资源。所以企业界的人们努力达到奇妙的中间状态:一方面,产品要足努力达到奇妙的中间状态:一方面,产品要足够好,不会立即被抛弃;另一方
17、面,又不是那够好,不会立即被抛弃;另一方面,又不是那么完美,不需要花费太长时间和太多成本。么完美,不需要花费太长时间和太多成本。Ven03质量成本v质量成本包括追求质量过程中或在履行质质量成本包括追求质量过程中或在履行质量有关的活动中引起的费用以及质量不佳量有关的活动中引起的费用以及质量不佳引起的下游费用等所有费用。为了解这些引起的下游费用等所有费用。为了解这些费用,一个组织必须收集度量数据,为目费用,一个组织必须收集度量数据,为目前的质量成本提供一个基准,找到降低这前的质量成本提供一个基准,找到降低这些成本的机会,并提供一个规范化的比对些成本的机会,并提供一个规范化的比对依据。质量成本可分为
18、依据。质量成本可分为预防成本、评估成预防成本、评估成本和失效成本。本和失效成本。质量成本v预防成本包括:预防成本包括:(1)计划和协调所有质量控制和计划和协调所有质量控制和质量保证所需管理活动的成本;质量保证所需管理活动的成本;(2)为开发完整为开发完整的需求模型和设计模型所增加的技术活动的成的需求模型和设计模型所增加的技术活动的成本;本;(3)测试计划的成本;测试计划的成本;(4)与这些活动有关与这些活动有关的所有培训成本。的所有培训成本。v评估成本包括为深入了解产品评估成本包括为深入了解产品“第一次通过第一次通过”每个过程的条件而进行的活动。评估成本的例每个过程的条件而进行的活动。评估成本
19、的例子包括:子包括:v对软件工程工作产品进行技术审查的成本。对软件工程工作产品进行技术审查的成本。v数据收集和度量估算的成本。数据收集和度量估算的成本。v测试和调试的成本。测试和调试的成本。质量成本v失效成本是那些如果在将产品发给客户之前或失效成本是那些如果在将产品发给客户之前或之后没有错误就不会存在的费用。失效成本可之后没有错误就不会存在的费用。失效成本可分为内部失效成本和外部失效成本。分为内部失效成本和外部失效成本。v内部失效成本发生在当你在发货之前发现错误内部失效成本发生在当你在发货之前发现错误时,内部失效成本包括:时,内部失效成本包括:v为纠正错误进行返工所需的成本。为纠正错误进行返工
20、所需的成本。v返工时无意中产生副作用,必须对副作用加以缓解而发生的返工时无意中产生副作用,必须对副作用加以缓解而发生的成本。成本。v组织为评估失效的模型而收集质量数据,由此发生的相关成组织为评估失效的模型而收集质量数据,由此发生的相关成本。本。v外部失效成本是在产品已经发运给客户之后发外部失效成本是在产品已经发运给客户之后发现了缺陷时的相关成本。现了缺陷时的相关成本。质量成本图11-2 改正错误和缺陷的相对成本v当我们从预防到检查内部失效和外部失效当我们从预防到检查内部失效和外部失效成本,找到并修复错误或缺陷的相关成本急成本,找到并修复错误或缺陷的相关成本急剧增加。剧增加。风险v人们拿自己的工作、自己的舒适、自己的人们拿自己的工作、自己的舒适、自己的安全、自己的娱乐、自己的决定以及自己安全、自己的娱乐、自己的决定以及自己的生命在计算机软件上下赌注。最好这是的生命在计算机软件上下赌注。最好这是正确的。正确的。v软件质量问题很重要,不管是嵌入在汽车软件质量问题很重要,不管是嵌入在汽车引擎中的,工厂里的机械手臂中的,还是引擎中的,工厂里的机械手臂中的,还是嵌入在医院的治疗设备中,这些应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论