《软件质量与测试》课件第九章软件质量和质量保证_第1页
《软件质量与测试》课件第九章软件质量和质量保证_第2页
《软件质量与测试》课件第九章软件质量和质量保证_第3页
《软件质量与测试》课件第九章软件质量和质量保证_第4页
《软件质量与测试》课件第九章软件质量和质量保证_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

本章内容9.1软件质量9.2软件度量9.3软件能力成熟度模型9.4软件质量保证沈阳师范大学软件学院1本节内容9.1软件质量9.1.1软件质量的含义9.1.2软件质量模型沈阳师范大学软件学院29.1.1软件质量的含义9.1.1软件质量的含义首先来看一些关于质量的定义。1970年,Juran和Gryna把质量定义为“适于使用”。1979年,Crosby将质量定义为“符合需求”。在GB/T6583-ISO8404(1994版)中,将质量定义为“反映实体满足明确和隐含需要的能力的特性的总和”,这里的实体是“可以单独描述和研究的事物”,如产品、活动、过程、组织的体系等。在ISO9000:2000中,将质量定义为“一组固有特性满足要求的程度”。至于软件质量,很容易从上述质量的定义中作扩展。IEEE对软件质量的定义如下。软件质量是:系统、部件或过程满足顾客或者用户需要或期望的程度。系统、部件或过程满足规定需求的程度。沈阳师范大学软件学院39.1.1软件质量的含义9.1.1软件质量的含义首先来看一些关于质量的定义。1970年,Juran和Gryna把质量定义为“适于使用”。1979年,Crosby将质量定义为“符合需求”。在GB/T6583-ISO8404(1994版)中,将质量定义为“反映实体满足明确和隐含需要的能力的特性的总和”,这里的实体是“可以单独描述和研究的事物”,如产品、活动、过程、组织的体系等。在ISO9000:2000中,将质量定义为“一组固有特性满足要求的程度”。至于软件质量,很容易从上述质量的定义中作扩展。IEEE对软件质量的定义如下。软件质量是:系统、部件或过程满足顾客或者用户需要或期望的程度。系统、部件或过程满足规定需求的程度。沈阳师范大学软件学院49.1.2软件质量模型9.1.2软件质量模型为了避免软件质量评价的盲目性,需要制定软件质量模型,从多方面、客观地、定量地对软件质量进行度量和评价。比较常见的三个软件质量模型是McCall模型、Boehm模型和ISO9126。沈阳师范大学软件学院59.1.2软件质量模型9.1.2软件质量模型McCall模型是McCall和他同事在1977年提出的,如图所示。沈阳师范大学软件学院6McCall质量模型将软件质量分为3个重要的方面:操作特性(产品运行)承受可改变能力(产品修订)新环境适应能力(产品变迁)图McCall质量模型9.1.2软件质量模型9.1.2软件质量模型沈阳师范大学软件学院7Boehm模型是Boehm和他的同事在1978年提出的,如图10-2所示。Boehm质量模型是一个分层的模型,除了包含用户的期望和需要,它还包含了McCall模型所没有的硬件质量特性。Boehm质量模型关注不同类型的用户需要。第一类用户是初始用户,第二类用户是要将软件移植到其他软硬件系统中使用的用户,第三类用户是系统维护人员。也可以说,Boehm质量模型反映了不同类型的用户对软件质量的理解。图Boehm质量模型9.1.2软件质量模型9.1.2软件质量模型沈阳师范大学软件学院81991年,ISO颁布了ISO9126-1991标准《软件产品评价—质量特性及其使用指南》。我国也于1996年颁布了同样的软件产品质量评价标准GB/T16260-1996。ISO9126模型如图10-3所示。ISO9126模型定义了6个影响软件质量的质量特性,而每个质量特性又可通过若干子特性来测量,每个子特性在评价时要进行定义并实施若干度量。ISO9126质量模型使得软件最大限度地满足用户的明确的和潜在的需求,且从用户、开发人员、管理者等各类人员的角度全方位地考虑软件质量。图ISO9126质量模型本节内容9.2软件度量9.2.1软件度量概述9.2.2软件度量的目标9.2.3软件度量的三个方面沈阳师范大学软件学院99.2.1软件度量概述9.2.1.1软件度量的含义度量是指在现实的世界中把数字或符号指定给实体的某一属性,以便以这种方式来根据已明确的规则来描述它们。度量关注的是获取关于实体属性的信息。那么什么是软件度量呢?软件度量(SoftwareMeasurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性量化过程,目的在于对项目质量、过程质量及产品质量进行理解、预测、评估、控制和改善。沈阳师范大学软件学院109.2.1软件度量概述9.2.1.2软件度量的意义在软件开发中,软件度量的根本目的是为了软件管理的需要,利用度量来改进软件过程,以提高软件开发效率和软件质量。通过软件度量,使人们能够可预测、可重复、准确地控制软件开发过程和软件产品。度量使得对软件质量的评价从定性走向了定量,避免了软件质量评价的模糊性。沈阳师范大学软件学院119.2.1软件度量概述9.2.1.3软件度量的现状

在软件界,软件度量目前的情况并不尽如人意,如下一些现象是时常存在的。设计和开发软件产品的时候,并未制定出度量的目标。未能对构成软件项目实际费用的各个不同部分进行有效的度量。由于缺乏清晰的度量目标,使得开发人员不能使开发的产品质量的各方面特性都合格,因此不能使用术语向潜在的用户说明软件产品具有很高的质量。由于缺乏对软件的度量,看不到清晰的实效,因而人们对所使用的软件开发技术没有足够的信心。沈阳师范大学软件学院129.2.1软件度量概述9.2.1.4软件度量工具

随着软件定量方法的重要性不断增加,市场上出现了许多度量工具。然而,度量工具目前还是很混乱。因为没有统一的度量标准规范,每种工具发明商家都是按照他们自己的软件度量规范。Daich等根据分类学把度量工具分成了以下几种:通用度量工具小生境度量工具(NicheMetricsTool)静态分析工具源代码静态分析工具规模度量工具沈阳师范大学软件学院139.2.2软件度量的目标9.2.2.1对管理者(1)需要度量软件开发过程中的不同阶段的费用。(2)为了决定付给不同的开发小组的费用,需要度量不同小组职员的生产率。

(3)为了对不同的项目进行比较、对将来的项目进行预测、建立基线以及设定合理的改进目标等,需要度量开发的产品的质量。(4)需要决定项目的度量目标。例如:应达到多大的测试覆盖率、系统最后的可靠性应有多大等。(5)为了找出是什么因素影响着费用和生产率,需要反复测试某一特定过程和资源的属性。(6)需要度量和估计不同软件工程方法和工具的效用,以便决定是否有必要把它们引入到公司中。沈阳师范大学软件学院149.2.2软件度量的目标9.2.2.2对软件工程师(1)需要制定过程度量以监视不断演进的系统。这包括设计过程中的改动、在不同的回顾或测试阶段发现的错误等等。(2)需使用严格的度量术语来指定对软件质量和性能的要求,以便使这些要求是可测试的。(3)为了合格需要度量产品和过程的属性。例如,看一个产品是否合格要看产品的一些可度量的特性如“β测试阶段少于20个错误”,“每个模块的代码行不超过100行”,和开发过程的一些属性如“单元测试必须覆盖90%以上的用例”等。(4)需要度量当前已存在的产品和过程的属性以便预测将来的产品。沈阳师范大学软件学院159.2.2软件度量的目标9.2.2.2对软件工程师

研究上面列出的度量的目标和活动可以发现,软件度量的目标可大致概括为两类。使用度量来进行估计。这使得人们可以同步地跟踪一个特定的软件项目。应用度量来预测项目的一些重要的特性。但不能过分夸大这些预测的作用,因为它们并不是完全正确的。沈阳师范大学软件学院169.2.3软件度量的三个方面9.2.3.1软件度量的三个方面

软件度量贯穿于软件开发的整个生命周期。软件度量包括3个方面:项目度量产品度量过程度量沈阳师范大学软件学院179.2.3软件度量的三个方面9.2.3.1具体情况如表所示

沈阳师范大学软件学院18本节内容9.3软件能力成熟度模型9.3.1软件能力成熟度模型概述9.3.2软件能力成熟度模型的建立和评估9.3.3能力成熟度模型集成CMMI沈阳师范大学软件学院199.3.1软件能力成熟度模型概述9.3.1.1起源卡内基·梅隆大学软件工程研究所CMU/SEI(CarnegieMellonUniversity/SoftwareEngineeringInstitute)于1987年研究发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(theCapabilityMaturityModelForSoftware,简称SW-CMM),并发布了最早的SW-CMM1.0版。经过两年的试用,1993年SEI正式发布了SW-CMM1.1版,这是目前使用最为广泛的版本。沈阳师范大学软件学院209.3.1软件能力成熟度模型概述9.3.1.2软件能力成熟度模型中的重要概念过程(Process):CMM中引用了IEEE对过程的定义,即过程是“为达到目的而执行的所有步骤的系列”。软件过程(SoftwareProcess):人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和革新。软件和其相关产品是指项目计划、需求文档、设计文档、代码、测试用例、用户手册等。软件过程能力(SoftwareProcessCapability):在遵循一个软件过程后能得到的预期结果的范围。它可用来预测一个机构在承接一个软件项目后,所能得到的最可能的结果。软件过程性能(SoftwareProcessPerformance):在遵循一个软件过程后所得到的实际结果。软件过程成熟度(SoftwareProcessMaturity):一个具体的软件过程被明确定义、管理、评价、控制和产生实效的程度。所谓成熟度,包含着能力的一种增长潜力,同时也表明了软件机构实施软件过程的实际水平。沈阳师范大学软件学院219.3.1软件能力成熟度模型概述9.3.1.3软件能力成熟度模型的作用企业实施CMM模型可为企业带来如下好处:指导软件机构提高软件开发管理能力。降低软件承包商和采购者的风险。评估软件承包商的软件开发管理能力。帮助软件企业识别开发和维护软件的有效过程和关键实践。帮助软件企业识别为达到CMM更高成熟等级所必须的关键实践。增加软件企业的国际竞争能力。沈阳师范大学软件学院229.3.1软件能力成熟度模型概述9.3.1.4软件能力成熟度模型的5个等级CMM将软件过程的成熟度分为5个等级,如图所示沈阳师范大学软件学院239.3.1软件能力成熟度模型概述9.3.1.4软件能力成熟度模型的5个等级在

CMM中,等级越高,软件开发生产精度则越高,每单位工程的生产周期也越短。在CMM的5个等级中,除了初始级,其他4个等级均有若干个指导软件机构改进软件过程的要点,称为关键过程域(KeyProcessArea,简称KPA)。

所谓关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件机构改进过程时必须集中精力改进的几个方面。只有一个软件机构的所有项目都达到某个关键过程域的目标,该软件机构的以该关键过程域为特征的过程能力才是规范化了的。沈阳师范大学软件学院249.3.1软件能力成熟度模型概述9.3.1.4软件能力成熟度模型的5个等级在CMM中一共有18个关键过程域,分布在2~5级中。任何一个成熟度级别的关键过程域集都是本级描述的关键过程域集和所有下级的关键过程域集的并集。如第3级的关键过程域就应有13个不同的域,其中7个是第3级自己包含的,6个属于第2级,而第4级应有15个域。沈阳师范大学软件学院259.3.1软件能力成熟度模型概述9.3.1.5关键实践和共同特征为达到某个成熟度级别的关键过程域的目标,必须实施若干关键实践。关键实践(Key

Practice)是指对关键过程域起重要作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践涉及5个方面,分别为执行约定、执行能力、执行的活动、测量和分析、验证实施,被称作5个共同特征(Common

Features)。每个关键过程域所包含的关键实践均按这5个共同特征进行组织。沈阳师范大学软件学院269.3.1软件能力成熟度模型概述9.3.1.6CMM的逻辑结构为达到某个成熟度级别的关键过程域的目标,必须实施若干关键实践。关键实践(Key

Practice)是指对关键过程域起重要作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践涉及5个方面,分别为执行约定、执行能力、执行的活动、测量和分析、验证实施,被称作5个共同特征(Common

Features)。每个关键过程域所包含的关键实践均按这5个共同特征进行组织。沈阳师范大学软件学院279.3.1软件能力成熟度模型概述9.3.1.6可用图来概括CMM的逻辑结构沈阳师范大学软件学院289.3.2软件能力成熟度模型的建立和评估9.3.2.1CMM的实施步骤企业实施CMM,可从如下几个步骤进行:

①提高思想认识,了解必要性和迫切性;②确定合理的目标;③进行CMM培训和咨询工作;④成立工作组;⑤制定和完善软件过程;⑥内部评审;⑦初期评估;⑧正式评估;⑨根据评估的结果改进软件过程。沈阳师范大学软件学院299.3.2软件能力成熟度模型的建立和评估9.3.2.2CMM的评估方法

CMM的评估方法为CBA-IPI(CMM-BasedAppraisalforInternalProcessImprovement,基于CMM的内部过程改进评估)。CMM评估包括5个等级,共计18个关键过程域,52个目标,300多个关键实践。每一个CMM等级评估周期约需12-30个月。每一级别的评估由CMU/SEI授权的主任评估师领导一个评审小组进行。评估过程包括员工培训、问卷填写和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等。沈阳师范大学软件学院309.3.2软件能力成熟度模型的建立和评估9.3.2.3实施CMM应把握的原则任何软件开发单位在提升自己的CMM等级时,只能由所处的层次向紧邻的上一层次进化,不可越级。通过CMM某个等级的评估并不是软件企业最终的目的,显然,最终目的应是通过CMM评估来改进企业的软件过程,提升软件开发的能力。沈阳师范大学软件学院319.3.3能力成熟度模型集成CMMI9.3.3.1CMMI概述自从1991年SEI正式发布软件SW-CMM以来,相继又开发出了系统工程、软件采购、人力资源管理以及集成产品开发方面的多个能力成熟度模型。虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。这时他们就会发现存在一些问题,其中主要问题体现在:不能集中其不同过程改进的能力以取得更大成绩。要进行一些重复的培训、评估和改进活动,因而增加了许多成本。遇到不同模型中有一些对相同事物说法不一致,或活动不协调,甚至相抵触。沈阳师范大学软件学院329.3.3能力成熟度模型集成CMMI9.3.3.1CMMI概述

所以,当CMU/SEI开始开发新一代成熟度模型的时候,试图整合不同模型中的最佳实践,建立统一模型,覆盖不同领域,供企业进行整个组织的全面过程改进。CMU/SEI于2001年12月正式发布了能力成熟度集成模型(CMMI,CapabilityMaturityModelIntegration)1.1版,这标志着CMMI的正式使用。值得注意的是,SEI并没有废除CMM模型,而是以CMMI的SCAMPI(StandardCMMIAppraisalMethodforProcessImprovement)评估方法取代CMM的CBA-IPI评估方法。当然,CMMI将最终取代CMM模型。这是因为,相比于CMM,CMMI以更加系统和一致的框架来指导组织改进软件过程,提高产品和服务的开发、获取和维护能力。沈阳师范大学软件学院339.3.3能力成熟度模型集成CMMI9.3.3.1CMMI概述

CMMI起源于三个模型(源模型),分别是:软件能力成熟度模型(SW-CMM)v2.0draftC电子行业协会临时标准(EIA/IS-731)集成产品开发能力成熟度模型(IPD-CMM)v0.98

在CMMI中除了沿用CMM的分阶段表示形式外,还增加了与ISO/IEC15504TR(技术报告)类似的连续表示形式,将CMMI中的过程区域分为四大类:项目管理、工程活动、支持活动或者过程管理,对于每个大类中的过程区域,又进一步分为基本的和高级的。这样,按照连续式模型实施CMMI的时候,一个组织可以把某个大类(如项目管理)的实践一直做到最好,而其他大类的实践则完全不考虑。也就是说,如果企业只希望提高自己在项目管理、工程活动、支持活动或者过程管理四个大类中的某一个或几个大类的能力,则应使用CMMI的连续表示形式。若企业仍愿沿用CMM中成熟度级别的思路,持续地改进过程,则可使用CMMI的分阶段表示形式。沈阳师范大学软件学院349.3.3能力成熟度模型集成CMMI9.3.3.1CMMI概述

CMMI模型的组成和适用范围如表所示沈阳师范大学软件学院359.3.3能力成熟度模型集成CMMI9.3.3.2CMMI的主要内容CMMI分级式模型中的等级设置与SW-CMM模型基本相同,只是某些等级的名称有变化。CMMI连续式模型中的等级设置则和ISO/IEC15504TR基本一致,CMMI连续式模型的第3级、第4级名称虽然与ISO/IEC15504TR有区别,但其含义是基本一样的。沈阳师范大学软件学院369.3.3能力成熟度模型集成CMMI9.3.3.2CMMI的主要内容下表列出了CMMI、CMM、ISO/IEC15504TR模型中的等级的对应关系。沈阳师范大学软件学院379.3.3能力成熟度模型集成CMMI9.3.3.3CMMI的评估方法随着CMM过渡到CMMI,其CAF(CMMAssessmentFramework)评估框架变成评估需求(AppraisalRequirementsforCMMI,简称ARC),CMM的IPI-CBA评估方法则被CMMI的SCAMPI评估方法所取代。开展CMMI评估必须是SEI授权的合作机构,评估活动由SEI授权的主任评估师进行。CMMI的评估流程与CMM基本相同。另外,与CMM中的等级评估相同的是,CMMI(分级式模型)中的等级评估会根据被评估的成熟度级别,检查所有不高于该级别的关键过程域。沈阳师范大学软件学院389.3.3能力成熟度模型集成CMMI9.3.3.4如何在CMM和CMMI之间进行选择到底是选择CMM还是CMMI主要基于以下几个方面进行考虑:实施企业的业务特点实施企业对过程改进的熟悉程度软件过程改进的目标沈阳师范大学软件学院399.3.3能力成熟度模型集成CMMI9.3.3.4如何在CMM和CMMI之间进行选择到底是选择CMM还是CMMI主要基于以下几个方面进行考虑:实施企业的业务特点实施企业对过程改进的熟悉程度软件过程改进的目标沈阳师范大学软件学院40本节内容9.4软件质量保证9.4.1软件质量保证概述9.4.2软件质量保证的工作内容9.4.3软件质量保证的实施9.4.4软件质量保证与测试的区别9.4.5软件质量保证与测试的区别沈阳师范大学软件学院419.4.1软件质量保证概述9.4.1.1软件质量保证

软件质量保证,即SQA(SoftwareQualityAssurance),是CMM第2级中的一个关键过程域,它是贯穿整个软件过程的第三方独立审查活动,出现在大多数关键过程域的检查与验证的公共特性中。沈阳师范大学软件学院429.4.1软件质量保证概述9.4.1.1软件质量保证的目的

SQA的目的是向管理者提供对软件过程进行全面监控的手段,包括评审和审计软件产品和活动,验证它们是否符合相应的规程和标准,同时给项目管理者提供这些评审和审计的结果,以反映产品和过程质量,提高项目透明度。沈阳师范大学软件学院439.4.1软件质量保证概述9.4.1.2SQA组织的主要工作包括以下两方面:监控软件的开发过程,保证软件开发过程符合相应的标准与规程。保证软件产品、软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者。软件工程过程小组SEPG的职责是提供软件过程的指导,帮助项目组制定项目过程,实施过程改进。如果项目组和SQA对过程的理解不一致,SEPG作为最终仲裁者。可用立法者和执法者形容SEPG和SQA之间的关系。沈阳师范大学软件学院449.4.1软件质量保证概述9.4.1.2SQA组织的主要工作

SQA的主要作用是给管理者提供实现软件过程的保证,因此SQA组织要保证如下几点:选定的开发方法被采用。选定的标准和规程得到采用和遵循。进行独立的审查。偏离标准和规程的问题得到及时地反映和处理。项目定义的每个软件任务得到实际的执行。沈阳师范大学软件学院459.4.2软件质量保证的工作内容9.4.2.1软件质量保证的工作内容1.计划2.审计/证实3.处理不符合问题沈阳师范大学软件学院469.4.3软件质量保证的实施9.4.3.1软件质量保证的实施软件质量保证的实施过程中需要注意如下几方面的问题。企业的高级管理者必须重视软件质量保证活动。要考虑SQA人员的素质。某项目的SQA人员不能是该项目组的开发人员、配置管理人员或测试人员.SQA人员在工作过程中一定要抓住问题的重点与本质,不要陷入对细节的争论之中。SQA人员要客观、有责任心。SQA人员要能应对繁杂的工作。沈阳师范大学软件学院479.4.3软件质量保证与测试的区别9.4.3.1软件质量保证与测试的区别在阐述两者区别之前,先来看QA和QC的概念。

QA(QualityAssuran

温馨提示

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

评论

0/150

提交评论