Resumen
Software Product Lines (SPLs) are rarely developed from scratch. Commonly, they emerge
from one product when there is a need to create tailored variants, or from existing variants
created in an ad-hoc way once their separated maintenance and evolution become challenging. Despite the vast literature about re-engineering systems into SPLs and related technical
approaches, there is a lack of detailed analysis of the process itself and the effort involved.
In this paper, we provide and analyze empirical data of the extraction processes of two open source case studies, namely ArgoUML and Phaser. Both cases emerged from the transition
of a monolithic system into an SPL. The analysis relies on information mined from the
version control history of their respective source-code repositories and the discussion with
developers that took part in the process. Unlike previous works that focused mostly on the
structural results of the final SPL, the contribution of this study is an in-depth characterization of the processes. With this work, we aimed at providing a deeper understanding of the
strategies for SPL extraction and their implications. Our results indicate that the source code
changes can range from almost a fourth to over half of the total lines of code. Developers
may or may not use branching strategies for feature extraction. Additionally, the problems
faced during the extraction process may be due to lack of tool support, complexity on managing feature dependencies and issues with feature constraints. We made publicly available
the datasets and the analysis scripts of both case studies to be used as a baseline for extractive
SPL adoption research and practice.
Idioma original | Inglés |
---|---|
Número de artículo | 85 |
Publicación | Empirical Software Engineering |
Volumen | 27 |
N.º | 4 |
DOI | |
Estado | Publicada - 8 abr 2022 |
Palabras clave
- Software product lines
- Re-engineering
- Mining software repositories
- ArgoUML
- Phaser
Project and Funding Information
- Funding Info
- This research was partially funded by CNPq, grant no. 408356/2018-9; FAPPR, grant no. 51435; and FAPERJ PDR-10 Fellowship 202073/2020._x000D_ Open access funding provided by Johannes Kepler University Linz