软件质量和软件质量保证体系..PPT课件_第1页
软件质量和软件质量保证体系..PPT课件_第2页
软件质量和软件质量保证体系..PPT课件_第3页
软件质量和软件质量保证体系..PPT课件_第4页
软件质量和软件质量保证体系..PPT课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品课件 1 第9章软件质量和软件质量保证体系 第9 1 9 3节 精品课件 2 主要内容 软件质量软件复杂性分析软件可靠性分析 精品课件 3 9 1软件质量 阿里亚娜 5型火箭 1991年海湾战争事实1 一个软件小故障造成导弹跟踪系统失灵 事实2 爆炸的根本原因在于惯性导航系统软件中技术要求和设计的错误 精品课件 4 银弹 西方民间传说 一种可怕的狼人常向人类进攻 在人受到伤害后 性格完全改变 尤其是把自己的亲人变成仇人 无奈之中 人们发现只有银弹才能制服狼人 将它打死 拯救人类 NoSilverBullet ThereisaSilverBullet 精品课件 5 9 1 1软件质量特性 精品课件 6 9 1 2软件质量评价 评价软件质量可从三个方面进行 即产品或中间产品 过程 即软件生产所需的资源和活动 和项目 精品课件 7 产品或中间产品评价 定义质量需求质量需求包含两个方面 问题规定或隐含的需求 软件质量标准和其它技术信息 准备评价首先选择质量度量 然后定义质量等级 再定义评估准则 评价过程评价过程实际上是对软件产品就第2步中准备的评价内容进行实施 也分3步 测量 把选定的质量度量应用到软件产品上 评级 确定某测量值的等级 评估 根据评估准则确定产品质量 并依据管理准则判定产品是否可通过验收或是否发行等等 精品课件 8 过程或项目评价 主要通过考察软件企业的质量保证与质量管理的质量来评价软件产品的质量 一般来说 好的质量保证与质量管理会带来高的产品质量 精品课件 9 9 1 3软件质量保证 所谓质量保证 QualityAssurance 是为了提供足够的信任表明实体能满足质量要求 而在质量体系中实施并根据需要进行证实的全部有计划 系统化的活动 质量体系 QualitySystem 是为实施质量管理所需的组织结构 程序 过程和资源 精品课件 10 软件工程师 通过采用可靠的技术方法和措施 进行正式的技术复审 执行计划周密的软件测试来保证软件质量 精品课件 11 SQA小组 主要辅助软件工程小组得到高质量的最终产品 对项目准备SQA计划 参与开发项目的软件过程描述 以保证该过程与组织政策 内部软件标准 外界所订标准以及软件项目计划的其它部分相符 复审各项软件工程活动 对其是否符合定义好的软件过程进行核实 审计指定的软件工作产品 对其是否符合定义好的软件过程中的相应部分进行核实 确保软件工作及工作产品中的偏差已被记录 并根据预定规程进行处理 记录所有不符合的部分 并报告给高级管理者 精品课件 12 9 1 4软件质量管理 确定质量方针 目标和职责 并在质量体系中通过诸如 质量策划 质量控制 质量保证和质量改进 使其实施全部管理职能的所有活动 类型 质量检验型管理 全面质量管理和质量认证 精品课件 13 比较 精品课件 14 9 2软件复杂性分析 各位 哪一辆车有吸引力 精品课件 15 软件度量具有的特征 Ejiogu 简单的和可计算的 经验和直觉上有说服力 一致的和客观的 单位和维度的使用上是一致的 编程语言独立性 质量反馈的有效机制 精品课件 16 9 2 1基于需求分析的复杂性分析 在需求分析阶段完成以后 项目的管理人员希望知道将要开发的软件有多大规模 如果是委托开发的项目软件 用户也会关心开发机构提出的报价是否恰当合理 精品课件 17 功能点方法 Albrecht首先提出来 功能点方法以需求规格说明书中双方确认的软件功能为依据 着重分析待开发系统的功能度 Functionality 假定 软件的大小与软件的功能度相关 而与软件功能的描述无关 也与功能需求的如何实现无关 精品课件 18 五类功能点 用户输入数 用户输出数 用户查询数 文件数 外部接口数 精品课件 19 功能点复杂性分布 精品课件 20 影响因子及度量 系统需要可靠的备份和复原吗 需要数据通信吗 有分布处理功能吗 性能很关键吗 系统是否在一个已有的 很实用的操作环境中运行 系统需要联机数据项吗 内部处理复杂吗 联机数据项是否需要在多屏幕或多操作之间切换以完成输入 输入 输出 文件或查询很复杂吗 代码需要被设计成是可复用的吗 需要联机更新主文件吗 设计中需要包括转换及安装吗 系统的设计支持不同组织的多次安装吗 应用的设计方便用户修改和使用吗 精品课件 21 功能点计算 功能点FP 未调节功能点UFP 常数C1 常数C2 复杂度调节值CA 精品课件 22 职工工资管理系统例子 精品课件 23 五类功能点 用户输入数为4 密码 工资打印 工资录入 错误按键 用户输出数为3 查询信息 工资报表 出错信息 用户查询数为1 工资查询 文件数为1 职工工资表 外部接口数为2 人事查询 职工信息 精品课件 24 影响因子分布 精品课件 25 功能点计算值 假定功能点的复杂性均为 简单级 且C1 0 65 C2 0 01 则 UFP W1 C1 W2 C2 W3 C3 W4 C4 W5 C5 3 4 4 3 3 1 7 1 5 2 44F1 F2 F14 5 4 0 1 1 3 2 0 1 1 3 2 2 3 28FP 44 0 65 0 01 28 40 92 精品课件 26 功能点的应用 每个功能点 FP 的错误数 每个功能点 FP 的缺陷数 每个月完成的功能点 FP 数 每个功能点 FP 的文档页数 每个功能点 FP 的成本 精品课件 27 功能点方法的不足 如何划分功能点类 即如确定那些是用户输入 哪些是外部接口等 不同的人有不同的看法 Fi和C1 C2的确定也是主观的 功能点方法最初主要是用于商业信息系统应用软件中 只强调了数据成份 从而对于强调功能及控制的非数据处理软件 如嵌入式软件 过程控制软件等 并不适用 精品课件 28 9 2 2基于软件设计的复杂性分析 概要设计复杂性度量主要集中在软件结构的特征上 Card和Glass定义了三种软件设计复杂度测度 结构复杂度 数据复杂度和系统复杂度 其定义分别如下 模块i的结构复杂度S i f2out i 模块i的数据复杂度D i V i fout i 1 系统复杂度C i S i D i 其中fout i 表示模块i的扇出 V i 表示模块i的输入 输出变量的个数 精品课件 29 设计结构质量指标 DSQI 方法 从数据和体系结构设计中获得数据 S1 软件结构中定义的模块总数S2 正确功能依赖于输入源数据或产生在其他地方使用的数据的模块数S3 正确功能依赖于前导处理的模块数S4 数据库中项目数 包括数据对象和所有定义对象的属性 S5 特殊数据库项目总数S6 数据库段数目 不同的记录或单个对象 S7 有单个入口和出口的模块数目 异常处理不被看作是多重出口 精品课件 30 根据S1 S7计算如下中间数据 程序结构 D1 1或0 如果软件结构是用明确的方法设计 如面向数据流设计 则D1 1 其它D1 0 模块独立性 D2 1 S2 S1 模块不依赖于前导处理 D3 1 S3 S1 数据库大小 D4 1 S5 S4 数据库分区 D5 1 S6 S4 模块出 入口特性 D6 1 S7 S1 精品课件 31 根据D1 D6计算DSQI的值 DSQI W1D1 W2D2 W3D3 W4D4 W5D5 W6D6其中Wi是每个中间值的重要性的相对值且W1 W2 W6 1如果计算出来的DSQI明显低于平均值 则意味着应进一步改进设计 同样 如果要对一个现存的设计做重要的改动 这些改动对DSQI的影响也可以被计算出来 精品课件 32 McCabe环形计数法 详细设计复杂性度量主要集中在模块内部结构的复杂性上 程序环形复杂度V G 程序流程图中的 判定数 1 程序图中的 环形数 m n 2其中m对应于程序图中的弧数 n对应于程序图中的节点数 精品课件 33 例子 从程序流程图可看出 判定数 为8 从程序图可看出 图中的弧数为26条 图中节点数为19个 若将入口节点之后一个节点和出口节点之前一个节点用弧线连起来并使弧头指向前者 则图中存在9个不同的封闭环域 因此 其对应的环形复杂度为9 McCabe研究大量程序后发现 环形复杂度高的程序往往是最易出问题的程序 实践表明 模块规模以环形复杂度V G 10为宜 精品课件 34 9 2 3基于源程序代码的复杂性分析 霍尔斯特德 Halstead 根据源代码中运算符和操作数的测量值来度量源程序代码的复杂度 在Halstead方法中 运算符是指用来处理程序中常量和变量的语法元素等 如算术运算符 逻辑运算符 关系运算符 流程控制语句 函数调用等 操作数则是指源程序代码中的常量和变量等 但对非执行语句 如注释 则不进行考虑 精品课件 35 Halstead方法的基本测量数据 程序中运算符总数N1程序中操作数总数N2程序中运算符种类数n1程序中操作数种类数n2 精品课件 36 源程序代码复杂性度量 实际程序长度N N1 N2编程语言层次L 2 n1 n2 N2 程序容量V N1 N2 log2 n1 n2 预测程序长度N n1 log2n1 n2 log2n2 可在详细设计后进行预测 估计程序工作量E V L n1 N2 N1 N2 log2 n1 n2 2 n2 预测程序错误数E N1 N2 log2 n1 n2 3000 精品课件 37 例子 冒泡排序程序模块 SORT int x intn 冒泡排序 inti j temp if n x j continue temp x i x i x j x j temp 冒泡排序模块结束 精品课件 38 测量数据 精品课件 39 计算结果 N N1 N2 30 26 56 L 2 n1 n2 N2 2 11 7 26 0 049 V N1 N2 log2 n1 n2 233 N n1 log2n1 n2 log2n2 58 E V L 4765 E N1 N2 log2 n1 n2 3000 0 0776 精品课件 40 9 2 4基于软件维护的复杂性分析 IEEE建议采用一种软件成熟度指标 SMI 以提供对软件产品的稳定性指示 基于为每一软件产品发布而做的变化 将SMI和维护工作量联系起来 形成一个经验模型 则可用来度量软件维护的复杂性 精品课件 41 SMI方法 基本测量数据如下 当前发布软件中的模块数MT 当前发布软件中已经改变的模块数Fc 当前发布软件中已经添加的模块数Fa 当前发布软件中已经删除的前一次发布软件中的模块数Fd 则软件成熟度指标按下式进行计算 SMI MT Fa Fc Fd MT当SMI接近1的时候 产品便开始稳定 精品课件 42 9 3软件可靠性分析 按照ISO IEC9126 1991的解释 软件可靠性是与在规定的一段时间和条件下 软件维持其性能水平的能力有关的一组属性 一般说来 软件可靠性分析要用到概率统计方法 通过不断测试取得有关测试数据 然后根据测试结果构造可靠性模型 以分析实际达到的可靠性 基于这一点 软件可靠性可定义为软件在给定的时间间隔及规定的使用环境条件下 按分析和设计规定的要求成功地运行程序的概率 精品课件 43 9 3 1软件可靠性三要素 失效 是指最后执行结果与有关规格不相符或用户在软件系统边界觉察到不期望的软件出错行为 时间 平均失效等待时间 MeanTimeToFailure MTTF 平均失效间隔时间 MeanTimeBetweenFailure MTBF 和平均修复时间 MeanTimeToRepair MTTR 且MTBF MTTF MTTR 一旦确定时间基准 失效可以用三种方式表示 累积失效函数 theCumulativeFailureFunction CFF 失效率函数 theFailureRateFunction FRF 和平均失效等待时间函数 theMeanTimeToFailureFunction MTTFF 失效率函数是累积失效函数对时间求导的结果 累积失效函数表示与时间点相关的平均累积失效 如果失效率函数可视为常数 则平均失效等待时间MTTF是失效率的倒数 环境 软件运行时所需要的支持系统及有关的因素 软件可靠性 硬件可靠性和操作可靠性三者综合起来反映整个计算机系统的可靠性 规定软件的使用环境可用来判定系统失效是否由于软件失效引起 精品课件 44 9 3 2软件可靠性模型 软件可靠性同硬件可靠性一样 都可看成是随机过程 用概率分布来描述 但软件可靠性与硬件可靠性的分析却不完全相同 一方面 软件不会老化 其可靠性不随时间增加而减少 另一方面 软件失效常常是由于软件分析或设计引起 这样使软件可靠性分析变得非常复杂 精品课件 45 Jelinski Moranda模型 Jelinski和Moranda于1972年开发的可靠性分析模型是最早建立且仍被人们使用的模型之一 简称J M模型 应用 1972年Jelinski和Moranda分析了美国海军舰队计算中心的数据 对程序固有错误数的估计为31 2 而程序在使用和再测试中发现的错误数共有34个 如果排错很彻底 可认为这就是固有错误总数 这样 估计值略低于实际值 精品课件 46 模型的基本假设 错误检测率与当前软件错误数成比例 在错误发生间隔期间错误检测率为常数 出现错误即刻修正 不使新的错误引入软件 软件运行方式与可靠性预测方式相同 每个错误出现机会相等 且所有错误的严重程度相同 错误被查出时 失效是独立的 假设 确保在某一特定环境下使用数据采集进行模型评价的正确性 假设 确保不同的失效率都具有相同的分布特性 最后一个假设可简化推导过程 精品课件 47 J M模型计算 精品课件 48 例子 精品课件 49 Shooman模型 1972 Shooman模型总的思想为 失效率与软件中残留错误数成比例 且失效之间的失效率为常数 而在消除错误时 失效率也以相同比率下降 精品课件 50 模型的基本假设 失效率与软件潜在的错误数成比例 所有失效发生的概率相同 且彼此独立 所有错误的严重程度相同 软件运行方式与可靠性预测方式相同 引起失效的错误被及时修正 在修正过程中不会引入新的错误 精品课件 51 数据 所需的数据为失效间隔时间xi或失效时刻ti 其中xi ti ti 1 假设 ET 测试之前程序中故障总数 IT 程序长度 机器指令总数 测试 包括调试 时间 Er 在 时刻潜在的错误数 Ed 在0到 期间发现的错误数 Ec 在0到 期间改正的错误数 精品课件 52 估计值 Ec Ed 因为引起失效的错误被及时修改 Er ET Ec 因为在错误修正过程中不会引入新的错误 令 r Er IT c Ec IT 则 r ET IT c k r k ET IT c 且为常数因为失效率与软件潜在的错误数成比例 且失效发生概率相同 此处 表示失效率 k是一个比例常数 MTTF 1 1 k ET IT c 因为失效率 是常数 精品课件 53 ET和k的计算 对程序进行两次不同的互相独立的功能测试 且测试时间 1和 2满足 1 2 测试中查出的错误数为Ec 1 和Ec 2 且Ec 1 Ec 2 则 1 k ET IT Ec 1 IT 2 k ET IT Ec 2 IT 解得 ET 1Ec 2 2Ec 1 1 2 若 1和 2分别用Ec 1 1和Ec 2 2作近似 即 1 Ec 1 1 2 Ec 2 2则ET的估计值为 ET 1 Ec 2 2 Ec 1 1 2 从而k的估计为 k IT 1 ET Ec 1 或k IT 2 ET Ec 2 此外还可采用最小二乘法去估计程序固有错误总数ET和比例常数k 精品课件 54 Gilb植错模型 这种模型的中心思想 是通过估计软件中残留错误的数量来确定软件的可靠性 基本假设是 设计测试用例发现植入错误和原有错误的能力相同 具体的作法是 在测试之前先由非测试人员在软件中植入一批人为的错误 在测试过程中分别统计出由测试小组发现的原有错误数和植入错误数 然后据此估算出软件中原有的错误数 精品课件 55 计算 假设 N表示软件中原有残留的错误数 S表示植入软件中的错误数 n表示测试中发现的原有错误数 s表示测试中发现的植入错误数 则 N n s S 精品课件 56 Hyman分别测试模型 对于Gilb植错模型而言存在两方面的问题 如何做到设计测试用例使发现植入错误和原有错误的能力相同 需要植入多少错误才算合适 Hyman建议由两名测试员同时相互

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论