Software Product Line Engineering via Software Transplantation
Software Product Lines (SPLs) improve time-to-market, enhance software quality, and reduce maintenance costs. Current SPL reengineering practices are largely manual and require domain knowledge. Thus, adopting and, to a lesser extent, maintaining SPLs are expensive tasks, preventing many companies from enjoying their benefits. To address these challenges, we introduce Foundry , an approach utilising software transplantation to reduce the manual effort of SPL adoption and maintenance. Foundry enables integrating features across different codebases, even codebases that are unaware that they are contributing features to a software product line. Each product produced by Foundry is pure code, without variability annotation, unlike feature flags, which eases variability management and reduces code bloat. We realise Foundry in prodScalpel , a tool that transplants multiple organs (i.e., a set of interesting features) from donor systems into an emergent product line for codebases written in C. Given tests and lightweight annotations identifying features and implantation points, prodScalpel automates feature extraction and integration. To evaluate its effectiveness, our evaluation compares feature transplantation using prodScalpel to the current state of practice: on our dataset, prodScalpel ’s use speeds up feature migration by an average of 4.8 times when compared to current practice.
Authors
- Leandro Oliveria de Souza (ORCID: https://orcid.org/0009-0001-6264-2573)
- Eduardo Santana de Almeida (ORCID: https://orcid.org/0000-0002-9312-6715)
- Justyna Petke (ORCID: https://orcid.org/0000-0002-7833-6044)
- Earl T. Barr (ORCID: https://orcid.org/0000-0003-0771-7891)
- Paulo Anselmo da Mota Silveira Neto (ORCID: https://orcid.org/0000-0003-0197-8249)
Institutions
- Universidade Federal da Bahia (BR)
- Instituto Federal da Bahia (BR)
- University College London (GB)
- Universidade Federal Rural de Pernambuco (BR)
Publication Details
- Journal
- ACM Transactions on Software Engineering and Methodology
- Published
- 2024-09-20
- DOI
- https://doi.org/10.1145/3695987
- Citations
- 1
- Primary Topic
- Advanced Software Engineering Methodologies
- Type
- article
- Field-Weighted Citation Impact
- 0.35
Funders
- Engineering and Physical Sciences Research Council