There are exciting new developments in Software Engineering: New "post-object-oriented" programming paradigms such as Aspect-Oriented Programming and Intentional Programming are emerging, and the recent work in Software Product-Line Engineering integrates classic Domain Engineering methods with object-oriented and component-based programming. Generative Programming builds upon these new developments to support the design and implementation of generative models of system families, which allow a specification-based generation of family members from reusable components. In this tutorial, the authors of the book "Generative Programming: Methods, Tools, and Techniques" (Addison-Wesley, 2000) will present the basic motivation for the shift to software system family engineering, an overview of the process of generative programming and its work products, generative programming techniques in C++ and Java, and a complete case study demonstrating all the steps from analysis to an implementation.
Audience:
This tutorial is aimed at researchers and practitioners interested in cutting-edge approaches to achieve reusability and adaptability.
Required experience:
Presenter's profile:
Krzysztof Czarnecki (czarnecki@acm.org) is a researcher and consultant with
the Software Technology Lab at DaimlerChrysler Research in Ulm, where he has
been working on Generative Programming and its industrial application for over
four years. Together with Ulrich Eisenecker and Manfred Broy (Technical
Univrsity of Munich, Germany), he established the working group on "Generative
and Component-Based Software Engineering" within the "Gesellschaft für
Informatik" and co-chaired the First International Symposium on Generative and
Component-Based Software Engineering (GCSE99). Dr. Czarnecki gave several
talks on generative techniques at OO and Software Engineering conferences
including STJA98, OOP98, OOP99, ECOOP99, and ESEC/FSE99. He serves on the
program committees of ICSR2000 and OOPSLA2001. He holds M.S. degrees in
computer science from California State University, Sacramento, and the
Technical University of Ilmenau, Germany, and a Ph.D. degree in computer
science also from TU Ilmenau. Ulrich Eisenecker
(Ulrich.Eisenecker@t-online.de) is a professor of computer science at the
University of Applied Sciences Kaiserslautern at Zweibrücken. Dr. Eisenecker
served on several program committees and he is a frequent speaker on national
and international software engineering conferences. He is also the editor of
KOMPONENTEN-Forum, which is a permanent part of OBJEKTspektrum, a SIGS/101
publication on object and component technology in Germany, a member of the
technical advisory board of SIGS/101, and a C++ columnist. The main focus of
his more than 100 publications is generative programming and object technology.
He is an industry consultant and a certified expert witness for administrative
and business software systems. Together with Krzysztof Czarnecki, he
co-authored the book "Generative Programming: Methods, Tools, and
Applications", Addison-Wesley, 2000.