软件质量评价和保证PPT格式课件下载.ppt
《软件质量评价和保证PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《软件质量评价和保证PPT格式课件下载.ppt(60页珍藏版)》请在冰豆网上搜索。
在软件开发和维护过程中,为了定量地评价软件质量,必须对软件质量特性进行度量,以测定软件具有要求质量特性的程度。
1976年,Boehm等人提出了定量评价软件质量的层次模型(见图14.1);
1978年Walters和McCall提出了从软件质量要素、准则到度量的3个层次式的软件质量度量模型(见图14.2);
G.Murine根据上述等人的工作,提出软件质量度量(SQM)技术(见图14.3),用来定量评价软件质量。
第14章软件质量评价和保证图14.1Boehm软件质量度量模型第14章软件质量评价和保证图14.2McCall软件质量度量模型第14章软件质量评价和保证14.1.3软件质量保证软件质量保证1.软件质量保证的含义软件质量保证的含义软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。
它包括的主要功能有:
质量方针的制定;
质量保证方针和质量保证标准的制定;
质量保证体系的建立和管理;
明确各阶段的质量保证工作;
各阶段的质量评审;
确保设计质量;
重要质量问题的提出与分析;
总结实现阶段的质量保证活动;
整理面向用户的文档、说明书等;
产品质量鉴定、质量保证系统鉴定;
质量信息的收集、分析和使用。
第14章软件质量评价和保证2.质量保证的策略质量保证的策略质量保证策略的发展大致可以分为以下3个阶段:
(1)以检测为重。
产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量。
(2)以过程管理为重。
把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制。
(3)以新产品开发为重。
许多产品的质量问题源于新产品的开发设计阶段,因此在产品开发设计阶段就应采取有力措施,以便消灭由于设计原因而产生的质量隐患。
由上可知,软件质量保证应从项目计划和设计开始,直到投入使用和售后服务的软件生存期的每一阶段中的每一步骤。
第14章软件质量评价和保证3.质量保证的主要任务质量保证的主要任务为了提高软件的质量,软件质量保证的任务大致可归结为以下几点:
(1)正确定义用户要求:
软件质量保证人员必须正确定义用户所要求的技术。
必须十分重视领导全体开发人员收集和积累有关用户业务领域的各种业务资料和技术技能。
(2)技术方法的应用:
开发新软件的方法,最普遍公认的成功方法就是软件工程学的方法。
标准化、设计方法论、工具化等都属此列。
应当在开发新软件的过程中大力使用和推行软件工程学中所介绍的开发方法和工具。
(3)提高软件开发的工程能力:
只有高水平的软件工程能力才能生产出高质量的软件产品。
第14章软件质量评价和保证因此须在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法提高开发软件的能力。
(4)软件的复用:
利用已有的软件成果是提高软件质量和软件生产率的重要途径。
不要只考虑如何开发新软件,首先应考虑哪些已有软件可以复用,并在开发过程中,随时考虑所生产软件的复用性。
(5)发挥每个开发者的能力:
软件生产是人的智能生产活动,它依赖于开发组织团队的能力。
开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。
管理者或产品服务者要制定技术培训计划、技术水平标准,以及适用于将来需要的中长期技术培训计划。
第14章软件质量评价和保证(6)组织外部力量协作:
一个软件自始至终由一软件开发单位来开发也许是最理想的,在现实中难以做到。
因此需要改善对外部协作部门的开发管理,必须明确规定进度管理、质量管理、交接检查和维护体制等各方面的要求,建立跟踪检查的体制。
(7)排除无效劳动:
最大的无效劳动是因需求说明有误、设计有误而造成的返工。
定量记录返工工作量,收集和分析返工劳动花费的数据非常重要。
另一种较大的无效劳动是重复劳动,即相似的软件在几个地方同时开发。
这多是因项目开发计划不当,或者开发信息不流畅造成的。
为此,要建立互相交流、信息往来通畅和具有横向交流特征的信息流通网。
第14章软件质量评价和保证(8)提高计划和管理质量:
对于大型软件项目来说,提高工程项目管理能力是极其重要的。
必须重视项目开发初期计划阶段的项目计划评价、计划执行过程中及计划完成报告的评价将评价、评审工作在工程实施之前就列入整个开发工程的工程计划之中。
4.质量保证与检验质量保证与检验软件质量必须在设计和实现过程中加以保证。
如果工程能力不够,或者由于各种失误导致产生软件差错,其结果就会产生软件失效。
为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验。
因此须在软件开发工程的各个阶段实施检验。
检验的实施有实际运行检验(即白盒测试和黑盒测试)和鉴定两种形式,可在各开发阶段中结合起来使用。
第14章软件质量评价和保证14.2质量度量模型质量度量模型14.2.1McCall质量度量模型质量度量模型McCall质量度量模型是McCall等人于1979年提出的软件质量模型,如图14.2所示。
针对面向软件产品的运行、修正和转移,软件质量概念包括如下11个特性。
1)面向软件产品运行面向软件产品运行的定义如下:
(1)正确性:
指软件满足设计说明及用户预期目标的程度。
(2)可靠性:
指软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。
第14章软件质量评价和保证(3)效率:
为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度。
(4)完整性:
对非授权人访问软件或数据行为的控制程度。
(5)可用性:
用户熟悉、使用及准备输入和解释输出所需工作量的大小。
2)面向软件产品修正面向软件产品修正的定义如下:
(1)可维护性:
指找到并改正程序中的一个错误所需代价的程度。
(2)可测试性:
指测试软件以确保其能够执行预定功能所需工作量的程度。
第14章软件质量评价和保证(3)适应性:
指修改或改进一个已投入运行的软件所需工作量的程度。
3)面向软件产品转移面向软件产品转移的定义如下:
(1)可移植性:
指将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量。
(2)可重用性:
指一个软件(或软件的部件)能再次用于其他相关应用的程度。
(3)可互操作性:
指将一个系统耦合到另一个系统所需的工作量。
第14章软件质量评价和保证通常,对以上各个质量特性直接进行度量是很困难的,在有些情况下甚至是不可能的。
因此,McCall定义了一些评价准则,使用它们对反映质量特性的软件属性分级,以此来估计软件质量特性的值。
软件属性一般分级范围从0(最低)10(最高)。
主要评价准则定义如下:
(1)可跟踪性:
指跟踪一个设计说明或一个实际程序部件返回到需求的能力(可追溯)。
(2)完备性:
指所需功能实现的程度。
(3)一致性:
指在整个软件开发项目中使用统一的设计和文档编制技术的程度。
(4)安全性:
指防止软件受到意外的或蓄意的存取、使用、修改及毁坏,或防止失密的程度。
第14章软件质量评价和保证(5)容错性:
是在系统出错时,能以某种预定方式,做出适当处理,得以继续执行和恢复系统的能力,它又称为健壮性。
(6)准确性:
指能达到的计算或控制精度,又称为精确性。
(7)可审查性:
指检查与标准是否符合的难易程度。
(8)可操作性:
指软件操作的难易程度。
(9)可训练性:
指软件使新用户使用该系统的辅助程度。
(10)简洁性:
在不复杂、可理解的方式下,定义和实现软件功能的程度。
(11)简明性:
又称可理解性,指软件易读的程度。
(12)模块性:
指软件系统内部接口达到的高内聚、低耦合的程度。
第14章软件质量评价和保证(13)自描述性:
对软件功能进行自身说明的程度。
(14)通用性:
指软件功能覆盖面宽广的程度。
(15)可扩充性:
指软件的体系结构、数据设计和过程设计的可扩充的程度。
(16)硬件独立性:
指不依赖于某个特定设备及计算机而能工作的程度。
(17)通信共用性:
指使用标准接口、协议和带宽的程度。
(18)数据共用性:
指使用标准数据结构和数据类型的程度。
第14章软件质量评价和保证14.2.2ISO的软件质量评价模型的软件质量评价模型按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由3层组成,如图14.3所示。
高层是软件质量需求评价准则(SQRC)。
中层是软件质量设计评价准则(SQDC)。
低层是软件质量度量评价准则(SQMC)。
ISO认为,应对高层和中层建立国际标准,在国际范围内推广软件质量管理(SQM)技术,而低层可由各使用单位视实际情况制定。
ISO的3层次模型来自McCall等人的模型。
高层、中层和低层分别对应于McCall模型中的特性、度量准则和度量。
其中SQRC由8个元素组成。
第14章软件质量评价和保证图14.3ISO的3层模型第14章软件质量评价和保证按1991年ISO发布的ISO/IEC9126质量特性国际标准,SQRC已降为6个。
在这个标准中,3层次中的第一层称为质量特性,第二层称为质量子特性,第三层称为度量。
第14章软件质量评价和保证14.3软软件件复复杂杂性性14.3.1软件复杂性的基本概念软件复杂性的基本概念软件度量的一个重要分支就是软件复杂性度量。
对于软件复杂性,至今尚无一种公认的精确定义。
软件复杂性与质量属性有着密切的关系,从某些方面反映了软件的可维护性、可靠性等质量要素。
软件复杂性度量的参数很多,主要有如下几种:
(1)规模:
即总共的指令数,或源程序行数。
(2)难度:
通常由程序中出现的操作数的数目所决定的量来表示。
(3)结构:
通常用与程序结构有关的度量来表示。
(4)智能度:
即算法的难易程度。
第14章软件质量评价和保证软件复杂性主要表现在程序的复杂性。
程序的复杂性主要指模块内程序的复杂性,它直接关联到软件开发费用的多少、开发周期长短和软件内部潜伏错误的多少,同时它也是软件可理解性的另一种度量。
减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。
为了度量程序复杂性,要求复杂性度量满足以下假设:
(1)它可以用来计算任何一个程序的复杂性。
(2)对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算。
第14章软件质量评价和保证(3)如果程序中指令条数、附加存储量及计算时间增多,不会减少程序的复杂性。
第14章软件质量评价和保证14.3.2软件复杂性