论文部分内容阅读
随着软件产业的迅速发展,软件系统的规模、数量以及复杂性与日俱增,使得软件系统的开发、测试和维护的重要性和难度也越来越大。将可视化技术应用到程序理解中将大大提高软件相关工作人员对软件系统的理解,能够缩短软件开发和测试维护的时间,提高软件生产的效率和质量,并能实现软件错误缺陷的预防等。 软件可视化就是软件及其开发过程相关的构件的可视化。除了程序代码之外,还包括与需求和设计相关的文档,对源码的修改过程以及调试报告等。软件可视化研究就是寻找一种有效的可视化模型及布图算法来表示软件的各个方面。国内外已经有一些软件可视化的工具,但这些工具在可视化时都有不足。 本文是在C/C++语言基础上研究的软件可视化,采用Visual C++6.0开发平台,结合MongoDB数据存储技术和Qt图形绘制显示技术,从模块调用图和逻辑流程图两个方面考虑,将与软件相关的各种软件构件相关信息以直观的易于理解的图形展现出来: (1)针对常规层次型布图算法在大规模程序中布线混乱的缺点,本文在Sugiyama层次布局模型的基础上,提出了一种随程序规模动态调整的通道优化布线算法。通过将通道数目与程序规模建立函数关系,以解决布图时线路重叠和效率低下的问题;在布图中结合广义张量平衡思想,以减少交叉并实现布图的美观性;并根据调用节点之间的相对位置,给出了对应的线路分配和申请策略,实现了布线的有序性。 (2)针对现有逻辑流程图绘制显示时不统一的缺点,本文提出了一种改进的不受程序编程风格影响的基于NSB(N表示Node,S表示Segment,B表示Block)的程序文档划分算法,实现了被开发软件的全体源码的框图化。同时通过添加标签标识,实现了源码相关项之间的双向自动追溯,可以有效的帮助软件开发团队更容易理解他们的软件系统,同时使得软件错误的预防更容易实现。