《软件质量与可靠性》PPT课件

上传人:san****019 文档编号:15896564 上传时间:2020-09-13 格式:PPT 页数:43 大小:397.60KB
返回 下载 相关 举报
《软件质量与可靠性》PPT课件_第1页
第1页 / 共43页
《软件质量与可靠性》PPT课件_第2页
第2页 / 共43页
《软件质量与可靠性》PPT课件_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第11章 软件质量与可靠性,11.1 软件质量保证 11.2 软件能力 11.3 软件可靠性 11.4 软件质量管理标准,软件质量,是贯穿于整个软件生存周期的一个重要问题。它渗透到软件开发和维护的每一个时期,每个阶段,乃至每一个细节活动中。 20世纪90年代以来,质量认证逐渐在企业流行,把对于产品的质量保证扩展到对于整个企业的质量认证。 软件现代质量管理的内容也相应地扩展为包括质量保证与质量认证等两个方面。,11.1 概述,质量是任何产品生命的关键,对于软件也不例外。 由于软件产品的特殊性,质量保证(Quality Assurance)比硬件产品更加困难。,11.1.1软件质量的定义,(1) 与所确定的功能和性能需求的一致性。 (2) 与所成文的开发标准的一致性。 (3) 与所有专业开发的软件所期望的隐含特性的一致性。,11.1.2软件质量的度量和评价,影响软件质量的因素 (1) 可以直接度量的因素,如单位时间内千行代码(KLOC)中产生的错误数。 (2) 只能间接度量的因素,如可用性或可维护性。 在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件质量特性进行度量,以测定软件具有要求质量特性的程度。,11.1.3 软件质量保证,什么是软件质量保证 软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。,主要功能: 质量方针的制定 质量保证方针和质量保证标准的制定 质量保证体系的建立和管理 明确各阶段的质量保证工作 各阶段的质量评审 确保设计质量 重要质量问题的提出与分析 总结实现阶段的质量保证活动,2. 软件质量保证的内容,软件质量保证的内容主要包括:审查、开发方法、配置控制与程序测试的综合应用。 在“软件开发规范”的指导下,对于软件计划和开发时期各个阶段的工作都要进行复审;每个阶段产生的文档都必须严格管理,以确保文档和程序的完整性与一致性;最后要对程序进行不同类型的测试。,3.质量保证的策略 (1) 以检测为重。产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量。 (2) 以过程管理为重。把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制。 (3) 以新产品开发为重。,4.质量保证的主要任务 (1) 正确定义用户要求。 (2) 技术方法的应用。 (3) 提高软件开发的工程能力。 (4) 软件的复用。 (5) 发挥每个开发者的能力。 (6) 组织外部力量协作。 (7) 排除无效劳动。最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。 (8) 提高计划和管理质量。,4. 质量保证与检验 软件质量必须在设计和实现过程中加以保证。,11.2 质量度量模型,11.2.1McCall质量度量模型,这是McCall等入于1979年提出的软件质量影响模型.针对面向软件产品的运行,修正,转移,软件质量概念包括11个特性,其定义如下:(1)面向软件产品操作. 正确性; 可靠性;效率; 完整性; 可用性(2)面向软件产品修改. 可维护性; 可测试性; 适应性(3)面向软件产品适应. 可移植性; 可重用性; 可互操作性; 主要评价准则如下: 可跟踪性; 完备性; 一致性; 安全性; 容错性; 准确性; 可审查性; 可操作性; 可训练性; 简洁性; 简明性; 模块性; 自描述性; 通用性; 可扩充性;硬件独立性; 通信共用性;.数据共用性,11.2.2 ISO的软件质量评价模型,11.3 软件复杂性,11.3.1 软件复杂性的基本概念 (1) 规模,即总共的指令数,或源程序行数。 (2) 难度,通常由程序中出现的操作数的数目所决定的量来表示。 (3) 结构,通常用于程序结构有关的度量来表示。 (4) 智能度,即算法的难易程度。 软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少、开发周期长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。,为了度量程序复杂性,要求复杂性度量满足以下假设: (1)它可以用来计算任何一个程序的复杂性. (2)对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算. (3)如果程序中指令条数,附加存储量,计算时间增多,不会减少程序的复杂性.,11.3.2 软件复杂性的度量方法 1.代码行度量法. 度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的质量。 每100行元程序中可能存在0.04-7个错误。 每行代码的出错率与源程序的行数不存在简单的线性关系 代码行度量法是一个简单、估计得很粗粗糙的方法。,2. McCabe度量法 McCabe度量法是由Thomas McCabe提出的一种基于程序控制流的复杂性度量方法。 McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。 这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图。也就是说,把程序流程图的每一个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。,根据图论,在一个强连通的有向图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度量法的缺点,对于不同种类的控制流的复杂度不能区分。 简单IF语句与循环语句的复杂性同等看待。 嵌套IF语句与简单CASE的复杂性是一样的。 模块间接口当成一个简单分支一样处理。 一个具有1000行的顺序程序与一行语句的复杂性相同。 尽管McCabe复杂度度量法有许多缺点,但它容易使用,而且在选择方案和估计排错费用等方面都是很有效的。,11.4 软件可靠性,11.4.1 软件可靠性定义 软件可靠性定义表明了一个程序按照用户的要求和设计的目标,执行其功能的正确程度。一个可靠的程序应要求是正确的、完整的、一致的和健壮的。 即:在给定的时间内,程序按照规定的条件成功地运行的概率。,11.4.2 软件可靠性指标,软件可靠性与可用性的定量指标,是指能够以数字概念来描述可靠性的数学表达式中所使用的量。下面主要讨论常用指标平均失效等待时间MTTF与平均失效间隔时间MTBF。 1. MTTF(Mean Time To Failure) 平均失效等待时间MTTF定义为: 2. MTBF(Mean Time Betmeen Failure) MTBF是平均失效间隔时间,它是指两次相继失效之间的平均时间。,11.4.3软件可靠性模型 正比于遗留故障数的宏观模型 程序的故障率与遗留错误的数量成正比,根据程序中遗留错误的多少,就可以预测程序的可靠性。 设 t=程序的调试时间 ET=调试前的错误总数 Ec(t)=在时间(0,t)期间纠正的错误 Er(t)=在时间t时的遗留错误量 IT=程序的长度或指令的总数 则 Er(t)= ET - Ec(t) 用 除以上述等式两边,得到错误的规格化值,错误植入模型,这类模型的中心思想,是通过估计残留错误的数量,来确定程序的可靠性。具体的作法是:测试之前先在程序中植入一批人为的错误,在测试过程中分别统计出测试小组的原有错误和植入错误,然后由下列计算式计算原有错误。 假设 N=程序中原来残留的错误数; S=新植入程序的错误数; n=测试中发现的原有错误数; s=测试中发现的植入错误数 如果调试中对这两类错误具有同样的发现能力,则有 或,10.5 软件评审,对软件工程来说,软件评审是一个“过滤器”,在软件开发的各个阶段都要采用评审的方法,以发现软件中的缺陷,然后加以改正。 把“质量”理解为“用户满意程度”。为使用户满意,有两个必要条件: (1) 设计的规格说明书要符合用户的要求。 (2) 程序要按照设计规格说明书所规定的情况正确执行。,11.5.1 设计质量的评审内容,(1) 评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计计规格说明是否一致等? (2) 评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替或恢复手段 。 (3) 评审保密措施实现情况,即是否提供对使用系统资格进行检查;对特定数据的使用资格、特殊功能的使用资格进行检查,在查出有违反使用资格情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等。,(4) 评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等。 (5) 评审性能实现情况,即是否达到所规定性能的的目标值。 (6) 评审软件是否具有可修改性、可扩充性、可互换性和可移植性。 (7) 评审软件是否具有可测试性。 (8) 评审软件是否具有复用性。,11.5.2 程序质量的评审内容,软件的结构 (1) 功能结构。在软件的各种结构中,功能结构是用户唯一能见到的结构。 需要检查的项目有: 数据结构:包括数据名和定义;构成该数据的数据项;数据与数据间的关系。 功能结构:包括功能名和定义;构成该功能的子功能;功能与子功能之间的关系。 数据结构和功能结构之间的对应关系:包括数据元素与功能元素之间的对应关系;数据结构与功能结构的一致性。 (2) 功能的通用性。 (3) 模块的层次。,(4) 模块结构。 控制流结构:规定了处理模块与处理模块之间的流程关系。检查处理模块之间的控制转移关系与控制转移形式(调用方式)。 数据流结构:规定了数据模块是如何被处理模块进行加工的流程关系。检查处理模块与数据模块之间的对应关系;处理模块与数据模 块之间的存取关系,如建立、删除、查询、修改等。 模块结构与功能结构之间的对应关系:包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系;每个模块的定义 (包括功能、输入与输出数据)。 (5) 处理过程的结构。处理过程是最基本的加工逻辑过程。,2. 与运行环境的接口,(1) 与硬件的接口。 (2) 与用户的接口。 随着软件运行环境的变更,软件的规格也在跟着不断地变更。运行环境变更时的影响范围,需要从以下三个方面来分析: (1) 与运行环境的接口。 (2) 在每项设计工程规格内的影响。 (3) 在设计工程相互间的影响。,11.6 软件容错技术,提高软件质量和可靠性的技术大致分为两类,一类是避开错误(fault-avoidance)技术,即在开发的过程中不让差错潜入软件的技术;另一类是容错(fault-tolerance)技术,即对某些无法避开的差错,使其影响减少至最小的技术。,容错软件定义,(1)规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。 (2)规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。 (3)规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。 (4)规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。,容错的一般方法,1、结构冗余 (1)静态冗余。常用的有:三模冗余TMR(Triple Moduler Redundancy)和多模冗余。 (2)动态冗余。动态冗余的主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。 (3)混合冗余。它兼有静态冗余和动态冗余的长处。,2、信息冗余 为检测或纠正信息在运算或传输中的错误须外加一部分信息,这种现象称为信息冗余。 3、时间冗余 时间冗余是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。 4、冗余附加技术 冗余附加技术是指实现上述冗余技术所需的资源和技术。,容错软件的设计过程,容错系统的设计过程包括以下设计步骤: (1)按设计任务要求进行常规设计,尽量保证设计的正确。 按常规设计得到非容错结构,它是容错系统构成的基础。在结构冗余中,不论是主模块还是备用模块的设计和实现,都要在费用许可的 条件下,用调试的方法尽可能提高可靠性。 (2)对可能出现的错误分类,确定实现容错的范围。 对可能发生的错误进行正确的判断和分类,例如,对于硬件的瞬时错误,可以采用指令复执和程序复算;对于永久错误,则需要采用备份替换或者系统重构。对于软件来说,只有最大限度地弄清错误和暴露的规律,才能正确地判断和分类,实现成功的容错。,(3)按照“成本效率”最优原则,选用某种冗余手段(结构、信息、时间)来实现对各类错误的屏蔽。 (4)分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程度,则应重新进行冗余结构设计。如此反复,直到有一个满意的结果为止。,认证费用,任何企业申请 CMM 认证必须从 2 级开始,一级级向上评,不能越级评审。 每一个 CMM 等级评估周期(从准备到完成)约需 11-30 个月。 每一级认证费用约需 10 万美元,国内 CMM 认证鼓励政策,国务院关于 “ 鼓励软件产业和集成电路产业发展的若干政策 ” 18 号文件出台后,各地根据文件精神,陆续制定了 CMM 认证方面的鼓励政策,依据各地的不同情况,具体补贴金额有所不同。 北京市软件产业基地 2001 年对基地确定的重点企业通过二级认证的,由科技经费给予 20 万元左右的补贴,对通过三级认证的企业给予 30 万元左右的补贴。北京中关村科技园区海 淀园管委会对在海淀园登记注册的新技术企业通过 CMM 认证的,给予 10 万元的奖励。 珠海 : 对通过 CMM2 级的企业一次性补贴 50 万元。 广州:通过 CMM 的企业一次性奖励 30 万元 上海:对通过 CMM-3 补助 40 万; CMM-4 补助 60 万; CMM-5 补助 80 万元。,11.3 软件可靠性,11.3.1 可靠性概念 11.3.2 可靠性模型 11.3.3 程序正确性证明,11.4 软件质量管理标准,11.4.1 软件质量国际标准 11.4.2 ISO 9001、ISO 9000-3和ISO 9001-2000 11.4.3 ISO 9001和CMM标准,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!