第9章软件质量与软件工程标准化要点课件.ppt
《第9章软件质量与软件工程标准化要点课件.ppt》由会员分享,可在线阅读,更多相关《第9章软件质量与软件工程标准化要点课件.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章软件质量与软件工程标准化2023/1/6第10章软件质量与软件工程标准化软件工程教研室本章主要内容:本章主要内容:1软件质量概念2软件质量保证3软件可靠性与复杂性4软件工程标准化5ISO 9000标准及质量认证教学目的及要求:教学目的及要求:1.掌握软件质量概念、质量保证、软件可靠性等基本理论知识。2.熟悉软件质量度量、建立软件质量保证体系和软件可靠性评价方法、步骤和策略。3.了解软件工程标准化和质量认证的基本知识。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.1 软件质量概念9.1.1 质量定义及特征指标 软件产品的质量实际上就是软件项目工作质量的反映。反映产品或服
2、务满足明确或隐含需求能力的特征和特性的总和。软件质量特性是用以描述和评价软件产品质量的一组属性。1)功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。2)可靠性特征:与在规定的一段时间和条件下能维持其性能程度有关的一组属性。2023/1/6第10章软件质量与软件工程标准化软件工程教研室3)易用性特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。4)效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。5)可维护性特征:与进行指定的修改所需的努力有关的一组属性。6)可移植性特征:与软件从一个环境转移到另一
3、个环境的能力有关的一组属性。其中每一个质量特征都分别与若干子特征相对应。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.1.2质量评价模型 人们通常用软件质量模型来描述影响软件质量的特性。已有多种软件质量的模型,它们共同的特点是把软件质量特性定义成分层模型。1)ISO1)ISO软件质量评价模型软件质量评价模型 按照ISOTC97SC7WG31985130N382,软件质量度量模型由三层组成。(1)高层(Toplevel):软件质量需求评价准则(SQRC)。(2)中层(Midlevel):软件质量设计评价准则(SQDC)。(3)低层(Lowlevel):软件质量度量评价准则(S
4、QMC)。2023/1/6第10章软件质量与软件工程标准化软件工程教研室ISO软件质量度量模型2023/1/6第10章软件质量与软件工程标准化软件工程教研室2)McCall软件质量评价模型 McCall等人于1979年提出的软件质量模型。其软件质量概念基于11个特性之上。而这11个特性分别面向软件产品的运行、修正、转移。它们与特性的关系如所示。2023/1/6第10章软件质量与软件工程标准化软件工程教研室质量特性表正确性在预定环境下,软件满足设计规格说明及用户预期目标的程度,它要求软件没有错误。可靠性软件按照设计要求,在规定时间和条件下不出故障、持续运行的程度。效率为完成预定功能,软件系统所需
5、计算机资源的多少。完整性为了某一目的而保护数据免受偶然或有意的破坏、被改动或遗失的能力。可使用性对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。可维护性为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。可测试性调试软件以确保其能够执行预定功能所需工作量的大小。灵活性修改或改进一个已投入运行的软件所需工作量的大小。可移植性将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。可复用性一个软件(或软件的部件)能再次用于其他应用(该应用的功能与此软件或软件部件的
6、所完成的功能有联系)的程度。互连性又称相互操作性。连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其他系统通信,或要把其他系统纳入自己的控制之下,必须有系统间的接口,使之可以联结。2023/1/6第10章软件质量与软件工程标准化软件工程教研室质量要素的量化估计某质量要素矩阵M:1 2 Lm11 m12 m1L m21 m22 m2L.mn1 mn2 mnL 。加权者1加权者2加权者n准则准则准则则,第j个准则的权:某个质量要素的得分:Fq=a1 w1+a2 w2+aL wLMij为代理第i个打分员为第j个准则加的权。2023/1/6第10章软件质量与软件工程标准化软件工程教研室
7、3)Boehm质量评价模型 1976年,Boehm等人提出了定量地评价软件质量的概念,并给出了60个质量量度公式,说明怎样用来评价软件质量。Boehm等认为,软件产品质量主要应从以下三个方面来评价:(1)软件的可使用性。(2)软件的可维护性。(3)软件的可移植性。2023/1/6第10章软件质量与软件工程标准化软件工程教研室Boehm等人提出的软件质量量度模型主要用途中间构造基本构造总 能 力可移植性可 使 用 性可 维 护 性可 靠 性效 率环境工程可测试性可理解性可修改性设备独立性完 整 性准 确 性一 致 性设备效率可存取性通 信 性结 构 性自描述性简 洁 性易 读 性可扩充性2023
8、/1/6第10章软件质量与软件工程标准化软件工程教研室9.1.3 软件质量控制与质量保证 质量保证是为保证产品和服务充分满足用户要求的质量而进行的有计划、有组织的活动。总是围绕着质量保证过程和质量控制过程两方面。1.软件质量控制(Software Quality Control,SQC)是为了保证每一件工作产品都满足对它的需求而应用于整个开发周期中的一系列的检测活动(代码走查、单元测试、集成测试、环境测试等),由开发人员负责。2.软件质量保证(Software Quality Assurance,SQA)是为保证产品和服务充分满足用户要求的质量而进行的有计划、有组织、有系统的管理活动(审查、复
9、查和测试)。2023/1/6第10章软件质量与软件工程标准化软件工程教研室软件质量控制和软件质量保证的关系:如果将软件的生产比喻成一条产品加工生产线的话,那SQA只负责生产线本身的质量保证,而不管生产线中单个产品的实际质量情况。SQA通过保证生产线的质量来间接保证软件产品的质量。而SQC不管生产线本身的质量,而只关注生产线中生产的产品在每一个阶段的质量是否符合预期的要求。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.1.4 9.1.4 质量保证体系质量保证体系 软件的质量保证活动,是涉及各个部门的活动,贯穿在软件生命周期的每个阶段。图10-5是软件质量保证体系的图例。在质量
10、保证体系图上,各部门横向安排,而纵向则顺序列出在软件生命周期各阶段质量保证活动的工作。每项活动范围所涉及到的相关部门,质量管理部门的质量控制活动贯穿在每项工作中。并且在软件生命周期每个阶段结束之前,都用结束标准对该阶段生产出的软件配置成分进行严格的评审。2023/1/6第10章软件质量与软件工程标准化软件工程教研室项目计划技术信息质量信息用户信息市场信息环境信息计 划 评 审概要/详细设计设 计 评 审 质 量 保 证 活 动编程及测试项 目 质 量 评 审交付计划改进服务改进质 量 保 证 体 系 完 善质 量 改 进 会 议检测改进技术改进图10-5 质量保证体系图例阶段经理计划管理组技术
11、开发组质量管理组用户服务组计划设计 实现确认维护2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.2 软件可靠性与复杂性 9.2.1 可靠性 软件可靠性的含义是:软件系统在规定的时间间隔内,按照规定的条件,完成规定功能而不发生故障的概率。在这个定义中包含的随机变量是“时间间隔”。显然随着运行时间的增加,运行时遇到程序故障的概率也将增加,即可靠性随着时间间隔的加大而减小。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.2.2可靠性的评价指标1)可用性 可用性指软件运行后在任一随机时刻需要执行规定任务或完成规定功能时,软件处于可使用状态的概率。可用性是对应用软件可
12、靠性的综合(即综合各种运行环境以及完成各种任务和功能)度量。简而言之,就是系统完成特定功能的时间总量。2023/1/6第10章软件质量与软件工程标准化软件工程教研室2)初期故障率 初期故障率是指软件在初期故障期(一般以软件交付给用户后的三个月内为初期故障期)内单位时间的故障数。一般以每100小时的故障数为单位。可以用它来评价交付使用的软件质量与预测什么时候软件可靠性基本稳定。2023/1/6第10章软件质量与软件工程标准化软件工程教研室3)偶然故障率 指软件在偶然故障期(一般以软件交付给用户后的四个月以后为偶然故障期)内单位时间的故障数。一般以每1000小时的故障数为单位,它反映了软件处于稳定
13、状态下的质量。4)平均失效前时间(MTTF)或平均无故障时间MTTF(Mean Time To Failure)指软件在失效前正常工作的平均统计时间。是系统按照规格说明书的规定成功运行的平均时间,它主要取决于系统中潜伏的缺陷数目,因此和测试的关系十分密切。系统的可靠性越高,平均无故障时间越长。2023/1/6第10章软件质量与软件工程标准化软件工程教研室 指软件在相继两次失效之间正常工作的平均统计时间。在实际使用时,MTBF通常是指当n很大时,系统第n次失效与第n+1次失效之间的平均统计时间。对于失效率为常数和系统恢复正常时间很短的情况下,MTBF与MTTF几乎是相等的。国外一般民用软件的MT
14、BF大体在1000小时左右。对于可靠性要求高的软件,则要求在100010000小时之间。5)平均失效间隔时间(MTBF)2023/1/6第10章软件质量与软件工程标准化软件工程教研室6)缺陷密度(FD)指软件单位源代码中隐藏的缺陷数量。通常以每千行无注解源代码为一个单位。一般情况下,可以根据同类软件系统的早期版本估计FD的具体值。如果没有早期版本信息,也可以按照通常的统计结果来估计。典型的统计表明,在开发阶段,平均每千行源代码有5060个缺陷,交付后平均每千行源代码有1518个缺陷。2023/1/6第10章软件质量与软件工程标准化软件工程教研室7)平均失效恢复时间(MTTR)或平均维修时间MT
15、TR(Mean Time to Repair),指软件失效后维修和重恢复正常工作所需的平均统计时间。对于软件,其失效恢复时间为排除故障或系统重新启动所用的时间,而不是对软件本身进行修改的时间(因为修改软件过程的时间常常无法确定)。它取决于维护人员的技术水平和对系统的熟悉程度,也和系统的可维护性有重要关系。即系统的可维护性越好,平均维修时间越短。2023/1/6第10章软件质量与软件工程标准化软件工程教研室8)平均不工作时间(MTBD)指软件系统平均不工作时的间隔时间,MTBD一般比MTBF要长,它反映了系统的稳定性。9)平均操作错误时间(MTBHE)指软件操作错误的平均间隔时间。它一般与软件的
16、易操作性和操作人员的训练水平、因软件缺陷造成的不工作时间、因软件缺陷而损失的时间等有关。2023/1/6第10章软件质量与软件工程标准化软件工程教研室10)软件系统不工作时间均值(MDT)指软件因系统故障不工作时间的平均值。11)初始错误个数(NC)指在软件进行排错之前,估计出的软件中含 有 错误的个数。12)剩余错误个数(ND)指在软件经过一段时间的排错之后,估计出软件中含有错误的个数。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.2.3 系统的稳态可用性计算 如果在一段时间里,软件系统故障停机时间分别为td,td2,td3正常运行时间分别为tul,tu2,tu3则系统的
17、稳态可用性A为:A tui (tui+tdi)如果引进系统平均无故障时间MTTF和系统平均维修时间MTTR的概念,那么,软件系统的稳态可用性可以表示A为:A MTTF(MTTF+MTTR)100%由此可见,系统的可用性定义为系统保持正常运行时间的百分比。2023/1/6第10章软件质量与软件工程标准化软件工程教研室 例如,假设某软件系统平均每六个月出现一次故障,将该软件恢复到正常工作状态平均需要 60 分钟。则该软件系统的可用性为:可用性=6*30*24*60(6*30*24*6060 分钟)99.98%2023/1/6第10章软件质量与软件工程标准化软件工程教研室为了直观地度量软件的可靠性,
18、还可以采用“平均失效间隔时间”MTBF(Mean Time Between Failure)。具体来说,是指相邻两次故障之间的平均工作时间,也称为平均故障间隔。MTBF MTTFMTTRMTBF值越大,无故障工作的时间越长,就越稳定可靠。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.2.4 平均无故障时间(MTTF)的估算 指软件在失效前正常工作的平均统计时间,也称平均失效前时间。Et:测试之前程序中的缺陷总数;It:机器指令总数衡量的程序长度;:测试(包括调试)时间;Ed():在0时间内发现的错误总数;Ec():在0时间内改正的错误总数;E :在0时间后剩余的缺陷数。K为
19、常数 2023/1/6第10章软件质量与软件工程标准化软件工程教研室测试之前程序中的缺陷总数Et进行估算 已交付产品中潜伏的缺陷数是一个十分重要的量值。它既直接标志软件的可靠程度,又是计算MTTF的重要参数。严格地说,人们无法精确计算这一数据。但是从统计学的角度上来看,可以通过下面两种方法来对Et进行估算。2023/1/6第10章软件质量与软件工程标准化软件工程教研室1)植入故障法 在测试之前,由专人在程序中随机地植入Ns个错误,测试之后,根据测试小组发现的故障中原有的n个和植入的ns个,那么,用N来估计程序中原有的总故障数Et为:植入故障法的基本假定是所用的测试方案发现植入错误和原有错误的概
20、率相同。但是这种假设并不总是成立,因此有时计算结果有较大的偏差。2023/1/6第10章软件质量与软件工程标准化软件工程教研室2)分别测试法 设想由两个测试人员同时测试一个软件程序的两个副本。用T表示测试时间。在T0时,故障总数为B;T=T1时,测试员甲发现的故障数为B1;T=T1时,测试员乙发现的故障数为B2;T=T1时,测试员甲、乙发现的相同故障数为Bc;则在统计的角度上,测试之前的故障总数:为进一步求精,可以每隔一段时间进行一次并行测试,如果几次估算的结果相差不多,则可取其均值作为Et的结果估算值。2023/1/6第10章软件质量与软件工程标准化软件工程教研室例:对一长度为72000条指
21、令的程序进行测试,第1个月由A、B两名测试员独立测试。第1个月后,A发现并改正40个错误,使MTTF达到20h。而B发现32个错误,其中的8个A也发现了。以后由A单独继续测试这个程序。问:(1)刚开始测试时,程序原有错误共多少个?(2)为使MTTF达到360h,还必须改正多少个错误?解:(1)本题采用了分别测试法,因此,可以估算出刚开始测试时程序中原有错误总数为:(2)由于:则:如果:那么:(个)所以,为了达到平均无故障时间360h,总共需改正153个错误,A测试员已经改正40个错误,还需再改正113个错误。2023/1/6第10章软件质量与软件工程标准化软件工程教研室9.2.5 复杂性 软件
22、复杂性(complexity)是指程序的结构性、模块性、简明性、简洁性和可理解性的程度。程序复杂性度量的参数主要有:规模:程序指令条数或源程序行数;难度:与程序操作数和操作符有关的度量;结构:与程序分支数有关的度量;智能度:算法的难易程度。程序复杂性度量的方法主要有三种。2023/1/6第10章软件质量与软件工程标准化软件工程教研室1)代码行度量法 它是用程序代码行的多少来衡量程序的复杂性。该方法的基本考虑是统计一个程序模块的源代码行数目,并以源代码行数做为程序复杂性的度量。若设每行代码的出错率为每100行源程序中可能有的错误数目,例如每行代码的出错率为1,则是指每 100行源程序中可能有一个
23、错误。Lipow及其他研究者得出一个结论:对于少于100个语句的小程序,源代码行数与出错率是线性相关的。随着程序的增大,出错率以非线性方式增长。这是早期最简单的计算程序复杂性的量度。这种方法十分粗糙。因为对程序的数据结构和控制结构复杂的程序,其复杂程度肯定不同。2023/1/6第10章软件质量与软件工程标准化软件工程教研室2)McCabe度量法 又称环路复杂性度量,是一种基于程序控制流的复杂性度量方法。计算环路复杂性的方法:在一个有向图G(程序图)中,环路的个数V(G)由以下公式给出:其中,V(G)是有向图G中环路个数,m是图G中弧数,n是图G中结点数。程序图:如果把程序流程图中每个处理符号都
24、退化成一个结点,原来联结不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。2023/1/6第10章软件质量与软件工程标准化软件工程教研室 McCabe度量法示例:在右侧的程序图中,结点数n11,弧数m12,则有V(G)mn2 121123。即McCabe环路复杂度度量值为3。它也可以看做由程序图中的有向弧所封闭的区域个数。2023/1/6第10章软件质量与软件工程标准化软件工程教研室利用McCabe环路进行复杂度度量的4点说明:(1)环路复杂度取决于程序控制结构的复杂度。当程序的分支数目或循环数目增加时其复杂度也增加。环路复杂度与程序中覆盖的路径条数有关。(2)环路复杂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量 软件工程 标准化 要点 课件
限制150内