Presentation: "Managing Variability in Product-Lines"
Time: Tuesday 13:00 - 14:00
Location: Conference Hall
Managing variability is a major challenge in product line engineering. The commonalities and differences between products must be described accurately, both in the problem space as well as in the solution space. It is also critical to be able to trace variability in the problem space to implementation decisions used to implement that variability in the code.
In this session I will illustrate how model-driven and aspect oriented software development help addressing these challenges. Both the problem space and the solution space are described by models, using a model-to-model transformation to map problem space variability to solution space variability. Since models are less detailed than code, it is much easier to implement the variability in solution space models. Tracing can be done between model elements rather than between artifacts.
The following techniques will be illustrated:
- combining modelling languages for customization and configuration
- using model-to-model transformations to formally describe the mapping from problem space to solution space
- integrating runtime variability based on models
- handling traceability on model-level
- the importance of a powerful platform as a basis for the product line
- developing families of code generators and model transformations
- aspect-oriented modelling as a way of defining variants of models
- using aspect-oriented programming to adapt product code for unexpected variability
The approach shown in the tutorial is based on a concrete case study and completely example-driven. Concepts are illustrated with a running example using tools based on Eclipse and openArchitectureWare.