Software Product Lines
The Software Product Line (SPL) approach to software development promises significant improvements in time-to-market, cost, and reliability, through the system identification and exploitation of commonalities and variations in software systems. The approach promotes asset re-use throughout the software life cycle, and facilitates product customisation. SPL has been applied successfully in a number of different domains, by large and small organisations alike.
Course dates
Objectives
This course presents a thorough and comprehensive coverage of state-of-the-art practices in SPL, from analysis and design to implementation, to provide students with a unique perspective that empowers them to identify, assess, and tackle the challenges of SPL and reap its latent benefits.
Contents
- Challenges and Benefits of PLE
- Importance of PLE in software engineering practice, commonality and variability management, Domain Analysis, Domain Engineering
- Feature Oriented Design and Analysis
- Features, variation points, feature models, decision models
- Basic Variability Implementation Technologies
- Annotation-based and programming language support
- Aspect Oriented Software Development
- Aspects à la AspectJ and their application to product lines, aspects throughout the software development lifecycle
- Feature Oriented Software Development
- Feature modules, product line development with AHEAD and FeatureHouse
- Product Line Validation and Testing
- Safe composition, basic SPL validation, foundations of SPL testing
- Product Line Management
- Adoption, evolution
- Product Lines in Industry and Application Outlook
- Commercial tools, successful industry projects, open challenges and opportunities