Software and Services Variability Management Workshop - Concepts, Models and Tools

Pre-tutorial

Pre-tutorial is held in April 18th by Krzysztof Czarnecki - a day before the actual workshop.


Topic

Product-line engineering seeks to exploit the commonalities among systems from a given problem domain while managing the variabilities among them in a systematic way. In product-line engineering, new system variants can be rapidly created based on a set of reusable assets (such as a common architecture, components, models, etc.). Generative software development aims at modeling and implementing product lines in such a way that a given system can be automatically generated from a specification written in one or more textual or graphical domain-specific languages (DSLs).

The participants will learn:

  • how to perform domain analysis (i.e., capturing the commonalities and variabilities within a system family in a software schema using feature modeling)
  • how to perform domain design (i.e., developing a common architecture for a system family)
  • implementing software generators using multiple technologies, such as template-based code generation and model transformations.

Available tools for feature modeling and implementing DSLs as well as related approaches such as Software Factories and Model-Driven Architecture will be surveyed and compared. The presented concepts and methods will be demonstrated using a sample case study of an e-commerce platform.