第24章 面向对象系统的技术度量 第24章 面向对象系统的技术度量.ppt_第1页
第24章 面向对象系统的技术度量 第24章 面向对象系统的技术度量.ppt_第2页
第24章 面向对象系统的技术度量 第24章 面向对象系统的技术度量.ppt_第3页
第24章 面向对象系统的技术度量 第24章 面向对象系统的技术度量.ppt_第4页
第24章 面向对象系统的技术度量 第24章 面向对象系统的技术度量.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、第24章 面向对象系统的技术度量,软 件 工 程,第24章 面向对象系统的技术度量,24.1 面向对象度量的目的 24.2 面向对象度量的识别特征 24.3 对OO设计模型的度量 24.4 面向类的度量 24.5 面向操作的度量 24.6 对面向对象测试的度量 24.7 对面向对象项目的度量 24.8 小结,24.1 面向对象度量的目的,更好地理解产品的质量。 评估过程的效率。 改善在项目级别完成的工作的质量。,24.2 面向对象度量的识别特征,局部化 封装 信息隐蔽 继承 抽象,24.2.1 局部化,局部化是软件的一个特征,它指明信息在程序 中被集中的方式,例如,针对功能分解的传统 方法围绕

2、功能局部化信息,它们典型地以过程 模块来实现。数据驱动方法围绕特定的数据结 构局部化信息。在OO语境中,信息是通过封装 数据和处理在类或对象的边界内而集中的。,24.2.2 封装,封装通过将测度的焦点从单个模块改变到数据(属性)和 处理模块(操作)包而影响度量。此外,封装鼓励在高抽 象层的测度,例如,在本章后面,将介绍和每个类的 操作数量关联的度量。将此层次的抽象同传统的度量 相比较,传统的着重于布尔条件的计数(cyclomatic复 杂性)或代码行数。,24.2.3 信息隐蔽,信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必需的信息提供给那些希望访问它的其他构件。,继承是使得某对

3、象的责任能够传播到其他 对象的机制,继承出现在类层次的所有层 面上,通常,传统的软件不支持该特征。,24.2.4 继承,抽象是使得设计者能够关注程序构件(数 据或过程)的本质性细节而不需考虑低层 细节的机制。,24.2.5 抽象,24.3 对OO设计模型的度量,大小 复杂性 耦合性 充足度 完备性,内聚性 原始性 相似性 易变性,OO设计可测度的特征:,23.4 面向类的度量,23.4.1 CK度量套件 6种基于类的设计度量 1.每个类的加权方法(WMC) 假定对类C定义了复杂度为c1,c2,cn的n个方法,所 选择的特定的复杂性度量(如cyclomatic环复杂度)应该 规范化,使得对某方法

4、的名义上的复杂性取值1.0。 WMC=ci,2.继承树的深度(DIT) 3.子女的数量(NOC) 4.对象类之间的耦合(CBO) 5.对类的响应(RFC) 6.方法中缺少内聚 (LCOM),6种基于类的设计度量,24.4.2 Lorenz和Kidd建议的度量,度量体系的样本如下:,类大小(CS):可通过被封装在类中的操作的总数和属性的数量来测度。 由子类覆写的操作数量(NOO):若NOO大,则导致了弱的类层次和可能难于测试和修改的OO软件。 由子类加入的操作的数量(NOA):当NOA值增大时,子类漂离超类隐含的抽象。当DIT变大时,在层次中低层的NOA值将下降。 特例化指标(SI):特例化可通

5、过加入或删除或覆写来达到,SI=NOO*level/Mtotal,SI值越高,越有可能类层次中包含了更多不遵从超类抽象的类。,24.4.3 MOOD度量套件 度量样本如下: 方法继承因子(MIF) 耦合因子(CF) 多态因子(PF),方法继承因子(MIF):OO系统的类体系结构针对方法(操作)和属性而使用继承的程度被定义为:,MIF=Mi(Ci)/Ma(Ci) 对i从1到TC求和 其中TC为在体系结构中的类的总数,Ci是在体系结构中 的一个类。且: Ma(Ci)=Md(Ci)+Mi(Ci) 其中Ma(Ci)为可在和Ci关联中被调用的方法的数量, Md(Ci)为在类Ci中声明的方法的数量,Mi(

6、Ci)为在类Ci 中继承(未被覆写的)的方法的数量。 MIF值提供了继承对OO软件的影响的指示。,耦合因子(CF): CF=ijis_client(Ci,Cj)/(TC-TC) 这里针对I从1到TC和j从1到TC求和。函数 is_client=1, 当且仅当在客户端类Cc和服务器类Cs 间存在关系,且CcCs时 is_client=0, 否则 当CF值增加时,OO软件的复杂性也将增加,而可理解性、可维护性和复用潜力都将受到影响。,多态因子(PF):重新定义被继承方法的方法数量,除以可能的不同多态情形的最大数量.这样,PF是对系统中的动态绑定相对数量的间接测量。 PF=iMo(Ci)/iMn(C

7、i)*DC(Ci) 这里对i从1到TC求和。且 Md(Ci)=Mn(Ci)+Mo(Ci) 其中,Mn(Ci)为新方法的数量,Mo(Ci)为覆写方法的数量,DC(Ci)为后代计数(某基类的后代类的数量),24.5 面向操作的度量 三个简单度量: 平均操作大小(OSavg):可以用操作发送的消息的数量作为对操作大小的一种度量。 操作复杂度(OC):可使用针对传统软件提出的任何复杂度度量来计算。应保持OC尽可能低。 每个操作的平均参数的数量(NPavg):操作参数的数量越大,对象间的协作越复杂。 NPavg应保持尽可能低。,24.6 对面向对象测试的度量,封装 在方法中内聚性的缺乏(LCOM):LCOM值越高,必须被 测试的状态越多,以保证方法不产生副作用。 公共和保护属性的百分比(PAP):PAP的高值增加了类 间副作用的可能性。 对数据成员的公共访问(PAD):PAD的高值导致了类间 副作用的潜在可能。,继承 根类的数量(NOR):NOR增加时,测试工作量也增加; 扇入(FIN):OO语境中,FIN是多继承的指标,FIN1 指明类从多于一个的根类继承属性和操作。FIN1应尽 量避免。 子女数(NOC)和继承树的深度(DIT) :超类的方法必须 针对每个子类被测试。,24.6 对面向对象测试的度量,24.7 对面向对象项目的度量,下面的OO度量可提供对软件大

温馨提示

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

评论

0/150

提交评论