English
Related papers

Related papers: Refactoring for Reuse: An Empirical Study

200 papers

In modern software engineering, build systems play the crucial role of facilitating the conversion of source code into software artifacts. Recent research has explored high-level causes of build failures, but has largely overlooked the…

Software Engineering · Computer Science 2025-04-03 Anwar Ghammam , Dhia Elhaq Rzig , Mohamed Almukhtar , Rania Khalsi , Foyzul Hassan , Marouane Kessentini

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…

[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

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

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

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

Software reuse is a crucial external quality attribute targeted by open-source and commercial projects. Despite that software reuse has experienced an increased adoption throughout the years, little is known about what aspects of code reuse…

Software Engineering · Computer Science 2023-11-02 Eman Abdullah AlOmara , Anthony Peruma , Mohamed Wiem Mkaouer , Christian Newman , Ali Ouni

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

Context. Code refactoring improves software quality without changing external behavior. Despite its advantages, its benefits are hindered by the considerable cost of time, resources, and continuous effort it demands. Aim. Understanding why…

Software Engineering · Computer Science 2025-09-10 Mikel Robredo , Matteo Esposito , Fabio Palomba , Rafael Peñaloza , Valentina Lenarduzzi

We aim to explore how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring (SAR), which indicates developers' documentation of their refactoring activities. SAR is…

Software Engineering · Computer Science 2023-06-12 Eman Abdullah AlOmar

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…

This report investigates the relationship between software refactoring and behavior preservation. Existing behavior preservation analyses often lack comprehensive insights into refactoring rejections and do not provide actionable solutions.…

Software Engineering · Computer Science 2024-11-14 Wouter Brinksma , William Wernsen , Evert Verduin , Herman Hilberink , Patrick de Beer , Lex Bijlsma , Harrie Passier

We present a novel approach to detect refactoring opportunities by measuring the participation of references between types in instances of patterns representing design flaws. This technique is validated using an experiment where we analyse…

Software Engineering · Computer Science 2011-03-17 Jens Dietrich , Catherine McCartin , Ewan Tempero , Syed M. Ali Shah

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

Software component reuse is the software engineering practice of developing new software products from existing components. A reuse library or component reuse repository organizes stores and manages reusable components. This paper describes…

Software Engineering · Computer Science 2010-07-30 P. Shireesha , S. S. V. N. Sharma

Refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behaviour. A database refactoring is a small change to the database schema which…

Software Engineering · Computer Science 2010-09-09 Patrick O'Beirne

This paper presents our approach to use refactoring techniques together with code generation. Refactoring is particularly useful if not only the generated classes but also the generator itself can be adapted in an automatic fashion. We have…

Software Engineering · Computer Science 2014-09-24 Holger Krahn , Bernhard Rumpe

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 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

Modern software development methodologies include reuse of open source code. Reuse can be facilitated by architectural knowledge of the software, not necessarily provided in the documentation of open source software. The effort required to…

Software Engineering · Computer Science 2011-10-11 Eleni Constantinou , George Kakarontzas , Ioannis Stamelos