Generative Software Development
Krzysztof Czarnecki, University of Waterloo
Wednesday, Oct 25, from 13:30 to 17:00
Abstract
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).
In this tutorial, 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),
domain design (i.e., developing a common architecture for a system
family), and 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.
Level: Intermediate
Required Knowledge
Basic knowledge of object-oriented programming and modeling.
Speaker profile
Krzysztof Czarnecki is an Assistant Professor at the University of Waterloo,
Canada. Before coming to Waterloo, he spent 8 years at DaimlerChrysler
Research working on the practical applications of generative programming.
He is co-author of the book "Generative Programming" (Addison-Wesley,
2000), which is regarded as founding work of the area and is used as a graduate
text at universities around the world. He was General Chair of the 2003
International Conference on Generative Programming and Component Engineering (GPCE)
and keynote speaker at UML 2004. His current work focuses on realizing
the synergies between generative and model-driven software development.