基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx

上传人:王** 文档编号:1153075 上传时间:2024-04-06 格式:DOCX 页数:27 大小:330.01KB
下载 相关 举报
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第1页
第1页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第2页
第2页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第3页
第3页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第4页
第4页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第5页
第5页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第6页
第6页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第7页
第7页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第8页
第8页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第9页
第9页 / 共27页
基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx_第10页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx》由会员分享,可在线阅读,更多相关《基于pycparser的C源程序可视化系统设计和实现计算机科学与技术专业.docx(27页珍藏版)》请在优知文库上搜索。

1、前言1第一章绪论21.1 课题研究背景及意义21.2 课题主要内容21.3 本文的组织结构3第二章程序可视化42.1 程序可视化概述42.2 程序可视化方法52.2.1 NS图52.2.2 分层布局图62.2.3 树布局图62.3 程序可视化系统92.3.1 GraPhViZ绘图工具92.3.2 Tree-Map系统102.4 本章总结10第三章系统分析与设计123.1 系统需求123.2 系统的结构设计123.2.1 系统的架构设计123.2.2 系统的详细设计13第四章系统的实现16第五章总结与展望225.1 课题总结225.2 后续工作展望22参考文献23致谢错误!未定义书签。现如今,软

2、件工程行业迅猛发展并时刻影响着人类的生活。在软件开发的过程中,软件的维护正起着越来越重要的作用。而随着软件规模的不断扩大,包含数百万行代码的软件越来越常见,这无疑对软件维护人员提出了新的挑战。对于开发人员而言,传统的通过阅读程序文本理解程序的方式将耗费大量的时间和精力,从而直接增加软件维护的成本。所以,寻求一种全新的程序理解方案成为了软件工程行业亟需解决的问题。在这种情况下,程序可视化理念的提出,为程序理解提供了新的思路。程序可视化技术寻求通过可视化技术以静态或动态的图像显示程序的代码逻辑或数据结构,从而帮助开发人员理解程序内容,进而帮助企业降低软件维护成本。本文首先对程序可视化技术进行了简要

3、的概述,接着分别介绍了经典的可视化方法,并对现有的可视化系统进行了分析。之后,阐述了本课题所制作的C源程序可视化系统的结构,并对系统主要功能的实现进行了阐述。最后总结了可视化技术发展的前景和系统开发过程中的不足。关键词:C源程序;PyCParSer库;程序可视化AbstractNowadays,thesoftwareengineeringindustryhasgainedrapiddevelopmentandkeptaffectinghumanlife.Softwaremaintenancehasplayedasignificantroleintheprocessofsoftwaredevel

4、opment.Withthescaleofsoftwarebecominglargerandlarger,it,scommontomeetthesoftwarewhichcontainsmillionsoflinesofcode,anditundoubtedlyposesnewchallengesforsoftwareengineer.Fordevelopers,thetraditionalwaytounderstandtheprogramisreadingthecode,whichtakesalotoftimeandenergyandmakesthecostofsoftwaremainten

5、anceincreasesalot.Therefore,seekingforanewprogram-understandingmethodhasbecomeaproblemthathastobesolvedinthesoftwareengineeringindustry.Inthiscase,theconceptofprogramvisualizationhasprovidednewmethodforprogramunderstanding.Theprogramvisualizationtechnologyvisualizesthecodelogicordatastructureofthepr

6、ogramwithastaticordynamicimage.Thishelpsthedevelopersunderstandtheprogramcontenteasily,andhelpsthecompanyreducethecostofsoftwaremaintenance.Firstly,thearticlegivesabriefoverviewofprogramvisualizationtechnology.Thenitintroducestheclassicvisualizationtechnologiesandanalyzestheexistingvisualizationsyst

7、ems.Afterwards,itdescribesthestructureoftheCsourceprogramvisualizationsystemandtherealizationofthemainfunctionsofthesystem.Finally,itimagestheprospectsofthedevelopmentofvisualizationtechnologyandsummariesthedeficienciesinthedevelopmentprocess.Keywords:Csourceprogram;Pycparser;Programvisualization前言程

8、序可视化是当今软件工程产业研究的热门领域。程序可视化技术旨在利用创建图像、图表或动画等方式将数据或文本转化为图形内容以传递信息,帮助人们加深对程序内容的理解。因为通过实例化的资料帮助人类理解抽象化的思想是十分简单有效的,所以,程序可视化的理念自1987年被提出后,便取得了较为广泛的关注和较快的发展。伴随着软件行业的发展,计算机程序可视化已逐步成为帮助开发和维护人员理解程序逻辑、帮助企业降低软件维护成本的主流辅助技术。与传统的通过程序语言解释程序内部逻辑的方法不同,程序可视化可以以更为直观生动的图像信息展现程序片段的内部逻辑。直到今天,程序可视化的公认定义仍然没有在该领域内达成共识。现有的每类程

9、序可视化技术都可以对特定的程序信息进行可视化操作,但不同的程序可视化技术在其定义中强调的重点又不尽相同。所以,各种形式的程序可视化技术相互依赖又各有特色。本课题主要以C源程序为可视化对象,通过分析较为成熟的程序可视化技术和研究现有的程序可视化系统,借助Python编程语言在数据分析方面的优势以及Pycparser库对C源程序的解析能力,初步实现针对C源程序的可视化效果。第一章绪论本章主要介绍了软件可视化的研究背景和意义,概述了本课题研究的主要内容,并在本章的最后对论文的组织结构进行了介绍。1.1 课题研究背景及意义在软件工程行业高速发展的当下,由于软件功能的增加、应用程序需求的演变等诸多因素,

10、程序正变得越来越复杂。可想而知,通过源代码本身去理解程序是一项非常艰巨且耗时的任务,所以复杂的软件通常很难被开发人员所理解,甚至很少被运营维护人员所理解,这也直接导致维护软件的成本越来越高。因此,从降低软件维护成本的角度出发,软件工程领域的学者已经开始寻求通过多种方案解决这个问题,这其中最关键的方案即为程序可视化技术。众所周知,和书面信息相比,视觉图像信息给予人脑的刺激则更为深刻。通过分析程序源代码的逻辑结构并利用图形的组合在图像上将其显示出来,可以帮助开发人员更加迅速准确地理解程序,进而降低软件维护的成本。1.2 课题主要内容本课题主要以C源程序为研究对象,分析程序可视化领域较为成熟的可视化

11、方法,对比这些技术的优缺点,研究现有的可视化系统,并在利用PyCParSer库实现对C源程序的解析功能的基础上,完成C源程序的可视化系统。本课题所涉及的主要工作如下:(1)对程序可视化技术的分析。通过对NS图、树布局图、分层布局图和正交布局图的分析,找出程序可视化技术的特点以及每种技术的优缺点,从而寻求高效的可视化C源程序的方案。(2)对现有的程序可视化系统的研究。通过对GraPhViZ绘图工具和Tree-MaP系统的研究,总结主流程序可视化系统的特点和所用技术,方便C源程序可视化系统的分析与设计。(3)研究PyCParSer库以及AST抽象语法树与C源程序的关系。学习如何通过使用PyCPar

12、Ser库,获得与C源程序相对应的AST抽象语法树,以及分析在获得了AST抽象语法树之后所要进行的工作。(4)研究能够实现绘制CFG控制流图的算法。CFG控制流图在表示不同的程序语句的执行时有着不同的规则。通过分析C源程序的执行逻辑,寻求制定相关算法以准确地控制CFG控制流图的输出。1.3本文的组织结构本文共分为五章,各个章节内容安排如下:第一章:绪论。本章主要介绍了本课题的研究背景及意义、论述了程序可视化与软件业发展的关系和其重要性、阐述了本文的主要工作内容,最后介绍了本文的组织结构。第二章:程序可视化。本章详细阐述了程序可视化的相关概述,介绍了较为经典的程序可视化技术,分析了它们的优缺点,以

13、及研究了现有的较为成熟的可视化系统。第三章:系统的分析与实现。本章主要介绍了本课题所制作的C源程序可视化系统架构以及详细设计的相关内容。第四章:系统的实现。本章介绍了本课题所制作的C源程序可视化系统内部的核心代码,通过例举相关例子,介绍了系统在处理不同逻辑的C源程序时所进行的处理。第五章:总结与展望。通过总结全文,提出对程序可视化领域发展前景的设想与展望。第二章程序可视化本章对程序可视化进行了详细的概述,并分析了现有的可视化方法以及研究了现有的可视化系统。2.1 程序可视化概述程序可视化领域起步于计算机科学领域发展之后,它在20世纪80年代中期被提出,之后迅速发展并成为一个独立的研究领域。早期

14、的程序可视化主要针对算法逻辑实现可视化,之后,该领域的研究范围持续扩大,发展到针对定量的程序信息进行研究。因为在软件工程产业,运用程序可视化技术可以帮助开发和维护人员高效地理解软件,同时降低软件后期运营维护成本,因此,自20世纪90年代中期以来,程序可视化逐步被认为是涉及商业利益的一门学科。计算机程序通常以文本形式表示一一早期的计算机内部机器代码是完全由。和1的序列组成的,之后,现代计算机系统沿用了这样的传统。因为这样的程序片段难以被人所理解,所以开发人员很快就想出了利用英文符号代替大量的0和1,也正是这些英文符号组成了“程序集”。之后,Basic.C、JaVa等语言发展壮大,它们利用了颜色、

15、字体、间距和缩进,更好地帮助开发人员实现了所需的程序功能。在计算机程序编写的过程中,理解程序逻辑比学习并运用程序语言实现目标功能通常扮演着更为重要的角色。尽管程序的表达经历了上述所有的改进,文本表达形式仍然是解释程序的非常有限的一类方式。试想,如果一个程序由上百万行代码组成,那么通过阅读代码理解这样一个程序所带来的工作量无疑是巨大的。因此,寻求更好的程序理解技术成为了从业者和研究人员的新的目标。除去通过阅读程序片段以理解程序逻辑的方法,图形则更可以用于生动地说明程序某些方面的执行逻辑一一这种利用图形解释程序片段的手段即“程序的可视化”。对于程序可视化,马德里理工大学计算机科学系副教授G6mez

16、HenriqUeZ提出了一个简单的定义“程序可视化是赋予程序除源代码形式之外的其他形式的艺术J之后,加拿大国防研究署的专家丰富了程序可视化的内涵:“以静态或动态形式显示传统程序代码或数据结构。”如今,随着程序可视化研究范围的持续扩大,程序可视化的内涵正不断被丰富和完善。2.2 程序可视化方法2.2.1 NS图20世纪80年代,开发人员已经开始尝试许多种将程序文本转换为图形的方法。由当时纽约州立大学的两名研究生Nassi和Shneiderman提出的标准流程结构图初步实现了这样的功能。如图2.1所示,NS图的基本结构是一个大的矩形,它被细分为代表指令的小矩形。在NS图中,条件语句由两个分隔的三角形进行表示一一如果条件为真,则在“是”分支下继续操

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 论文 > 毕业论文

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!