skip to main content
10.1145/2635868.2661674acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

RefDistiller: a refactoring aware code review tool for inspecting manual refactoring edits

Published:11 November 2014Publication History

ABSTRACT

Manual refactoring edits are error prone, as refactoring requires developers to coordinate related transformations and understand the complex inter-relationship between affected types, methods, and variables. We present RefDistiller, a refactoring-aware code review tool that can help developers detect potential behavioral changes in manual refactoring edits. It first detects the types and locations of refactoring edits by comparing two program versions. Based on the reconstructed refactoring information, it then detects potential anomalies in refactoring edits using two techniques: (1) a template-based checker for detecting missing edits and (2) a refactoring separator for detecting extra edits that may change a program's behavior. By helping developers be aware of deviations from pure refactoring edits, RefDistiller can help developers have high confidence about the correctness of manual refactoring edits. RefDistiller is available as an Eclipse plug-in at https://sites.google.com/site/refdistiller/ and its demonstration video is available at http://youtu.be/0Iseoc5HRpU.

References

  1. E. L. Alves, M. Song, M. Kim, P. D. Machado, and T. Massoni. Refdistiller: Detecting anomalies in manual refactoring edits. Technical report, University of Texas at Austin, TR-ECE-2014-3, March, 2014.Google ScholarGoogle Scholar
  2. M. Cornélio, A. Cavalcanti, and A. Sampaio. Sound refactorings. Science of Computer Programming, 75(3):106–133, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  3. B. Fluri, M. Wursch, M. PInzger, and H. C. Gall. Change distilling: Tree differencing for fine-grained source code change extraction. Software Engineering, IEEE Transactions on, 33(11):725–743, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. X. Ge and E. Murphy-Hill. Manual refactoring changes with automated refactoring validation. In Proc. of ICSE’14. IEEE, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Kim, T. Zimmermann, and N. Nagappan. A field study of refactoring challenges and benefits. In Proc. of FSE’12, page 50. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. Mens, N. Van Eetvelde, S. Demeyer, and D. Janssens. Formalizing refactorings with graph transformations. Journal of Software Maintenance and Evolution: Research and Practice, 17(4):247–276, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Negara, N. Chen, M. Vakilian, R. E. Johnson, and D. Dig. A comparative study of manual and automated refactorings. In Proc. of ECOOP’13, pages 552–576. Springer, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. L. Overbey, M. J. Fotzler, A. J. Kasza, and R. E. Johnson. A collection of refactoring specifications for fortran 95. In ACM SIGPLAN Fortran Forum, volume 29, pages 11–25. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. Prete, N. Rachatasumrit, N. Sudan, and M. Kim. Template-based reconstruction of complex refactorings. In Proc. of ICSM’10, pages 1–10. IEEE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. N. Rachatasumrit and M. Kim. An empirical investigation into the impact of refactoring on regression testing. In Proc. of ICSM’12, pages 357–366. IEEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. G. Soares, R. Gheyi, D. Serey, and T. Massoni. Making program refactoring safer. Software, IEEE, 27(4):52–57, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Vakilian, N. Chen, S. Negara, B. A. Rajkumar, B. P. Bailey, and R. E. Johnson. Use, disuse, and misuse of automated refactorings. In Proc. of ICSE’12, pages 233–243. IEEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Weißgerber and S. Diehl. Are refactorings less error-prone than other changes? In Proc. of MSR’06, pages 112–118. ACM, 2006. Introduction Motivating Scenario and Tool Features Related Work Summary Acknowledgment References Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. RefDistiller: a refactoring aware code review tool for inspecting manual refactoring edits

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        FSE 2014: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
        November 2014
        856 pages
        ISBN:9781450330565
        DOI:10.1145/2635868

        Copyright © 2014 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 November 2014

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate17of128submissions,13%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader