skip to main content
10.1145/3180155.3180206acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Accurate and efficient refactoring detection in commit history

Published: 27 May 2018 Publication History

Abstract

Refactoring detection algorithms have been crucial to a variety of applications: (i) empirical studies about the evolution of code, tests, and faults, (ii) tools for library API migration, (iii) improving the comprehension of changes and code reviews, etc. However, recent research has questioned the accuracy of the state-of-the-art refactoring detection tools, which poses threats to the reliability of their application. Moreover, previous refactoring detection tools are very sensitive to user-provided similarity thresholds, which further reduces their practical accuracy. In addition, their requirement to build the project versions/revisions under analysis makes them inapplicable in many real-world scenarios.
To reinvigorate a previously fruitful line of research that has stifled, we designed, implemented, and evaluated RMiner, a technique that overcomes the above limitations. At the heart of RMiner is an AST-based statement matching algorithm that determines refactoring candidates without requiring user-defined thresholds. To empirically evaluate RMiner, we created the most comprehensive oracle to date that uses triangulation to create a dataset with considerably reduced bias, representing 3,188 refactorings from 185 open-source projects. Using this oracle, we found that RMiner has a precision of 98% and recall of 87%, which is a significant improvement over the previous state-of-the-art.

References

[1]
Everton L. G. Alves, Myoungkyu Song, and Miryung Kim. 2014. RefDistiller: A Refactoring Aware Code Review Tool for Inspecting Manual Refactoring Edits. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE '14). ACM, New York, NY, USA, 751--754.
[2]
Tiago L. Alves, Christiaan Ypma, and Joost Visser. 2010. Deriving Metric Thresholds from Benchmark Data. In Proceedings of the 2010 IEEE International Conference on Software Maintenance (ICSM '10). IEEE Computer Society, Washington, DC, USA, 1--10.
[3]
Maurício Aniche, Christoph Treude, Andy Zaidman, Arie van Deursen, and Marco Aurélio Gerosa. 2016. SATT: Tailoring Code Metric Thresholds for Different Software Architectures. In Proceedings of the IEEE 16th International Working Conference on Source Code Analysis and Manipulation (SCAM '16). 41--50.
[4]
Giuliano Antoniol, Massimiliano Di Penta, and Ettore Merlo. 2004. An Automatic Approach to identify Class Evolution Discontinuities. In 7th International Workshop on Principles of Software Evolution. 31--40.
[5]
Ittai Balaban, Frank Tip, and Robert M. Fuhrer. 2005. Refactoring support for class library migration. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. 265--279.
[6]
Gabriele Bavota, Bernardino De Carluccio, Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, and Orazio Strollo. 2012. When Does a Refactoring Induce Bugs? An Empirical Study. In Proceedings of the IEEE 12th International Working Conference on Source Code Analysis and Manipulation (SCAM '12). 104--113.
[7]
Gabriele Bavota, Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, and Fabio Palomba. 2015. An Experimental Investigation on the Innate Relationship Between Quality and Refactoring. Journal of Systems and Software 107 (Sept 2015), 1--14.
[8]
Benjamin Biegel, Quinten David Soetens, Willi Hornig, Stephan Diehl, and Serge Demeyer. 2011. Comparison of Similarity Metrics for Refactoring Detection. In Proceedings of the 8th Working Conference on Mining Software Repositories (MSR '11). ACM, New York, NY, USA, 53--62.
[9]
Jim Buckley, Tom Mens, Matthias Zenger, Awais Rashid, and Güinter Kniesel. 2005. Towards a Taxonomy of Software Change. Journal of Software Maintenance and Evolution: Research and Practice 17, 5 (Sept. 2005), 309--332.
[10]
Apache Cassandra. 2018. Mirror of Apache Cassandra. (2018). https://github.com/apache/cassandra/commit/446e2537895c15b404a74107069a12f3fc404b15#diff-8d5005607847694afae01a22fa8fdbce
[11]
Oscar Chaparro, Gabriele Bavota, Andrian Marcus, and Massimiliano Di Penta. 2014. On the Impact of Refactoring Operations on Code Quality Metrics. In Proceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME '14). IEEE Computer Society, Washington, DC, USA, 456--460.
[12]
Daniel Alencar da Costa, Shane McIntosh, Weiyi Shang, Uirá Kulesza, Roberta Coelho, and Ahmed Hassan. 2017. A Framework for Evaluating the Results of the SZZ Approach for Identifying Bug-Introducing Changes. IEEE Transactions on Software Engineering 43, 7 (July 2017), 641--657.
[13]
Steven Davies, Marc Roper, and Murray Wood. 2014. Comparing text-based and dependence-based approaches for determining the origins of bugs. Journal of Software: Evolution and Process 26, 1 (2014), 107--139.
[14]
Eclipse Deeplearning4J. 2018. Deep Learning for Java, Scala & Clojure on Hadoop & Spark. (2018). https://github.com/deeplearning4j/deeplearning4j/commit/91cdfa1ffd937a4cb01cdc0052874ef7831955e2#diff-367fe3c8ca7846530b2d0562b3b83324R61
[15]
Serge Demeyer, Stéphane Ducasse, and Oscar Nierstrasz. 2000. Finding Refactorings via Change Metrics. In Proceedings of the 15th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA 00). ACM, New York, NY, USA, 166--177.
[16]
Martín Dias, Alberto Bacchelli, Georgios Gousios, Damien Cassou, and Stéphane Ducasse. 2015. Untangling fine-grained code changes. In Proceedings of the IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER '15). 341--350.
[17]
Daniel Dig. 2007. Automated Upgrading of Component-based Applications. Ph.D. Dissertation. University of Illinois at Urbana-Champaign, Champaign, IL, USA.
[18]
Danny Dig, Can Comertoglu, Darko Marinov, and Ralph Johnson. 2006. Automated Detection of Refactorings in Evolving Components. In Proceedings of the 20th European Conference on Object-Oriented Programming(ECOOP '06). Springer-Verlag, Berlin, Heidelberg, 404--428.
[19]
Danny Dig, William G. Griswold, Emerson Murphy-Hill, and Max Schäfer. 2014. The Future of Refactoring (Dagstuhl Seminar 14211). Dagstuhl Reports 4, 5 (2014), 40--67.
[20]
Danny Dig and Ralph Johnson. 2006. How Do APIs Evolve? A Story of Refactoring. Journal of Software Maintenance and Evolution: Research and Practice 18, 2 (March 2006), 83--107.
[21]
Danny Dig, Kashif Manzoor, Ralph E. Johnson, and Tien N. Nguyen. 2008. Effective Software Merging in the Presence of Object-Oriented Refactorings. IEEE Transactions on Software Engineering 34, 3 (May 2008), 321--335.
[22]
Kecia A.M. Ferreira, Mariza A.S. Bigonha, Roberto S. Bigonha, Luiz F.O. Mendes, and Heitor C. Almeida. 2012. Identifying thresholds for object-oriented software metrics. Journal of Systems and Software 85, 2 (2012), 244--257. Special issue with selected papers from the 23rd Brazilian Symposium on Software Engineering.
[23]
Beat Fluri, Michael Würsch, Martin Pinzger, and Harald Gall. 2007. Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction. IEEE Transactions on Software Engineering 33, 11 (Nov. 2007), 725--743.
[24]
Francesca Arcelli Fontana, Andrea Caracciolo, and Marco Zanoni. 2012. DPB: A Benchmark for Design Pattern Detection Tools. In Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR '12).235--244.
[25]
Francesca Arcelli Fontana, Vincenzo Ferme, Marco Zanoni, and Aiko Yamashita. 2015. Automatic Metric Thresholds Derivation for Code Smell Detection. In Proceedings of the Sixth International Workshop on Emerging Trends in Software Metrics (WETSoM '15). IEEE Press, Piscataway, NJ, USA, 44--53. http://dl.acm.org/citation.cfm?id=2821491.2821501
[26]
Francesca Arcelli Fontana, Mika V. Mäntylä, Marco Zanoni, and Alessandro Marino. 2016. Comparing and Experimenting Machine Learning Techniques for Code Smell Detection. Empirical Software Engineering 21, 3 (June 2016), 1143--1191.
[27]
Stephen R. Foster, William G. Griswold, and Sorin Lerner. 2012. WitchDoctor: IDE support for real-time auto-completion of refactorings. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). 222--232.
[28]
Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA.
[29]
Martin Fowler. 2005. Fluent Interface. (2005). https://martinfowler.com/bliki/FluentInterface.html
[30]
Lajos Jenő Fülöp, Rudolf Ferenc, and Tibor Gyimóthy. 2008. Towards a Benchmark for Evaluating Design Pattern Miner Tools. In Proceedings of the 12th European Conference on Software Maintenance and Reengineering (CSMR 08). 143--152.
[31]
Xi Ge, Quinton L. DuBose, and Emerson Murphy-Hill. 2012. Reconciling Manual and Automatic Refactoring. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). IEEE Press, Piscataway, NJ, USA, 211--221. http://dl.acm.org/citation.cfm?id=2337223.2337249
[32]
Xi Ge and Emerson Murphy-Hill. 2014. Manual Refactoring Changes with Automated Refactoring Validation. In Proceedings of the 36th International Conference on Software Engineering (ICSE '14). ACM, New York, NY, USA, 1095--1105.
[33]
Xi Ge, Saurabh Sarkar, and Emerson Murphy-Hill. 2014. Towards Refactoring-aware Code Review. In Proceedings of the 7th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE '14). ACM, New York, NY, USA, 99--102.
[34]
Xi Ge, Saurabh Sarkar, Jim Witschey, and Emerson Murphy-Hill. 2017. Refactoring-Aware Code Review. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC '17). 71--79.
[35]
Michael W. Godfrey and Lijie Zou. 2005. Using Origin Analysis to Detect Merging and Splitting of Source Code Entities. IEEE Transactions on Software Engineering 31,2 (2005), 166--181.
[36]
Carsten Görg and Peter Weissgerber. 2005. Detecting and visualizing refactorings from software archives. In Proceedings of the 13th International Workshop on Program Comprehension (IWPC '05). 205--214.
[37]
William G. Griswold. 1992. Program Restructuring As an Aid to Software Maintenance. Ph.D. Dissertation. Seattle, WA, USA.
[38]
Hazelcast. 2018. Open Source In-Memory Data Grid. (2018). https://github.com/hazelcast/hazelcast/commit/76d7f5e3fe4eb41b383c1d884bc1217b9fa7192e#diff-17f53e9abe4ccd40013a293698fa234dL143
[39]
Péter Hegedűs, István Kádár, Rudolf Ferenc, and Tibor Gyimóthy. 2017. Empirical Evaluation of Software Maintainability Based on a Manually Validated Refactoring Dataset. Information and Software Technology (Nov. 2017). Accepted,to appear.
[40]
Johannes Henkel and Amer Diwan. 2005. CatchUp!: capturing and replaying refactorings to support API evolution. In 27th International Conference on Software Engineering. 274--283.
[41]
Eclipse Jetty. 2018. Web Container & Clients. (2018). https://github.com/eclipse/jettty.project/commit/1f3be625e62f44d929c01f6574678eea05754474#diff-ff02a462f6cc50644669e515c691229dR580
[42]
István Kádár, Péter Hegedűs, Rudolf Ferenc, and Tibor Gyimóthy. 2016. A Manually Validated Code Refactoring Dataset and Its Assessment Regarding Software Maintainability. In Proceedings of the 12th International Conference on Predictive Models and Data Analytics in Software Engineering (PROMISE '16). ACM, New York, NY, USA, Article 10, 4 pages.
[43]
Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue. 2002. CCFinder: A Multilinguistic Token-based Code Clone Detection System for Large Scale Source Code. IEEE Transactions on Software Engineering 28, 7 (July 2002), 654--670.
[44]
David Kawrykow and Martin P. Robillard. 2011. Non-essential Changes in Version Histories. In Proceedings of the 33rd International Conference on Software Engineering (ICSE '11). ACM, New York, NY, USA, 351--360.
[45]
Miryung Kim, Dongxiang Cai, and Sunghun Kim. 2011. An Empirical Investigation into the Role of API-level Refactorings During Software Evolution. In Proceedings of the 33rd International Conference on Software Engineering (ICSE '11). ACM, New York, NY, USA, 151--160.
[46]
Miryung Kim, Matthew Gee, Alex Loh, and Napol Rachatasumrit. 2010. Ref-Finder: A Refactoring Reconstruction Tool Based on Logic Query Templates. In Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE '10). ACM, New York, NY, USA, 371--372.
[47]
Sunghun Kim, Thomas Zimmermann, Kai Pan, and E. James Jr. Whitehead. 2006. Automatic Identification of Bug-Introducing Changes. In Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering (ASE '06). IEEE Computer Society, Washington, DC, USA, 81--90.
[48]
Günter Kniesel and Alexander Binun. 2009. Standing on the shoulders of giants - A data fusion approach to design pattern detection. In Proceedings of the IEEE 17th International Conference on Program Comprehension (ICPC '09). 208--217.
[49]
Grzegorz Kondrak. 2005. N-gram Similarity and Distance. In Proceedings of the 12th International Conference on String Processing and Information Retrieval (SPIRE'05). Springer-Verlag, Berlin, Heidelberg, 115--126.
[50]
Vladimir I. Levenshtein. 1966. Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady 10, 8 (1966), 707--710.
[51]
Anas Mahmoud and Nan Niu. 2013. Supporting requirements traceability through refactoring. In Proceedings of the 21st IEEE International Requirements Engineering Conference (RE '13). 32--41.
[52]
Anas Mahmoud and Nan Niu. 2014. Supporting Requirements to Code Traceability Through Refactoring. Requirements Engineering19, 3 (Sept2014), 309--329.
[53]
Matin Mansouri. 2018. Refactoring Benchmark. (2018). https://github.com/MatinMan/RefactoringBenchmark
[54]
Laura Moreno, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrian Marcus, and Gerardo Canfora. 2017. ARENA: An Approach for the Automated Generation of Release Notes. IEEE Transactions on Software Engineering 43, 2 (Feb 2017), 106--127.
[55]
Emerson Murphy-Hill, Chris Parnin, and Andrew P. Black. 2012. How We Refactor, and How We Know It. IEEE Transactions on Software Engineering 38, 1 (Jan 2012), 5--18.
[56]
Stas Negara, Nicholas Chen, Mohsen Vakilian, Ralph E. Johnson, and Danny Dig. 2013. A Comparative Study of Manual and Automated Refactorings. In Proceedings of the 27th European Conference on Object-Oriented Programming (ECOOP '13). Springer-Verlag, Berlin, Heidelberg, 552--576.
[57]
Stas Negara, Mohsen Vakilian, Nicholas Chen, Ralph E. Johnson, and Danny Dig. 2012. Is It Dangerous to Use Version Control Histories to Study Source Code Evolution?. In Proceedings of the 26th European Conference on Object-Oriented Programming (ECOOP'12). Springer-Verlag, Berlin, Heidelberg, 79--103.
[58]
Neo4j. 2018. Graphs for Everyone. (2018). https://github.com/neo4j/neo4j/commit/f6f87f7d5c5d3987db45db7845d221d7abc33146#diff-0694c9de7c6c3b2738144757b771b751L441
[59]
Paloma Oliveira, Marco Tulio Valente, and Fernando Paim Lima. 2014. Extracting relative thresholds for source code metrics. In Proceedings of the IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE '14). 254--263.
[60]
William F. Opdyke. 1992. Refactoring Object-oriented Frameworks. Ph.D. Dissertation. Champaign, IL, USA.
[61]
Fabio Palomba, Andy Zaidman, Rocco Oliveto, and Andrea De Lucia. 2017. An Exploratory Study on the Relationship Between Changes and Refactoring. In Proceedings of the 25th International Conference on Program Comprehension (ICPC'17). IEEE Press, Piscataway, NJ, USA, 176--185.
[62]
Kyle Prete, Napol Rachatasumrit, Nikita Sudan, and Miryung Kim. 2010. Templatebased reconstruction of complex refactorings. In Proceedings of the 26th IEEE International Conference on Software Maintenance (ICSM '10). 1--10.
[63]
Napol Rachatasumrit and Miryung Kim. 2012. An empirical investigation into the impact of refactoring on regression testing. In Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM '12). 357--366.
[64]
Danilo Silva, Nikolaos Tsantalis, and Marco Tulio Valente. 2016. Why We Refactor? Confessions of GitHub Contributors. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE '16). ACM, New York, NY, USA, 858--870.
[65]
Danilo Silva and Marco Tulio Valente. 2017. RefDiff: Detecting Refactorings in Version Histories. In Proceedings of the 14th International Conference on Mining Software Repositories (MSR '17). IEEE Press, Piscataway, NJ, USA, 269--279.
[66]
Jacek Śliwerski, Thomas Zimmermann, and Andreas Zeller. 2005. When Do Changes Induce Fixes?. In Proceedings of the 2005 International Workshop on Mining Software Repositories (MSR '05). ACM, New York, NY, USA, 1--5.
[67]
Gustavo Soares, Rohit Gheyi, Emerson Murphy-Hill, and Brittany Johnson. 2013. Comparing Approaches to Analyze Refactoring Activity on Software Repositories. Journal of Systems and Software 86, 4 (Apr 2013), 1006--1022.
[68]
Quinten David Soetens, Javier Pérez, Serge Demeyer, and Andy Zaidman. 2015. Circumventing Refactoring Masking Using Fine-grained Change Recording. In Proceedings of the 14th International Workshop on Principles of Software Evolution (IWPSE 2015). ACM, New York, NY, USA, 9--18.
[69]
Nikolaos Tsantalis. 2018. RefactoringMiner. (2018). https://github.com/tsantalis/RefactoringMiner
[70]
Nikolaos Tsantalis, Matin Mansouri, Laleh Eshkevari, and Davood Mazinanian. 2018. Refactoring Oracle. (2018). http://refactoring.encs.concordia.ca/oracle/
[71]
Michele Tufano, Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea De Lucia, and Denys Poshyvanyk. 2017. There and back again: Can you compile that snapshot? Journal of Software: Evolution and Process 29, 4 (2017).
[72]
Arie van Deursen, Leon Moonen, Alex Bergh, and Gerard Kok. 2001. Refactoring Test Code. In Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP 2001). 92--95.
[73]
Peter Weissgerber and Stephan Diehl. 2006. Are Refactorings Less Error-prone Than Other Changes?. In Proceedings of the 2006 International Workshop on Mining Software Repositories (MSR '06). ACM, New York, NY, USA, 112--118.
[74]
Peter Weissgerber and Stephan Diehl. 2006. Identifying Refactorings from Source-Code Changes. In Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering (ASE '06). 231--240.
[75]
Chris K. Wensel. 2018. Cascading. (2018). https://github.com/cwensel/cascading/commit/f9d3171f5020da5c359cdda28ef05172e858c464
[76]
Chadd Williams and Jaime Spacco. 2008. SZZ Revisited:VerifyingwhenChanges Induce Fixes. In Proceedings of the 2008 Workshop on Defects in Large Software Systems (DEFECTS '08). ACM, New York, NY, USA, 32--36.
[77]
Zhenchang Xing and Eleni Stroulia. 2005. UMLDiff: An Algorithm for Objectoriented Design Differencing. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE '05). ACM, New York, NY, USA, 54--65.
[78]
Zhenchang Xing and Eleni Stroulia. 2006. Refactoring Detection Based on UMLD-iff Change-Facts Queries. In Proceedings of the 13th Working Conference on Reverse Engineering (WCRE '06). IEEE Computer Society, Washington, DC, USA, 263--274.
[79]
Zhenchang Xing and Eleni Stroulia. 2007. API-Evolution Support with Diff-CatchUp. IEEE Transactions on Software Engineering 33, 12 (Dec 2007), 818--836.
[80]
Zhenchang Xing and Eleni Stroulia. 2008. The JDEvAn Tool Suite in Support of Object-oriented Evolutionary Development. In Companion of the 30th International Conference on Software Engineering (ICSE Companion 08). ACM, New York, NY, USA, 951--952.

Cited By

View all
  • (2025)C/C++ Vulnerability Data Set Generation Framework using a Parser and LLM2025 IEEE 4th International Conference on AI in Cybersecurity (ICAIC)10.1109/ICAIC63015.2025.10848559(1-11)Online publication date: 5-Feb-2025
  • (2025)Exploring the potential of general purpose LLMs in automated software refactoring: an empirical studyAutomated Software Engineering10.1007/s10515-025-00500-032:1Online publication date: 1-Mar-2025
  • (2024)Detecting Refactoring Commits in Machine Learning Python Projects: A Machine Learning-Based ApproachACM Transactions on Software Engineering and Methodology10.1145/370530934:3(1-25)Online publication date: 22-Nov-2024
  • Show More Cited By

Index Terms

  1. Accurate and efficient refactoring detection in commit history

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE '18: Proceedings of the 40th International Conference on Software Engineering
    May 2018
    1307 pages
    ISBN:9781450356381
    DOI:10.1145/3180155
    • Conference Chair:
    • Michel Chaudron,
    • General Chair:
    • Ivica Crnkovic,
    • Program Chairs:
    • Marsha Chechik,
    • Mark Harman
    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 the author(s) 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].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 27 May 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Git
    2. Oracle
    3. abstract syntax tree
    4. accuracy
    5. commit
    6. refactoring

    Qualifiers

    • Research-article

    Funding Sources

    • NSERC

    Conference

    ICSE '18
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 276 of 1,856 submissions, 15%

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)125
    • Downloads (Last 6 weeks)18
    Reflects downloads up to 01 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2025)C/C++ Vulnerability Data Set Generation Framework using a Parser and LLM2025 IEEE 4th International Conference on AI in Cybersecurity (ICAIC)10.1109/ICAIC63015.2025.10848559(1-11)Online publication date: 5-Feb-2025
    • (2025)Exploring the potential of general purpose LLMs in automated software refactoring: an empirical studyAutomated Software Engineering10.1007/s10515-025-00500-032:1Online publication date: 1-Mar-2025
    • (2024)Detecting Refactoring Commits in Machine Learning Python Projects: A Machine Learning-Based ApproachACM Transactions on Software Engineering and Methodology10.1145/370530934:3(1-25)Online publication date: 22-Nov-2024
    • (2024)A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff ToolsACM Transactions on Software Engineering and Methodology10.1145/369600234:2(1-63)Online publication date: 12-Sep-2024
    • (2024)BRAFAR: Bidirectional Refactoring, Alignment, Fault Localization, and Repair for Programming AssignmentsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680326(856-868)Online publication date: 11-Sep-2024
    • (2024)DRMiner: A Tool For Identifying And Analyzing Refactorings In DockerfileProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644921(584-594)Online publication date: 15-Apr-2024
    • (2024)Refactoring to Pythonic Idioms: A Hybrid Knowledge-Driven Approach Leveraging Large Language ModelsProceedings of the ACM on Software Engineering10.1145/36437761:FSE(1107-1128)Online publication date: 12-Jul-2024
    • (2024)RAT: A Refactoring-Aware Tool for Tracking Code HistoryProceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings10.1145/3639478.3640047(104-108)Online publication date: 14-Apr-2024
    • (2024)AntiCopyPaster 2.0: Whitebox just-in-time code duplicates extractionProceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings10.1145/3639478.3640035(84-88)Online publication date: 14-Apr-2024
    • (2024)Data-Driven Evidence-Based Syntactic Sugar DesignProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639580(1-12)Online publication date: 20-May-2024
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media