基于多级划分的大类图拆分方法研究
发布时间:2022-01-08 21:41
过去几十年中软件数量和规模呈现爆发式增长,软件维护已经变成了 一个重要的问题。作为软件开发的一个重要阶段,软件维护的作用越来越突出,面临的问题也越来越大。由于软件开发过程的不规范,很多软件在开发时没有设计软件开发模型,对软件维护人员来说工作变得十分困难。目前主流的逆向工程工具可以通过源代码生成软件对应的开发模型,其中类图是最常用的模型。可读性是UML类图质量的一项重要指标,目前逆向工程中生成的UML类图的规模往往比较庞大,可读性较差。本文提出了一种基于多级划分的大类图拆分方法。首先根据类目间的继承、聚合、关联、依赖对类目间的耦合的影响程度,提出了类目间耦合强度的计算方法,并将类图转化为反应耦合强度的加权图,从而将类图拆分问题转化为加权图的划分问题。对多级划分算法进行改进,使之能够较好地对加权图进行拆分。对加权图进行压缩,优先将耦合度较大的节点合并,减小了加权图的规模,同时隐藏了权值较大的边,接着将加权图划分为k部分,将每个部分的节点按照压缩的顺序逐级拆解,并使用改进的多路KL算法进行优化调整,尽可能使得耦合度较大的节点划分到同一个部分,直到节点恢复到原来的数目。对于规模相对小一些的类图...
【文章来源】:天津工业大学天津市
【文章页数】:54 页
【学位级别】:硕士
【部分图文】:
图1-1类图实例??
网格最长维度的坐标轴上,这将形成一个网格节点的序,然后对有序表二分,将??网格划分为了两个子块,然后对每个子块递归的使用此方法,就可以完成对该网??格的多路划分。如图2-1所示,在左图中,粗线首先对整个网格进行二分,然后??用细线对两个子块进行划分,然后用虚线再对更小的子块进行划分。右图采用深??色的边框将划分后网格的每个子块都标注了出来。CND算法简单易行,划分速??度快,但是CND算法最后生成的划分其划分质量太差,CND算法可能生成子块??9??
考虑更多维度则可以生成更好的划分方案。SFC算法根据网格中节点的质心位??置,使用一条空间填充曲线将它们排序%]。在对网格节点排序后,SFC算法将??对序表进行路划分,图2-2给出了?SFC算法对一个四叉树网格进行8路划分的??实例。??—....rh7??图2-2?SFC算法划分示意图??SFC算法划分效率很高,得到的划分,通常情况下划分质量要优于CND算??法和R1B算法的划分质量[38],但是由于SFC算法并没有考虑图中节点链接关系??以及权重,其本质与CND算法和RIB算法一样也是基于图的几何结构进行划分,??因此,对于很多应用来说,这种方法生成的划分方案其结果仍然不理想。??2.3.2纟且合划分法??几何划分法,在生成划分时,将图中在空间上距离近的节点划分在一起,没??有考虑到节点之间的关联,相反,组合划分法将拓扑上高度连接的节点尽可能划??分在一起,即仅使用图的邻接信息来计算划分方案,而不适用节点的坐标信息。??与几何划分相比
【参考文献】:
期刊论文
[1]软件开发模型研究综述[J]. 张友生,李雄. 计算机工程与应用. 2006(03)
[2]青鸟面向对象软件建模工具的研究与实现[J]. 麻志毅,赵俊峰,孟祥文,张文娟. 软件学报. 2003(01)
[3]面向对象软件度量技术研究[J]. 伦立军,丁雪梅,李英梅. 计算机应用研究. 2002(12)
博士论文
[1]逆编译中几项关键技术研究[D]. 陈凯明.合肥工业大学 2004
[2]软件逆向工程技术研究[D]. 陈昊鹏.西北工业大学 2002
本文编号:3577334
【文章来源】:天津工业大学天津市
【文章页数】:54 页
【学位级别】:硕士
【部分图文】:
图1-1类图实例??
网格最长维度的坐标轴上,这将形成一个网格节点的序,然后对有序表二分,将??网格划分为了两个子块,然后对每个子块递归的使用此方法,就可以完成对该网??格的多路划分。如图2-1所示,在左图中,粗线首先对整个网格进行二分,然后??用细线对两个子块进行划分,然后用虚线再对更小的子块进行划分。右图采用深??色的边框将划分后网格的每个子块都标注了出来。CND算法简单易行,划分速??度快,但是CND算法最后生成的划分其划分质量太差,CND算法可能生成子块??9??
考虑更多维度则可以生成更好的划分方案。SFC算法根据网格中节点的质心位??置,使用一条空间填充曲线将它们排序%]。在对网格节点排序后,SFC算法将??对序表进行路划分,图2-2给出了?SFC算法对一个四叉树网格进行8路划分的??实例。??—....rh7??图2-2?SFC算法划分示意图??SFC算法划分效率很高,得到的划分,通常情况下划分质量要优于CND算??法和R1B算法的划分质量[38],但是由于SFC算法并没有考虑图中节点链接关系??以及权重,其本质与CND算法和RIB算法一样也是基于图的几何结构进行划分,??因此,对于很多应用来说,这种方法生成的划分方案其结果仍然不理想。??2.3.2纟且合划分法??几何划分法,在生成划分时,将图中在空间上距离近的节点划分在一起,没??有考虑到节点之间的关联,相反,组合划分法将拓扑上高度连接的节点尽可能划??分在一起,即仅使用图的邻接信息来计算划分方案,而不适用节点的坐标信息。??与几何划分相比
【参考文献】:
期刊论文
[1]软件开发模型研究综述[J]. 张友生,李雄. 计算机工程与应用. 2006(03)
[2]青鸟面向对象软件建模工具的研究与实现[J]. 麻志毅,赵俊峰,孟祥文,张文娟. 软件学报. 2003(01)
[3]面向对象软件度量技术研究[J]. 伦立军,丁雪梅,李英梅. 计算机应用研究. 2002(12)
博士论文
[1]逆编译中几项关键技术研究[D]. 陈凯明.合肥工业大学 2004
[2]软件逆向工程技术研究[D]. 陈昊鹏.西北工业大学 2002
本文编号:3577334
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3577334.html