Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ICSM.2010.5609577guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Template-based reconstruction of complex refactorings

Published: 12 September 2010 Publication History

Abstract

Knowing which types of refactoring occurred between two program versions can help programmers better understand code changes. Our survey of refactoring identification techniques found that existing techniques cannot easily identify complex refactorings, such as an replace conditional with polymorphism refactoring, which consist of a set of atomic refactorings. This paper presents REF-FINDER that identifies complex refactorings between two program versions using a template-based refactoring reconstruction approach—REF-FINDER expresses each refactoring type in terms of template logic rules and uses a logic programming engine to infer concrete refactoring instances. It currently supports sixty three refactoring types from Fowler's catalog, showing the most comprehensive coverage among existing techniques. The evaluation using code examples from Fowler's catalog and open source project histories shows that REF-FINDER identifies refactorings with an overall precision of 0.79 and recall of 0.95.

Cited By

View all
  • (2023)Deep Learning Based Feature Envy Detection Boosted by Real-World ExamplesProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616353(908-920)Online publication date: 30-Nov-2023
  • (2023)Last Diff Analyzer: Multi-language Automated Approver for Behavior-Preserving Code RevisionsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613870(1693-1704)Online publication date: 30-Nov-2023
  • (2023)RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename RefactoringProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598092(740-752)Online publication date: 12-Jul-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
ICSM '10: Proceedings of the 2010 IEEE International Conference on Software Maintenance
September 2010
598 pages
ISBN:9781424486304

Publisher

IEEE Computer Society

United States

Publication History

Published: 12 September 2010

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Deep Learning Based Feature Envy Detection Boosted by Real-World ExamplesProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616353(908-920)Online publication date: 30-Nov-2023
  • (2023)Last Diff Analyzer: Multi-language Automated Approver for Behavior-Preserving Code RevisionsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613870(1693-1704)Online publication date: 30-Nov-2023
  • (2023)RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename RefactoringProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598092(740-752)Online publication date: 12-Jul-2023
  • (2023)Automated Software Entity Matching Between Successive VersionsProceedings of the 38th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE56229.2023.00132(1615-1627)Online publication date: 11-Nov-2023
  • (2022)Analyzing model changes with LoupeProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3550356.3561564(519-528)Online publication date: 23-Oct-2022
  • (2022)Making Python code idiomatic by automatic refactoring non-idiomatic Python code with pythonic idiomsProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549143(696-708)Online publication date: 7-Nov-2022
  • (2022)Impact of change granularity in refactoring detectionProceedings of the 30th IEEE/ACM International Conference on Program Comprehension10.1145/3524610.3528386(565-569)Online publication date: 16-May-2022
  • (2020)RefDiff4GoProceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3425269.3425274(101-110)Online publication date: 19-Oct-2020
  • (2020)Characterizing and Identifying Composite RefactoringsProceedings of the 17th International Conference on Mining Software Repositories10.1145/3379597.3387477(186-197)Online publication date: 29-Jun-2020
  • (2020)Understanding type changes in JavaProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409725(629-641)Online publication date: 8-Nov-2020
  • Show More Cited By

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media