欢迎来到天天文库
浏览记录
ID:33799089
大小:2.96 MB
页数:62页
时间:2019-03-01
《coderebuilder一种自动化java并发程序重构工具的研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中图分类号:TP391论文编号:102871614-S028学科分类号:081200硕士学位论文CODEREBUILDER:一种自动化Java并发程序重构工具的研究与实现研究生姓名陶彬贤学科、专业计算机科学与技术研究方向软件分析与测试指导教师钱巨副教授南京航空航天大学研究生院计算机科学与技术学院二О一四年一月万方数据NanjingUniversityofAeronauticsandAstronauticsTheGraduateSchoolCollegeofComputerScienceandTechnologyCODERE
2、BUILDER:TheResearchandImplementationofanAutomatedJavaConcurrentProgramRefactoringToolAThesisinComputerScienceandTechnologyByTaoBinxianAdvisedbyAssociateProf.QianJuSubmittedinPartialFulfillmentoftheRequirementsfortheDegreeofMasterofEngineeringJanuary,2014万方数据承诺书本人声
3、明所呈交的硕士学位论文是本人在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得南京航空航天大学或其他教育机构的学位或证书而使用过的材料。本人授权南京航空航天大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。(保密的学位论文在解密后适用本承诺书)作者签名:日期:万方数据南京航空航天大学硕士学位论文摘要作为一种重要的支持技术,并发程序演化技术能够持续地改进并发代码的品质,提高软
4、件开发与维护的效率。重构是软件演化的一种重要手段,它在不改变软件外在行为的情况下,修改程序的内在结构,从而改善代码的可读性、可维护性、可扩展性等。面向并发的代码重构研究大体上可以分为两个方面:顺序代码的并行化重构以及并发代码的自身优化重构。目前这两个方面的工作仍有很多不足之处。在并行化重构方面,现有研究在处理包含容器使用的循环时,常常受制于容器自身使用造成的数据依赖,而不能识别许多并行化契机。针对这种问题,本文对Java程序提出了基于顺序无关容器标注的动态循环级可并行性识别方法,该方法首先对程序中顺序无关的容器类型属性域和
5、变量进行手工标注,而后插桩并运行程序以获取依赖信息,收集顺序无关容器对象,最后过滤掉顺序无关容器造成的依赖,即可发现更多并行化重构契机,进而实施更多针对性的重构。在并发代码自身优化重构方面,虽然已有很多重构技术,但是对于属性域原子化、保护区分解、锁分解等一些已知的针对同步的重构模式,还缺少自动挖掘值得重构代码片段的手段,也缺少安全自动的代码转换方法。为此,本文针对Java代码提出了锁分解、保护区分解以及属性域原子化三个重构模式的自动化重构方法。该方法根据类属性域在不同保护区内的使用情况来推断它们之间的同步需求,然后根据同步
6、需求分析结果来进行重构转换,整个过程除最终确认外无需用户手工干预,比现有工作更加自动化。最后,我们在EclipseLTK框架平台下基于Soot字节码分析平台以及EclipseJDT设计并实现了Java并发程序重构工具CODEREBUILDER。该工具在顺序代码到并发代码的重构方面可以为用户提供循环分析报告,推荐具有并行价值的循环。而在Java并发代码自身优化方面,工具可以进行锁分解、保护区分解以及属性域原子化自动化重构。最终的实验结果证明了工具的有效性。关键词:Java,并发程序,同步,重构,优化I万方数据CODEREBU
7、ILDER:一种自动化Java并发程序重构工具的研究与实现ABSTRACTAsanimportantsupportingtechnology,softwareevolutioncancontinuouslyimprovethequalityofconcurrentcodetoimprovetheefficiencyofsoftwaredevelopmentandmaintenance.Refactoringisanimportantsoftwareevolutiontechnique.Itmodifiesaprogram'
8、sinternalstructuretoimprovethereadability,maintainability,scalability,andetc.ofsoftware,withoutchangingitsexternalbehavior.Concurrentcoderefactoringincl
此文档下载收益归作者所有