English
Related papers

Related papers: Why We Refactor? Confessions of GitHub Contributor…

200 papers

Context: Motivation is known to improve performance. In software development in particular, there has been considerable interest in the motivation of contributors to open source. Objective: We identify 11 motivators from the literature…

Software Engineering · Computer Science 2024-04-15 Idan Amit , Dror G. Feitelson

The technique of database refactoring is all about applying disciplined and controlled techniques to change an existing database schema. The problem is to successfully create a Database Refactoring Framework for databases. This paper…

Databases · Computer Science 2009-12-08 Ayeesha Dsousa , Shalini Bhatia

Understanding the reasons behind past code changes is critical for many software engineering tasks, including refactoring and reviewing code, diagnosing bugs, and implementing new features. Unfortunately, locating and reconstructing this…

Software Engineering · Computer Science 2026-04-14 Mehedi Sun , Antu Saha , Nadeeshan De Silva , Antonio Mastropaolo , Oscar Chaparro

Developers use tools such as GitHub pull requests to review code, discuss proposed changes, and request modifications. While changed files are commonly presented in alphabetical order, this does not necessarily coincide with the reviewer's…

Software Engineering · Computer Science 2025-10-07 Abir Bouraffa , Carolin Brandt , Andy Zaidmann , Walid Maalej

Refactoring is the process of restructuring existing code without changing its external behavior while improving its internal structure. Refactoring engines are integral components of modern Integrated Development Environments (IDEs) and…

Software Engineering · Computer Science 2025-07-10 Haibo Wang , Zhuolin Xu , Shin Hwei Tan

Injection-based testing while refactoring is a pattern that minimizes the need for manual editing when altering the behaviour of a code base. Neither does it rely on a compilation or a linking process nor does it make assumptions on the…

Software Engineering · Computer Science 2022-03-29 Thomas Mejstrik , Clara Hollomey

Writing logging messages is a well-established conventional programming practice, and it is of vital importance for a wide variety of software development activities. The logging mechanism in Solidity programming is enabled by the…

Software Engineering · Computer Science 2023-08-25 Lantian Li , Yejian Liang , Zhihao Liu , Zhongxing Yu

Reusing code is a common practice in software development: It helps developers speedup the implementation task while also reducing the chances of introducing bugs, given the assumption that the reused code has been tested, possibly in…

Software Engineering · Computer Science 2022-08-17 Rosalia Tufano , Emad Aghajani , Gabriele Bavota

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

Maintaining and scaling software systems relies heavily on effective code refactoring, yet this process remains labor-intensive, requiring developers to carefully analyze existing codebases and prevent the introduction of new defects.…

Software Engineering · Computer Science 2025-03-28 Yisen Xu , Feng Lin , Jinqiu Yang , Tse-Hsun , Chen , Nikolaos Tsantalis

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

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

Widely used complex code refactoring tools lack a solid reasoning about the correctness of the transformations they implement, whilst interest in proven correct refactoring is ever increasing as only formal verification can provide true…

Software Engineering · Computer Science 2017-08-25 Dániel Horpácsi , Judit Kőszegi , Zoltán Horváth

The software engineering community recently has witnessed widespread deployment of AI programming assistants, such as GitHub Copilot. However, in practice, developers do not accept AI programming assistants' initial suggestions at a high…

Software Engineering · Computer Science 2023-09-19 Jenny T. Liang , Chenyang Yang , Brad A. Myers

The identification of code smells is largely recognized as a subjective task. Consequently, the automated detection tools available are insufficient to deal with the whole subjectivity involved in the task, requiring human validation.…

Software Engineering · Computer Science 2021-10-07 Luiz Felipi Junionello , Rafael de Mello

Cognitive-Driven Development (CDD) is a coding design technique that aims to reduce the cognitive effort that developers place in understanding a given code unit (e.g., a class). By following CDD design practices, it is expected that the…

Software Engineering · Computer Science 2022-06-23 Leonardo Barbosa , Victor Hugo Santiago , Alberto Luiz Oliveira Tavares de Souza , Gustavo Pinto

The nature of software re-engineering is to improve or transform existing software so it can be understood, controlled and reused as new software. Needs, the necessity of re-engineering software has greatly increased. The system software…

Software Engineering · Computer Science 2011-12-20 Phuc V. Nguyen

Typical users are known to use and reuse weak passwords. Yet, as cybersecurity concerns continue to rise, understanding the password practices of software developers becomes increasingly important. In this work, we examine developers'…

Software Engineering · Computer Science 2023-07-04 Nikolaos Lykousas , Constantinos Patsakis

Detecting refactorings in commit history is essential to improve the comprehension of code changes in code reviews and to provide valuable information for empirical studies on software evolution. Several techniques have been proposed to…

Software Engineering · Computer Science 2022-12-06 Lei Chen , Shinpei Hayashi

Software is infamous for its poor quality and frequent occurrence of bugs. While there is no doubt that thorough testing is an appropriate answer to ensure sufficient quality, the poor state of software generally suggests that developers…

Software Engineering · Computer Science 2023-09-06 Philipp Straubinger , Gordon Fraser