English
Related papers

Related papers: Why Developers Refactor Source Code: A Mining-base…

200 papers

[Background] Refactoring has matured over the past twenty years to become part of a developer's toolkit. However, many fundamental research questions still remain largely unexplored. [Aim] The goal of this paper is to investigate the…

Software Engineering · Computer Science 2019-08-06 Steve Counsell , Mahir Arzoky , Giuseppe Destefanis , Davide Taibi

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 and commits in Pull Requests (PRs). Past MCR studies…

Software Engineering · Computer Science 2021-08-26 Flávia Coelho , Nikolaos Tsantalis , Tiago Massoni , Everton L. G. Alves

Context: Software systems are in continuous evolution through source code changes to fixing bugs, adding new functionalities and improving the internal architecture. All these practices are recorded in the version history, which can be…

Software Engineering · Computer Science 2020-01-17 Leandro Ungari Cayres , Bruno Santos de Lima , Rogério Eduardo Garcia

In this paper, we present a tertiary systematic literature review of previous surveys, secondary systematic literature reviews, and systematic mappings. We identify the main observations (what we know) and challenges (what we do not know)…

Software Engineering · Computer Science 2020-08-11 Guilherme Lacerda , Fabio Petrillo , Marcelo Pimenta , Yann Gael Gueheneuc

Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. Not only researchers, but also practitioners, need to know about past…

Software Engineering · Computer Science 2018-08-08 Eunjong Choi , Kenji Fujiwara , Norihiro Yoshida , Shinpei Hayashi

This paper reports an empirical study on refactoring activity in three Java software systems. We investigated some questions on refactoring activity, to confirm or disagree on conclusions that have been drawn from previous empirical…

Despite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of their code. At JetBrains, our goal is to fully support…

Software Engineering · Computer Science 2021-07-20 Yaroslav Golubev , Zarina Kurbatova , Eman Abdullah AlOmar , Timofey Bryksin , Mohamed Wiem Mkaouer

Refactoring is a critical task in software maintenance, and is usually performed to enforce better design and coding practices, while coping with design defects. The Extract Method refactoring is widely used for merging duplicate code…

Catalogs of refactoring have key importance in software maintenance and evolution, since developers rely on such documents to understand and perform refactoring operations. Furthermore, these catalogs constitute a reference guide for…

Software Engineering · Computer Science 2022-11-17 Aline Brito , Andre Hora , Marco Tulio Valente

Refactoring is a critical process in software development, aiming at improving the internal structure of code while preserving its external behavior. Refactoring engines are integral components of modern Integrated Development Environments…

Software Engineering · Computer Science 2024-09-24 Haibo Wang , Zhuolin Xu , Huaien Zhang , Nikolaos Tsantalis , Shin Hwei Tan

Refactoring is one of the most important activities in software engineering which is used to improve the quality of a software system. With the advancement of deep learning techniques, researchers are attempting to apply deep learning…

Software Engineering · Computer Science 2024-05-01 Bridget Nyirongo , Yanjie Jiang , He Jiang , Hui Liu

Refactorings are transformations to improve the code design without changing overall functionality and observable behavior. During the refactoring process of smelly test code, practitioners may struggle to identify refactoring candidates…

Software Engineering · Computer Science 2023-05-08 Luana Martins , Denivan Campos , Railana Santana , Joselito Mota Junior , Heitor Costa , Ivan Machado

Refactoring is an activity that improves the internal structure of the code without altering its external behavior. When performed on the production code, the tests can be used to verify that the external behavior of the production code is…

Software Engineering · Computer Science 2015-06-25 Ali Parsai , Alessandro Murgia , Quinten David Soetens , Serge Demeyer

Large language model (LLM) coding agents can generate working code, but their solutions often accumulate complexity, duplication, and architectural debt. Human developers address such issues through refactoring: behavior-preserving program…

Software Engineering · Computer Science 2026-03-05 Alex Thillen , Niels Mündler , Veselin Raychev , Martin Vechev

Background: Test-driven development (TDD) is a technique that repeats short coding cycles interleaved with testing. The developer first writes a unit test for the desired functionality, followed by the necessary production code, and…

Software Engineering · Computer Science 2016-11-21 Davide Fucci , Hakan Erdogmus , Burak Turhan , Markku Oivo , Natalia Juristo

Programming problems can be solved in a multitude of functionally correct ways, but the quality of these solutions (e.g. readability, maintainability) can vary immensely. When code quality is poor, symptoms emerge in the form of 'code…

Software Engineering · Computer Science 2024-03-11 Ivan Tan , Christopher M. Poskitt

Recent advances in coding agents have shown remarkable progress in software issue resolution. In practice, real-world issues are typically bug fixes or feature requests in which human developers naturally incorporate refactoring as part of…

Software Engineering · Computer Science 2026-05-22 Zhao Tian , Zifan Zhang , Tao Xiao , Dong Wang , Masanari Kondo , Junjie Chen , Yasutaka Kamei

In this paper, a new approach is proposed for automated software maintenance. The tool is able to perform 26 different refactorings. It also contains a large selection of metrics to measure the impact of the refactorings on the software and…

Software Engineering · Computer Science 2017-10-17 Michael Mohan , Des Greer

Developers often refactor source code to improve its quality during software development. A challenge in refactoring is to determine if it can be applied or not. To help with this decision-making process, we aim to search for past…

Software Engineering · Computer Science 2023-10-04 Motoki Abe , Shinpei Hayashi

Docker, the industry standard for packaging and deploying applications, leverages Infrastructure as Code (IaC) principles to facilitate the creation of images through Dockerfiles. However, maintaining Dockerfiles presents significant…

Software Engineering · Computer Science 2025-01-27 Emna Ksontini , Meriem Mastouri , Rania Khalsi , Wael Kessentini