第11章软件质量与可靠性.ppt
《第11章软件质量与可靠性.ppt》由会员分享,可在线阅读,更多相关《第11章软件质量与可靠性.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第11章软件质量与可靠性v11.1软件质量保证v11.2软件能力v11.3软件可靠性v11.4软件质量管理标准v软件质量,是贯穿于整个软件生存周期的一个重要问题。它渗透到软件开发和维护的每一个时期,每个阶段,乃至每一个细节活动中。v20世纪90年代以来,质量认证逐渐在企业流行,把对于产品的质量保证扩展到对于整个企业的质量认证。v软件现代质量管理的内容也相应地扩展为包括质量保证与质量认证等两个方面。11.1概述v质量是任何产品生命的关键,对于软件也不例外。v由于软件产品的特殊性,质量保证(QualityAssurance)比硬件产品更加困难。11.1.1软件质量的定义(1)与所确定的功能和性能需
2、求的一致性。(2)与所成文的开发标准的一致性。(3)与所有专业开发的软件所期望的隐含特性的一致性。11.1.2软件质量的度量和评价影响软件质量的因素(1)可以直接度量的因素,如单位时间内千行代码(KLOC)中产生的错误数。(2)只能间接度量的因素,如可用性或可维护性。在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件质量特性进行度量,以测定软件具有要求质量特性的程度。质量因素定 义功能性在目标环境下能够满足软件需求说明(SRS)中的功能需求的程度。可靠性程序在目标环境下按照规定的条件成功运行的概率。易用性程序在运行中使用灵活方便的程度。效率完成预期功能所需的时间及资源等指标。例如,“
3、时间经济性”,以及程序对存储空间或外部设备的占用量等“资源经济性”指标。可维护性在运行中诊断和修改错误所需要工作量的多少。可移植性把程序从一种软硬件环境移植到一种软硬件环境所需要工作量的多少。11.1.3软件质量保证1.什么是软件质量保证软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。主要功能:v质量方针的制定v质量保证方针和质量保证标准的制定v质量保证体系的建立和管理v明确各阶段的质量保证工作v各阶段的质量评审v确保设计质量v重要质量问题的提出与分析v总结实现阶段的
4、质量保证活动2.软件质量保证的内容v软件质量保证的内容主要包括:审查、开发方法、配置控制与程序测试的综合应用。v在“软件开发规范”的指导下,对于软件计划和开发时期各个阶段的工作都要进行复审;每个阶段产生的文档都必须严格管理,以确保文档和程序的完整性与一致性;最后要对程序进行不同类型的测试。3.质量保证的策略(1)以检测为重。产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量。(2)以过程管理为重。把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制。(3)以新产品开发为重。4.质量保证的主要任务(1)正确定义用户要求。(2)技术方法的应用。(3)提高软件开发的
5、工程能力。(4)软件的复用。(5)发挥每个开发者的能力。(6)组织外部力量协作。(7)排除无效劳动。最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。(8)提高计划和管理质量。4.质量保证与检验v软件质量必须在设计和实现过程中加以保证。11.2质量度量模型11.2.1McCall质量度量模型v这是这是McCall等入于等入于1979年提出的软件质量影响模型年提出的软件质量影响模型.针针对面向软件产品的运行对面向软件产品的运行,修正修正,转移转移,软件质量概念包括软件质量概念包括11个个特性特性,其定义如下其定义如下:(1)面向软件产品操作面向软件产品操作.正确性正确性;可靠性可靠性;效
6、率效率;完整性完整性;可用性可用性(2)面向软件产品修改面向软件产品修改.可维护性可维护性;可测试性可测试性;适应性适应性(3)面向软件产品适应面向软件产品适应.可移植性可移植性;可重用性可重用性;可互操作性可互操作性;v主要评价准则如下:主要评价准则如下:可跟踪性可跟踪性;完备性完备性;一致性一致性;安全性安全性;容错性容错性;准确准确性性;可审查性可审查性;可操作性可操作性;可训练性可训练性;简洁性简洁性;简明性简明性;模块模块性性;自描述性自描述性;通用性通用性;可扩充性可扩充性;硬件独立性硬件独立性;通信共用性通信共用性;.数据共用性数据共用性11.2.2ISO的软件质量评价模型11.
7、3 软件复杂性软件复杂性11.3.1软件复杂性的基本概念软件复杂性的基本概念(1)规模,即总共的指令数,或源程序行数。规模,即总共的指令数,或源程序行数。(2)难度,通常由程序中出现的操作数的数目所决定的量来表难度,通常由程序中出现的操作数的数目所决定的量来表示。示。(3)结构,通常用于程序结构有关的度量来表示。结构,通常用于程序结构有关的度量来表示。(4)智能度,即算法的难易程度。智能度,即算法的难易程度。v软件复杂性主要表现在程序的复杂性。程序的复杂性主要软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多指模块内程序的复杂性。它直接关联到软
8、件开发费用的多少、开发周期长短和软件内部潜伏错误的多少。同时它也少、开发周期长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。是软件可理解性的另一种度量。v为了度量程序复杂性,要求复杂性度量满足以下假设:(1)它可以用来计算任何一个程序的复杂性.(2)对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算.(3)如果程序中指令条数,附加存储量,计算时间增多,不会减少程序的复杂性.11.3.2软件复杂性的度量方法1.代码行度量法.v度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法的基本考虑是统计一个程序的源代码行数,并
9、以源代码行数作为程序复杂性的质量。v每100行元程序中可能存在0.04-7个错误。v每行代码的出错率与源程序的行数不存在简单的线性关系v代码行度量法是一个简单、估计得很粗粗糙的方法。2.McCabe度量法vMcCabe度量法是由ThomasMcCabe提出的一种基于程序控制流的复杂性度量方法。vMcCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。v这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图。也就是说,把程序流程图的每一个处理符号都退化成一
10、个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。根据图论,在一个强连通的有向图G中,环的个数V(G)由以下公式给出:V(G)=m-n+2pv其中,V(G)是有向图G中环路数,m是图G中弧数,n是图G中结点数,p是图G中强连通分量个数。在一个程序中,从程序图的入口点总能到达图中任何一个结点,因此,程序总是连通的,但不是强连通的。为了使图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。这样就可以使用上式计算环路复杂性了。v以图4-11所给出的例子示范,其中,结点数n=6,弧数m=9,p=1,则有V(G=m-n+2p=9-6+2
11、=5v即McCabe环复杂度度量值为5。这里选择的5个线形无关环路为(abefa),(beb),(abea),(acfa),(abcfa),其他任何环路都是这5个环路的线性组合。McCabe度量法的缺点对于不同种类的控制流的复杂度不能区分。简单IF语句与循环语句的复杂性同等看待。嵌套IF语句与简单CASE的复杂性是一样的。模块间接口当成一个简单分支一样处理。一个具有1000行的顺序程序与一行语句的复杂性相同。尽管McCabe复杂度度量法有许多缺点,但它容易使用,而且在选择方案和估计排错费用等方面都是很有效的。11.4 软件可靠性11.4.1软件可靠性定义v软件可靠性定义表明了一个程序按照用户的
12、要求和设计的目标,执行其功能的正确程度。一个可靠的程序应要求是正确的、完整的、一致的和健壮的。v即:在给定的时间内,程序按照规定的条件成功地运行的概率。11.4.2软件可靠性指标v软件可靠性与可用性的定量指标,是指能够以数字概念来描述可靠性的数学表达式中所使用的量。下面主要讨论常用指标平均失效等待时间MTTF与平均失效间隔时间MTBF。1.MTTF(MeanTimeToFailure)平均失效等待时间MTTF定义为:2.MTBF(MeanTimeBetmeenFailure)MTBF是平均失效间隔时间,它是指两次相继失效之间的平均时间。11.4.3软件可靠性模型软件可靠性模型正比于遗留故障数的
13、宏观模型正比于遗留故障数的宏观模型程序的故障率与遗留错误的数量成正比,根据程序中遗留错程序的故障率与遗留错误的数量成正比,根据程序中遗留错误的多少,就可以预测程序的可靠性。误的多少,就可以预测程序的可靠性。设设t=程序的调试时间程序的调试时间ET=调试前的错误总数调试前的错误总数Ec(t)=在时间在时间(0,t)期间纠正的错误期间纠正的错误Er(t)=在时间在时间t时的遗留错误量时的遗留错误量IT=程序的长度或指令的总数程序的长度或指令的总数则则Er(t)=ET-Ec(t)用用除以上述等式两边,得到错误的规除以上述等式两边,得到错误的规格化值格化值错误植入模型错误植入模型错误植入模型错误植入模
14、型这类模型的中心思想,是通过估计残留错误的数量,来确这类模型的中心思想,是通过估计残留错误的数量,来确定程序的可靠性。具体的作法是:测试之前先在程序中定程序的可靠性。具体的作法是:测试之前先在程序中植入一批人为的错误,在测试过程中分别统计出测试小植入一批人为的错误,在测试过程中分别统计出测试小组的原有错误和植入错误,然后由下列计算式计算原有组的原有错误和植入错误,然后由下列计算式计算原有错误。错误。假设假设N=程序中原来残留的错误数;程序中原来残留的错误数;S=新植入程序的错误数;新植入程序的错误数;n=测试中发现的原有错误数;测试中发现的原有错误数;s=测试中发现的植入错误数测试中发现的植入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 软件 质量 可靠性
限制150内