English
Related papers

Related papers: Assessing the Bug-Proneness of Refactored Code: A …

200 papers

Code refactoring is a fundamental software engineering practice aimed at improving code quality and maintainability. Despite its importance, developers often neglect refactoring due to the significant time, effort, and resources it…

Code review is a key development practice that contributes to improve software quality and to foster knowledge sharing among developers. However, code review usually takes time and demands detailed and time-consuming analysis of textual…

Software Engineering · Computer Science 2021-03-23 Rodrigo Brito , Marco Tulio Valente

Background. Refactoring is a critical task in software maintenance and is generally performed to enforce the best design and implementation practices or to cope with design defects. Several studies attempted to detect refactoring activities…

Software Engineering · Computer Science 2020-09-15 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni , Marouane Kessentini

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…

Refactoring is a well-known technique that is widely adopted by software engineers to improve the design and enable the evolution of a system. Knowing which refactoring operations were applied in a code change is a valuable information to…

Software Engineering · Computer Science 2018-08-07 Danilo Silva , Marco Tulio Valente

Context: Refactoring is the art of modifying the design of a system without altering its behavior. The idea is to reorganize variables, classes and methods to facilitate their future adaptations and comprehension. As the concept of behavior…

Software Engineering · Computer Science 2021-07-23 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Christian Newman , Ali Ouni

Commits often involve refactorings -- behavior-preserving code modifications aiming at software design improvements. Refactoring operations pose a challenge to code reviewers, as distinguishing them from behavior-altering changes is often…

Software Engineering · Computer Science 2025-02-26 Benjamin Ritz , Aleksandar Karakaš , Denis Helic

To refactor already working code while keeping reliability, compatibility and perhaps security, we can borrow ideas from micropass/nanopass compilers. By treating the procedure of software refactoring as composing code transformations, and…

Software Engineering · Computer Science 2023-08-15 Yu Liu

[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

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

Just-in-time defect prediction (JIT-DP) aims to predict the likelihood of code changes resulting in software defects at an early stage. Although code change metrics and semantic features have enhanced prediction accuracy, prior research has…

Software Engineering · Computer Science 2025-07-29 Feifei Niu , Junqian Shao , Christoph Mayr-Dorn , Liguo Huang , Wesley K. G. Assunção , Chuanyi Li , Jidong Ge , Alexander Egyed

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

Automated batch refactoring has become a de-facto mechanism to restructure software that may have significant design flaws negatively impacting the code quality and maintainability. Although automated batch refactoring techniques are known…

Software Engineering · Computer Science 2023-06-29 Asif Imran , Tevfik Kosar , Jaroslaw Zola , Muhammed Fatih Bulut

Block-based programming languages like Scratch have become increasingly popular as introductory languages for novices. These languages are intended to be used with a "tinkering" approach which allows learners and teachers to quickly…

Refactoring is the practice of improving software quality without altering its external behavior. Developers intuitively refactor their code for multiple purposes, such as improving program comprehension, reducing code complexity, dealing…

Computers and Society · Computer Science 2023-11-21 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

TypeScript has rapidly become a popular language for modern web development, yet its effect on software faults remains poorly understood. This paper presents the first large-scale empirical study of bugs in real-world TypeScript projects.…

Software Engineering · Computer Science 2026-01-30 TianYi Tang , Saba Alimadadi , Nick Sumner

Inspection of code changes is a time-consuming task that constitutes a big part of everyday work of software engineers. Existing IDEs provide little information about the semantics of code changes within the file editor view. Therefore…

Code refactoring is widely recognized as an essential software engineering practice to improve the understandability and maintainability of the source code. The Extract Method refactoring is considered as "Swiss army knife" of refactorings,…

Software Engineering · Computer Science 2023-12-21 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

Plagiarism detection in programming education faces growing challenges due to increasingly sophisticated obfuscation techniques, particularly automated refactoring-based attacks. While code plagiarism detection systems used in education…

Software Engineering · Computer Science 2025-10-30 Robin Maisch , Larissa Schmid , Timur Sağlam , Nils Niehues

Code cloning plays a very important role in open-source software engineering. The presence of clones within a project may indicate a need for refactoring, and clones between projects are even more interesting, since code migration takes…

Software Engineering · Computer Science 2021-08-16 Yaroslav Golubev , Timofey Bryksin