当前位置: 首页 > 专利查询>河海大学专利>正文

一种面向对象软件系统类间耦合性度量方法技术方案

技术编号:9991101 阅读:103 留言:0更新日期:2014-05-02 04:45
本发明专利技术公开一种基于复杂网络的面向对象软件系统类间耦合性的度量方法。在面向对象的软件系统中,耦合性是软件中各个类之间相互关联程度的一种度量。为了能够较好地对软件系统中类之间的耦合性进行度量,首先对面向对象的软件系统进行形式化表示,利用波及度对软件系统中的类之间的耦合关系进行分析类在系统中的影响力;然后将劳伦茨曲线与基尼系数的概念并推广至复杂网络中,分析软件网络的异质性;最后提出一种基于复杂网络的软件系统耦合度的度量方法并以抽象实例进行分析。

【技术实现步骤摘要】
一种面向对象软件系统类间耦合性度量方法
本专利技术涉及一种软件度量方法,具体是将波及度、劳伦茨曲线与基尼系数的概念并推广至复杂网络中,提出一种基于复杂网络的软件系统耦合度的度量方法并以抽象实例进行分析。属于软件工程技术和复杂网络交叉领域。
技术介绍
软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。耦合度是指模块之间联系的紧密程度。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。耦合性是软件中各个类之间相互关联程度的一种度量。耦合的强弱取决于类与类之间的复杂性、进入或调用模块的位置、方式以及通过接口传送数据的多少等,在设计软件时应追求尽可能松散耦合的系统。因为对这类系统中任一类的设计、测试、维护相对独立,由于类与类之间联系较少,错误在类与类间传播的可行性也随之变小。随着面向对象技术在系统开发中的广泛应用,面向对象程序的内聚度和耦合度度量方法已成为一个重要的研究课题。目前,在软件内聚度和耦合度方面已做了大量的研究工作,并提出了一些度量准则和方法。这些方法虽然有些能很好的应用,但是没有从复杂性科学上加以研究,因此以上的度量方面理论或多或少不够全面。
技术实现思路
专利技术目的:本专利技术所要解决的技术问题在于克服现有技术所存在的度量方法的理论欠缺、不完整,提供一种基于复杂网络的面向对象软件系统类间耦合性度量方法,该方法充分以图论为基础的,把具有复杂系统的类中方法和属性简化成点以及连接点的线段的集合,将波及度、劳伦茨曲线与基尼系数的概念并推广至复杂网络中,提出一种基于复杂网络的软件系统耦合度的度量方法并以抽象实例进行分析。技术方案:一种面向对象软件系统类间耦合性度量方法,包括以下步骤:步骤A、对基于面向对象的软件系统进行形式化表示,利用波及度对软件系统中的类之间的耦合关系进行分析类在系统中的影响力;步骤B、引用劳伦茨曲线与基尼系数的概念,并将其并推广至复杂网络中,分析软件网络的异质性;步骤C、根据步骤A和步骤B,提出一种基于复杂网络的软件系统耦合度的度量方法并以抽象实例进行分析。步骤A中首先以图论为基础对软性系统类间的网络关系以抽象的形式化表示,然后利用复杂网络的波及度概念分析类间的耦合关系。软件系统网络中的类之间的连接度在一定程度上反映了类在网络中的重要性,一直以来都被作为判断网络结构复杂度的重要指标。但是,类的连接度并不能完全反映该类对其他非直接关联类的影响力以及对整个网络的贡献作用,因此网络对各个类的依赖程度也是评价系统耦合度的一项重要指标。步骤B中首先介绍劳伦茨曲线与基尼系数的概念,然后并推广至复杂网络中,分析软件网络的异质性。对于每个节点度值均相等的规则网络来说,异质性最弱。与之相反,每个节点度值越不均匀,异质性越强,网络中大部分节点之间连边数可能很少,而较少部分节点之间的连边数可能很大,此时网络耦合性必定比规则网络耦合性小。有益效果:本专利技术以图论为基础研究类在系统中的影响力并且分析网络的异质性,将波及度、劳伦茨曲线与基尼系数的概念并推广至复杂网络中,提出一种基于复杂网络的软件系统耦合度的度量方法并以抽象实例进行分析。比现有的分析方法更加全面,具有一定的应用价值。附图说明图1为基于复杂网络的面向对象软件系统类间耦合性度量方法流程图;图2为洛伦茨曲线;图3为复杂网络中的劳伦茨曲线;图4为复杂网络中的与类Ci属性相关的劳伦茨曲线。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。下面根据图1对本专利技术进行详细阐述。一、面向对象软件系统网络耦合性分析软件系统网络中的类之间的连接度在一定程度上反映了类在网络中的重要性,一直以来都被作为判断网络结构复杂度的重要指标。但是,类的连接度并不能完全反映该类对其他非直接关联类的影响力以及对整个网络的贡献作用,因此网络对各个类的依赖程度也是评价系统耦合度的一项重要指标。本节主要结合软件系统中类间连边程度和类在系统中的影响力两方面研究分析软件系统的耦合度。1.1软件系统中类间连边程度分析1.1.1类间的耦合关系一个软件系统S=(C1,C2,…,CN),其中Ci(i=1,2,…,N)表示面向对象系统的类。对每一个类Ci=(Ai,Mi),其中为类Ci的属性,为类Ci的方法集。则类与类之间的属性集与方法集存在着如下2种耦合关系:(1)不同类之间方法与属性的耦合关系如果类Ci中有方法调用类Cj中属性则方法与属性之间的耦合关系表示为其中kj=1,2,…mj,li=1,2,…ni。(2)不同类之间方法与方法的耦合关系如果类Ci中有方法调用类Cj中方法则方法与方法之间的耦合关系表示为其中li=1,2,…ni,lj=1,2,…nj。1.1.2任意两个类的之间的连边程度分析一个软件系统网络S=(C1,C2,…,CN),类Ci和类Cj为一个软件系统中任意两个类:Ci=(Ai,Mi),其中为类Ci的属性集,并且ki=1,2,...,mi,为类Ci的方法集,并且li=1,2,...,ni;Cj=(Aj,Mj),其中为类Cj的属性集,并且kj=1,2,...,mj;为类Cj的方法集,并且lj=1,2,...,nj。对类Ci的每个属性引入一个集合MAID来记录与属性Ai有耦合关系的类Cj中方法的集合:其中ki=1,2,…mi,lj=1,2,…nj。对类Cj的每个属性引入一个集合MAID来记录与属性Aj有耦合关系的类Ci中方法的集合:其中kj=1,2,…mj,li=1,2,…ni。对类Ci的每个方法引入一个集合MMID来记录与方法Mi有耦合关系的类Cj中方法的集合:其中li=1,2,…ni,lj=1,2,…nj。类Ci和类Cj之间的耦合程度为:ID=|MAID(Ai)|/mi+|MAID(Aj)|/mj+|MMID(Mi)|/ni(4)其中,|MAID(Ai)|,|MAID(Aj)|、|MMID(Mi)|分别表示集合MAID(Ai)、MAID(Aj)和MMID(Mi)中元素的个数。1.2软件系统中波及度对于软件系统对类的依赖程度,本专利技术引入了复杂网络的波及度概念。1.2.1波及度的定义设节点x,y∈V(S),T(y)表示网络S中从节点y开始可以到达的所有节点(包括类y)的集合,即通过类间的耦合关系到达的集合,V(S)表示网络S中所有节点的集合。如果从y到x有一条任意长度的无向图,那么称类x是从类y可达的。在图论中,集合T(v)被定义为给定节点v的可达集。该参数可以通过计算有向图的传递闭包或者进行深度优先搜索来求得。节点v的波及度定义为集合T(v)中元素的个数,记为rS(v)=|T(v)|。1.2.2软件系统网络中的波及度对软件系统网络S=(C1,C2,…,CN),类Ci和类Cj为一个软件系统中任意两个类,分别在网络中对类Ci和类Cj建立与自身的可达集合:T(Ci)={Ci,Ce|Ci和Ce是可达的,Ci∈S,Ce∈本文档来自技高网...
一种面向对象软件系统类间耦合性度量方法

【技术保护点】

【技术特征摘要】
1.一种面向对象软件系统类间耦合性度量方法,其特征在于,包括以下步骤:步骤A、对基于面向对象的软件系统进行形式化表示,利用波及度对软件系统中的类之间的耦合关系进行分析类在系统中的影响力;步骤B、引用劳伦茨曲线与基尼系数的概念,并将其并推广至复杂网络中,分析软件网络的异质性;步骤C、根据步骤A和步骤B,计算软件系统的耦合性;一个软件系统S=(C1,C2,…,CN),其中Ci表示面向对象系统的类,i=1,2,…,N;对每一个类Ci=(Ai,Mi),其中为类Ci的属性,为类Ci的方法集;则类与类之间的属性集与方法集存在着如下2种耦合关系:(1)不同类之间方法与属性的耦合关系如果类Ci中有方法调用类Cj中属性则方法与属性之间的耦合关系表示为其中kj=1,2,…mj,li=1,2,…ni;(2)不同类之间方法与方法的耦合关系如果类Ci中有方法调用类Cj中方法则方法与方法之间的耦合关系表示为其中li=1,2,…ni,lj=1,2,…nj;一个软件系统网络S=(C1,C2,…,CN),类Ci和类Cj为一个软件系统中任意两个类:Ci=(Ai,Mi),其中为类Ci的属性集,并且ki=1,2,...,mi,为类Ci的方法集,并且li=1,2,...,ni;Cj=(Aj,Mj),其中为类Cj的属性集,并且kj=1,2,...,mj;为类Cj的方法集,并且lj=1,2,...,nj;对类Ci的每个属性ki=1,2,...,mi,引入一个集合MAID来记录与属性Ai有耦合关系的类Cj中方法的集合:其中ki=1,2,…mi,lj=1,2,…nj;对类Cj的每个属性引入一个集合MAID来记录与属性Aj有耦合关系的类Ci中方法的集合:其中kj=1,2,…mj,li=1,2,…ni;对类Ci的每个方法li=1,2,...,ni,引入一个集合MMID来记录与方法Mi有耦合关系的类Cj中方法的集合:其中li=1,2,…ni,lj=1,2,…nj;类Ci和类Cj之间的耦合程度为:ID=|MAID(Ai)|/mi+|MAID(Aj)|/mj+|MMID(Mi)|/ni(4)其中,|MAID(Ai)|,|MAID(Aj)|、MMID(Mi)|分别表示集合MAID(Ai)、MAID(Aj)和MMID(Mi)中元素的个数。2.如权利要求1所述面向对象软件系统类间耦合性度量方法,其特征在于,设节点x,y∈V(S),T(y)表示网络S中从节点y开始可以到达的所有节点的集合,即通过类间的耦合关系到达的集合;如果从y到x有一条任意长度的无向图,那么称类x是从类y可达的,V(S)表示网络S中所有节点的集合;在图论中,集合T(v)被定义为给定节点v的可达集,T(v)可以通过计算有向图的传递闭包或者进行深度优先搜索来求得;节点v的波及度定义为集合T(v)中元素的个数,记为rS(v)=|T(v)|;对软件系统网络S=(C1,C2,…,CN),类Ci和类Cj为一个软件系统中任意两个类,分别在网络中对类Ci和类Cj建立与自身的可达集合:T(Ci)={Ci,Ce|Ci和Ce是可达的,Ci∈S,Ce∈S,Ce≠Cj},类Ci的波及度定义为集合T(Ci)中类的个数,记为rS(i)=|T(Ci)|;T(Cj)={Cj,Ce|Cj和Ce是可达的,Cj∈S,Ce∈S,Ce≠Cj},类Cj的波及度定义为集合T(Cj)中类的个数,记为rS(j)=|T(Cj)|。3.如权利要求2所述面向对象软件系统类间耦合性度量方法,其特征在于,软件系统网络S=(C1,C2,…,CN)中,一共有N个类,网络中边数最大为N(N-1)/2条,则软件系统中耦合程度为:

【专利技术属性】
技术研发人员:顾爱华周晓峰
申请(专利权)人:河海大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1