基于逆向工程的代码重构与分析评估系统的设计与实现

被引量 : 0次 | 上传用户:yu555497
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件项目的日益庞大,软件系统的维护也越来越困难。很多项目在经历了数个版本之后,往往已经面目全非,难以扩展和维护。重构概念的提出,为其指明了道路。但是,要想对于大型程序实施重构,依旧是困难重重。首先是源程序结构获得困难,大多数情况下,由于种种原因,相关文档已无法描述当前系统。这时,源代码便成为重构步骤中唯一可以获取系统信息的来源。但是,源代码的面向机器、不直观、没有层次性的特性,阻碍了软件开发人员从中获取信息的过程。另外,当程序代码量达到一定的规模之后,如果想从中找到某一个重构点,无异于大海捞针,需要对程序有着较深层次的理解。本论文利用基于LL(*)算法(一种采用了不定长预测表的自左向右扫描的词法分析算法)的ANTLR(一个通用的语法解析框架)技术,通过构建能够解析源文件语法的解析器,成功通过逆向工程获取了程序中的结构信息,并将之保存在数据库中。然后利用数据库强大的查询功能,辅以模式匹配的方式,可以从大量的结构信息中找出需要重构的地方,构建了重构系统,而且在重构之后,通过建立一套动态评价机制,以评估重构的能力。通过本系统,用户可以从海量的源代码中通过定义重构模式迅速找到软件代码中值得改进的地方。而且通过将软件代码纳入本系统的管理范围,可以有效的跟踪程序代码在哪些方面是否有所提升或者有所优化。本系统试图将数据库应用到程序结构信息的存储与查询中。借助于数据库的数据整合能力,可以有效提升程序的性能。其中的评估模块提供了对于文本描述的表达式的动态求解能力。另外,由于程序的重构定义与公式定义都允许用户进行定制扩展,这种极其柔性的扩展方式使得系统可以应用于更多的方面。
其他文献
本文从我国教育现实出发,对影子教育从以下方面进行了较深入的论述:(1)我国影子教育的概况;(2)我国影响子教育产生的原因;(3)我国影子教育的现存问题;(4)针对我国影子教育现
【正】 《汉书》卷28《地理志》载,敦煌郡领县六:敦煌、冥安、效谷、渊泉、广至、龙勒。对于这些县城的位址许多学者曾作过考证,但说法不尽一致,今天仍是敦煌学研究中的热门
我国各省区的工业显在竞争力、潜在竞争力和综合竞争力的空间格局呈现出典型的非均衡性,东西部地区之间差异非常显著。东部沿海地带工业竞争力较强,中西部地区则相对较弱。各
姜,原产于中国及东南亚等热带地区,现在广泛栽培于世界各亚热带、热带地区。在我国南方种植广泛,在北方也开始种植,并且规模不断壮大,主要以山东为主,周边省市也栽培很多。在
我国公共服务供给不足、结构失衡、供给效率低下,不能满足居民多样化的需求,其原因在于作为公共服务消费者的居民参与不足,没有发挥社区应有的作用。国外公共服务社区化模式,
全面预算管理是系统化、战略化、人本化为一体的管理模式,可以有效地聚合企业集团内部各项资源,以内部高度的有序化来对付外部茫然无序的市场环境。以晋城煤业集团为例,针对
随着我国转变经济增长方式,企业开始更加注重提升产品创造能力,加大无形资产培育和保护力度,提高核心竞争力,以获得超额利润。充分的无形资产信息披露能使信息使用者对其企业
<正>作为1990年代以来颇为活跃的军旅散文名家,朱增泉中将陆续推出了《边地散记》、《西部随笔》、《观战笔记》、《天下兴亡》、《战争史笔记》等著作,以其独有的审美特色和
作为存在主义的代表萨特曾宣称 :“存在主义是人道主义”。萨特存在主义哲学中的人道主义分为精神探索的三步曲 :即以人的“自由观”为基石 ,开始寻找自我 ;然后从人的“异化