软件质量与质量保证.ppt

上传人:zhu****ei 文档编号:5407050 上传时间:2020-01-28 格式:PPT 页数:38 大小:202.50KB
返回 下载 相关 举报
软件质量与质量保证.ppt_第1页
第1页 / 共38页
软件质量与质量保证.ppt_第2页
第2页 / 共38页
软件质量与质量保证.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
1 第10章软件质量与质量保证 软件工程课件讲稿 肖浩 2 10 1软件质量的概念 3 软件质量的定义 1 与所确定的功能和性能需求的一致性 2 与所成文的开发标准的一致性 3 与所有专业开发的软件所期望的隐含特性的一致性 4 影响软件质量的因素 1 可以直接度量的因素 如单位时间内千行代码 KLOC 中产生的错误数 2 只能间接度量的因素 如可用性或可维护性 在软件开发和维护的过程中 为了定量地评价软件质量 必须对软件质量特性进行度量 以测定软件具有要求质量特性的程度 5 什么是软件质量保证 软件的质量保证就是向用户及社会提供满意的高质量的产品 确保软件产品从诞生到消亡为止的所有阶段的质量的活动 即确定 达到和维护需要的软件质量而进行的所有有计划 有系统的管理活动 6 质量保证的策略 1 以检测为重 产品制成后才进行检测 这种检测只能判断产品的质量 不能提高产品质量 2 以过程管理为重 把质量保证工作重点放在过程管理上 对制造过程的每一道工序都进行质量控制 3 以新产品开发为重 7 质量保证的主要任务 1 正确定义用户要求 2 技术方法的应用 3 提高软件开发的工程能力 4 软件的复用 5 发挥每个开发者的能力 6 组织外部力量协作 7 排除无效劳动 最大的无效劳动是因需求规格说明有误 设计有误而造成的返工 8 提高计划和管理质量 8 质量保证与检验 软件质量必须在设计和实现过程中加以保证 9 10 2质量度量模型 10 McCall质量度量模型 11 ISO的软件质量评价模型 12 10 3软件复杂性 13 软件复杂性的基本概念 1 规模 即总共的指令数 或源程序行数 2 难度 通常由程序中出现的操作数的数目所决定的量来表示 3 结构 通常用于程序结构有关的度量来表示 4 智能度 即算法的难易程度 软件复杂性主要表现在程序的复杂性 程序的复杂性主要指模块内程序的复杂性 它直接关联到软件开发费用的多少 开发周期长短和软件内部潜伏错误的多少 同时它也是软件可理解性的另一种度量 14 软件复杂性的度量方法 代码行度量法 度量程序的复杂性 最简单的方法就是统计程序的源代码行数 此方法的基本考虑是统计一个程序的源代码行数 并以源代码行数作为程序复杂性的质量 15 软件复杂性的度量方法 McCabe度量法 McCabe度量法是由ThomasMcCabe提出的一种基于程序控制流的复杂性度量方法 McCabe复杂性度量又称环路度量 它认为程序的复杂性很大程度上取决于程序的复杂性 单一的顺序结构最为简单 循环和选择所构成的环路越多 程序就越复杂 这种方法以图论为工具 先画出程序图 然后用该图的环路数作为程序复杂性的度量值 程序图是退化的程序流程图 也就是说 把程序流程图的每一个处理符号都退化成一个结点 原来连接不同处理符号的流线变成连接不同结点的有向弧 这样得到的有向图就叫做程序图 16 软件复杂性的度量方法 McCabe度量法 17 软件复杂性的度量方法 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个环路的线性组合 18 McCabe度量法的缺点 对于不同种类的控制流的复杂度不能区分 简单IF语句与循环语句的复杂性同等看待 嵌套IF语句与简单CASE的复杂性是一样的 模块间接口当成一个简单分支一样处理 一个具有1000行的顺序程序与一行语句的复杂性相同 尽管McCabe复杂度度量法有许多缺点 但它容易使用 而且在选择方案和估计排错费用等方面都是很有效的 19 10 4软件可靠性 20 软件可靠性定义 软件可靠性定义表明了一个程序按照用户的要求和设计的目标 执行其功能的正确程度 一个可靠的程序应要求是正确的 完整的 一致的和健壮的 即 在给定的时间内 程序按照规定的条件成功地运行的概率 21 软件可靠性定义的数学表达 设R t 代表在时间 0 t 之间的软件可靠性 P E 代表事件E的概率 则软件可靠性可表示为 R t P 在时间 0 t 内按规定条件运行成功 可靠性与软件内部的故障密切相关 如果软件在交付使用时有遗留错误 则当出现某种组合时 就会使程序在运行中失败 当残留错误的数量一定时 程序的运行时间越长 则发生失效的机会就越多 可靠性也随之下降 设软件的故障率不随时间而变化 则根据经典的可靠性理论 R t 可以表示为时间与故障率的指数函数R t 22 软件可靠性指标 软件可靠性与可用性的定量指标 是指能够以数字概念来描述可靠性的数学表达式中所使用的量 下面主要讨论常用指标平均失效等待时间MTTF与平均失效间隔时间MTBF 1 MTTF MeanTimeToFailure 平均失效等待时间MTTF定义为 2 MTBF MeanTimeBetmeenFailure MTBF是平均失效间隔时间 它是指两次相继失效之间的平均时间 23 软件可靠性模型 正比于遗留故障数的宏观模型 程序的故障率与遗留错误的数量成正比 根据程序中遗留错误的多少 就可以预测程序的可靠性 设t 程序的调试时间ET 调试前的错误总数Ec t 在时间 0 t 期间纠正的错误Er t 在时间t时的遗留错误量IT 程序的长度或指令的总数则Er t ET Ec t 用除以上述等式两边 得到错误的规格化值 24 软件可靠性模型 平均失效等待时间 已知当故障率为独立于时间的常数时 MTTF 1 即为简化讨论 又在时间0至t期间的纠错率为常数 且等于 则所以 平均故障间隔时间的模型可简写为 25 软件可靠性模型 错误植入模型 这类模型的中心思想 是通过估计残留错误的数量 来确定程序的可靠性 具体的作法是 测试之前先在程序中植入一批人为的错误 在测试过程中分别统计出测试小组的原有错误和植入错误 然后由下列计算式计算原有错误 假设N 程序中原来残留的错误数 S 新植入程序的错误数 n 测试中发现的原有错误数 s 测试中发现的植入错误数如果调试中对这两类错误具有同样的发现能力 则有或 26 10 5软件评审 27 软件评审 对软件工程来说 软件评审是一个 过滤器 在软件开发的各个阶段都要采用评审的方法 以发现软件中的缺陷 然后加以改正 把 质量 理解为 用户满意程度 为使用户满意 有两个必要条件 1 设计的规格说明书要符合用户的要求 2 程序要按照设计规格说明书所规定的情况正确执行 28 设计质量的评审内容 1 评价软件的规格说明是否合乎用户的要求 即总体设计思想和设计方针是否明确 需求规格说明是否得到了用户或单位上级机关的批准 需求规格说明与软件的概要设计计规格说明是否一致等 2 评审可靠性 即是否能避免输入异常 错误或超载等 硬件失效及软件失效所产生的失效 一旦发生应能及时采取代替或恢复手段 3 评审保密措施实现情况 即是否提供对使用系统资格进行检查 对特定数据的使用资格 特殊功能的使用资格进行检查 在查出有违反使用资格情况后 能否向系统管理人员报告有关信息 是否提供对系统内重要数据加密的功能等 29 设计质量的评审内容 4 评审操作特性实施情况 即操作命令和操作信息的恰当性 输入数据与输入控制语句的恰当性 输出数据的恰当性 应答时间的恰当性等 5 评审性能实现情况 即是否达到所规定性能的的目标值 6 评审软件是否具有可修改性 可扩充性 可互换性和可移植性 7 评审软件是否具有可测试性 8 评审软件是否具有复用性 30 程序质量的评审内容 软件的结构 1 功能结构 在软件的各种结构中 功能结构是用户唯一能见到的结构 需要检查的项目有 数据结构 包括数据名和定义 构成该数据的数据项 数据与数据间的关系 功能结构 包括功能名和定义 构成该功能的子功能 功能与子功能之间的关系 数据结构和功能结构之间的对应关系 包括数据元素与功能元素之间的对应关系 数据结构与功能结构的一致性 2 功能的通用性 3 模块的层次 31 程序质量的评审内容 软件的结构 4 模块结构 控制流结构 规定了处理模块与处理模块之间的流程关系 检查处理模块之间的控制转移关系与控制转移形式 调用方式 数据流结构 规定了数据模块是如何被处理模块进行加工的流程关系 检查处理模块与数据模块之间的对应关系 处理模块与数据模块之间的存取关系 如建立 删除 查询 修改等 模块结构与功能结构之间的对应关系 包括功能结构与控制流结构的对应关系 功能结构与数据流结构的对应关系 每个模块的定义 包括功能 输入与输出数据 5 处理过程的结构 处理过程是最基本的加工逻辑过程 32 程序质量的评审内容 与运行环境的接口 1 与硬件的接口 2 与用户的接口 随着软件运行环境的变更 软件的规格也在跟着不断地变更 运行环境变更时的影响范围 需要从以下三个方面来分析 1 与运行环境的接口 2 在每项设计工程规格内的影响 3 在设计工程相互间的影响 33 11 6软件容错技术 34 软件容错技术 提高软件质量和可靠性的技术大致分为两类 一类是避开错误 fault avoidance 技术 即在开发的过程中不让差错潜入软件的技术 另一类是容错 fault tolerance 技术 即对某些无法避开的差错 使其影响减少至最小的技术 35 容错软件定义 1 规定功能的软件 在一定程度上对自身错误的作用 软件错误 具有屏蔽能力 则称此软件为具有容错功能的软件 即容错软件 2 规定功能的软件 在一定程度上能从错误状态自动恢复到正常状态 则称之为容错软件 3 规定功能的软件 在因错误而发生错误时 仍然能在一定程度上完成预期的功能 则把该软件称为容错软件 4 规定功能的软件 在一定程度上具有容错能力 则称之为容错软件 36 容错的一般方法 1 结构冗余 1 静态冗余 常用的有 三模冗余TMR TripleModulerRedundancy 和多模冗余 2 动态冗余 动态冗余的主要方式是多重模块待机储备 当系统检测到某工作模块出现错误时 就用一个备用的模块来顶替它并重新运行 3 混合冗余 它兼有静态冗余和动态冗余的长处 37 容错的一般方法 2 信息冗余为检测或纠正信息在运算或传输中的错误须外加一部分信息 这种现象称为信息冗余 3 时间冗余时间冗余是指以重复执行指令 指令复执 或程序 程序复算 来消除瞬时错误带来的影响 4 冗余附加技术冗余附加技术是指实现上述冗余技术所需的资源和技术 38 容错软件的设计过程 容错系统的设计过程包括以下设计步骤 1 按设计任务要求进行常规设计 尽量保证设计的正确 按常规设计得到非容错结构 它是容错系统构成的基础 在结构冗余中 不论是主模块还是备用模块的设计和实现 都要在费用许可的条件下 用调试的方法尽可能提高可靠性 2 对可能出现的错误分类 确定实现容错的范围 对可能发生的错误进行正确的判断和分类 例如 对于硬件的瞬时错误 可以采用指令复执和程序复算 对于永久错误 则需要采用备份替换或者系统重构 对于软件来说 只有最大限度地弄清错误和暴露的规律 才能正确地判断和分类 实现成功的容错 3 按照 成本 效率 最优原则 选用某种冗余手段 结构 信息 时间 来实现对各类错误的屏蔽 4 分析或验证上述冗余结构的容错效果 如果效果没有达到预期的程度 则应重新进行冗余结构设计 如此反复 直到有一个满意的结果为止
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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