- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于pycparser的C源程序可视化系统设计和实现
摘 要 现如今,软件工程行业迅猛发展并时刻影响着人类的生活。在软件开发的过程中,软件的维护正起着越来越重要的作用。而随着软件规模的不断扩大,包含数百万行代码的软件越来越常见,这无疑对软件维护人员提出了新的挑战。对于开发人员而言,传统的通过阅读程序文本理解程序的方式将耗费大量的时间和精力,从而直接增加软件维护的成本。所以,寻求一种全新的程序理解方案成为了软件工程行业亟需解决的问题。 在这种情况下,程序可视化理念的提出,为程序理解提供了新的思路。程序可视化技术寻求通过可视化技术以静态或动态的图像显示程序的代码逻辑或数据结构,从而帮助开发人员理解程序内容,进而帮助企业降低软件维护成本。 本文首先对程序可视化技术进行了简要的概述,接着分别介绍了经典的可视化方法,并对现有的可视化系统进行了分析。之后,阐述了本课题所制作的C源程序可视化系统的结构,并对系统主要功能的实现进行了阐述。最后总结了可视化技术发展的前景和系统开发过程中的不足。 关键词:C源程序;Pycparser库;程序可视化 前 言 程序可视化是当今软件工程产业研究的热门领域。程序可视化技术旨在利用创建图像、图表或动画等方式将数据或文本转化为图形内容以传递信息,帮助人们加深对程序内容的理解。因为通过实例化的资料帮助人类理解抽象化的思想是十分简单有效的,所以,程序可视化的理念自1987年被提出后,便取得了较为广泛的关注和较快的发展。 伴随着软件行业的发展,计算机程序可视化已逐步成为帮助开发和维护人员理解程序逻辑、帮助企业降低软件维护成本的主流辅助技术。与传统的通过程序语言解释程序内部逻辑的方法不同,程序可视化可以以更为直观生动的图像信息展现程序片段的内部逻辑。 直到今天,程序可视化的公认定义仍然没有在该领域内达成共识。现有的每类程序可视化技术都可以对特定的程序信息进行可视化操作,但不同的程序可视化技术在其定义中强调的重点又不尽相同。所以,各种形式的程序可视化技术相互依赖又各有特色。 本课题主要以C源程序为可视化对象,通过分析较为成熟的程序可视化技术和研究现有的程序可视化系统,借助Python编程语言在数据分析方面的优势以及Pycparser库对C源程序的解析能力,初步实现针对C源程序的可视化效果。 第一章 绪 论 本章主要介绍了软件可视化的研究背景和意义,概述了本课题研究的主要内容,并在本章的最后对论文的组织结构进行了介绍。 1.1 课题研究背景及意义 在软件工程行业高速发展的当下,由于软件功能的增加、应用程序需求的演变等诸多因素,程序正变得越来越复杂。可想而知,通过源代码本身去理解程序是一项非常艰巨且耗时的任务,所以复杂的软件通常很难被开发人员所理解,甚至很少被运营维护人员所理解,这也直接导致维护软件的成本越来越高。因此,从降低软件维护成本的角度出发,软件工程领域的学者已经开始寻求通过多种方案解决这个问题,这其中最关键的方案即为程序可视化技术。 众所周知,和书面信息相比,视觉图像信息给予人脑的刺激则更为深刻。通过分析程序源代码的逻辑结构并利用图形的组合在图像上将其显示出来,可以帮助开发人员更加迅速准确地理解程序,进而降低软件维护的成本。 1.2 课题主要内容 本课题主要以C源程序为研究对象,分析程序可视化领域较为成熟的可视化方法,对比这些技术的优缺点,研究现有的可视化系统,并在利用Pycparser库实现对C源程序的解析功能的基础上,完成C源程序的可视化系统。本课题所涉及的主要工作如下: (1)对程序可视化技术的分析。通过对NS图、树布局图、分层布局图和正交布局图的分析,找出程序可视化技术的特点以及每种技术的优缺点,从而寻求高效的可视化C源程序的方案。 (2)对现有的程序可视化系统的研究。通过对Graphviz绘图工具和Tree-Map系统的研究,总结主流程序可视化系统的特点和所用技术,方便C源程序可视化系统的分析与设计。 (3)研究Pycparser库以及AST抽象语法树与C源程序的关系。学习如何通过使用Pycparser库,获得与C源程序相对应的AST抽象语法树,以及分析在获得了AST抽象语法树之后所要进行的工作。 (4)研究能够实现绘制CFG控制流图的算法。CFG控制流图在表示不同的程序语句的执行时有着不同的规则。通过分析C源程序的执行逻辑,寻求制定相关算法以准确地控制CFG控制流图的输出。 1.3 本文的组织结构 本文共分为五章,各个章节内容安排如下: 第一章:绪论。本章主要介绍了本课题的研究背景及意义、论述了程序可视化与软件业
原创力文档


文档评论(0)