Java程序切片及其在代码结构恢复中的应用

来源 :东南大学 | 被引量 : 0次 | 上传用户:xin24
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机软件复杂性的增加,出现了大量结构复杂的遗产软件。开发和维护人员意识到理解软件的总体架构设计与相关规格说明正变得日益重要。在此背景下,深入研究和理解软件代码结构将会成为提高软件生产率、解决软件后期维护等一系列问题最为有效的途径之一。通过对软件代码结构进行恢复,可以从复杂的大规模或遗留系统中抽取出相关构件,帮助开发及维护人员高效的理解和维护软件系统。程序切片技术作为逆向工程的一项重要技术,通过对源代码的分析,抽取系统的主要部分,隐藏系统细节,提取程序的体系结构信息,从比源码更高的抽象层次上对系统进行描述。切片技术能够将程序进行分解,在恢复过程中根据不同的关注点制定切片准则,运行切片算法得到源程序的子集,从而能够更好的理解大规模系统,十分适合作为实现代码结构恢复的途径。本文针对Java语言研究了面向对象程序切片的相关理论与实践,对已有的面向对象系统依赖图进行了改进和扩充,提出了一种基于统一对象扩展结构的系统依赖图改进构造方法;通过解析源程序获得构造过程所需的信息,在已有的构造方法基础上对对象实现统一的扩展,并利用该扩展结构细化了节点间的数据依赖关系;同时结合JDK1.7,在统一的对象扩展结构的基础上,为一些新的Java语法特性提供了表示方案,改善了依赖图和切片的准确性。在对基于程序切片的代码结构恢复技术进行研究时,本文利用最小切片集覆盖特定功能模块的方法来恢复对应模块的代码结构,同时提出了一种基于聚类成本的层次聚类方法优化基于切片的聚类结果,从而获得更好的代码结构恢复效果。基于开源程序的实验结果表明,本文的依赖图构造方法能够得到更小更精确的切片,并能够适应较大规模的Java程序;同时,基于切片的代码结构恢复结果也能够实现对某一功能点关键方法的聚类,恢复出对应的设计框架,为开发和维护人员理解和维护代码提供帮助。
其他文献
移动数据流量高速增长,人们对于容量的需求日益提高,传统宏蜂窝基站已无法满足用户日益提高的业务需求,给现有蜂窝移动通信系统带来了前所未有的冲击和挑战。在传统蜂窝网络
随机系统的控制回路的性能直接关系到闭环系统安全经济运行,而控制回路的性能评估直接给出了当前闭环系统运行的状态。本文从传统的随机性能评价指标(方差)出发,首先深入分析
多输入多输出(Multiple-Input Multiple-Output,MIMO)技术可以有效地提高通信系统的数据速率,该技术受到了广泛认可,已成为下一代无线通信系统的关键技术,一直是同行专家和学
工业现场中大部分被控过程都是多输入多输出过程,各变量之间广泛存在着内部耦合。目前研究和应用已经十分完善的控制方法大部分是单回路系统控制方法,用这些方法控制多变量过
压电型声发射传感器主要应用于无损检测领域。传感器的灵敏度是声发射检测中的关键因素。声发射传感器的标定是声发射定量检测技术的前提。速度法和互易法是两种通用的标定方
多目标跟踪技术在面临着日益复杂的跟踪场景挑战的同时,也得到不断发展与广泛应用。群目标跟踪就是在这样的研究背景下提出的,打破了传统多目标跟踪的局限性,尤其在群组的分
作为宏小区的补充和扩展,家庭小区的出现在使得在增强室内覆盖的同时,用户能够获得更高的数据速率和服务质量。与此同时,家庭基站的引入也带来了宏蜂窝和家庭基站之间以及家
由于雷达和传感器的分辨率随科技进步而不断提高,得到的同一个目标的量测不止一个,此时,目标需看作是扩展目标,如果仍然使用传统的方法将量测和目标相关联进行跟踪已无法满足
SIP是应用层的多媒体通信协议。SIP协议结构简洁、易于扩展,已经被广泛地应用到VoIP、多媒体会议等场景中。由于IETF在设计SIP协议时主要考虑的是协议的易用性,所以SIP的灵活
多输入多输出(Multiple Input Multiple Output,MIMO)技术是当前无线通信技术中的重点研究领域,它通过空间复用和分集在无额外带宽的条件下提高系统容量,导致接收端信号检测