CODEREBUILDER:一种自动化Java并发程序重构工具的研究与实现

来源 :南京航空航天大学 | 被引量 : 0次 | 上传用户:jpyssy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为一种重要的支持技术,并发程序演化技术能够持续地改进并发代码的品质,提高软件开发与维护的效率。重构是软件演化的一种重要手段,它在不改变软件外在行为的情况下,修改程序的内在结构,从而改善代码的可读性、可维护性、可扩展性等。面向并发的代码重构研究大体上可以分为两个方面:顺序代码的并行化重构以及并发代码的自身优化重构。目前这两个方面的工作仍有很多不足之处。在并行化重构方面,现有研究在处理包含容器使用的循环时,常常受制于容器自身使用造成的数据依赖,而不能识别许多并行化契机。针对这种问题,本文对Java程序提出了基于顺序无关容器标注的动态循环级可并行性识别方法,该方法首先对程序中顺序无关的容器类型属性域和变量进行手工标注,而后插桩并运行程序以获取依赖信息,收集顺序无关容器对象,最后过滤掉顺序无关容器造成的依赖,即可发现更多并行化重构契机,进而实施更多针对性的重构。在并发代码自身优化重构方面,虽然已有很多重构技术,但是对于属性域原子化、保护区分解、锁分解等一些已知的针对同步的重构模式,还缺少自动挖掘值得重构代码片段的手段,也缺少安全自动的代码转换方法。为此,本文针对Java代码提出了锁分解、保护区分解以及属性域原子化三个重构模式的自动化重构方法。该方法根据类属性域在不同保护区内的使用情况来推断它们之间的同步需求,然后根据同步需求分析结果来进行重构转换,整个过程除最终确认外无需用户手工干预,比现有工作更加自动化。最后,我们在Eclipse LTK框架平台下基于Soot字节码分析平台以及Eclipse JDT设计并实现了Java并发程序重构工具CODEREBUILDER。该工具在顺序代码到并发代码的重构方面可以为用户提供循环分析报告,推荐具有并行价值的循环。而在Java并发代码自身优化方面,工具可以进行锁分解、保护区分解以及属性域原子化自动化重构。最终的实验结果证明了工具的有效性。
其他文献
目前提出的无线传感器网络的路由算法,大部分都是针对单一服务的尽力而为模型,但是随着应用的不断深入和拓展,不同的业务对网络的服务质量(QoS)提出了不同的要求,比如,非实时数据(
近年来,三维图形仿真技术被广泛运用于城市规划、工程设计、医学、教育等领域。把三维仿真技术运用于工业控制领域,模拟仿真控制过程,可以使控制过程的调试以及结果显示更加
人脸表情识别是情感计算与先进智能的重要组成部分,同时也是人机交互、机器学习、智能控制和图像处理等领域的一个研究热点。为了促进更自然、更人性化的人机交互,对表情识别
动态口令认证系统采用的是一次一密的身份认证形式,比传统的静态口令具有更高的安全性,应用前景更加广阔。然而动态口令认证系统的加密算法计算难度较大,需要一定的硬件资源
随着网络技术的发展和网络上信息量的激增,信息检索越来越受到人们的关注。信息检索系统作为网络信息平台的一个重要组成部分,在用户获取准确的网络信息过程中发挥着重要的作用
近年来,随着计算机和网络技术的迅猛发展,基于对等结构(Peer-to-Peer,P2P)的大规模分布式系统迅速发展起来,成为占用Internet带宽最大的网络应用。越来越多的个人计算机通过有线
互联网上的文件内容分发一直采取传统的Client/Server模式,通过FTP或HTTP协议来进行。在这种模式下,每个客户端向提供内容分发的服务器建立一个TCP连接,通过这一连接从服务器
AVS标准是基于我国自主创新技术和国际公开技术所构造的信源编解码标准,是音视频编解码领域一批关键技术的集中体现。AVS标准的制定和推广对减轻国内音视频相关产业的专利费
车载自组织网络是解决智能交通系统中动态信息服务,实现车联网最为关键的技术。VANET系统的研究在为人们提供更便捷服务的同时,也带来了更多的安全隐患。本文对VANET系统的安全
目前异构数据环境中数据的集成、访问已经引起业界的高度重视。采用软件构件技术(如CORBA、COM/DCOM)虽然提高了效率和质量,但是它们还存在紧密耦合、系统集成困难、局部计算等