计算机科学 ›› 2015, Vol. 42 ›› Issue (12): 105-107.

• 第十三届全国软件与应用学术会议 • 上一篇    下一篇

函数抽取重构的自动检测方法

刘阳,刘秋荣,刘辉   

  1. 北京理工大学计算机学院 北京100081,北京理工大学计算机学院 北京100081,北京理工大学计算机学院 北京100081
  • 出版日期:2018-11-14 发布日期:2018-11-14
  • 基金资助:
    本文受国家自然科学基金(61272169,4),教育部“新世纪优秀人才支持计划”(NCET-13-0041),北京高等学校“青年英才计划”(YETP1183)资助

Automated Detection of Extract Method Refactorings

LIU Yang, LIU Qiu-rong and LIU Hui   

  • Online:2018-11-14 Published:2018-11-14

摘要: 软件重构历史的自动检测是目前软件重构领域的一个研究热点。其主要目的是方便程序员或软件维护人员理解 软件演化的历史,也便于根据服务代码重构历史对其客户代码进行相应的重构操作。虽然相关研究人员已经提出了多种自动化的重构历史检测方法,但目前未见关于函数提取重构历史检测的方法或工具。为此,提出了一种基于版本比较的函数抽取重构自动检测方法,实现并验证了该方法的有效性。在8个开源项目上进行了实验验证,结果表明其查准率为65%~90%。此外,在一个小型项目上通过监控程序员的重构操作获得了全部的函数提取重构操作,进而计算出检测算法的查全率和查准率均为85%。

关键词: 软件重构,重构历史,自动检测,版本,软件演化

Abstract: Automated detection of refactorings is a hot topic in the field of software refactoring.The main purpose of 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.

Key words: Software refactoring,Refactoring history,Automated detection,Version,Software evolution

[1] Mens T,Tourwe T.A survey of software refactoring [J].IEEE Transactions on Software Engineering,2004,30(2):126-139
[2] Opdyke W F.Refactoring object-oriented frameworks[D].Lllinois:University of Illinois at Urbana-Champaign,1992
[3] Dig D,Comertoglu C,Marinov D,et al.Automatic detection of refactorings in evolving components[C]∥European Conference on Object Oriented Programming.2006:404-428
[4] Xing 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
[5] Weissgerber P,Diehl S.Identifying refactorings from source-code changes[C]∥21st IEEE/ACM International Conference on Automated Software Engineering.2006:231-240
[6] Murphy G,Kersten M,Findlater L.How are Java software developers using the eclipse IDE[J].Software IEEE,2006, 23(4):76-83
[7] http://code.google.com/p/java-diff-utils/

No related articles found!
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!