Abstract
This handbook distils the wealth of expertise and knowledge from a large community of researchers and industrial practitioners in Software Product Lines (SPLs) gained through extensive and rigorous theoretical, empirical, and applied research. It is a timely compilation of well-established and cutting-edge approaches that can be leveraged by those facing the prevailing and daunting challenge of re-engineering their systems into SPLs. The selection of chapters provides readers with a wide and diverse perspective that reflects the complementary and varied expertise of the chapter authors. This perspective covers the re-engineering processes, from planning to execution. SPLs are families of systems that share common assets, allowing a disciplined software reuse. The adoption of SPL practices has shown to enable significant technical and economic benefits for the companies that employ them. However, successful SPLs rarely start from scratch, but instead, they usually start from a set of existing systems that must undergo well-defined re-engineering processes to unleash new levels of productivity and competitiveness. Practitioners will benefit from the lessons learned by the community, captured in the array of methodological and technological alternatives presented in the chapters of the handbook, and will gain the confidence for undertaking their own re-engineering challenges. Researchers and educators will find a valuable single-entry point to quickly become familiar with the state-of-the-art on the topic and the open research opportunities; including undergraduate, graduate students, and R&D engineers who want to have a comprehensive understanding of techniques in reverse engineering and re-engineering of variability-rich software systems.
Original language | English |
---|---|
Publisher | Springer International Publishing |
Number of pages | 517 |
ISBN (Electronic) | 9783031116865 |
ISBN (Print) | 9783031116858 |
DOIs | |
Publication status | Published - 22 Nov 2022 |
Keywords
- Artificial intelligence
- Configurable systems
- Configuration management
- Customization
- Domain analysis
- Feature localization
- Feature models
- Feature-oriented development
- Information retrieval
- Machine learning
- Microservices
- Model-driven engineering
- Requirements engineering
- Reverse engineering
- Software engineering
- Software mining
- Software product lines
- Software reuse
- Variability management