- Building generative models: overcoming the limitations of traditional object-oriented modeling.
- Aspect-Oriented Programming, metaprogramming, next-generation code generators, and more.
- Includes illustrative sample code in C, C++, and Java, and three detailed, start-to-finish case studies.
Generative Programming (GP) offers the promise of moving from "one-of-a-kind" software systems to the semi-automated manufacture of wide varieties of software -- essentially, an assembly line for software systems. GP's goal is to model software system families and build software modules such that, given particular requirements specs, highly customized and optimized intermediate or end products can be constructed on demand. This is the first book to cover Generative Programming in depth. The authors, leaders in their field, introduce the two-stage GP development cycle: one stage for designing and implementing a generative domain model, and another for using the model to build concrete systems. They review key differences between generative modeling and processes used for "one-of-a-kind" systems. Next, they introduce key GP concepts such as feature models, and demonstrate "generic programming" techniques for creating components which lend themselves to easy combination and reuse. The book also introduces Aspect Oriented Programming, which allows developers to solve key recurring problems in traditional O-O development; and presents metaprogramming techniques for building powerful program generators. Three detailed case studies demonstrate the entire generative development cycle, from analysis to implementation.
Krzysztof Czarnecki is a Ph.D. candidate at the University of Ilmenau, Department of Software Engineering and Media Technology, and a researcher at the DaimlerChrysler AG Research Center in Ulm, Germany. Ulrich Eisenecker, a faculty member in Computer Science and Microsystem Engineering at the University of Applied Sciences Kaiserslautern. He was formerly a researcher at Daimler-Benz Research Center in Ulm, Germany.