《【教学课件】第14章软件质量管理与质量保证.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第14章软件质量管理与质量保证.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十四章第十四章 软件质量管理与质量保证软件质量管理与质量保证第一节第一节 软件质量概述软件质量概述一、软件质量定义一、软件质量定义IEEE对软件质量的定义:对软件质量的定义:软件产品具备满足给定需求特性及特征的总体的软件产品具备满足给定需求特性及特征的总体的能力能力软件拥有所期望的各种属性组合的程度软件拥有所期望的各种属性组合的程度用户认为软件满足他们综合期望的程度用户认为软件满足他们综合期望的程度软件组合特性可以满足用户预期需求的程度软件组合特性可以满足用户预期需求的程度从实际应用方面的定义:1.与明确确定的功能和性能需求的一致性 软件需求是质量度量的基础 2.与明确成文的开发标准的一致性
2、 专门的标准定义了一系列的开发准则,它指导软件工程化的开发方式3.与所有专业开发的软件所期望的隐含的特性的一致性 对许多隐含需求不采用直接提出的方法1.影响质量因素分为两类:可以直接度量的因素:例如:错误只能间接度量的因素:例如:可维护性二、软件质量因素二、软件质量因素2.发展由Rubey和Hartwick在1968年提出的,他们没有建立质量度量模型,也没有提出完整的度量方法1976年Boehm等人提出了定量地评价软件质量的概念,并给出了60个质量度量公式,这是第一次提出软件质量度量的层次模型Walters和McCall提出了从软件质量要素、准则到度量的3个层次式的软件质量度量模型G.Muri
3、ne根据上面几个人的工作,提出了软件质量度量技术用来定量的评价软件质量3.McCall3.McCall质量模型质量模型:提出软件质量特性包含的特性提出软件质量特性包含的特性l可使用性可使用性(Usability)l正确性正确性(Correctness)l可靠性可靠性(Reliability)l效率效率(Efficiency)l完整性、安全性完整性、安全性(Integrity,Security)l灵活性灵活性(Flexibility)l可测试性可测试性(Restability)l可维护性可维护性(Maintainability)l可移植性可移植性(Portability)l复用性复用性(Reus
4、eability)l互操作性互操作性(Interperability)McCall的三层质量度量模型的三层质量度量模型McCall质量度量模型框架质量度量模型框架准则准则评价准则评价准则评价准则评价准则评价准则评价准则度量度量度量度量度量度量面向管理观点面向管理观点的产品质量的产品质量决定产品质量决定产品质量的软件属性的软件属性定量化地度定量化地度量软件属性量软件属性4.ISO4.ISO建议的软件质量评价模型建议的软件质量评价模型 标准分为三级标准分为三级:高层高层:质量需求评价准则质量需求评价准则(SQRC)中层中层:质量设计评价准则质量设计评价准则(SQDC)低层低层:质量度量评价准则质量
5、度量评价准则(SQMC)ISOISO建议的软件质量评价模型正正 确确 性性可可 跟跟 踪踪 性性完完 备备 性性准准 确确 性性容容 错错 性性简简 洁洁 性性模模 块块 性性通通 用用 性性扩扩 充充 性性可可 容容 性性效效 率率安安 全全 性性可维护性可维护性适适 应应 性性互互 连连 性性SQDC(中层中层)SQRC(高层高层)SQMC(低层低层)可可 用用 性性一一 致致 性性使使用用单单位位自自行行制制定定 ISO 9000标准系列标准系列 19871987年年ISO公布公布ISO9000质量管理和质量保证标准质量管理和质量保证标准系列。系列。至至19971997年底,约年底,约1
6、00100个国家、地区推行个国家、地区推行ISO9000质量质量认证活动;认证活动;ISO 9000ISO 9000族列标准现有族列标准现有2020个标准,分为五类:个标准,分为五类:(1)质量术语标准:质量术语标准:ISO8402-1994ISO8402-1994(2)质量保证标准质量保证标准(3)质量管理标准质量管理标准(4)质量管理和质量保证标准的选用和实施指南质量管理和质量保证标准的选用和实施指南(5)支持性技术标准支持性技术标准ISO 9000ISO 9000主体可分为两组:主体可分为两组:用于用于“需方对供方要求质量保证需方对供方要求质量保证”的标准的标准:9001 9003用于用
7、于“供方建立质量保证体系供方建立质量保证体系”的标准:的标准:90049001、9002、9003的区别的区别其对象的工序范围不同:其对象的工序范围不同:9001范围最广,包括从设计到售后服务;范围最广,包括从设计到售后服务;9002是是9001 的子集;的子集;9003是是9002 的子集。的子集。第二节第二节 软件质量保证软件质量保证 质量保证也是一个过程质量保证也是一个过程,已列入,已列入国际标准国际标准“ISO/IEC 12207信息技术信息技术-软件生存期过程软件生存期过程”中。中。一、质量保证策略质量保证策略的发展的三个阶段:以检测为重点以过程管理为重点以新产品的开发为重点二、软件
8、质量保证活动 软件质量保证活动(SQA)是一项有计划的系统的规范性的活动。它的主要活动如下:技术方法的应用:SQA始于帮助分析人员获得高质量的规格说明和帮助设计员开发高质量的设计的技术方法。正是技术评审的实施:完成质量评价的关键活动是正试的技术评审,它与软件测试同样重要。软件测试:将软件测试用例和软件开发各个步骤联系起来,以帮助确保发现错误的效率标准的执行:正试的标准和过程因公司的不同而不同修改的控制:软件质量的一个主要威胁来自貌似良性的来源度量:SQA的一个重要目标就是跟踪软件质量,并评价方法上和过程上的改变对改善软件质量的影响,为此,引入了度量的概念记录和记录保存:为SQA信息的收集、参考
9、和借鉴提供了保证第五节 软件质量度量一、一、HalsteadHalstead的软件科学度量的软件科学度量 Halstead Halstead的软件科学是的软件科学是HalsteadHalstead在在19771977年软件科学元素中提出的关年软件科学元素中提出的关于度量软件复杂性的一种最有效的方于度量软件复杂性的一种最有效的方法,也是一个软件分析法则法,也是一个软件分析法则HalsteadHalstead的基本思想:的基本思想:根据程序中可执行代码行的根据程序中可执行代码行的操作符操作符和和操作数操作数的的数量数量来计算程序的复杂性。来计算程序的复杂性。一般情况下,操作数和操作符的数量一般情况
10、下,操作数和操作符的数量越大,程序结构就越复杂。越大,程序结构就越复杂。HalsteadHalstead采用了一组原始的度量方法:采用了一组原始的度量方法:n1:n1:程序中出现的不同操作符数目程序中出现的不同操作符数目n2:n2:程序中出现的不同操作数数目程序中出现的不同操作数数目N1:N1:程序中操作符出现的总数程序中操作符出现的总数N2:N2:程序中操作数出现的总数程序中操作数出现的总数P362 SQRT的源程序HalsteadHalstead使用原始度量定义的算式使用原始度量定义的算式(1)程序长度程序长度 N=n1log2 n1+n2log2 n2(2)程序容量程序容量 V=Nlog
11、2(n1+n2)(3)语言级别语言级别 L=(2n2)/(n1n2)(4)程序工作量程序工作量 E=V/L(5)程序编写时间程序编写时间 T=E/S S:Stroud数数(6)程序潜在错误的数量程序潜在错误的数量 B=Nlog2(n1+n2)/3000V3000HalsteadHalstead认为程序中可能存在的错误认为程序中可能存在的错误与程序容量成正比与程序容量成正比例例:一程序对一程序对75个数据库项共访问个数据库项共访问1300 次次,对对150个操作符使用个操作符使用1200次次,潜在潜在错误数为错误数为:B=(1300+1200)log2(75+150)/3000 =6.5(即即6
12、7个错误个错误)HalsteadHalstead复杂性度量方法是一种较科学的方法复杂性度量方法是一种较科学的方法但存在不足和问题但存在不足和问题:(1)(1)未忽略模块特性未忽略模块特性(2)(2)忽略了非执行语句忽略了非执行语句(3)(3)代码和数据的二义性代码和数据的二义性(4)(4)未考虑数据类型的差异未考虑数据类型的差异(5)(5)未注意调用深度未注意调用深度(6)(6)未区别不同类型的运算符未区别不同类型的运算符二、二、McCabeMcCabe复杂性度量复杂性度量(环路度量环路度量)McCabeMcCabe认为程序复杂性很大程度取认为程序复杂性很大程度取决于程序控制流的复杂性决于程序
13、控制流的复杂性,以程序图的以程序图的环路数作为该程序复杂性的度量值环路数作为该程序复杂性的度量值 对于具有强连通图的环路数对于具有强连通图的环路数:V(G)=e-n+2PV(G)=e-n+2P e:e:图的边数图的边数 n:n:图的结点数图的结点数 P:P:图的联结成分的个数图的联结成分的个数McCabe复杂性度量示例a ac cb be ef fd d1 12 23 37 76 68 84 45 59 9R R1 1R R2 2R R3 3R R4 4R R5 5V(G)=9-6+2V(G)=9-6+2 =5 =5V(G)V(G)其它计算方法其它计算方法:(1)(1)计算图中所有有界区域和无
14、界区域数计算图中所有有界区域和无界区域数R R 图中共有图中共有5 5个区域个区域(R1(R1到到R5),R5),所以所以 V(G)=5V(G)=5(2)(2)用判定语句总数用判定语句总数+1(+1(判定个数判定个数=分支分支数数+1)+1)图中可按图中可按4 4个判定计算个判定计算,V(G)=4+1=5V(G)=4+1=5 McCabe McCabe方法的优点是它的简明方法的优点是它的简明性,但是也有不足之处:性,但是也有不足之处:没有考虑或区分不同类型控制流没有考虑或区分不同类型控制流的复杂性是不相同的的复杂性是不相同的McCabeMcCabe虽然没有忽视由于模块化虽然没有忽视由于模块化引
15、起的附加复杂性,但是认为接引起的附加复杂性,但是认为接口的复杂性不会比简单的分支结口的复杂性不会比简单的分支结构更复杂构更复杂软件可靠性软件可靠性:在特定环境下和一定时间内,:在特定环境下和一定时间内,一个计算机程序无故障运行的概率。一个计算机程序无故障运行的概率。故障故障:与软件需求不一致的地方,故障可大:与软件需求不一致的地方,故障可大可小。可小。第六节第六节 软件可靠性软件可靠性硬件系统故障率硬件系统故障率0 0t tZ(t)Z(t)软件系统故障率软件系统故障率0 0t tZ(t)Z(t)软件可靠性定义的要素软件可靠性定义的要素(1)(1)环境条件环境条件 规定软件的使用环境规定软件的使用环境 (输入数据要求和环境输入数据要求和环境)(2)(2)规定时间规定时间 时间时间t t是随机变量。是随机变量。(3)(3)规定的功能规定的功能(4)(4)成功运行成功运行软件可靠性的主要指标软件可靠性的主要指标 借用硬件可靠性的定量度量方法来借用硬件可靠性的定量度量方法来度量软件的可靠性:度量软件的可靠性:MTBF:平均故障间隔时间平均故障间隔时间 MTTF:平均故障时间平均故障时间t1t1,t2,.,tn:t2,.,tn:失效时间失效时间MTTFn ni=1i=1n n1 1t ti i