软件工程-第10章.ppt_第1页
软件工程-第10章.ppt_第2页
软件工程-第10章.ppt_第3页
软件工程-第10章.ppt_第4页
软件工程-第10章.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

软件工程 第10章软件的技术度量 10 1软件度量 10 1 1测量 测度 度量 指标和估算测量 对产品或过程的某个属性的范围 数量 维度 容量或大小提供一个定量的指标 测度 测量的一个行为 把数字或符号分配给现实世界实体的属性的过程 是任意一个工程过程中的重要元素 度量 建立在多次测度的基础上 对系统 部件或过程的某一特性所具有的程度进行的量化测量 指标 是一个度量或多个度量的组合 对同一类事物的多次度量的一个横向比较 它可以对软件产品 过程或资源提供更深入的理解 估算 对软件产品 过程资源等使用历史资料或经验公式等进行预测 10 1 2软件度量的分类软件度量可以分为直接度量和间接度量两类 10 1 3软件度量的目的更好地理解产品质量评估过程的效率改善在项目级别完成的工作的质量 10 1 4有效软件度量的属性简单的和可计算的 经验和直觉上有说服力的 一致的和客观的 在单位和量纲的使用上是一致的 编程语言独立 高质量反馈的有效机制 10 2分析模型的度量 10 2 1基于功能点的度量测量参数值权值用户输入数 4 用户输出数 5 用户查询数 4 文件数 7 外部界面数 7 总计数值 其中 用户输入数用户为软件提供的输入参数个数 用户输出数软件系统为用户提供的输出参数个数用户查询数一个联机输入确定一次查询 软件以联机输出的形式 实时地产生一个响应文件数统计逻辑的主文件个数 外部界面数统计所有机器可读的界面 利用这些界面可以将信息从一个系统传送到另一个系统 ATM系统的数据流图 为了确定用以计算功能点度量所需的关键测度 对数据流图加以评价 外部输入有8个 账号 选择信息 确认信息 金额 分为取款金额和转账金额 日期 账号 转入账号 密码 外部输出有3个 与屏幕和语音接口的数据接口信息 用户查询有5个 余额信息 密码 转出账户的信息 明细信息 出钞器余额 有2个文件 即客户存储信息单和系统配置信息 外部接口有8个 与出钞器 后台服务系统 凭条打印机和读卡器的所有数据接口信息 我们假定复杂度是平均的 这些数据及复杂度在下表中显示 8 3 5 2 8 4 4 5 10 7 32 15 20 20 56 143 我们假定 Fi是46 一个中度复杂的产品 则得FP 总计数值 0 65 0 01 Fi 143 0 65 0 01 46 158 7 10 3设计模型的度量 10 3 1体系结构设计度量体系结构设计度量集中于体系结构的特征上 强调体系结构的结构和模块的有效性 Card和Glass定义了三个软件设计复杂度测度 结构复杂度 数据复杂度和系统复杂度模块i的结构复杂度S i S i f2out i 其中fout i 是模块i的扇出数 数据复杂度D i 定义如下 D i v i fout i 1 其中v i 是模块i的输入输出变量的数目之和 系统复杂度C i 定义为结构复杂度和数据复杂度之和 C i S i D i Fenton建议使用简单的形态度量 如外形度量 这样不同的程序体系结构就可以用同一套简单的量纲加以比较 可以定义如下的度量 以ATM为例 size n a 其中n是节点 既模块的数目 a是弧 即控制线的数目 对于ATM系统的体系结构 size 14 13 27 深度 从根节点到叶子节点的最长路径 5 宽度 体系结构中的最宽的那一层的节点数 5 弧和节点的比率 r a n 测度了体系结构的连接密度 为体系结构的耦合提供了一个简单的指示 对于ATM系统的体系结构 r 13 14 0 93 10 3 2构件级设计度量内聚度量耦合度量复杂度度量根据软件过程性描述 详细设计或代码 中的控制流程确定复杂性度量 McCabe认为程序控制流的复杂度度量很多都是基于流图的 流图可以从算法设计导出 是由节点和边构成的 下面三个图给出了一个模块的流图设计 6 a 流程图 b 复合条件分离后的流程图 c 流图 6 复杂度度量的一种方法是计算流图的环复杂度 环复杂度定义了程序基本集的独立路径数量的上界 可以用如下三种方法之一来计算环复杂度V G V G 流图中区域的数量 区域是指结点和边限定的区域 分为闭合区域和外部区域 上图中的流图有4个闭合区域 所以V G 4 1 5 V G E N 2 其中E是流图中边的数目 N是流图中节点的数目 上图中的流图有10条边 7个节点 所以V G 10 7 2 5 V G P 1 其中P是流图中的判定节点的数目 判定节点是指包含了条件的节点 上图中的流图中节点1 2 4 5是判定节点 所以V G 4 1 5 程序结构的复杂性度量值V G 取决于程序控制流的复杂程度 当程序内的分支数和循环数增加时 V G 值将随之增加 即程序的复杂性增大 V G 还可以作为程序规模的定量指标 V G 值越高的程序往往是越复杂 越容易出问题的程序 10 4源代码度量 Halstead的软件科学理论把定量定律赋予了计算机软件开发 软件科学使用的一组基本测度在代码产生后或设计完成后对代码估算得到 程序可以看成是由操作符和操作数组成的符号序列 操作符是指程序中出现的语法符号 如 if then else while等 操作数是操作对象 如程序中定义或使用的变量 常量 数组 指针等 n1 在一个程序中出现的不同操作符 n2 在一个程序中出现的不同操作数 N1 操作符出现的总数 N2 操作数出现的总数 Halstead使用基本测度来计算以下几个度量 程序长度N n1log2n1 n2log2n2程序体积V Nlog2 n1 n2 确定下列源码的操作符和操作数 addend 0 j 0 while j 10 addend addend 10 3 print addend 其中操作符 while print 操作数 addend 0 j 10 3 因此 n1 8 n2 5长度N n1log2n1 n2log2n2 8log28 5log25 8x3 5x2 32 35 6 10 7软件质量的度量 McCall等人通过确定影响软件质量要素的属性定义了21个软件质量要素的评价准则 这些准则可以间接测量软件质量要素 从而可以度量整个软件质量 11个软件质量要素和21个评价准则之间的关系如下表所示 除了McCall的软件质量度量模型外 还有很多软件工程组织和专家在软件质量度量方面做了大量工作 但正确性 可维护性 完整性 可靠性和可用性往往能为项目提供有用的指标 软件正确性 正确性包含两方面 一方面是指软件完成所要求的功能的程度 另一方面指的是软件没有错误 可以用代码缺陷率DQRf和每千行代码的缺陷数DQRl来度量软件完成所要求功能的程度 用代码出错率EQRf和每千行代码的错误数EQRl来度量软件的错误 软件可维护性 可维护性是指为满足用户新的要求 或当环境发生了变化 或运行中发现了新的错误时 对软件进行相应诊断和修改的容易程度 有一种简单的面向时间的度量 称为平均变更时间MTTC 包括分析变更请求 设计合适的修改方案 实现变更并进行测试 以及将该变更发布给全部用户所花的时间 一般情况下 MTTC值越低 可维护性越好 软件完整性 完整性是指为了某一目的而保护数据 避免它受到偶然的 或有意的破坏 改动或遗失的能力 在网络时代 软件完整性变得越来越重要 它测量的是一个系统对安全性攻击 包括对程序 数据和文档的攻击 的抵抗能力 软件可靠性 可靠性是软件在给定时间段的不失败概率 可以用在给定时间间隔内程序按规格说明成功运行的概率来衡量 在实际应用中 我们可以利用概率统计的方法进行比较简单的计算 用R n 表示可靠性 这里的n为时间单位数 如果时间单位为天 则R 1 是在1天中不失败的概率 在给定时间段中的失败概率F n 为1减去该时间段的可靠性R n F n 1 R n 错误率是错误间隔的时间倒数错误率可用来估算失败概率F 1 例如某程序每两天发生一个错误 则即时错误率为1 2 即每天0 5个错误 例1 如果平均每两天发生一个错误 那么系统在1 2 3 和4天的不失败概率是多少 解 错误率可以用来估算某单位时间 如一天 内的失败概率 因为F 1 0 5所以 R 1 1 F 1 0 5R 2 R 1 2 0 5 0 5 0 25R 3 R 1 3 0 53 0 125R 4 R 1 3 0 53 0 0625 软件可用性 可用性是程序根据需求 在给定的环境和

温馨提示

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

评论

0/150

提交评论