Generative Programming and Component Engineering

Using Feature Models for Product Derivation

Danilo Beuche, pure-systems
Olaf Spinczyk, University of Erlangen-Nuremberg

In general the implementation of a software product line leads to a high degree of variability within the software architecture. For an effective development and deployment it is necessary to resolve variation points with in the architecture and source code automatically during product/variant derivation. Given the complexity of most software systems tool support is necessary for these tasks.

This tutorial shows how feature models combined with appropriate tools can provide this support. At first the importance of the separation of problem space modelling and solution space modelling is discussed. Concepts how to connect both spaces using constraints and/or generative approaches are shown. Furthermore some typical patterns of variability in the solution space are shown and their automatic resolution in common languages like C/C++ and Java is demonstrated. Integration of code generators, aspect-oriented programming and software configuration management systems into the derivation process is also discussed.

The tutorial is accompanied by short demonstrations of the presented concepts with freely available tools (XVLC, pure::variants, OAW) and thereby gives attendees an idea where to look when concepts are put into practice.

Duration: Half-day

Level: Practitioners from Industry (SPL Novice to Intermediate)

Required Knowledge: Attendees should have a basic understanding software design, some knowledge about software product lines in general is helpful.

Speaker Profiles

Olaf Spinczyk is an Assistant Professor of Computer Science at the Friedrich-Alexander University Erlangen-Nuremberg, Germany. His current research is focused on the combination of generic and generative programming with AOP in AspectC++.

Danilo Beuche is managing director of the pure-systems GmbH. He works as consultant in the area of product line development mainly for clients from the automotive industry. He has been tutorial presenter, speaker, workshop organizer and panelist at conferences such as AOSD, ISORC, SPLC and OOPSLA.