Refactoring practices in the context of data-intensive systems

BA Muse, F Khomh, G Antoniol - Empirical Software Engineering, 2023 - Springer
Empirical Software Engineering, 2023Springer
Developers often refactor code to improve the maintainability and comprehension of the
software. There are many studies on refactoring activities in traditional software systems.
However, refactoring in data-intensive systems is not well explored. Understanding the
refactoring practices of developers is important to develop efficient tool support. We
conducted a longitudinal study of refactoring activities in data-access classes using 29 SQL
and NoSQL database based data-intensive systems. We investigated the prevalence, co …
Abstract
Developers often refactor code to improve the maintainability and comprehension of the software. There are many studies on refactoring activities in traditional software systems. However, refactoring in data-intensive systems is not well explored. Understanding the refactoring practices of developers is important to develop efficient tool support. We conducted a longitudinal study of refactoring activities in data-access classes using 29 SQL and NoSQL database based data-intensive systems. We investigated the prevalence, co-occurrence, and evolution of data-access refactorings, and the association of data-access refactorings with data-access smells. We also conducted a manual analysis of 500 samples of data-access refactoring instances to identify the functionalities of the code that are targeted by such refactorings. Furthermore, we analyzed 500 sample data-access refactoring commits to understand the context behind the applied refactorings and explored the characteristics and contribution of developers involved in the refactorings. We also conducted a developer survey to complement our analysis on the subject systems. Our results show that data-access refactorings are prevalent and different in type. Most of the data-access refactorings target codes that implement data fetching and insertion, but they mostly do not modify data-access queries. Most of the data-access refactorings are done when adding or modifying features and during bug fixes. data-access refactoring is often performed by developers with higher development and refactoring experience. Overall, the results show that data-access refactorings focus on improving the code quality but not optimizing the underlying data-access operations by fixing data-access smells. Hence, more work is needed from the research community on providing awareness and support to practitioners on the benefits of addressing data-access smells with refactorings.
Springer
Showing the best result for this search. See all results