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

o styles of generators, particularly the uses and limitations;
o generation of code artifacts, such as application logic, UIs, database schemas, and middleware integration;
o generation of non-code artifacts such as test cases, documentation, tutorials, and help systems;
o capturing configuration knowledge, for example, in DSLs, and extensible languages; and
o 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

o Greg Butler, Concordia University, Montreal, Canada.
o Experiences with generative techniques at Lucent, Lloyd Nakatani, Bell Labs, Lucent Technologies, USA.
o 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).

o Position paper, David Sharp, Boeing, St Louis, USA.
o Design Wizards for Software Product Lines, Guillermo Jimenez-Perez, Instituto Tecnologico, Monterey, Mexico.
o Experience with generative techniques: Cartridge Development Environment, Remi Lequette, ILOG, Paris, France.
o 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.

o Krzysztof Czarnecki, DaimlerChrysler Research, Ulm, Germany.
o 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.

o Evaluating specific compiler generation techniques and their use in non-traditional domains of generating software, Olaf Langmack, Transformal, Berlin, Germany.

Presentations

o Welcome and Introduction, Greg Butler.
o Lessons from Generative Techniques at Lucent Technologies, Lloyd Nakatani.
o PRAISE project, Andreas Hein, Robert Bosch Gmbh.
o Generative Techniques for Real-Time Embedded Systems, David Sharp, Boeing.
o Design Wizards for Software Product Lines, Guillermo Jimenez-Perez.
o Code Generation in CDE: Cartridge Development Environment, Remi Lequette, ILOG.
o Software Generation by Extreme Abstraction, Joerg Friedrich, Marconi.
o Generative Programming and Active Libraries, Krzysztof Czarnecki, DaimlerChrysler.
o Design Reuse and Engineered Scale, Ira Baxter, Semantic Designs.
o Evaluating specific compiler generation techniques and their use in non-traditional domains of generating software, Olaf Langmack.

Case Studies for Potential Discussion

o 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.
o 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.]
o 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.
o 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.
o 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:

o 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);
o 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;
o 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;
o 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