English
Related papers

Related papers: State of Refactoring Adoption: Better Understandin…

200 papers

Software architecture knowledge transfer is essential for software development, but related documentation is often incomplete or ambiguous, making oral explanations a common means. Our broader aim is to explore how such explanations might…

Software Engineering · Computer Science 2025-09-03 Satrio Adi Rukmono , Filip Zamfirov , Lina Ochoa , Floris Pex , Michel Chaudron

Our research is part of a wider project that aims to investigate and reason about the correctness of scheme-based source code transformations of Erlang programs. In order to formally reason about the definition of a programming language and…

Programming Languages · Computer Science 2020-08-19 Péter Bereczky , Dániel Horpácsi , Simon Thompson

Refactoring is an established technique from the object-oriented (OO) programming community to restructure code: it aims at improving software readability, maintainability and extensibility. Although refactoring is not tied to the…

Software Engineering · Computer Science 2007-05-23 Alexander Serebrenik , Tom Schrijvers , Bart Demoen

Refactoring, the process of improving the code structure of a software system without altering its behavior, is crucial for managing code evolution in software development. Identifying refactoring actions in source code is essential for…

Software Engineering · Computer Science 2025-05-13 Siqi Wang , Xing Hu , Xin Xia , Xinyu Wang

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

Documentation is an important mechanism for disseminating software architecture knowledge. Software project teams can employ vastly different formats for documenting software architecture, from unstructured narratives to standardized…

Software Engineering · Computer Science 2023-05-30 Neil A. Ernst , Martin P. Robillard

Software systems are evolving by adding new functions and modifying existing functions over time. Through the evolution, the structure of software is becoming more complex and so the understandability and maintainability of software systems…

Software Engineering · Computer Science 2014-08-22 Ginika Mahajan , Ashima

[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

To create unit tests, it may be necessary to refactor the production code, e.g. by widening access to specific methods or by decomposing classes into smaller units that are easier to test independently. We report on an extensive study to…

Software Engineering · Computer Science 2023-03-28 Pavel Reich , Walid Maalej

Creating functions is at the center of writing computer programs. But there has been little empirical research on how this is done and what are the considerations that developers use. We design an experiment in which we can compare the…

Software Engineering · Computer Science 2022-09-05 Alexey Braver , Dror G. Feitelson

One of the main challenges that developers face when testing their systems lies in engineering test cases that are good enough to reveal bugs. And while our body of knowledge on software testing and automated test case generation is already…

Software Engineering · Computer Science 2021-11-09 Maurício Aniche , Christoph Treude , Andy Zaidman

Large language models (LLMs) have gained widespread popularity and have steadily improved over time, enabling software developers to use them for various code-related tasks. One common task is code refactoring, where the LLM suggests…

Software Engineering · Computer Science 2026-05-07 David Schön , Faiza Amjad , Tehreem Asif , Ranim Khojah , Mazen Mohamad , Francisco Gomes de Oliveira Neto , Philipp Leitner

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

Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically…

Programming Languages · Computer Science 2021-03-10 Kia Rahmani , Kartik Nagar , Benjamin Delaware , Suresh Jagannathan

The problem of writing a specification which accurately reflects the intent of the developer has long been recognized as fundamental. We propose a method and a supporting tool to write and check a specification and an implementation using a…

Software Engineering · Computer Science 2013-05-20 Paul C Attie , Fadi A Zaraket , Mohammad Fawaz , Mohammad Noureddine

Novice programmers often struggle to comprehend code due to vague naming, deep nesting, and poor structural organization. While explanations may offer partial support, they typically do not restructure the code itself. We propose code…

Software Engineering · Computer Science 2026-04-20 Subarna Saha , Alif Al Hasan , Fariha Tanjim Shifat , Mia Mohammad Imran

Naming is very important in software development, as names are often the only vehicle of meaning about what the code is intended to do. A recent study on how developers choose names collected the names given by different developers for the…

Software Engineering · Computer Science 2024-02-16 Rachel Alpern , Ido Lazer , Issar Tzachor , Hanit Hakim , Sapir Weissbuch , Dror G. Feitelson

Developers sometimes mix behavior-preserving modifications, such as refactorings, with behavior-altering modifications, such as feature additions. Several approaches have been proposed to support understanding such modifications by…

Software Engineering · Computer Science 2025-08-19 Kota Someya , Lei Chen , Michael J. Decker , Shinpei Hayashi

Context : Software comprehension and maintenance activities, such as refactoring, are said to be negatively impacted by software complexity. The methods used to measure software product and processes complexity have been thoroughly debated…

Software Engineering · Computer Science 2023-03-07 João Caldeira , Fernando Brito e Abreu , Jorge Cardoso , José Reis

Context: Writing Clean Code understandable by other collaborators has become crucial to enhancing collaboration and productivity. However, very little is known regarding whether developers agree with Clean Code Principles and how they apply…

Software Engineering · Computer Science 2022-08-16 Kevin Ljung , Javier Gonzalez-Huerta
‹ Prev 1 4 5 6 7 8 10 Next ›