Generative Software Development
Description
System family engineering seeks to exploit the commonalities among
systems from a given problem domain while managing the variabilities
among them in a systematic way. In system family 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
system families in such a way that a given system can be automatically
generated from a specification written in a textual or graphical
domain-specific language. Software Factories is a generative software
development method that focuses on multi-dimensional specification,
combining partial and complete generation of framework-completion code
from domain-specific models with pattern and framework development.
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. We will also demonstrate tool support for Software
Factories, and discuss its relationship to model-driven development
and agile development methods.The presented concepts and methods will
be demonstrated using a sample case study.
Location
Conv. Ctr. Meeting Room 10
Date and Time
Sunday 10-24-04 1:30 - 5:00 pm (half-day)
Presenters
Krzysztof Czarnecki, University of Waterloo, czarnecki (at) acm.org
Jack Greenfield, Microsoft Corporation, jackgr (at) microsoft.com
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 will deliver a keynote on generative software development at the
UML 2004 conference in Lisbon. His current research focuses on realizing
the synergies between generative and model-driven software development.
Jack Greenfield is an Architect for Enterprise Frameworks and Tools at
Microsoft. He was previously Chief Architect, Practitioner Desktop
Group, at Rational Software Corporation, and Founder and CTO of InLine
Software Corporation. At NeXT, he developed the Enterprise Objects
Framework, now called Apple Web Objects. A well known speaker and
writer, he is co-author of the book on Software Factories
used in this tutorial. He also contributed to UML, J2EE and
related OMG and JSP specifications. He holds a B.S. in Physics
from George Mason University.