面向对象软件重用与度量方法.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象软件重用与度量方法

面向对象软件重用与度量方法 内容简介 软件重用性定义 面向对象的软件重用分析与方法 软件复杂性度量准则 不同层面重用性的度量方法 软件重用性定义 软件的重用性是指软件模块或软件体系在不修改或仅作少量修改的情况下可以被新的软件系统所利用的能力。 设计可重用软件必须坚持两个原则: 1. 适应变化 2. 隔离变化 软件重用细胞模型 内部实现 隔离层 适配层 外部系统 可重用准则 提高方法的内聚 减小方法的规模 保持方法的一致性 把策略与实现分开 全面覆盖 尽量不适用全局信息 面向对象的软件重用分析与方法 程序=对象+消息 消息反映了对象与对象之间的关联 对象反映的是系统的动态特征 类反映的是系统的静态特征 类与类之间的关系主要有两种:继承和关联关系。当仅考虑关联关系时,整个软件系统可以看成是类、类与类之间的关联关系构成的图。其中,类为节点,类与类之间的关系作为边。 隔离和适应变化的方法 屏蔽对象自身的变化(对象=数据+行为) 减少关联关系 1.弱等价类划分的方法 弱等价类划分不同于集合论中的等价类划分,旨在降低元素之间的耦合程度,反映一种分组的思想,从而有效降低整个系统的依赖关系数量。 2.引入抽象层的方法 建立抽象层与组内的成员都是紧密耦合的,且抽象类的引入实际上起了辅助分组的作用,组内所有的类与外界的交互转由抽象类实现转接,这就大大减少了依赖关系。 OO度量 OO度量的特性 局域性(局部化) 封装性 信息隐藏 继承性 抽象 软件复杂性度量准则 CK度量组由Chidamber和Kemerer提出,他们建议使用6种基于类设计的度量,通称为CK度量组。 (1) 类的有权方法 (WMC) (2) 类的继承树深度(DIT) (3) 类的孩子个数(NOC) (4) 对象类之间的耦合(CBO) (5) 类的响应(RFC) (6) 类中方法缺乏内聚的程度(LCOM ) 不同层面重用性的度量方法 在OOP中,一项重要的优势是代码重用,它由模版方式来体现。 1、函数模版 2、类模版 在一个软件系统中实现重用的方法往往是继承,由子类继承父类,父类中的函数、变量均可被子类共享,这也体现了重用性。 1、继承树中的重用性度量 2、DIC度量方法 代码重用度量 FTF 函数模版因子 uses_FT(Fi)= { 1, 如果函数使用了模版 0, 其他 } FTF= 1/3 CTF 类模版因子 uses_CT(Ci)= { 1, 如果类使用了模版 0, 其他 } CTF= 1/2 继承树中的重用性度量 为了度量重用, 定义以下概念: (1) 方法重用效率EMR定义为: 若一个方法被继承的次数为n1 , 而被重载的次数为n2 , 则EMR= ( n1- n2) / n1. EMR越大, 说明该方法重用度越大. (2) 类重用ECR定义为: 对类库中类未加任何修改而重用的个数为r1, 重用权值为w1,对类库中类经过修改而重用的个数为r2, 重用权值为w2, 系统新增加的类个数为r3. 则ECR=( w1r1+ w2r2) / ( w1r1+ w2r2+ r3 ) , ECR越大, 说明类重用度越高. DIC度量方法 DIC 表示 Degree of Inheritance of a Class。 Number of Inherited Attributes 表示所有从直接父类中继承的属性和方法的总数,包括保护的和共有的。 Level 表示在继承树层次结构中,从该类到根节点的最大距离。 Weyuker评估度量的几个性质 性质1 给定类P 和度量L, 总能找到另一个类Q, 使得L( P ) ≠L( Q) . 该性质说明所有类的度量值不都相同, 否则失去了度量的意义. 性质2 存在不同类P 和Q, 使得L( P ) = L( Q) . 该性质说明可以有两个类的度量值相同, 即复杂度相同. 性质3 两个具有同样功能的类P 和Q 并不隐含着L( P ) = L( Q) . 该性质说明两个类设计的功能相同, 设计的细节对类的复杂度有很大的影响. 性质4 对于所有的类P 和Q, 一定有L( P ) ≤L( P+ Q) 和L( Q) ≤L( P + Q) . 其中P+ Q为P 和Q 的组合. 该性质说明两个类的组合的

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档