ECOOP /
Tutorial 30
Tutorial Title
| Topic | Generative Programming: Methods, Techniques, and Applications
|
| Goal | Introducing the basic fundamentals of generative programming using examples in C++ and frame-technology
|
| Style | Presentation + discussion + demos
|
Abstract
Have you ever run into the question of how to scope a component
to make it reusable? Or how to achieve flexible designs without
paying the performance cost for abstraction? Or how to encapsulate
abstract features such as performance requirements in the code?
Generative Programming (GP) addresses these and many more issues
in developing reusable software. Building on the system-family
approach, it complements object-oriented methods with notations
and techniques to perform domain scoping and feature modeling.
It also provides techniques for deriving a common family architecture
and components. Finally, it deploys generative technologies to
automatically assemble components based on specifications that
programmers can conveniently express in their application code.
Participants will learn the basic concepts of GP, and how to perform
feature modeling, derive components and architectures from feature
models, design domain-specific languages, and implement generators
using readliy available techniques such as frame-processing technology
or C++ template metaprogramming. After presenting some basic concepts and
a small, but complete example, each step of the GP process will
be discussed in more depth, and the participants will have a chance
to experience it in hands-on-exercises. We will round up the tutorial
with an outlook on future, advanced generative technologies such as
active libraries and active sources.
Generative programming builds on system-family engineering,
aspect-oriented programming and other emerging paradigms and
puts the focus on maximizing the automation of application
development: given a system specification in a domain-specific
language, a concrete system is automatically assembled out of
reusable components. Using examples, experiments, and hands-on
exercises, this tutorial gives the basic motivation for the shift
to software system family engineering, provides an overview of
the process of generative programming and its work products,
explains the necessary modeling techniques and notations, and
presents generative programming techniques using C++ and frame-processing technology.
Presenter Profile
Ulrich W. Eisenecker
Ulrich W. Eisenecker (eisenecker@informatik.fh-kl.de) is a professor for computer science at the University of Applied Sciences Kaiserslautern, Zweibruecken, where he directs the Institute of Componentware and Window-Interfaces. He has been working on generative programming for more than five years and is responsible for several projects in generative programming research funded by industry and public institutes. He co-authored (together with Krzysztof Czarnecki) the book "Generative Programming: Methods, Tools, and Applications", Addison-Wesley, 2000.
Details
| Presenter(s) |
Ulrich W. Eisenecker, University of Applied Sciences Kaiserslautern, Germany
|
Date Duration |
Monday, 21
full day
|
| Level |
intermediate/advanced
|
| Targeted Audience |
Researchers and practitioners interested
in cutting-edge approaches to achieve reusability and adaptability, basic knowldege in in object-oriented programming required.
|
|