SQECh3-软件质量模型课件_第1页
SQECh3-软件质量模型课件_第2页
SQECh3-软件质量模型课件_第3页
SQECh3-软件质量模型课件_第4页
SQECh3-软件质量模型课件_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

第三章软件质量模型第三章软件质量模型1整体概述THEFIRSTPARTOFTHEOVERALLOVERVIEW,PLEASESUMMARIZETHECONTENT第一部分整体概述第一部分23.1概述软件是一种产品;软件是一种特殊产品;软件是一种以人的智力为基础、团队生产出来的特殊复杂产品;软件是一种特殊的复杂产品;产品就要涉及质量;质量问题对软件这个特殊产品同样很重要;软件的特点带来质量管理的困难:规模大、内部复杂、难度量;

软件产品特殊+质量保证困难:使得软件质量成为一个关注的重要课题!3.1概述软件是一种产品;软件是一种特殊产品;软件是一种以33.1概述软件神话:

软件具有一些特征使得它们很有欺骗性,就像神话一样:如,它们表面上看很有道理(有时含有一定真实的成分);它们符合人的直觉;它们常常是有经验的实践者发布出来的。

管理者的神话

管理者有巨大的压力,要维持预算、保持进度及提高质量。就像溺水者抓住一根救命稻草,软件管理者常常抓住软件神话不放。【神话1】我们已经有了关于建造软件的标准和规程的书籍,难道它们不能给人们提供所有其需要知道的信息吗?【事实】不错关于标准的书籍已经存在,但真正用到了它们吗?软件实践者知道它们的存在吗?它们是否反映了现代软件开发的过程?它们完整吗?很多情况下,对于这些问题的答案均是“不”。3.1概述软件神话:软件具有一些特征使得它们43.1概述3.1.2软件质量工程体系的建立建立和实施质量管理体系的方法:

确定顾客和其他相关方的需求和期望;

建立组织的质量方针和质量目标;

确定实现质量目标必需的过程和职责;

确定和提供实现质量目标必需的资源;

规定测量每个过程的有效性和效率的方法;

应用这些测量方法确定每个过程的有效性和效率;

确定防止不合格并消除产生原因的措施;

建立和应用持续改进质量管理体系的过程;3.1概述建立和实施质量管理体系的方法:确定顾客和其他53.1概述3.1.3软件质量工程体系的构成5个层次3.1概述5个层次63.1概述3.1.4软件质量工程体系和管理体系的关系软件质量工程体系传统质量管理体系系统工程软件质量质量目标软件质量管理体系软件工程3.1概述软件质量工程体系传统质量管理体系系统工程质量目标73.2软件质量指标和因素(☆)3.2.1软件质量的属性指标

软件质量指标是衡量可识别软件质量特性的项目,即软件的质量可用一组有关的属性来表示。第二章已经介绍过,有多种不同的刻画方式。ISO/给出了软件质量归纳为6个基本要素,功能性、可靠性、易用性、效率、可维护性、可移植性。每个又划分为多个质量属性指标:■功能性:实现的功能达到设计规范,并满足用户需求的程度

功能的正确性(correction):和需求、已定义规范一致,正常运行;

功能的准确性(accuracy):结果在精度误差范围内;

功能的完整性(completeness):功能及定义清楚、可用,功能完备;3.2软件质量指标和因素(☆)软件质量指标83.2软件质量指标和因素(☆)3.2.1软件质量的属性指标■

可用性:用户掌握软件操作所要付出的时间及努力程度;

可操作性(operability):容易使用和操作;

通用性(commonality):遵守已有软件标准,采用统一数据标准和通信接口;

一致性(consistency):在整个开发周期使用相同标准;■可靠性:规定的时间和条件下,仍能维持其性能水准的程度;

系统自我恢复能力(autonomy):

健壮性(robustness):

系统的分布性(distributivity):3.2软件质量指标和因素(☆)■可用性:用户掌握软件操作93.2软件质量指标和因素(☆)3.2.1软件质量的属性指标■效率:软件执行某项功能所需电脑资源(含时间)的有效程度;

有效性(efficiency):

安全管理/完整性(safetymanagement):

易存取性(accessibility):■可维护性:当环境改变或软件发生错误时,执行修改或恢复所做努力的程度;模块化(Modularity)增强能力/灵活性(Augmentability)可测试性(Testability)可追溯性(Traceability)简单性(Simplicity)自我描述性(SelfDescriptiveness)系统兼容性(SystemCompatibility)文档质量(DocumentQuality)3.2软件质量指标和因素(☆)■效率:软件执行某项功能所103.2软件质量指标和因素(☆)3.2.1软件质量的属性指标■可移植性:从一个系统/环境移到另一系统/环境的容易程度;

独立性(independence):

可重用性(reusability):

互操作性(interoperability):

虚拟性(virtuality):

一般性(generality):3.2软件质量指标和因素(☆)■可移植性:从一个系统/环113.2软件质量指标和因素(☆)3.2.2软件质量的影响因素第二章我们学习了软件产品质量包括三个方面的内容:软件产品质量软件生产过程质量软件在商业环境中的质量因此,分析软件质量的影响因素时,也可以从这三个方面进行分析:从软件产品分析,什么因素对产品运行、修改、移植有较大影响?从软件生产过程分析,什么因素对计划、设计、实施和维护过程中的质量有较大影响?从软件商业环境分析,什么因素对客户、市场和销售等质量有较大影响?3.2软件质量指标和因素(☆)第二章我们学习了软件产品质量123.2软件质量指标和因素(☆)3.2.2软件质量的影响因素1.软件产品的质量因素:3.2软件质量指标和因素(☆)1.软件产品的质量因素:133.2软件质量指标和因素(☆)3.2.2软件质量的影响因素2.软件过程的质量因素:

项目计划过程:

●和客户的沟通能力

●软件产品特性定义的方法

●项目计划策略

●评审的流程、范围、方式和程度

●协同工作流程

●合同和用户管理流程和方法

●文档编写、管理等的规范和流程3.2软件质量指标和因素(☆)2.软件过程的质量因素:143.2软件质量指标和因素(☆)3.2.2软件质量的影响因素2.软件过程的质量因素:项目设计过程:

●软件产品指标的定义和解释;

●设计流程包括知识交换、结果评审等流程;

●设计标准改进流程;●协同工作流程;

●文档编写、管理等的规范和流程3.2软件质量指标和因素(☆)2.软件过程的质量因素:项153.2软件质量指标和因素(☆)3.2.2软件质量的影响因素2.软件过程的质量因素:项目实施过程:

●变更控制流程;

●执行过程跟踪方法、流程和相适应的系统;

●缺陷处理流程;

●文档编写、管理等的规范和流程项目维护过程:

●变更控制流程;

●用户反馈、相应处理机制;

●回归测试流程;3.2软件质量指标和因素(☆)2.软件过程的质量因素:项163.2软件质量指标和因素(☆)3.2.2软件质量的影响因素3.软件商业环境的质量因素:软件改进的策略产品开发模式市场定位产品标准文档形式和内容软件的后续服务模式3.2软件质量指标和因素(☆)3.软件商业环境的质量因素173.3软件质量模型(☆)3.3.1软件质量模型

软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。

定义一个软件的质量,就等价于为该软件定义一系列质量特性。

人们通常把影响软件质量的特性用软件质量模型来描述。通过模型刻画特性之间的关系,深入研究质量,寻求质量保证解决方案,达到软件质量指标。

从20世纪80年代开始,人们软件质量模型的研究,提出了一些有效的软件质量模型。3.3软件质量模型(☆)软件质量特性,反映183.3软件质量模型(☆)3.3.1软件质量模型

层次软件质量模型的共同特点就是将软件质量特性定义成分层模型;

最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量——二次特性。

二次特性在必要时又可由它的一些子质量特性定义和度量。1976年Boehm质量模型1979年McCall质量模型1985年

ISO质量模型

目前,主流的软件质量模型分为两类:层次模型和关系模型。比较著名的层次模型包括McCall模型、Boehm模型和ISO9126质量模型;比较著名的关系模型包括Perry模型和Gillies模型。3.3软件质量模型(☆)层次软件质量模型的193.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型1976年,BarryW.Boehm等人提出了定量评估软件质量的概念,并给出了60个质量度量公式。并最早提出了软件质量模型的分层方案。后经完善,1978年Boehm质量模型正式发布。巴利·玻姆(BarryW.Boehm)BarryW.Boehm,1935,美国国家工程院院士,AIAA、IEEE、ACM会士(Fellow),他从1955年开始就尝试在软件开发的敏捷和纪律之间寻找平衡点,他是TRW软件工程教授和南加州大学软件工程中心主任。美国国防部高级研究计划署(DARPA)技术办公室的主任,并担任TRW(世界著名的军工系统承包商)的首席科学家,美国空军科学顾问委员会主席。国际软件工程领域的先驱者和领导者。3.3软件质量模型(☆)1.Boehm软件质量模型203.3软件质量模型(☆)3.3.1软件质量模型巴利·玻姆的贡献

他在软件工程领域做出了非常杰出的贡献,主要包括:提出了著名的软件开发的螺旋模型(SpiralModel)以及增量式承诺模型(IncrementalCommitmentModel),用于系统与软件工程成本估算的COCOMO系列模型(ConstructiveCostModel),软件质量度量模型,适用于软件管理与需求决策的W理论(TheoryW)等。发表了上百篇学术论文,指导过数十名博士研究生。提出了两种先进的软件工程环境:TRW软件生产率系统和QuantumLeap环境。出版了经典书籍《软件工程经济学》。巴利·玻姆的荣誉J.D.Warnier奖NSIAGraceMurrayHopper奖ACM杰出研究奖(TheACMDistinguishedResearchAward)3.3软件质量模型(☆)巴利·玻姆的贡献他213.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型三个层次:软件质量要素、软件质量评价准则、软件质量度量。Boehm第一层:6个软件质量要素功能性:软件所实现的功能满足用户需求的程度.功能性反映了所开发的软件满足用户陈述或隐含的需求的程度,即用户要求的功能是否全部实现了。可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度外,还反映了在故障发生时能继续运行的程度。3.3软件质量模型(☆)1.Boehm软件质量模型三个223.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成功能要求时,有没有浪费资源,此外“资源”这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。3.3软件质量模型(☆)1.Boehm软件质量模型易使233.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型可维护性:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维护性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。

一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。3.3软件质量模型(☆)1.Boehm软件质量模型可维243.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型Boehm第二层:22个软件质量评价准则精确性:在计算和输出时所需精度的软件属性;健壮性:在发生意外时,能继续执行和恢复系统的软件属性;安全性:防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性;以及:通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、产品文件完备性。3.3软件质量模型(☆)1.Boehm软件质量模型Bo253.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型Boehm第二层:22个软件质量评价准则精确性:在计算和输出时所需精度的软件属性;健壮性:在发生意外时,能继续执行和恢复系统的软件属性;安全性:防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性;以及:通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、产品文件完备性。3.3软件质量模型(☆)1.Boehm软件质量模型Bo263.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型软件质量评价准则的一定组合将反映某一软件质量要素,部分软件质量要素与评价准则间的关系如下图:3.3软件质量模型(☆)1.Boehm软件质量模型软件273.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型Boehm第三层:软件质量度量根据软件的需求分析、概要设计、详细设计、实现、组装测试、确认测试和维护与使用七个阶段,制定了针对每一个阶段的问卷表,以此实现软件开发过程的质量控制。对于企业来说,不管是定制,还是外购软件后的二次开发,了解和监控软件开发过程每一个环节的进展情况、产品水平都是至关重要的,因为软件质量的高低,很大程度上取决于用户的参与程度。3.3软件质量模型(☆)1.Boehm软件质量模型Bo283.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型最早的Boehm质量模型3.3软件质量模型(☆)1.Boehm软件质量模型最早29改进的Boehm软件质量模型阐述性互用性数据公开性正确性可靠性效率完整性可用性可维护性可测试性灵活性可移植性重复性连贯性容错性执行效率/储存效率存取控制/存取检查可训练沟通良好简单性易操作的工具自我操作性扩展性一般性模块性软件系统独立性机器独立性通讯公开性正确性可操作性改进的Boehm软件质量模型阐述性互用性数据公开性正确性可靠303.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型应用Boehm模型进行软件质量评价要注意:对于不同类型的软件,系统软件、控制软件、管理软件、CAD软件、教育软件、网络软件及不同规模的软件,对于质量要求、评价准则、度量问题的侧重点有所不同应加以区别。3.3软件质量模型(☆)1.Boehm软件质量模型应用313.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型在需求分析、概要设计、详细设计及其实现阶段,主要评价软件需求是否完备,设计是否完全反映了需求以及编码是否简洁、清晰。而且,每一个阶段都存在一份特定的度量工作表,它由特定的度量元素组成,根据度量元素的得分就可逐步得到度量准则及质量要素的得分,并在此基础上做出评价。对软件各阶段都进行质量度量的根本目的是以此控制软件成本、开发进度,改善软件开发的效率和质量。3.3软件质量模型(☆)1.Boehm软件质量模型在需323.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型1977年由McCall和他的同事建立。将质量因素集中在软件产品的3个重要方面的11个属性上。McCall质量模型也是三层次模型:FCM三层次模型(Factor,Criteria,Metrics)。面向软件产品运行、修正、转移的反映软件质量的特性;——11个软件外部质量特性用作评价规则的软件属性;——23软件的内部质量特征观察软件质量的软件属性度量。3.3软件质量模型(☆)2.McCall软件质量模型333.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型McCall质量模型的三层次框架特性评价准则评价准则评价准则度量度量度量面向管理观点的产品质量决定产品质量的软件属性定量化地度量软件属性3.3软件质量模型(☆)2.McCall软件质量模型M343.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型3.3软件质量模型(☆)2.McCall软件质量模型353.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型层

级名

称内

容F质量要素:描述和评价软件质量的一组属性功能性、可靠性、易用性、效率性、可维护性、可移植性等质量特性以及将质量特性细化产生的子特性C衡量标准:

衡量标准的组合反映某一软件质量要素精确性、稳健性、安全性、通信/处理/设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件/软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、文件完备性等M量度标准:可由各使用单位自定义根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量3.3软件质量模型(☆)2.McCall软件质量模型层363.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型正确性在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。可靠性软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。效率为了完成预定功能,软件系统所需的计算机资源的多少。完整性为了某一目的而保护数据,避免它受到偶然的、或有意的破坏、改动或遗失的能力。可使用性对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。可维护性为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。可测试性测试软件已确保其能够执行预定功能所需工作量的大小。灵活性修改或改进一个已投入运行的软件所需工作量的大小。可移植性将一个软件系统从一个计算机或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。复用性一个软件(或软件的部件)能再次用于其他应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。互连性连接一个软件和其他系统所需工作量的大小。又称为互操作性。11个软件外部质量特性3.3软件质量模型(☆)2.McCall软件质量模型正373.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型完备性一致性准确性容错性简单性模块性通用性可扩充性工具性自描述性执行效率存储效率存取控制存取审查可操作性培训性通信性软件系统独立性机器独立性通信通用性数据通用性简明性23个软件的内部质量特征:3.3软件质量模型(☆)2.McCall软件质量模型完383.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型1991年,国际标准化组织和国际电工委员会共同成立的联合技术委员会颁布了ISO/IEC9126质量模型。该模型描述了一个由两部分组成的软件产品质量模型:一部分指定了内在质量和外在质量的六个特征,它们还可以再继续分成更多的子特征。这些子特征在软件作为计算机系统的一部分时会明显地表现出来,并且会成为内在的软件属性的结果。另一部分则指定了使用中的质量属性,它们是与针对六个软件产品质量属性的用户效果联合在一起的。3.3软件质量模型(☆)3.ISO软件质量模型19393.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型横向上该质量模型分6个特性来描述内在和外在质量:(1)功能性(Functionality):与一组功能及其指定的性质有关的一组属性。(2)可靠性(Reliability):与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性。(3)易用性(Usability):与一组规定或潜在的用户为使用软件所需做的努力和对这样的使用所做的评价有关的一组属性。3.3软件质量模型(☆)3.ISO软件质量模型横向上该403.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型(4)效率(Efficiency):与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性。(5)可维护性(Maintainability):与进行指定的修改所需的努力有关的一组属性。(6)可移植性(Portability):与软件可从某一环境转移到另一环境的能力有关的一组属性。3.3软件质量模型(☆)3.ISO软件质量模型(4)效413.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型纵向上该质量模型又分为3个:(1)内部质量模型:基于内部视角,比如开发者关注的软件产品本身具有的质量特性的总体。(2)外部质量模型:基于外部视角,比如运行软件的系统所体验到的软件产品质量特性的总体。(3)使用中质量模型:基于用户视角,软件产品用于指定的环境和使用周境时的软件质量特性的总体。3.3软件质量模型(☆)3.ISO软件质量模型纵向上该423.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型外部和内部质量模型功能性可靠性易用性效率性可维护性可移植性适合性准确性互操作性安全机密性成熟性容错性易恢复性易理解性易学性易操作性时间特性资源利用性易分析性易改变性稳定性易测试性适应性易安装性共存性易替换性3.3软件质量模型(☆)3.ISO软件质量模型功能性可433.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型使用质量模型有效性生产效率安全性满意度任务有效性任务完成量出错频率任务时间任务效率经济生产率生产比率相对用户效率任务完成量出错频率用户健康与安全对人身安全的影响经济损失软件损坏满意度标度满意度问卷选用度3.3软件质量模型(☆)3.ISO软件质量模型有效性生443.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型通常使用ISO简化质量模型,它也是由三层模型组成:高层:软件质量需求评价准则(SQRC)6个要素中层:软件质量设计评价准则(SQDC)20个准则底层:软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定。3.3软件质量模型(☆)3.ISO软件质量模型通常使用453.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型用户自定义软件产品度量标准SQRCSQDCSQMC

3.3软件质量模型(☆)3.ISO软件质量模型用户自定46需要注意,无论那个质量模型,软件质量特性之间存在竞争!3.3软件质量模型(☆)3.3.1软件质量模型需要注意,无论那个质量模型,软件质量特性之间存在竞争!3.3473.3软件质量模型(☆)3.3.2软件质量模型对比区别:Boehm模型基于更为广泛的一系列质量特征,它包含了硬件性能的特征;McCall模型对于本质上并不相同的一些问题有可能会被当成同样的问题来对待,导致通过模型获得的反馈也基本相同。这就使得指标的制定及其定量的结果变得难以评价。ISO9126模型采用了纵横划分方式,更完善;共同点:

层次模型

模型研究的对象是软件产品

着重分析了软件质量属性的影响因素

在软件过程质量方面显得不足

3.3软件质量模型(☆)区别:共同点:483.3软件质量模型(☆)3.3.2软件质量模型对比序号质量要素/特性McCallBoehmISO91261正确性(Correctness)X功能性2可靠性(Reliability)XXX3完整性(Integrity)X可靠性4可用性(Usability)X人体工程学X5效率(Efficiency)XXX6可维护性(Maintainability)XXX7可测试性(Testability)X可维护性可维护性8互操作性(Interoperability)X易用性9灵活性(Flexibility)X10可重用性(Reusability)X可移植性可维护性三种软件质量模型刻画的高层特性比较3.3软件质量模型(☆)序号质量要素/特性McCallBo493.3软件质量模型(☆)3.3.2软件质量模型对比

层次模型由一些质量属性、标准及准则等构成,它们只表达了质量属性之间一些正面的影响关系,对于那些更复杂的关系它们却无能为力。关系模型能够表达质量属性之间正面、反面及中立的影响,但对于一些更为复杂的关系则同样无法表达。并且,它们还有一个相同的弱点,就是现有的这些质量模型总是意图能够适用于所有类型的软件开发,成为一个通用的模型。3.3软件质量模型(☆)层次模型由一些质量503.3软件质量模型(☆)3.3.2软件质量模型对比

然而,软件质量是非常复杂的,很难定义出一个能够适用于所有软件质量度量的模型。每个软件系统都有它自己的特征,我们在使用质量模型时必须考虑各类应用的特殊需求。并且,由于计算机应用的飞速发展,人们需要寻找不仅能够在软件质量管理方面提供有效帮助,而且还能够对软件开发中的其他活动提供相应支持的质量模型。目前,围绕软件质量模型的研究主要分为两个方向:

一是根据经验提出软件质量模型;

二是给出一种构建软件质量模型的方法;3.3软件质量模型(☆)然而,软件质量是非513.5软件质量成本3.5.1质量成本的概念田口玄一:“所谓质量,是指产品上市后给社会带来的损失。”

费根堡姆主张把质量预防费用和检验费用与产品不合要求所造成的厂内损失和厂外损失一起加以考虑,并形成质量成本报告

ISO8402-1994:质量成本是为确保和保证满意的质量而发生的费用以及没有达到满意的质量所造成损失的总和,即包括保证费用和损失费用。3.5软件质量成本田口玄一:“所谓质量,是指产品上市后给社52质量成本的构成质量成本=质量保证成本+损失成本

保证成本:为保证满意的质量而发生的费用

损失成本:没有达到满意的质量所造成损失

质量成本=质量预防成本+评价成本+失效成本(补救成本)保证成本=预防成本+评价成本

预防成本:预防产生质量问题(软件缺陷)的费用,是企业的计划性支出,专门用来确保在软件产品交付和服务的各个环节不出现失误。

评价成本:是指在交付和服务环节上,为评定软件产品或服务是否符合质量要求而进行的试验、软件测试和质量评估等所必需的支出。

失效成本:分为内部的和外部的,如果在软件发布之前发现质量问题,而要求重做、修改和问题分析所带来的成本属内部失效成本,包括修正软件缺陷、回归测试等,以及因产品或服务不合要求导致的延误。3.5软件质量成本3.5.1质量成本的概念质量成本的构成质量成本=质量保证成本+损失成本3.5软件53提问与解答环节Questionsandanswers提问与解答环节54结束语

感谢参与本课程,也感激大家对我们工作的支持与积极的参与。课程后会发放课程满意度评估表,如果对我们课程或者工作有什么建议和意见,也请写在上边结束语

55感谢观看Theusercandemonstrateonaprojectororcomputer,orprintthepresentationandmakeitintoafilm感谢观看56第三章软件质量模型第三章软件质量模型57整体概述THEFIRSTPARTOFTHEOVERALLOVERVIEW,PLEASESUMMARIZETHECONTENT第一部分整体概述第一部分583.1概述软件是一种产品;软件是一种特殊产品;软件是一种以人的智力为基础、团队生产出来的特殊复杂产品;软件是一种特殊的复杂产品;产品就要涉及质量;质量问题对软件这个特殊产品同样很重要;软件的特点带来质量管理的困难:规模大、内部复杂、难度量;

软件产品特殊+质量保证困难:使得软件质量成为一个关注的重要课题!3.1概述软件是一种产品;软件是一种特殊产品;软件是一种以593.1概述软件神话:

软件具有一些特征使得它们很有欺骗性,就像神话一样:如,它们表面上看很有道理(有时含有一定真实的成分);它们符合人的直觉;它们常常是有经验的实践者发布出来的。

管理者的神话

管理者有巨大的压力,要维持预算、保持进度及提高质量。就像溺水者抓住一根救命稻草,软件管理者常常抓住软件神话不放。【神话1】我们已经有了关于建造软件的标准和规程的书籍,难道它们不能给人们提供所有其需要知道的信息吗?【事实】不错关于标准的书籍已经存在,但真正用到了它们吗?软件实践者知道它们的存在吗?它们是否反映了现代软件开发的过程?它们完整吗?很多情况下,对于这些问题的答案均是“不”。3.1概述软件神话:软件具有一些特征使得它们603.1概述3.1.2软件质量工程体系的建立建立和实施质量管理体系的方法:

确定顾客和其他相关方的需求和期望;

建立组织的质量方针和质量目标;

确定实现质量目标必需的过程和职责;

确定和提供实现质量目标必需的资源;

规定测量每个过程的有效性和效率的方法;

应用这些测量方法确定每个过程的有效性和效率;

确定防止不合格并消除产生原因的措施;

建立和应用持续改进质量管理体系的过程;3.1概述建立和实施质量管理体系的方法:确定顾客和其他613.1概述3.1.3软件质量工程体系的构成5个层次3.1概述5个层次623.1概述3.1.4软件质量工程体系和管理体系的关系软件质量工程体系传统质量管理体系系统工程软件质量质量目标软件质量管理体系软件工程3.1概述软件质量工程体系传统质量管理体系系统工程质量目标633.2软件质量指标和因素(☆)3.2.1软件质量的属性指标

软件质量指标是衡量可识别软件质量特性的项目,即软件的质量可用一组有关的属性来表示。第二章已经介绍过,有多种不同的刻画方式。ISO/给出了软件质量归纳为6个基本要素,功能性、可靠性、易用性、效率、可维护性、可移植性。每个又划分为多个质量属性指标:■功能性:实现的功能达到设计规范,并满足用户需求的程度

功能的正确性(correction):和需求、已定义规范一致,正常运行;

功能的准确性(accuracy):结果在精度误差范围内;

功能的完整性(completeness):功能及定义清楚、可用,功能完备;3.2软件质量指标和因素(☆)软件质量指标643.2软件质量指标和因素(☆)3.2.1软件质量的属性指标■

可用性:用户掌握软件操作所要付出的时间及努力程度;

可操作性(operability):容易使用和操作;

通用性(commonality):遵守已有软件标准,采用统一数据标准和通信接口;

一致性(consistency):在整个开发周期使用相同标准;■可靠性:规定的时间和条件下,仍能维持其性能水准的程度;

系统自我恢复能力(autonomy):

健壮性(robustness):

系统的分布性(distributivity):3.2软件质量指标和因素(☆)■可用性:用户掌握软件操作653.2软件质量指标和因素(☆)3.2.1软件质量的属性指标■效率:软件执行某项功能所需电脑资源(含时间)的有效程度;

有效性(efficiency):

安全管理/完整性(safetymanagement):

易存取性(accessibility):■可维护性:当环境改变或软件发生错误时,执行修改或恢复所做努力的程度;模块化(Modularity)增强能力/灵活性(Augmentability)可测试性(Testability)可追溯性(Traceability)简单性(Simplicity)自我描述性(SelfDescriptiveness)系统兼容性(SystemCompatibility)文档质量(DocumentQuality)3.2软件质量指标和因素(☆)■效率:软件执行某项功能所663.2软件质量指标和因素(☆)3.2.1软件质量的属性指标■可移植性:从一个系统/环境移到另一系统/环境的容易程度;

独立性(independence):

可重用性(reusability):

互操作性(interoperability):

虚拟性(virtuality):

一般性(generality):3.2软件质量指标和因素(☆)■可移植性:从一个系统/环673.2软件质量指标和因素(☆)3.2.2软件质量的影响因素第二章我们学习了软件产品质量包括三个方面的内容:软件产品质量软件生产过程质量软件在商业环境中的质量因此,分析软件质量的影响因素时,也可以从这三个方面进行分析:从软件产品分析,什么因素对产品运行、修改、移植有较大影响?从软件生产过程分析,什么因素对计划、设计、实施和维护过程中的质量有较大影响?从软件商业环境分析,什么因素对客户、市场和销售等质量有较大影响?3.2软件质量指标和因素(☆)第二章我们学习了软件产品质量683.2软件质量指标和因素(☆)3.2.2软件质量的影响因素1.软件产品的质量因素:3.2软件质量指标和因素(☆)1.软件产品的质量因素:693.2软件质量指标和因素(☆)3.2.2软件质量的影响因素2.软件过程的质量因素:

项目计划过程:

●和客户的沟通能力

●软件产品特性定义的方法

●项目计划策略

●评审的流程、范围、方式和程度

●协同工作流程

●合同和用户管理流程和方法

●文档编写、管理等的规范和流程3.2软件质量指标和因素(☆)2.软件过程的质量因素:703.2软件质量指标和因素(☆)3.2.2软件质量的影响因素2.软件过程的质量因素:项目设计过程:

●软件产品指标的定义和解释;

●设计流程包括知识交换、结果评审等流程;

●设计标准改进流程;●协同工作流程;

●文档编写、管理等的规范和流程3.2软件质量指标和因素(☆)2.软件过程的质量因素:项713.2软件质量指标和因素(☆)3.2.2软件质量的影响因素2.软件过程的质量因素:项目实施过程:

●变更控制流程;

●执行过程跟踪方法、流程和相适应的系统;

●缺陷处理流程;

●文档编写、管理等的规范和流程项目维护过程:

●变更控制流程;

●用户反馈、相应处理机制;

●回归测试流程;3.2软件质量指标和因素(☆)2.软件过程的质量因素:项723.2软件质量指标和因素(☆)3.2.2软件质量的影响因素3.软件商业环境的质量因素:软件改进的策略产品开发模式市场定位产品标准文档形式和内容软件的后续服务模式3.2软件质量指标和因素(☆)3.软件商业环境的质量因素733.3软件质量模型(☆)3.3.1软件质量模型

软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。

定义一个软件的质量,就等价于为该软件定义一系列质量特性。

人们通常把影响软件质量的特性用软件质量模型来描述。通过模型刻画特性之间的关系,深入研究质量,寻求质量保证解决方案,达到软件质量指标。

从20世纪80年代开始,人们软件质量模型的研究,提出了一些有效的软件质量模型。3.3软件质量模型(☆)软件质量特性,反映743.3软件质量模型(☆)3.3.1软件质量模型

层次软件质量模型的共同特点就是将软件质量特性定义成分层模型;

最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量——二次特性。

二次特性在必要时又可由它的一些子质量特性定义和度量。1976年Boehm质量模型1979年McCall质量模型1985年

ISO质量模型

目前,主流的软件质量模型分为两类:层次模型和关系模型。比较著名的层次模型包括McCall模型、Boehm模型和ISO9126质量模型;比较著名的关系模型包括Perry模型和Gillies模型。3.3软件质量模型(☆)层次软件质量模型的753.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型1976年,BarryW.Boehm等人提出了定量评估软件质量的概念,并给出了60个质量度量公式。并最早提出了软件质量模型的分层方案。后经完善,1978年Boehm质量模型正式发布。巴利·玻姆(BarryW.Boehm)BarryW.Boehm,1935,美国国家工程院院士,AIAA、IEEE、ACM会士(Fellow),他从1955年开始就尝试在软件开发的敏捷和纪律之间寻找平衡点,他是TRW软件工程教授和南加州大学软件工程中心主任。美国国防部高级研究计划署(DARPA)技术办公室的主任,并担任TRW(世界著名的军工系统承包商)的首席科学家,美国空军科学顾问委员会主席。国际软件工程领域的先驱者和领导者。3.3软件质量模型(☆)1.Boehm软件质量模型763.3软件质量模型(☆)3.3.1软件质量模型巴利·玻姆的贡献

他在软件工程领域做出了非常杰出的贡献,主要包括:提出了著名的软件开发的螺旋模型(SpiralModel)以及增量式承诺模型(IncrementalCommitmentModel),用于系统与软件工程成本估算的COCOMO系列模型(ConstructiveCostModel),软件质量度量模型,适用于软件管理与需求决策的W理论(TheoryW)等。发表了上百篇学术论文,指导过数十名博士研究生。提出了两种先进的软件工程环境:TRW软件生产率系统和QuantumLeap环境。出版了经典书籍《软件工程经济学》。巴利·玻姆的荣誉J.D.Warnier奖NSIAGraceMurrayHopper奖ACM杰出研究奖(TheACMDistinguishedResearchAward)3.3软件质量模型(☆)巴利·玻姆的贡献他773.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型三个层次:软件质量要素、软件质量评价准则、软件质量度量。Boehm第一层:6个软件质量要素功能性:软件所实现的功能满足用户需求的程度.功能性反映了所开发的软件满足用户陈述或隐含的需求的程度,即用户要求的功能是否全部实现了。可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度外,还反映了在故障发生时能继续运行的程度。3.3软件质量模型(☆)1.Boehm软件质量模型三个783.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成功能要求时,有没有浪费资源,此外“资源”这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。3.3软件质量模型(☆)1.Boehm软件质量模型易使793.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型可维护性:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维护性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。

一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。3.3软件质量模型(☆)1.Boehm软件质量模型可维803.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型Boehm第二层:22个软件质量评价准则精确性:在计算和输出时所需精度的软件属性;健壮性:在发生意外时,能继续执行和恢复系统的软件属性;安全性:防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性;以及:通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、产品文件完备性。3.3软件质量模型(☆)1.Boehm软件质量模型Bo813.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型Boehm第二层:22个软件质量评价准则精确性:在计算和输出时所需精度的软件属性;健壮性:在发生意外时,能继续执行和恢复系统的软件属性;安全性:防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性;以及:通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、产品文件完备性。3.3软件质量模型(☆)1.Boehm软件质量模型Bo823.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型软件质量评价准则的一定组合将反映某一软件质量要素,部分软件质量要素与评价准则间的关系如下图:3.3软件质量模型(☆)1.Boehm软件质量模型软件833.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型Boehm第三层:软件质量度量根据软件的需求分析、概要设计、详细设计、实现、组装测试、确认测试和维护与使用七个阶段,制定了针对每一个阶段的问卷表,以此实现软件开发过程的质量控制。对于企业来说,不管是定制,还是外购软件后的二次开发,了解和监控软件开发过程每一个环节的进展情况、产品水平都是至关重要的,因为软件质量的高低,很大程度上取决于用户的参与程度。3.3软件质量模型(☆)1.Boehm软件质量模型Bo843.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型最早的Boehm质量模型3.3软件质量模型(☆)1.Boehm软件质量模型最早85改进的Boehm软件质量模型阐述性互用性数据公开性正确性可靠性效率完整性可用性可维护性可测试性灵活性可移植性重复性连贯性容错性执行效率/储存效率存取控制/存取检查可训练沟通良好简单性易操作的工具自我操作性扩展性一般性模块性软件系统独立性机器独立性通讯公开性正确性可操作性改进的Boehm软件质量模型阐述性互用性数据公开性正确性可靠863.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型应用Boehm模型进行软件质量评价要注意:对于不同类型的软件,系统软件、控制软件、管理软件、CAD软件、教育软件、网络软件及不同规模的软件,对于质量要求、评价准则、度量问题的侧重点有所不同应加以区别。3.3软件质量模型(☆)1.Boehm软件质量模型应用873.3软件质量模型(☆)3.3.1软件质量模型1.Boehm软件质量模型在需求分析、概要设计、详细设计及其实现阶段,主要评价软件需求是否完备,设计是否完全反映了需求以及编码是否简洁、清晰。而且,每一个阶段都存在一份特定的度量工作表,它由特定的度量元素组成,根据度量元素的得分就可逐步得到度量准则及质量要素的得分,并在此基础上做出评价。对软件各阶段都进行质量度量的根本目的是以此控制软件成本、开发进度,改善软件开发的效率和质量。3.3软件质量模型(☆)1.Boehm软件质量模型在需883.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型1977年由McCall和他的同事建立。将质量因素集中在软件产品的3个重要方面的11个属性上。McCall质量模型也是三层次模型:FCM三层次模型(Factor,Criteria,Metrics)。面向软件产品运行、修正、转移的反映软件质量的特性;——11个软件外部质量特性用作评价规则的软件属性;——23软件的内部质量特征观察软件质量的软件属性度量。3.3软件质量模型(☆)2.McCall软件质量模型893.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型McCall质量模型的三层次框架特性评价准则评价准则评价准则度量度量度量面向管理观点的产品质量决定产品质量的软件属性定量化地度量软件属性3.3软件质量模型(☆)2.McCall软件质量模型M903.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型3.3软件质量模型(☆)2.McCall软件质量模型913.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型层

级名

称内

容F质量要素:描述和评价软件质量的一组属性功能性、可靠性、易用性、效率性、可维护性、可移植性等质量特性以及将质量特性细化产生的子特性C衡量标准:

衡量标准的组合反映某一软件质量要素精确性、稳健性、安全性、通信/处理/设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件/软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、文件完备性等M量度标准:可由各使用单位自定义根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量3.3软件质量模型(☆)2.McCall软件质量模型层923.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型正确性在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。可靠性软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。效率为了完成预定功能,软件系统所需的计算机资源的多少。完整性为了某一目的而保护数据,避免它受到偶然的、或有意的破坏、改动或遗失的能力。可使用性对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。可维护性为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。可测试性测试软件已确保其能够执行预定功能所需工作量的大小。灵活性修改或改进一个已投入运行的软件所需工作量的大小。可移植性将一个软件系统从一个计算机或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。复用性一个软件(或软件的部件)能再次用于其他应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。互连性连接一个软件和其他系统所需工作量的大小。又称为互操作性。11个软件外部质量特性3.3软件质量模型(☆)2.McCall软件质量模型正933.3软件质量模型(☆)3.3.1软件质量模型2.McCall软件质量模型完备性一致性准确性容错性简单性模块性通用性可扩充性工具性自描述性执行效率存储效率存取控制存取审查可操作性培训性通信性软件系统独立性机器独立性通信通用性数据通用性简明性23个软件的内部质量特征:3.3软件质量模型(☆)2.McCall软件质量模型完943.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型1991年,国际标准化组织和国际电工委员会共同成立的联合技术委员会颁布了ISO/IEC9126质量模型。该模型描述了一个由两部分组成的软件产品质量模型:一部分指定了内在质量和外在质量的六个特征,它们还可以再继续分成更多的子特征。这些子特征在软件作为计算机系统的一部分时会明显地表现出来,并且会成为内在的软件属性的结果。另一部分则指定了使用中的质量属性,它们是与针对六个软件产品质量属性的用户效果联合在一起的。3.3软件质量模型(☆)3.ISO软件质量模型19953.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型横向上该质量模型分6个特性来描述内在和外在质量:(1)功能性(Functionality):与一组功能及其指定的性质有关的一组属性。(2)可靠性(Reliability):与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性。(3)易用性(Usability):与一组规定或潜在的用户为使用软件所需做的努力和对这样的使用所做的评价有关的一组属性。3.3软件质量模型(☆)3.ISO软件质量模型横向上该963.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型(4)效率(Efficiency):与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性。(5)可维护性(Maintainability):与进行指定的修改所需的努力有关的一组属性。(6)可移植性(Portability):与软件可从某一环境转移到另一环境的能力有关的一组属性。3.3软件质量模型(☆)3.ISO软件质量模型(4)效973.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型纵向上该质量模型又分为3个:(1)内部质量模型:基于内部视角,比如开发者关注的软件产品本身具有的质量特性的总体。(2)外部质量模型:基于外部视角,比如运行软件的系统所体验到的软件产品质量特性的总体。(3)使用中质量模型:基于用户视角,软件产品用于指定的环境和使用周境时的软件质量特性的总体。3.3软件质量模型(☆)3.ISO软件质量模型纵向上该983.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型外部和内部质量模型功能性可靠性易用性效率性可维护性可移植性适合性准确性互操作性安全机密性成熟性容错性易恢复性易理解性易学性易操作性时间特性资源利用性易分析性易改变性稳定性易测试性适应性易安装性共存性易替换性3.3软件质量模型(☆)3.ISO软件质量模型功能性可993.3软件质量模型(☆)3.3.1软件质量模型3.ISO软件质量模型使用质量模型有效性生产效率安全性满意度任务有效性任务完成量出错频率任务时间

温馨提示

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

评论

0/150

提交评论