281 citations · 339 across the 9 of their papers we have counts for
11 papers
SemaDiff: Identifying Semantic-Changing Commits with Generated Code and Tests
Maha Ayub, Michael Konstantinou, Ahmed Khanfir +2
Distinguishing semantic-preserving commits from changing ones remains an open challenge in software repository mining. While existing approaches detect refactoring commits accurate…
AI-Generated Smells: An Analysis of Code and Architecture in LLM and Agent-Driven Development
Yuecai Zhu, Nikolaos Tsantalis, Peter C. Rigby
The promise of Large Language Models in automated software engineering is often measured by functional correctness, overlooking the critical issue of long term maintainability. Thi…
MANTRA: Enhancing Automated Method-Level Refactoring with Contextual RAG and Multi-Agent LLM Collaboration
Yisen Xu, Feng Lin, Jinqiu Yang +3
Maintaining and scaling software systems relies heavily on effective code refactoring, yet this process remains labor-intensive, requiring developers to carefully analyze existing…
Leveraging LLMs, IDEs, and Semantic Embeddings for Automated Move Method Refactoring
Abhiram Bellur, Fraol Batole, Mohammed Raihan Ullah +12
MOVEMETHOD is a hallmark refactoring. Despite a plethora of research tools that recommend which methods to move and where, these recommendations do not align with how expert develo…
Refactoring-aware Block Tracking in Commit History
Mohammed Tayeeb Hasan, Nikolaos Tsantalis, Pouria Alikhanifard
Tracking statements in the commit history of a project is in many cases useful for supporting various software maintenance, comprehension, and evolution tasks. A high level of accu…
An Empirical Study of Refactoring Engine Bugs
Haibo Wang, Zhuolin Xu, Huaien Zhang +2
Refactoring is a critical process in software development, aiming at improving the internal structure of code while preserving its external behavior. Refactoring engines are integr…
A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff Tools
Pouria Alikhanifard, Nikolaos Tsantalis
Software undergoes constant changes to support new requirements, address bugs, enhance performance, and ensure maintainability. Thus, developers spend a great portion of their work…
IntelliTC: Automating Type Changes in IntelliJ IDEA
Oleg Smirnov, Ameya Ketkar, Timofey Bryksin +2
Developers often change types of program elements. Such refactoring often involves updating not only the type of the element itself, but also the API of all type-dependent referenc…
An Empirical Study on Refactoring-Inducing Pull Requests
Flávia Coelho, Nikolaos Tsantalis, Tiago Massoni +1
Background: Pull-based development has shaped the practice of Modern Code Review (MCR), in which reviewers can contribute code improvements, such as refactorings, through comments…
Dependency Smells in JavaScript Projects
Abbas Javan Jafari, Diego Elias Costa, Rabe Abdalkareem +2
Dependency management in modern software development poses many challenges for developers who wish to stay up to date with the latest features and fixes whilst ensuring backwards c…
Why We Refactor? Confessions of GitHub Contributors
Danilo Silva, Nikolaos Tsantalis, Marco Tulio Valente
Refactoring is a widespread practice that helps developers to improve the maintainability and readability of their code. However, there is a limited number of studies empirically i…