期刊文献+

函数抽取重构的自动检测方法 被引量:8

Automated Detection of Extract Method Refactorings
下载PDF
导出
摘要 软件重构历史的自动检测是目前软件重构领域的一个研究热点。其主要目的是方便程序员或软件维护人员理解软件演化的历史,也便于根据服务代码重构历史对其客户代码进行相应的重构操作。虽然相关研究人员已经提出了多种自动化的重构历史检测方法,但目前未见关于函数提取重构历史检测的方法或工具。为此,提出了一种基于版本比较的函数抽取重构自动检测方法,实现并验证了该方法的有效性。在8个开源项目上进行了实验验证,结果表明其查准率为65%~90%。此外,在一个小型项目上通过监控程序员的重构操作获得了全部的函数提取重构操作,进而计算出检测算法的查全率和查准率均为85%。 Automated detection of refactorings is a hot topic in the field of software refactoring. The main purpose ot the detection is to facilitate the understanding of software evolution and refactoring on clients according to changes made on their servers. Although a number of methods and tools have been proposed to automatically detect refactorings, to the best of our knowledge there is no methods or tools to detect and extract method refactorings automatically by comparing two versions of an application. To this end, we proposed an approach to detect and extract method refactorings by comparing two successive versions of a given application. We also implemented the proposed approach and validated it with open source applications. Evaluation results on 8 open-source applications suggest that the precision of the proposed approach varies from 65 % to 90 %. We also conducted an evaluation by monitoring developers on a small application. And evaluation results suggest that the recall and precision of the proposed approach is 85% and 85%,respectively.
出处 《计算机科学》 CSCD 北大核心 2015年第12期105-107,共3页 Computer Science
基金 国家自然科学基金(61272169 61472034) 教育部"新世纪优秀人才支持计划"(NCET-13-0041) 北京高等学校"青年英才计划"(YETP1183)资助
关键词 软件重构 重构历史 自动检测 版本 软件演化 Software refactoring, Refactoring history, Automated detection, Version, Software evolution
  • 相关文献

参考文献7

  • 1Mens T,Tourwe T. A survey of software refactoring [J]. IEEE Transactions on Software Engineering, 2004,30 (2) : 126-139.
  • 2Opdyke W F. Refactoring object-oriented frameworks[D]. Llli- nois: University of Illinois at Urbana-Champaign, 1992.
  • 3Dig D, Comertoglu C, Marinov D, et al. Automatic detection of refactorings in evolving components[C]//European Conference on Object Oriented Programming. 2006:404-428.
  • 4Xing Z, Stroulia E. UMLDiff. an algorithm for object-oriented design differencing[C],//Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering. 2005 : 54-65.
  • 5Weissgerber P, Diehl S. Identifying refactorings from source- code changes[C]//21st IEEE/ACM International Conference on Automated Software Engineering. 2006:231-240.
  • 6Murphy G,Kersten M, Findlater L. How are Java software de- velopers using the eclipse IDE[J]. Software IEEE, 2006,23(4): 76-83.
  • 7http ://code. google, com/p/java-diff-utils/.

同被引文献20

引证文献8

二级引证文献6

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部