软件工程软件质量.pptx
《软件工程软件质量.pptx》由会员分享,可在线阅读,更多相关《软件工程软件质量.pptx(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十二章 软件质量12.1 软件质量的概念12.2 软件质量的度量和评价12.3 软件质量保证12.4 技术评审与审查12.5 软件的可靠性第1页/共80页12.1 软件质量的概念12.1.1 软件质量的定义ANSI的标准把软件质量定义为:“软件质量是软件产品或服务的特性和特征的整体,它取决于满足给定需求的能力。”第2页/共80页IEEE在ANSI的软件基础上,对有关软件质量标准进行了进一步的定义:软件产品具备满足给定需求的特性及特征的总体的能力。软件拥有所期望的各种属性组合的程度。用户认为软件满足他们综合期望的程度。软件组合特性可以满足用户预期需求的程度。第3页/共80页12.1.2 软件质
2、量特性软件是一种具有特殊属性的产品,因此产品质量的定义完全适用于软件领域,对软件的质量保证工作具有重要的指导意义,尤其是面向用户的“适用性”的观点,应该成为指导软件开发的座右铭。第4页/共80页已有多种有关软件质量的模型。它们共同的特点是把软件质量特性定义成分层模型。下面是几个影响较大的软件质量模型。(1)McCall质量模型 McCall定义了一些评价准则,可用检查表的形式对软件的专门属性进行“分级”,范围从0(最低)到10(最高),定义如下:第5页/共80页可审计性:检查与标准是否符合额定难易程度。准确性:计算和控制的精确程度。通信共用性:使用标准接口、协议和宽带的程度。完整性:所需功能实
3、现的程度。复杂性:程序结构化、模块化、简明、简洁、清洗和可理解的程度。简明性:程序代码的紧密程度。第6页/共80页一致性:在整个软件开发项目中使用统一的设计和文档编制技术的程度。数据共用性:在整个程序中使用标准数据结构和类型的程度。容错性:当程序出错时,造成破坏的程度。执行效率:程序的运行时间。可扩充性:体系结构,数据或过程设计可扩充的程度通用性:程度构成潜在的应用范围。第7页/共80页硬件独立性:软件与运行它的硬件之间的相关程度。工具性:程序监视自身运行和识别出错现象的程度。模块性:程序各构件的功能独立性。可操作性:程序操作的难易程度。安全性:控制或保护程序和数据机制的有效性 第8页/共80
4、页自描述性:源代码提供自身描述的程度。简洁性:程序易于理解的程度。软件独立性:程序与非标准编程语言性质、操作系统特性以及其他环境限制的无 关程度。可跟踪性:沿一个设计说明或一个实际程序构件返回到需求的能力。可训练性:程序使新用户使用该系统的辅助程度。第9页/共80页pMcCall定义的软件质量模型第10页/共80页第11页/共80页McCall认为,软件质量要素是软件质量特征,软件质量属性是软件质量的评价标准,评价准则还需要定量的度量。质量要素、评价准则和度量构成了McCall的三层次质量度量模型。第12页/共80页McCall质量度量模型框架第13页/共80页在这个层次模型中,度量处于模型的
5、最低层,它是由质量保证人员根据开发过程的特征,对质量准则作出的定量评价,遗憾的是该评价方法还不够成熟。第14页/共80页(2)ISO的软件质量评价模型ISO的三层结构来源于McCall等人的模型,其高层、中层和底层分别与McCall模型的质量因素组成,SQDC选用了23个评价准则。ISO认为,高层和中层应建立国际标准,以便在国际范围内推广应用SQM技术。而底层SQMC则可以有各使用单位根据实际情况制定。第15页/共80页p ISO软件质量度量模型 第16页/共80页12.1.3 软件质量特性之间的竞争在软件的众多质量特性之间,质量特性与质量子特性之间存在着有利的影响和不利的影响,表12-2给出
6、了各质量特性与质量子特性之间的关系,表12-3给出了质量特性之间的有利和不利影响,表12-4给出了表12-4 软件质量特性与质量子特性间的有利和不利影响。第17页/共80页表12-2各质量特性与质量子特性之间的关系第18页/共80页续上表第19页/共80页表12-3 质量特性间的有利和不利影响第20页/共80页表12-4 软件质量特性与质量子特性间的有利和不利影响第21页/共80页续上表第22页/共80页软件质量度量(SQM)技术,虽然经历了近20年的研究,但是目前仍然处于发展和完善阶段。根据ISO近年来讨论的趋势,逐渐向面向用户靠拢,这是因为,软件质量因素是在软件需求分析和定义阶段,由用户根
7、据需求对所开发软件在软件质量上提出来的要求。第23页/共80页12.2 软件质量的度量和评价12.2.1 软件质量的度量软件质量度量是对软件所具有的影响其属性所进行的定量测量。在软件质量度量时必须满足的质量标准:客观性:如果不存在来自测试者对度量的主观影响,则度量是客观的。可靠性:如果在重复度量中,在同样条件下达到相同的效果,则认为度量是可靠的。第24页/共80页适用性:如果度量结果能够明确地说明质量特性时,则可以说度量是适用的。标准化:标准化是指必须有一个可以明确表示度量结果的标度,当这个可比较的标度存在时,度量被认为是达到标准化的。可比较性:当某项度量与其他度量相关时,则度量具有可比较性。
8、第25页/共80页经济性:当度量是在低成本下进行时,它是经济的。度量的经济与否取决于度量过程的自动化程度和度量的数据量,使用工具可以大大改善软件度量的自动化水平。有效性:质量标准的有效形式最难证明的。但是不说明度量标准是有效时,就不能客观的评价软件质量。第26页/共80页12.2.2 软件质量度量的分类软件质量度量可以划分为过程度量和产品度量。过程度量过程度量是度量开发过程和维护过程或开发环境的定量属性。例如说明开发人员具有多少年的编程经验和开发过程的成本等。第27页/共80页产品度量 产品度量则是度量产品的定量属性。产品度量包括度量产品的大小,结构的复杂性,数据结构的复杂性。第28页/共80
9、页12.2.3 软件质量评价软件质量评价采用软件复杂性度量。软件复杂性度量是软件质量度量中经常使用的度量方法,它属于产品度量的范畴。软件复杂性度量涉及到问题的复杂性、设计的复杂性、程序或产品的复杂性。复杂性度量包括静态度量和开发度量。第29页/共80页静态度量是在给定时间内测量软件产品的质量,它可以分为:软件产品的规模软件产品程序控制结构的度量。数据结构的度量第30页/共80页两个传统的软件复杂性度量法 1.McCabe度量法McCabe复杂性度量也称环路度量。其基本思想是:McCabe认为程序的复杂性很大程度上取决于程序控制流的复杂性,单一的顺序程序结构最简单,循环和选择所构成的环路越多,程
10、序就越复杂。第31页/共80页McCabe度量步骤如下:画程序图首先画出程序图,这是一种“退化”的程序流程图,即将程序流程图中每个处理退化成一个点,而连接不同处理的箭头变成连接不同点的有向弧。第32页/共80页程序流程图第33页/共80页程序图第34页/共80页计算线性无关环路数根据图论理论,一个强连通的有向图中线性无关环路个数计算公式如下:V(G)=e-h+1 其中,V(G):有向图G中的还数 e:G的弧的条数 n:G的节点数 第35页/共80页如果对于一个正常的程序来说,应该能够从程序图内的入口点到达任何一个节点,因此,如果从出口点加一条指向入口点的弧,那么,程序图一定是一个强连通图。第3
11、6页/共80页McCabe度量法的主要不足之处是他只考虑一个流程图,没有考虑独立指令的复杂性,特别是表达式的复杂性,也没有考虑嵌套指令的复杂性。第37页/共80页2.Halstead软件复杂性度量方法Halstead复杂性度量方法基本思路是根据程序中可执行代码行的操作符合操作数的数目来计算程序的复杂性,一般说来,操作符和操作数越大程序就越复杂。第38页/共80页Halstead的度量法假设程序是由运算数和算符组成,每个符号或关键字标志着一个动作,即所谓的算符,如算术操作符+,-,*,/;关键字有WHILE,FOR,READ等。特殊符号包括=、括号等;函数有EOF等。表示数据(包括变量、常数和标
12、号等)的所有符号叫做运算数。第39页/共80页下面是Halsteads度量法的基本度量值:n1:程序中的特殊算符的数量n2:程序中的特殊运算数的数量N1:所有算符出现的总数N2:所有运算数出现的总数n=n1+n2:在程序种不同符号的数(或称程序的词汇标)N=N1+N2:在程序中所有符号的总数(或称程序长度)第40页/共80页程序容量也成为程序能力,定义为 V=Nlog2nHalstead用D来说明程序度写时的难度系数:D=(n1*N2)/(2*n2)D是词汇表和运算数数量的函数,N2/n2是适用的运算数的平均数。第41页/共80页从公式中可以看出,由于有些语言中使用大量的算符,例如汇编语言,使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 质量
限制150内