您的位置: turnitin查重官网> 计算机 >> 设备 >布线随程序规模动态调整通道优化布线算法资料网

布线随程序规模动态调整通道优化布线算法资料网

收藏本文 2024-04-04 点赞:17403 浏览:72428 作者:网友投稿原创标记本站原创

0引言
软件

源于:查抄袭率本科论文www.udooo.com

规模和体系结构的不断增加,导致对软件系统的分析、开发、测试、维护等工作也随之变得更加困难。尤其对一些大型的遗留软件系统而言,成千上万的源代码行数、过时的开发方法、开发人员的变更、没有文档或者文档陈旧等因素使得对软件系统的分析和理解变得愈加困难,软件危机变得越来越严重[1-2]。一种帮助软件开发人员处理复杂软件系统和提高程序理解效率的有效方法就是软件可视化[3-4]。软件可视化技术通过分析程序源代码来产生系统的函数调用关系图和类的继承关系图为程序人员快速分析理解复杂系统提供了方便。
由于函数的调用关系和类的继承关系具有明显的层次特性,因此这两种类型的可视化图示大多采用层次化布图。但是布图问题本身就是一个NP难题[5],布局约束之间很容易产生冲突[6],如图的高度最小化和图纵横比协调,边的长度优化与边交叉数目最小化等。因此需要权衡各个约束,确保层次图符合传统美学标准。
目前已经提出了一些布局算法[7-11],这些算法中虽然提出了一些关于减少交叉以及节点之间关系连线的算法,但是现有的大多数算法对程序的规模和空间利用率考虑得较少,使得对于大规模的软件系统来说,层次图的生成效率低下,调用关系复杂的节点的连线混乱甚至重叠,而调用关系少的节点之间存在大量空间,导致节点之间布线失去平衡,给软件开发和维护人员分析和理解系统带来了不便,因此这些算法不具有良好的适用性。本文参照了可视化显示准则,融合了多种算法,提出了一种随着程序规模动态调整的通道优化布线算法,增强了层次可视化图的可读性和可理解性。
1层次布局算法框架
层次布图中使用最广的就是Sugiyama层次布局算法[12],现有的大多数布图算法都是在其基础上进行了某些方面的改进。本文继承了这种算法模式,增加了通道线路数目指定和通道线路分配的算法流程,如图1所示。

1.1分层算法

分层就是根据节点之间的调用关系来确定上下层,保证调用者尽可能地处于上层,被调用者尽可能处于下层,使得连线的方向从上到下。目前的分层算法主要有最长路径分层算法、最小化宽度分层算法、虚拟节点最小化算法等[13]。

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号