当前位置首页 > 汽车/机械/制造 > 机械软件
搜柄,搜必应! 快速导航 | 使用教程

软件工程8软件质量保证

文档格式:PPT| 43 页|大小 895.82KB|2024-10-10 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 43
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,8,章 软件质量保证,掌握:,软件质量的定义、软件质量的特性与度量、软件质量保证、软件质量模型、软件复杂性的度量方法、软件可靠性、软件评审、容错软件8,.1,软件质量概述,8.1.1,软件质量的定义,清华大学的郑人杰教授认为,软件质量主要反映了以下,3,方面的问题:,(,1,)软件需求是度量软件质量的基础,不符合需求的软件就不具备质量2,)在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件如果不遵守这些开发准则,软件质量就得不到保证3,)往往会有一些隐含的需求没有明确地提出来,例如,软件应具备良好的可维护性如果软件只满足那些精确定义了的需求,而没有满足这些隐含的需求,软件质量也不能保证8.1.2,软件质量的特性与度量,软件测试的目的就是为了发现错误并纠正错误,可以将其总结为以下几点:,(,1,)测试是一个程序的执行过程,它的目的在于发现错误2,)一个好的测试用例极可能发现至今未发现的错误3,)一个成功的测试是发现了至今末发现的错误的测试1,功能性,由功能及与其指定的性质有关的一组属性组成,包括:,(,1,)适合性,(,2,)准确性,(,3,)互用性,(,4,)依从性,(,5,)安全性,2,可靠性,由与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性组成,包括:,(,1,)成熟性,(,2,)容错性,(,3,)易恢复性,3,易用性,由与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性组成,包括:,(,1,)易理解性,(,2,)易学性,(,3,)易操作性,4,效率,在规定的条件下,软件的性能水平与所使用资源之间存在一定的关系,与这个关系有关的一组属性,是衡量效率的标准,这些属性包括:,(,1,)时间特性,(,2,)资源特性,5,可维护性,由与为进行指定的修改而所需的努力有关的一组属性组成,包括:,(,1,)易分析性,(,2,)易改变性,(,3,)稳定性,(,4,)易测试性,6,可移植性,由与软件可从某一环境转移到另一环境的能力有关的一组属性组成,包括:,(,1,)适应性,(,2,)易安装性,(,3,)遵循性,(,4,)易替换性,8.1.3,软件质量保证,所谓软件质量保证,就是建立一套有计划、有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。

    软件质量保证的主要手段,是对软件产品和活动进行评审和审计,以此来验证软件是合乎标准的在软件开发的各个阶段实施的软件质量保证检验项目如下:,1,需求分析阶段,主要检测开发目的、目标值、开发量(程序、文档)、所需资源、各阶段的产品和作业内容、开发体制等的合理性2,设计阶段,检验项目包括产品的量(计划量、实际量)、评审量、差错数、检出差错的内容、评审方法和覆盖性、出错原因、处理情况及对该阶段的影响、评审结束和阶段结束的判断标准等3,实现阶段,检验项目包括设计阶段的所有检验项目,另外还包括:计算机使用时间、测试环境、测试项目设定种类、测试用例的设计方法等4,验收阶段,检验项目主要是说明书检查(检查与被检查程序有关的用户文档等)和程序检查(为了评价和保证程序质量,采用各种黑盒测试或白盒测试手段进行检查)5,运行维护阶段,主要是掌握用户使用产品的质量情况,并反馈给开发部门8,.,2,软件质量模型,8.2.1 McCall质量度量模型,图,8-1 McCall,模型的,3,个层次与,11,个特性,8.2.2 ISO,软件质量评价模型,国际标准化组织,ISO,制定的,ISO,质量度量模型由,3,层组成,分别是:,(,1,)高层,称为,“,软件质量需求评价准则,”,。

    2,)中层,称为,“,软件质量设计评价准则,”,3,)低层,称为,“,软件质量度量评价准则,”,ISO,认为,应对高层和中层建立国际标准,而低层可由各使用单位视实际情况制定相关标准同时,按照,ISO,IEC9126,质量特性国际标准,第一层(即,ISO,质量度量模型中的,“,高层,”,)称为质量特性,第二层(即,ISO,质量度量模型中的,“,中层,”,)称为质量子特性,第三层(即,ISO,质量度量模型中的,“,低层,”,)称为度量该标准定义了,6,个质量特性,即功能性、可靠性、可维护性、效率、可使用性、可移植性,并推荐了,21,个子特性,如适合性、准确性、互用性、依从性、安全性、成熟性、容错性、可恢复性、可理解性、易学习性、操作性、时间特性、资源特性、可分析性、可变更性、稳定性、可测试性、适应性、可安装性、一致性、可替换性,但不作为标准8,.,3,软件复杂性,8.3.1,软件复杂性的基本概念,软件复杂性是指软件的复杂程度1,)规模:即总共的指令或源程序行数2,)难度:通常由程序中出现的操作数的数量来表示3,)结构:通常用与程序结构有关的度量来表示4,)智能度:即算法的难易程度8.3.2,软件复杂性的度量方法,软件复杂性度量是对软件复杂性的定量描述,是软件复杂性分析和控制的基础,它针对不同对象,从不同角度选用不同方法来描述软件的复杂性。

    软件复杂性主要表现在程序的复杂性程序的复杂性主要指模块内程序的复杂性,它直接关系到软件开发费用、开发周期和软件内部潜伏错误的多少,同时也可用于度量软件的可理解性要求复杂性度量满足以下假设:,(1),软件复杂性度量可以用来计算任何一个程序的复杂性2),对于不合理的程序,如长度动态增长的程序,或者对于原则上无法排错的程序,则不应当使用软件复杂性度量进行复杂性计算3),程序中指令条数、附加存储量、计算时间增多不会减少程序的复杂性1,长度度量,度量程序的复杂性,最简单的方法就是统计程序的源代码行数此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的质量2,Halstead,度量,Halstead,度量法通过计算程序中的运算符和操作数的数量对程序的复杂性加以度量设,n1,表示程序中不同运算符的个数,,n2,表示程序中不同操作数的个数,,N1,表示程序中实际运算符的总数,,N2,表示程序中实际操作数的总数令,H,表示程序的预测长度,,Halstead,给出,H,的计算公式为:,H=n1log2n1+n2log2n2,;令,N,表示实际的程序长度,其定义为:,N=N1+N2,3,McCabe,度量,该度量方法由,McCabe,提出,又称为环路复杂性度量方法,其步骤是:,(,1,)将程序流程图中的每个处理符号看作一个节点,流程图中的流程线看作有向弧,从而将流程图转换为一个有向图。

    2,)从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图3,)定义环路复杂性的计算公式为:,V(G)=m,n+p,其中,,V(G),是有向图,G,中的环路数;,m,是图,G,中的弧数;,n,是图,G,中的节点数;,P,是图,G,中的强连通分量也可简单地将环路复杂性看作有向图中有向弧所封闭的区域个数例如,如图,8-2,(,a,)所示的程序流程图对应的有向图如图,8-2,(,b,)所示因为节点数,n=11,,弧数,m=13,,强连通分量,p=1,,因此,环路复杂性,V,(,G,),=3,图,8-2 McCabe,复杂性度量的例子,8.3.3,软件复杂性控制,(,1,)控制结构和数据结构复杂的程序较复杂2,)转向语句使用不当的程序较复杂3,)非局部量较多的程序较复杂4,)按地址调用参数比按值调用参数复杂5,)模块及过程之间联系密切的程序较复杂6,)嵌套深度越大,程序越复杂7,)循环结构复杂性大于选择结构和顺序结构的复杂性8,)宽度是软件复杂性的主要形成原因8,.,4,软件可靠性,8,.4.1,软件可靠性的定义,1,软件故障及其特征,常用以下,3,个术语来描述软件未正常运行的情况:,(,1,)缺陷:是指软件的内在缺陷。

    2,)错误:缺陷在一定环境条件下暴露,导致系统运行中出现可感知的不正常、不正确和不按规范执行的状态3,)故障:由于对错误未作任何纠正,而导致系统的输出不满足预定的要求2,软件可靠性,软件可靠性的定义是:,“,软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力,”,1,)规定的时间,(,2,)规定的环境条件,(,3,)规定的功能,8.4.2,软件可靠性的指标,(,1,)平均失效间隔时间,MTTF,:即两次失效之间的平均操作时间2,)平均修复时间,MTTR,:即修复一个故障平均需用的时间3,)有效性:,A=,(,MTTF/,(,MTTF+MTTR,)4,)初期故障率:一般以软件交付使用方后的,3,个月内为初期故障期,初期故障率指软件在初期故障期内单位时间的故障数,一般以每,100h,的故障数为单位,可以用来评价交付使用的软件的质量,并预测软件可靠性何时基本稳定5,)偶然故障率:一般以软件交付给使用方后的,4,个月后为偶然故障期偶然故障率指软件在偶然故障期内单位时间的故障数,一般以每千小时的故障数为单位,它反映了软件处于稳定状态时的质量6,)使用方误用率:使用方不按照软件规范及说明等文件来使用软件而造成的错误叫,“,使用方误用,”,。

    在总使用次数中,使用方误用次数占的百分率叫,“,使用方误用率,”,造成使用方误用的原因之一是使用方对说明理解不深,操作不熟练,但也可能是说明没有讲得非常清楚,引起误解等7,)用户提出补充要求数:由于软件在开发过程中未能充分满足用户需要,或者用户在软件开发时所提要求不全面,软件开始使用后用户又提出补充要求,需要生产方对软件进行修改、完善8.4.3,软件可靠性模型,(,1,)随机性分类法:根据随机过程的假设(如过程的确定性或非确定性、马氏过程、泊松过程等)进行分类2,)按软件出现的故障数进行分类:主要有错误计数模型和非计数模型,可数性或不可数性模型3,)按模型参数的估计方法进行分类:主要有贝叶斯方法或非贝叶斯方法,最大似然估计法或最小二乘法,另外还有线性模型等4,)按模型使用的时间方式分类:主要有日历时间和执行时间模型5,)按修复过程分类:主要指强调对软件系统修复过程的一类模型,如:完全修复型的和不完全修复型的模型,完全排错型和不完全排错型的模型6,)按对软件的内部结构是否了解进行分类:可分为黑箱模型和白箱模型主要根据对软件内部结构的了解程度,以及对它们的结构能加以利用的程度来进行分类8,.,5,软件评审,8,.,5,.1,软件评审的概念,对软件工程来说,软件评审是一个,“,过滤器,”,。

    在软件开发的各个阶段都要采用评审的方法,以发现软件中的缺陷,然后加以改正8.5.2,软件评审的阶段和内容,1,设计质量的评审,设计质量的评审包括:,(1),评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等2),评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效一旦发生异常,应能及时采取代替或恢复手段3),评审保密措施实施情况,即是否提供对使用系统资格进行检查的功能;在检查出有违反对特定数据、特殊功能的使用资格的情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等4),评审操作特性实施情况,即操作命令和操作信息的恰当性;输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等5),评审性能实现情况,即是否达到所规定性能的的目标值6),评审软件是否具有可修改性、可扩充性、可互换性和可移植性7),评审。

    点击阅读更多内容
    卖家[上传人]:xueyuzhun398
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档