论文部分内容阅读
计算机应用技术的快速发展,使程序的更新速度日益加快,对遗留系统的维护占用了大量的人力、物力。程序理解技术在一定程度上促进了维护人员对程序的理解效率,降低了维护和再开发的工作量。程序可视化表示是程序理解中的一个重要分支,它可以有效的辅助人们对现有软件的理解和研究。程序的可视化表示涉及到多种技术和方法的综合应用。本文在现有理论的基础上,提出了一个适用于面向对象程序设计语言C++代码的程序可视化理解方案,并基于这一方案,进行了以下研究工作。首先,重点研究了信息的抽取和再组织。设计一种基于正则搜索引擎的快速抽取算法,获取具有实际意义的代码块,并建立代码的索引表。选择目标信息如指针,程序基于索引表开始分析,递归解析程序代码,获取关于目标信息的最小信息集合,对抽取的最小信息集合进行抽象、归纳。本文设计一种抽象的信息组织与表示方法,把代码之间的关系抽象为实体对象之间的联系,并基于此联系重新组织代码及其之间的关系。其次,总结了可视化表示中用到的图形符号——可视化表示的基本单位,及其实现方法。通过研究程序流程图的国家标准和UML中的图形符号,总结了几种常用符号如包符号、语句符号、控制结构符号,以及它们实现过程中需要的数学公式。然后,通过源文件引用关系及其可视化表示的研究,总结出可视化过程的基本步骤,提出一种可视化表示源文件引用关系的算法。最后,基于前文内容进行了指针信息的可视化表示及其实现算法的研究,通过一个实例分析表明程序的可视化表示对人们理解遗留程序代码具有很好的辅助效果。