OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Generative Software Development"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Tutorials > All Tutorials

 : Sunday Afternoon Tutorials (1:30 - 17:00) : Generative Programming : Sunday

Generative Software Development

Meeting Room 10
Sunday, 13:30, half day
 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Krzysztof Czarnecki, University of Waterloo:  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 at the UML 2004 conference in Lisbon. His current research focuses on realizing the synergies between generative and model-driven software development.
Jack Greenfield, Microsoft Corporation:  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.

Tutorial number: GP3

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.

Intermediate