Abstract
. Refactoring is the de-facto practice to optimize software health. While there has been several studies proposing refactoring strategies to optimize software design through applying design patterns and removing design defects, little is known about how developers actually refactor their code to improve its reuse. Therefore, we extract, from 1,828 open source projects, a set of refactorings which were intended to improve the software reusability. We analyze the impact of reusability refactorings on state-of-the-art reusability metrics, and we compare the distribution of reusability refactoring types, with the distribution of the remaining mainstream refactorings. Overall, we found that the distribution of refactoring types, applied in the context of reusability, is different from the distribution of refactoring types in mainstream development. In the refactorings performed to improve reusability, source files are subject to more design level types of refactorings. Reusability refactorings significantly impact, high-level code elements, such as packages, classes, and methods, while typical refactorings, impact all code elements, including identifiers, and parameters
Publication Date
Spring 5-1-2020
Document Type
Conference Paper
Department, Program, or Center
Software Engineering (GCCIS)
Recommended Citation
AlOmar, E.A. et al. (2020). How Do Developers Refactor Code to Improve Code Reusability?. In: Ben Sassi, S., Ducasse, S., Mili, H. (eds) Reuse in Emerging Software Engineering Practices. ICSR 2020. Lecture Notes in Computer Science(), vol 12541. Springer, Cham. https://doi.org/10.1007/978-3-030-64694-3_16
Campus
RIT – Main Campus
Comments
This is a post-peer-review, pre-copyedit version of an article published in ICSR 2020: Reuse in Emerging Software Engineering Practice. The final authenticated version is available online at: https://doi.org/10.1007/978-3-030-64694-3_16