《软件质量评价》PPT课件.ppt_第1页
《软件质量评价》PPT课件.ppt_第2页
《软件质量评价》PPT课件.ppt_第3页
《软件质量评价》PPT课件.ppt_第4页
《软件质量评价》PPT课件.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

软件工程SoftwareEngineering 武汉大学计算机学院 第2章软件质量评价 什么是好的软件 有何特点 软件评价的标准如何 什么是软件结构 什么是良软件结构 什么是模块化 模块设计时应遵循的标准是什么 一 软件质量评价标准 定性评价用户角度 达到需求 界面友好 简单易学开发人员角度 良结构 易测试 易维护 可移植 定量评价 软件度量 宏观标准 良软件结构文档齐全可靠性 二 软件结构 软件的各个组成部分之间的关系 基本概念 块扇出 由一个块所直接控制的块数扇入 直接调用它的上级块数目深度 控制的总层数宽度 跨度最宽层的跨度数 1 良软件结构 具有层次性 无回路块调用的软件结构 非良结构的调整 合并循环节点 良结构 AB 模块内部复杂性增加了 2 模块化 modularity 模块 Module 单元 Cell 模块化把程序划分成独立命名且可独立访问的模块 每个模块完成一个子功能 把这些模块集成起来构成一个整体 可以完成指定的功能 满足用户的需求 模块化的依据 c x 问题x的复杂程度E x 解决问题x需要的工作量 时间 对于两个问题P1和P2ifC P1 C P2 thenE P1 E P2 若P能分解为P1 P2两个部分 由经验有 C P C P1 C P2 E P E P1 E P2 块的划分与总工作量之间的关系 在一个16开页面内可写完 若50行代码 模块的重要特征 抽象 abstraction 忽略细节 分层理解问题 自顶向下层层细化信息隐藏 informationhiding 细节隐藏可理解性修改副作用小错误副作用小 例 开发一个CAD软件 实现一个二维绘图系统的全部功能 供初级计算机辅助设计者使用 抽象层次I 用问题环境的术语来描述这个软件该软件包括一个计算机绘图界面 向绘图员显示图形 一个数字化界面 用于绘图员绘制直线 折线 矩形 圆及曲线等 所有几何图的计算 所有的剖面图和辅助视图都可以用这个CAD软件实现 模块化的抽象特征 模块化的抽象特征 抽象层次II 任务需求的描述 列出 What 而不是 How CADSOFTWARETASKS userinteractiontask 2 Ddrawingcreationtask graphicsdisplaytask drawingfilemanagementtask END 3 模块独立性 Moduleindependence 分解模块的关键 1 可命名 名字有隐含语义2 每个模块完成一个相对独立的子功能 并且与其它模块间的接口简单 独立性的度量 Yourdon Constantine 1978 耦合 Coupling 块间联系内聚 Cohesion 块内联系 1 耦合 Coupling 对一个软件结构内不同模块之间互连程度的度量 零耦合 uncoupling 彼此完全独立 这意味着模块间无任何连接 耦合程度最低 数据耦合 DataCoupling 两个模块彼此间通过参数交换信息 而且交换的信息仅仅是数据 Themostdesirable 控制耦合 ControlCoupling 传递的信息中有控制信息 尽管有时这种控制信息以数据的形式出现 接口单一 但仍然影响被控模块的内部逻辑 公共环境耦合 CommonCoupling 两个或多个模块通过一个公共数据环境相互作用 问题 公共部分的改动将影响所有调用它的模块 公共部分的数据存取无法控制 复杂程度随耦合模块的个数增加而增加 内容耦合 ContentCoupling 一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠 只可能出现在汇编程序中 一个模块有多个入口 Theleastdesirable 内容耦合 例1 A访问C的内部数据或不通过正常入口而转入C的内部 内容耦合 耦合度与软件结构 原则 尽量使用数据耦合 少用控制耦合 限制公共环境耦合的范围 完全不用内容耦合 2 内聚 Cohesion Goal ascohesiveaspossible 一个模块内各个元素彼此结合的紧密程度理想的模块内聚只做一件事情模块内的高内聚往往意味着模块间的松耦合内聚更重要 偶然内聚 Coincidentalcohesion Unrelatedfunctions processes ordataarefoundinthesamemodule forconvenience A B 逻辑内聚 LogicalCohesion Logicallyrelatedfunctionsordataareplacedinthesamemodule 逻辑内聚 时间内聚 Temporalcohesion Thefunctionsarerelatedonlybythetiminginvolved initialxInitialy 过程内聚 Proceduralcohesion Functionsaregroupedtogetherinamoduletoensureacertainorderofperformance 通信内聚 Communicationalcohesion Allthefunctionsinamoduleoperateonorproducethesamedataset X从文件file读出数据由数据产生日报表由数据产生单项产品报表 顺序内聚 Sequentialcohesion Theoutputfromonepartofamoduleistheinputtothenextpart X输入系数求根打印方程的根 功能内聚 Functionalcohesion Everyprocessingelementisessentialtotheperformanceofasinglefunction X报表打印 内聚度与软件结构 设计时力争做到高内聚 三 软件度量 度量 metrics 测量 measure 估算 estimation 软件度量 软件复杂性度量规模文本复杂性控制结构的复杂性软件可靠性度量系统故障率软件修复与软件有效性软件可靠性估算 1 软件复杂性度量 规模文本复杂性控制结构的复杂性 1 规模度量 Size OrientedMetrics 代码行 Linesofcode LOC 生产率 LOCperperson month 代码行数 工作月Pl L E每行代码的平均成本 perLOC 总成本 代码行数Cl S L代码出错率 ErrorsperkLOC 总错误数 代码行数EQRl Ne L 某软件项目记录 Pl 12 1kLOC 24PM 504LOC PMCl 168000 12 1kLOC 13 88 LOCEQRl 29个 12 1Kloc 2 4个 kLOC 代码行数估算软件规模的特点 优点 简单易行缺点 依赖于语言不能刻画算法的难易程度开发前或初期估算困难只适用于过程式语言 不适用于4GL 2 文本复杂性度量 程序语言符号长度N N1 N2N1 程序中操作符总个数n1 程序中不同操作符个数N2 程序中操作数总个数n2 程序中不同操作数个数估算公式 N n1log2n1 n2log2n2程序量V Nlog2 n1 n2 3 控制结构的复杂性度量 1976 T J McCabe基于程序拓扑结构的软件复杂性度量模型巡回秩数V G V G e n 2 边数 结点数 2可以证明 V G 有界或无界的封闭区域个数 程序控制结构的复杂性 2 软件可靠性度量 软件的可靠性在某个给定时间间隔内 程序按照规格说明成功运行的概率 1 系统故障率 2 软件修复与软件有效性 有效性函数A t 系统在t时刻正常运行的概率可靠性函数R t 系统在 0 t 时间间隔正常运行的概率A MTTF MTTF MTTR MTTF为平均无故障时间 MTTR为平均修复时间 A为机器的稳定性

温馨提示

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

评论

0/150

提交评论