Workshop on Generative Techniques in Product Lines
First Software Product Line Conference
Tuesday, August 29, 2000 in Denver
Introduction
The workshop on Generative Techniques for Product Lines aims to
bring together practitioners, researchers, academics, and
students to discuss broadly the state-of-the-art of generators
and their role in developing a product line.
Topics of interest, include
-
styles of generators, particularly the uses and limitations;
-
generation of code artifacts, such as application logic, UIs,
database schemas, and middleware integration;
-
generation of non-code artifacts such as test cases,
documentation, tutorials, and help systems;
-
capturing configuration knowledge, for example, in DSLs, and
extensible languages; and
-
testing generic and generative models.
The goal is to share experience, consolidate successful
techniques, and identify open issues for future work in product
lines.
Organizers
Greg Butler (gregb@cs.concordia.ca) is a Professor of Computer
Science, Concordia University, Montreal. He works on frameworks,
investigating methodologies for framework development and
evolution.
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.
Ulrich Eisenecker (Ulrich.Eisenecker@t-online.de) is a professor
of computer science at the University of Applied Sciences,
Kaiserslautern. His work focuses on generative programming and
object technology. He is also the editor of KOMPONENTEN-Forum,
which is a permanent part of OBJEKTspektrum, a SIGS publication
on object and component technology in Germany.
General Information
We would like to organize the discussions around the examples, by
discussing the applicability, limitations, and strengths of each of
the generative techniques within the context of the examples.
The domains for the examples should not be too large or complex: we need
to grasp an overview of the domain, and one or two technical aspects
of the product line in about 20-30 minutes, with perhaps more information
coming out as prompted by the discussion.
Please register for the conference. See the registration form
(http://www.sei.cmu.edu/plp/conf/SPLC1_Registration.pdf)
available on the web for more information.
We look forward to a lively, intimate group workshop in Denver!
To do: prepare a 5-10 minute introduction to yourself, your work,
and your position; (We really do want to keep these short,
and focus on examples, discussion, debate, and even controversy,
rather than just presentations!)
Participants and Positions
-
Greg Butler, Concordia University, Montreal, Canada.
-
Experiences with generative techniques at Lucent,
Lloyd Nakatani, Bell Labs, Lucent Technologies, USA.
-
Andreas Hein, Robert Bosch GmbH, Frankfurt, Germany.
I am working in a Research and Development department for Software
Technology at the Robert Bosch GmbH, Germany.
We are basically concerned with validating and adapting the Product Line
Approach for our business units.
One of our current issues is domain feature modeling so that the feature
model can later be used as a starting point
for partly automated product derivation. Our fundamental ideas on that are
explained in our SPLC1 Conference Paper
Applying Feature Models in Industrial Settings (Hein, Schlick, and
Vinga-Martins).
-
Position paper,
David Sharp, Boeing, St Louis, USA.
-
Design Wizards for Software Product Lines,
Guillermo Jimenez-Perez, Instituto Tecnologico, Monterey, Mexico.
-
Experience with generative techniques: Cartridge Development Environment,
Remi Lequette, ILOG, Paris, France.
-
Joerg Friedrich, Marconi Communications, Backnang, Germany.
At Marconi Communications, we have been using application generators to
construct our network element management agents for several years now. We
have successfully used this technique to support 5 different products
ranging from PDH multiplexers to SDH microwave radios. The method we follow
allows an abstract description of the variabilites in a formal language,
while all commonalities are handled by the application generator and some
libraries.
-
Krzysztof Czarnecki, DaimlerChrysler Research, Ulm, Germany.
-
Ira Baxter, Semantic Designs, Austin, Texas, USA.
I would probably talk briefly about The Design Maintenance System DMS
in general, and more specifically about how we generate very large,
parallel attribute grammar evaluators. I would certainly have a lot
to say in discussion about uses and limitations of transformation systems.
-
Evaluating specific compiler generation techniques
and their use in non-traditional domains of generating software,
Olaf Langmack, Transformal, Berlin, Germany.
Presentations
-
Welcome and Introduction,
Greg Butler.
-
Lessons from Generative Techniques at Lucent Technologies,
Lloyd Nakatani.
-
PRAISE project,
Andreas Hein, Robert Bosch Gmbh.
-
Generative Techniques for Real-Time Embedded Systems,
David Sharp, Boeing.
-
Design Wizards for Software Product Lines,
Guillermo Jimenez-Perez.
-
Code Generation in CDE: Cartridge Development Environment,
Remi Lequette, ILOG.
-
Software Generation by Extreme Abstraction,
Joerg Friedrich, Marconi.
-
Generative Programming and Active Libraries,
Krzysztof Czarnecki, DaimlerChrysler.
-
Design Reuse and Engineered Scale,
Ira Baxter, Semantic Designs.
-
Evaluating specific compiler generation techniques
and their use in non-traditional domains of generating software,
Olaf Langmack.
Case Studies for Potential Discussion
-
The Header Table Product Line has instances that are simple
spreadsheet-like matrix with headers for rows and columns. It is
described in detail in the paper: Software product lines: A case
study, by Mark Ardis, Nigel Daley, Daniel Hoffman, Harvey Sly,
David Weiss, Software - Practice and Experience, vol. 30,
pp. 825-847, 2000.
-
Cartridge Development Environment. For ILOG, "cartridges" are
components that embed optimization logic. The CDE is a tool for
design, build, and maintain cartridges.
A 30-page description of CDE from ILOG.
[I have problems with acroread for page 22.]
-
Legacy software system analyzers are a product line. For a
particular input language, there can be legacy dialect variations,
and the analyses performed (what is produced) can change.
Semantic Design's DMS Reengineering Toolkit is designed to support this notion.
-
Code generators may have multiple target platforms. So there
can be many members for a particular specification language, parameterized
by the target language. Semantic Design is doing a factory-controller
code generator, whose input is a factory process specification, and whose
output is intended for different factory-controller computers.
-
Code-generator generators are a product line. They have a fixed
and a variable part: 1) Fixed part: generator infrastructure; 2) Variable
part: specifications (domain descriptions and how to transform to code).
Considerable leverage is obtained when you think of the product line
generator itself using its own technology to build itself.
Semantic Design's DMS Reengineering Toolkit is organized exactly this way.
Topics for Potential Discussion
Based on the position papers, there seem to be several areas of mutual
interest that can form the starting point for discussions:
-
Industrial Experiences:
experiences with generative techniques for product lines in industrial settings;
hard problems in industrial settings that research needs to address;
organizational and other problems in industrial settings (how to
install and successfully run generative technology projects);
-
Properties and Design of Domain-Specific Languages DSLs:
composability of DSLs;
adaptability and parameterization of DSLs;
textual vs. GUI DSLs;
wizards vs. more complex modeling languages;
-
Approaches to generation:
classification of different approaches to generation;
properties of a generator architecture;
pros and cons of different generative technologies and when to apply which;
-
Approaches to developing generative models:
Domain Engineering;
Jargons;
experiences and managing the process in industrial settings, etc.
Lessons Learnt
Limit scope of domain: keep small, simple, specialized
Hypothesis There are three kinds of jargons/DSLs: procedural, data, mark-up
DSLs can generate multiple artifacts
DSLs should have multiple views of the domain
Scaleability is important: need composition of domains
Domains evolve: so practice maintenance, and configuration management
Need better tools: tools for feature model; extensible IDE supporting
interaction/feedback in domain terminology (generation, error messages,
debugging, profiling, optimization)
Skill set for DSL developer is not same as skill set for domain
expert nor software developer: need language design skill, meta-abstraction,
able to switch across multiple domains
Open Issues
Validation of a PL: validate domain specification, DSL, generator,
DSL specification for product, product
Partitioning domains into smaller/simple/more specialized subdomains
Composition of domains
Evolution of domains and DSLs
"Domain sharing": getting the domain out of an organization into
a broader industry context
Domain knowledge acquisition and engineering
Our Slogan
Practice "Extreme Abstraction"
Last modified on September 19, 2000 by gregb@cs.concordia.ca