基于VBA的Java语言源代码分析系统设计

2016-05-30 01:25刘剑英宫岚
软件工程 2016年4期
关键词:结构图

刘剑英 宫岚

摘 要:针对Java系统再工程的需求,利用Microsoft Office软件中强大的VBA工具,设计开发一款适合部门内部使用,主要用户为SE及PG为主的开发人员的Java源代码分析软件。系统以Java程序级代码分析为主,根据程序的各种引用调用关系,生成树状结构图,展示代码结构,建立结构图与代码的链接,实现代码的快速定位查找,方便开发人员查看代码、理解程序结构,降低了对既存Java应用系统维护的风险和成本。

关键词:VBA;Java;源代码分析;再工程;结构图

中图分类号:TP311 文献标识码:A

Abstract:In order to solve Java system reengineering needs,using the powerful VBA of the microsoft office software,design and develop of Java language source code analysis system that suitable for internal use and major users for SE and PG based developer.System to Java program level code analysis,call relationships based on various references to the program,spanning tree structure diagram,display code structure,establish a link to the structure diagram and code,to achieve the rapid positioning of the code to find,facilitate developers to view the code,understanding program structure,reduce the risk and cost of existing Java application system maintenance.

Keywords:VBA;Java;source code analysis;reengineering;structure diagram

1 引言(Introduction)

Java是一种可以撰写跨平台应用程序、面向对象的程序设计语言,目前是嵌入式开发、互联网开发、云计算和移动互联网开发的主流编程语言。经过20多年的发展,目前拥有全球最大的开发者专业社群[1]。

目前Java相关的工作有很多是对现有系统进行的再工程,如升级、维护、改造、云平台转换等。市场上的Java源代码分析软件多以系统级的大型软件为主,功能强大但费用高昂,适合中小企业及开发人员个人使用的Java源代码分析软件则很难找到。本系统是专门面向中小型企业设计、开发的Java语言源代码分析软件,主要用户是以SE及PG为主的开发人员,帮助系统开发和维护人员快速准确的理解既存系统的源程序,让软件开发人员把主要精力放在解决业务问题本身,而不是浪费在理解前人写的代码上。

2 关键技术(Key technology)

2.1 开发平台

系统以Microsoft Office作为开发平台,利用Microsoft Office软件中强大的VBA工具进行设计开发。应用时只需要系统安装Microsoft Office即可,无需单独的开发和运行环境。

2.2 关键技术

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是Microsoft开发出来在其桌面应用程序中执行通用自动化(OLE)任务的编程语言,主要用其来扩展Windows的应用程序功能。VBA作为VB的一个子集,可以说是一种应用程式视觉化的Basic脚本,其语言结构与VB相似,集成开发环境IDE几乎相同[2]。

3 系统主要功能(Main function of the system)

本系统基于软件静态分析,以Java程序级代码分析为主,不对整个系统进行分析,不实际运行代码,不查找代码中存在的结构性错误、安全漏洞等问题,也不进行词法分析、语法分析、语义分析、控制流及数据流分析、内存泄漏分析等复杂功能的开发。系统主要根据程序的各种引用调用关系,生成树状结构图,展示代码结构,建立链接,实现代码的快速定位查找,方便开发人员查看代码、理解程序结构。

根据业务功能分析,系统功能主要分为六个模块:系统启动及关闭模块、源代码读入及统计模块、源代码写入模块、语法颜色高亮显示模块、树状结构模块、创建链接模块,系统功能模块图如图1所示。

(1)配置管理模块

系统启动时读入配置文件,根据配置文件的内容决定Excel文档中Java代码的语法高亮显示颜色。用户可以通过设定窗口自定义配置内容,在系统关闭的时候系统会将用户的自定义内容保存到配置文件中。

(2)源代码读入模块

实现对Java源文件内容的读取,并在读取的过程中统计代码的总行数、空白行数、注释行数、有效行数及程序中使用的package、import等信息,以及判定源代码的方法、变量、标签等的位置并设置标志位。

(3)源代码写入模块

主要实现新建Excel文档,插入Sheet页,将源代码写入Excel文档,以及文档的保存等功能。

(4)语法颜色高亮显示模块

语法颜色高亮显示模块主要实现Java关键字、Java系统类高亮表示、注释行高亮表示、自定义方法高亮表示、标签高亮表示、括号成对高亮表示等功能。

(5)树状结构模块

树状结构模块根据源代码的各种引用调用关系,生成树状视图,展示代码的结构。

(6)创建链接模块

创建树状视图各节点与源代码的链接,实现代码的快速定位查找,方便开发者查看代码。系统还根据代码创建标签,建立代码中自定义方法的定义位置和调用位置的链接,方便查找代码。

4 系统设计与实现(Design and implementation)

主程序设计。首先系统从计算机中读取Java源文件,读取模式为逐行读入,每读入一行代码即分析该代码行是否为空白行、注释行等信息,并判断代码行中是否包含用户自定义的方法等信息,并添加标志位,系统将代码行及标志位记入临时数组中,直到Java源文件读取结束。

读取源文件结束后,系统根据临时数组中的数据将代码逐行写入Excel文档中,然后系统根据标志位等信息生成树状结构图,并建立树状视图各节点与源代码的链接,最后系统逐行逐词判断是否Java关键字、Java系统类、括号等信 息并设置语法颜色高亮显示等信息。主程序流程如图2所示。

以下为系统部分关键代码。

(1)系统启动后读入配置文件,并根据配置文件加载系统所需的环境变量。

5 结论(Conclusion)

本Java语言源代码分析系统短小精干、实用性强,是一款适合部门内部或个人使用的小型工具软件,而不是一个巨大的复杂的系统。软件通过对Java语言既存系统程序代码的分析,帮助系统开发工程师和系统维护人员快速准确的理解既存系统的Java源程序,让软件工程师把主要精力放在解决软件开发项目本身的业务问题,不必再浪费时间反复阅读前人所写的代码,大大降低了对既存Java应用系统维护的风险和维护成本。

参考文献(References)

[1] 钱宇虹.基于Java平台的多语言混合编程[J].软件工程师,2014(11):39-41.

[2] 布伦[美].Excel专业开发MicrosoftExcel及VBA应用开发权威指南(第2版)[M].北京:电子工业出版社,2013.

[3] John Green[美],等.Excel 2007 VBA参考大全(修订版)[M].北京:人民邮电出版社,2013.

[4] Excel Home.Excel 2010应用大全[M].北京:人民邮电出版社,2011.

[5] Excel Home.别怕,Excel VBA其实很简单[M].北京:人民邮电出版社,2012.

[6] 沃肯巴赫[美].Excel 2010高级VBA编程宝典[M].北京:清华大学出版社,2012.

猜你喜欢
结构图
中国共产党第二十届中央组织结构图
第十九届中共中央组织结构图
P-3C“奥利安”反潜机结构图