第十一章 软件质量与质量保证Word格式文档下载.docx
- 文档编号:20769506
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:14
- 大小:66.23KB
第十一章 软件质量与质量保证Word格式文档下载.docx
《第十一章 软件质量与质量保证Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第十一章 软件质量与质量保证Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
11.2.1McCall质量度量模型
这是McCall等人于1979年提出的软件质量模型。
针对面向软件产品的运行、修正、转移,软件质量概念包括11个特性,其定义如下:
(1)面向软件产品操作。
(2)面向软件产品修改。
(3)面向软件产品适应。
11.2.2Iso的软件质量评价模型
软件质量度量模型由三层组成。
11.3软件复杂性
11.3.1软件复杂性的基本概念
软件复杂性度量的参数很多,主要有:
(1)规模,即总共的指令数,或源程序行数。
(2)难度,通常由程序中出现的操作数的数目所决定的量来表示。
(3)结构,通常用于程序结构有关的度量来表示。
(4)智能度,即算法的难易程度。
软件复杂性主要表现在程序的复杂性。
程序的复杂性主要指模块内程序的复杂性。
它直接关联到软件开发费用的多少、开发周期长短和软件内部潜伏错误的多少。
同时它也是软件可理解性的另一种度量。
要求复杂性度量满足以下假设:
(1)它可以用来计算任何一个程序的复杂性。
(2)对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算。
(3)如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。
11.3.2软件复杂性的度量方法
1.代码行度量法
度量程序的复杂性,最简单的方法就是统计程序的源代码行数。
此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的质量。
2.McCabe度量法
McCabe度量法是由ThomasMcCabe提出的一种基于程序控制流的复杂性度量方法。
McCabe复杂性度量又称环路度量。
它认为程序的复杂性很大程度上取决于程序的复杂性。
单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。
这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。
程序图是退化的程序流程图。
也就是说,把程序流程图的每一个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。
程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作分支和循环的具体条件。
因此,它往往把一个简单的IF语句与循环语句的复杂性看成是一样的,把嵌套的IF语句与CASE的复杂性看成是一样的。
下面给出计算环路复杂性的方法,如图11-4所示。
根据图论,在一个强连通的有向图G中,环的个数V(G)由以下公式给出:
V(G)=m-n+2p
其中,V(G)是有向图G中环路数,m是图G中弧数,n是图G中结点数,p是图G中强连通分量个数。
在一个程序中,从程序图的入口点总能到达图中任何一个结点,因此,程序总是连通的,但不是强连通的。
为了使图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。
这样就可以使用上式计算环路复杂性了。
以图4-11所给出的例子示范,其中,结点数n=6,弧数m=9,p=1,则有
V(G=m-n+2p=9-6+2=5
即McCabe环复杂度度量值为5。
这里选择的5个线形无关环路为(abefa),(beb),(abea),(acfa),(abcfa),其他任何环路都是这5个环路的线形组合。
当分支或循环的数目增加时,程序中的环路也随之增加,因此,McCabe环复杂度度量值实际上是为软件测试的难易程度提供一个定量度量的方法,同时也间接表示了软件的可靠性。
实验表明,源程序中存在的错误数以及为了诊断和纠正这些错误所需要的时间与McCabe环复杂度度量值有明显的关系。
利用McCabe环复杂度度量值时,有几点说明。
(1)环路复杂度取决于程序控制结构的复杂度。
当程序的分支数目或循环数目时其复杂度也增加。
环路复杂度与程序中覆盖的路径条数有关。
(2)环路复杂度是可增加的。
例如,模块A的复杂度为3,模块B的复杂度为4,则模块A与模块B的复杂度是7。
(3)McCabe建议,对于复杂度超过10的程序,应分成几个小程序,以减少程序中的错误。
(4)这种度量的缺点是:
①对于不同种类的控制流的复杂度不能区分。
②简单IF语句与循环语句的复杂性同等看待。
③嵌套IF语句与简单CASE的复杂性是一样的。
④模块间接口当成一个简单分支一样处理。
⑤一个具有1000行的顺序程序与一行语句的复杂性相同。
尽管McCabe复杂度度量法有许多缺点,但它容易使用,而且在选择方案和估计排错费用等方面都是很有效的。
11.4软件可靠性
11.4.1软件可靠性定义
软件可靠性是指在给定的时间内,在规定的环境条件下系统完成所指定功能的概率。
软件可靠性定义表明了一个程序按照用户的要求和设计的目标,执行其功能的正确程度。
一个可靠的程序应要求是正确的、完整的、一致的和健壮的。
11.4.2软件可靠性指标
软件可靠性与可用性的定量指标,是指能够以数字概念来描述可靠性的数学表达式中所使用的量。
下面主要讨论常用指标平均失效等待时间MTTF、平均失效间隔时间MTBF与平均修复时间MTTR。
1.MTTF(MeanTimeToFailure)(又称平均无故障时间):
表示观察到下次失效的期望时间。
平均失效等待时间MTTF定义为:
2.MTBF(MeanTimeBetmeenFailure)
MTBF是平均失效间隔时间,它是指两次相继失效之间的平均时间。
3.平均修复时间(MeanTimeToRepair)
是指观察到失效后修复系统所需要的期望时间。
三者之间的关系为:
MTBF=MTTF+MTTR
11.4.3软件可靠性模型
软件可靠性是软件最重要的质量要素之一。
计算机硬件可靠性用机器的稳定可用性衡量,令MTTF是机器的平均无故障时间,MTTR是错误的平均修复时间,则机器的稳定可用性可定义为:
A=MTTF/(MTTF+MTTR)
软件可靠性模型通常分为如下几类:
(1)由硬件可靠性理论导出的模型。
(2)基于程序内部特性的模型。
(3)植入模型。
11.5软件评审
对软件工程来说,软件评审是一个“过滤器”,在软件开发的各个阶段都要采用评审的方法,以发现软件中的缺陷,然后加以改正。
把“质量”理解为“用户满意程度”。
为使用户满意,有两个必要条件:
(1)设计的规格说明书要符合用户的要求。
(设计质量)
(2)程序要按照设计规格说明书所规定的情况正确执行。
(程序质量)
11.5.1设计质量的评审内容
设计质量评审的对象是在需求分析阶段产生的软件需求规格说明、数据需求规格说明,在软件概要设计阶段产生的软件概要设计说明书等。
(1)评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;
需求规格说明是否得到了用户或单位上级机关的批准;
需求规格说明与软件的概要设计规格说明是否一致等。
(2)评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替或恢复手段。
(3)评审保密措施实现情况,即是否提供对使用系统资格进行检查;
对特定数据的使用资格、特殊功能的使用资格进行检查,在查出有违反使用资格情况后,能否向系统管理人员报告有关信息;
是否提供对系统内重要数据加密的功能等。
(4)评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;
输出数据的恰当性;
应答时间的恰当性等。
(5)评审性能实现情况,即是否达到所规定性能的的目标值。
(6)评审软件是否具有可修改性、可扩充性、可互换性和可移植性。
(7)评审软件是否具有可测试性。
(8)评审软件是否具有复用性。
11.5.2程序质量的评审内容
程序质量评审通常它是从开发者的角度进行评审,直接与开发技术有关。
它着眼于软件本身的结构、与运行环境的接口、变更带来的影响而进行的评审活动。
1.软件的结构
(1)功能结构。
在软件的各种结构中,功能结构是用户唯一能见到的结构。
需要检查的项目有:
①数据结构:
包括数据名和定义;
构成该数据的数据项;
数据与数据间的关系。
②功能结构:
包括功能名和定义;
构成该功能的子功能;
功能与子功能之间的关系。
③数据结构和功能结构之间的对应关系:
包括数据元素与功能元素之间的对应关系;
数据结构与功能结构的一致性。
(2)功能的通用性。
(3)模块的层次。
(4)模块结构。
①控制流结构:
规定了处理模块与处理模块之间的流程关系。
检查处理模块之间的控制转移关系与控制转移形式(调用方式)。
②数据流结构:
规定了数据模块是如何被处理模块进行加工的流程关系。
检查处理模块与数据模块之间的对应关系;
处理模块与数据模块之间的存取关系,如建立、删除、查询、修改等。
③模块结构与功能结构之间的对应关系:
包括功能结构与控制流结构的对应关系;
功能结构与数据流结构的对应关系;
每个模块的定义(包括功能、输入与输出数据)。
(5)处理过程的结构。
处理过程是最基本的加工逻辑过程。
2.与运行环境的接口
(1)与硬件的接口。
(2)与用户的接口。
随着软件运行环境的变更,软件的规格也在跟着不断地变更。
运行环境变更时的影响范围,需要从以下三个方面来分析:
(1)与运行环境的接口。
(2)在每项设计工程规格内的影响。
(3)在设计工程相互间的影响。
11.6软件容错技术
提高软件质量和可靠性的技术大致分为两类,一类是避开错误(fault-avoidance)技术,即在开发的过程中不让差错潜入软件的技术;
另一类是容错(fault-tolerance)技术,即对某些无法避开的差错,使其影响减少至最小的技术。
11.6.1容错软件定义
归纳容错软件的定义,有以下四种:
(1)规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。
(2)规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。
(3)规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。
(4)规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。
容错软件简单地说就是在一定程度上具有容错能力的规定功能的软件。
11.6.2容错的一般方法
实现容错技术的主要手段是冗余。
冗余是指实现系统规定功能是多余的那部分资源。
由于加入了这些资源,有可能使系统的可靠性得到较大的提高。
冗余通常分为四类:
1、结构冗余,又分为静态、动态和混合冗余三种。
(1)静态冗余。
常用的有:
三模冗余TMR(TripleModulerRedundancy)和多模冗余。
(2)动态冗余。
动态冗余的主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。
(3)混合冗余。
它兼有静态冗余和动态冗余的长处。
2、信息冗余
为检测或纠正信息在运算或传输中的错误须外加一部分信息,这种现象称为信息冗余。
3、时间冗余
时间冗余是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。
4、冗余附加技术
冗余附加技术是指实现上述冗余技术所需的资源和技术。
11.6.3容错软件的设计过程
容错系统的设计过程包括以下设计步骤:
(1)按设计任务要求进行常规设计,尽量保证设计的正确。
按常规设计得到非容错结构,它是容错系统构成的基础。
在结构冗余中,不论是主模块还是备用模块的设计和实现,都要在费用许可的条件下,用调试的方法尽可能提高可靠性。
(2)对可能出现的错误分类,确定实现容错的范围。
对可能发生的错误进行正确的判断和分类,例如,对于硬件的瞬时错误,可以采用指令复执和程序复算;
对于永久错误,则需要采用备份替换或者系统重构。
对于软件来说,只有最大限度地弄清错误和暴露的规律,才能正确地判断和分类,实现成功的容错。
(3)按照“成本——效率”最优原则,选用某种冗余手段(结构、信息、时间)来实现对各类错误的屏蔽。
(4)分析或验证上述冗余结构的容错效果。
如果效果没有达到预期的程度,则应重新进行冗余结构设计。
如此反复,直到有一个满意的结果为止。
第11章例题分析与解答
1.贯穿软件生存期中的一个极为重要的问题是__________。
答案:
软件质量
2.软件产品从诞生到消亡所有阶段的软件质量的活动是________。
软件质量保证
3.质量度量准则是为定量度量_________而规定的一些检查项目。
质量
4.软件可靠性是指在给定的条件与时间内,在规定的环境条件下系统完成所指定的软件功能的________。
概率
5.我们将评审“设计的规格说明书是否符合用户的要求”称为__________评审。
设计质量
二、选择题
1.软件需求是度量软件质量的基础,不符合需求的软件就不具备(
)。
A.软件特点
B.质量
C.软件产品
D.功能
B
2.为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行(
A.质量检验
B.软件容错
C.软件维护
D.系统容错
A
3.McCabe复杂性度量又称(
A.代码行度量
B.环路度量
C.程序量度量
D.功能性度量
4.程序能够满足规格说明和完成用户业务要求的质量特性称为(
A.可靠性
B.可用性
C.正确性
D.完整性
C
第11章自测题及参考答案
一、名词解释
1.软件质量
2.软件质量保证
3.软件可靠性
4.可重用性
5.容错软件
6.信息冗余
二、填空题
1.影响软件质量的因素有可直接度量的因素和________两大类。
(只能间接度量的因素)
2.软件质量保证就是向用户及社会提供满意的高质量产品,确保软件产品从诞生到消亡为止的所有阶段的__________。
(质量活动)
3.软件质量保证的任务是_________。
(保证软件质量)
4.为了作好软件质量评价,必须在开发前定义其________。
(质量需求)
5.ISO的软件质量评价模型分为三个层次,其中第一层称为质量特征层;
第二层称为质量子特征层;
第三层称为_________层。
(度量)
6.软件复杂性度量的参数主要有难度、结构、智能度和_________。
(规模)
7.软件的规格说明分为外部规格说明和___________。
(内部规格说明)
8.设计质量的评审是针对需求分析阶段产生的软件需求规格说明书、数据需求规格说明,在软件概要设计阶段产生的________进行的评审。
(软件概要设计说明书)
9.程序质量评审通常是从开发者的角度进行评审,直接与开发技术有关。
它是着眼于_______变更带来的影响而进行的评审活动。
(软件本身的结构与运行环境的接口)
10.冗余是指实现系统规定功能是多余的那部分资源,包括硬件、软件、时间和________。
(信息)
11.McCabe复杂性度量又称___________.(环路度量)
12.当程序的分支数目或循环数目增加时其复杂度也增加,因此环路的复杂度取决于___________的复杂度。
(程序控制结构)
13.提高软件质量和可靠性的技术大致可分为两大类,一类是避开错误技术,另一类是_________。
(容错技术)
14.质量保证策略大致分为三个阶段:
以检测为重、__________和以新产品开发为重。
(以过程管理为重)
15.软件产品制成后才进行检测,这种检测只能判断产品的质量,不能提高________。
(产品质量)
16.把质量保证工作重点放在过程管理上,对制造过程的每一环节都进行_________。
(质量控制)
17.软件复杂性主要表现在程序复杂性。
程序的复杂性主要指_________程序的复杂性。
(模块内)
18.为了减少软件开发费用,缩短软件开发周期,减少软件内部潜在错误,可以减少程序复杂性,以提高软件的简单性和_________。
(可理解性)
19.在软件的设计中占有极其重要的地位的是软件功能结构,它是联系__________跟开发者的规格说明。
(用户)
三、选择题
1.软件质量是贯穿软件(
B)的一个极为重要的问题。
A.开发
B.生存期
C.度量
D.测试
2.可被用于与其实现功能相关的其他应用问题的程序称为(
A)。
A.可重用性
B.可移植性
C.可互操作性
D.通信共用性
3.在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件特性进行(
B)。
A.测试
B.度量
C.评审
D.维护
4.软件质量必须在(
D)加以保证。
A.实现过程
B.开发之前
C.开发之后
D.整个开发期间
5.软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作(A
A.正确性
B.移植性
C.可靠性
6.软件或数据对非授权人访问行为的控制程度,称作(
D)。
7.程序能够按要求实现功能的程度,称作(
D.完备性
8.对软件产品,一般有4个方面影响着产品的质量,除了过程质量、人员素质及成本、时间和进度等条件外,其中很重要的是(C)。
A.概要设计说明B.需求规格说明
C.详细设计说明
D.开发技术
9.质量保证,它是为保证产品和服务充分满足(
D)要求而进行的有计划、有组织的活动。
A.开发者
B.生产者
C.测试者
D.消费者
10.软件可靠性是最重要的软件特性,通常用它来衡量在规定的条件和时间内,软件完成(
B)的能力。
A.需求分析
B.规定功能
C.概要设计
D.软件测试
11.软件可靠性的定量指标,常借用硬件可靠性的定量度量方法来度量软件的可靠性,其中MTBF是(
A.平均等待时间
B.平均间隔时间
C.平均失效等待时间
D.平均失效间隔时间
12.提高软件质量和可靠性的技术大致分为两大类:
一类是避开错误技术,另一类是(
C)。
A.重用技术
B.避开错误
C.容错技术
D.模块化设计
13.软件是不可见的复杂的逻辑实体,它不同于任何其他制造业的产品。
使得软件质量难于把握的一个因素是(
A.软件需求
B.硬件需求
C.软件配置
D.硬件配置
14.对白盒测试和黑盒测试补充的一种有效的方法是加强阶段(
B)工作。
A.调试
B.评审
C.维护
D.自测试
15.在软件开发和维护的过程中,为了定量地评价软件质量,必须对(
B)进行度量。
B.软件质量特性
C.软件质量
D.软件特性
16.许多产品的质量问题源于新产品的开发设计阶段,因此在产品(
C)阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患。
A.软件评审
B.软件测试
C.开发设计
D.软件度量
17.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为(
A.软件容错
B.系统软件
C.测试软件
D.操作系统
《软件工程》习题参考答案11
1、软件质量与软件质量保证的含义是什么?
答:
从实际应用来说,软件质量定义包括三个一致性:
(1)与所确定的功能和性能需求的一致性;
(2)与所成文的开发标准的一致性;
(3)与所有专业开发的软件所期望的隐含特性的一致性。
软件质量保证是指确定、达到和维护所需要的软件质量而进行的所有有计划、有系统的管理活动。
2、影响软件质量的因素有哪些?
影响软件质
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十一章 软件质量与质量保证 第十一 软件 质量 质量保证