Workshop on

Managing Variabilities Consistently in Design and Code

at the

19th Annual ACM SIGPLAN Conference on
Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2004).

 

Abstract

Software product lines / software families promise a reduction of development time and product development cost through systematic reuse and improved software quality. The idea is to develop the common parts of a family just once while being prepared to adapt these parts to the different product requirements in a controlled way.

With the introduction of software product line approaches into the practice, variants and variability add a new dimension of complexity to the software development process. The combinatorial explosion of possible variants in systems with a high degree of variability requires special concepts for specifying, modeling, and implementing these systems to assure quality and functionality.

Object technology encompasses a diversity of variability approaches at different abstraction levels. During the analysis phase, OO provides useful techniques such as use cases or scenarios. During design, patterns, and frameworks serve to handle variability. At the implementation level, OO supports variability by, for example, dynamic binding, polymorphism, inheritance and sub-typing.

These approaches are not integrated and none of them explicitly supports the description and implementation of variants.
Feature models are better suited for planning and supporting strategic decision both for architectural and for component development. Feature models are tightly connected to object-oriented models of the UML. Feature Models are used in different
ways:

For all the above mentioned reasons, Feature Models play a central role in Product Line development. However, their definition in terms of syntax, semantics and graphical representation as well as the integration into the software development process is still limited.

Likewise, OO languages do not give much support in making variants explicit. AO languages seem to be more appropriate for implementing a feature in a separate concern and making features first class citizens within the software.

Workshop Goals

The goal of this workshop is to evaluate existing technologies for their ability to manage variants and the resulting variability in design and code consistently, identify gaps and find points for collaboration to fill these gaps.

Position Papers

Please download all position papers, read them thoroughly and complete the following sentences for every paper:
- What I really liked about this paper is ...
- The most important question I would like to ask the author is ...

We will ask you to write the completed sentences on index cards at the beginning of the workshop.

Vander Alves, Pedro Matos Jr., Paulo Borba An Incremental AspectOriented Product Line Method for J2ME Game Development
Atef Bader, Husein Armouti, Shangping Ren, Tzilla Elrad Components Weaving for Software Product Features
Stuart Bray, Marco Yuen ,Yvonne Coady, Marc E. Fiuczynski Managing Variability in Systems: Oh What a Tangled OS We Weave
Iris Groher Managing Variabilities with Generative Approaches
Paul Klint, Tijs van der Storm Reflections on Feature Oriented Software Engineering
Arvind S. Krishna, Emre Turkaye, Cemal Yilmaz, Douglas C. Schmidt, Aniruddha Gokhale, Atif Memon,Adam Porter Model-driven Software Tools for Configuring and Customizing Middleware for Distributed Real-time and Embedded Systems
Neil Loughran, Awais Rashid Managing Variability throughout the Software Development Lifecycle
Egon Wuchner Reflections on Feature Oriented Software Engineering
John Anvik  

 

Important Dates

Position Papers Due: Friday, August 27, 2004
Notification of Acceptance: Friday, September 10, 2004
Workshop: Sunday, October 24, 2004

Workshop activities

Workshop preparation

Two weeks before the workshop a detailed workshop schedule will be published together with all submitted position papers. The participants are expected to do to prepare for the workshop by reading the position papers and thinking about the questions they will be asked to answer at the workshop.

Planned workshop activities

The workshop is laid out as full day workshop.
Instead of presenting the papers, each participant will be expected to review everyone else's paper before the workshop and complete the following two sentences for each:
- What I really liked about this paper is ...
- The most important question I would like to ask the author is ...

These questions are written down on index cards and will be collected before the workshop. During the workshop, we will spend the morning with questions and answers to gain deeper insight into the problem described in the paper. Before each paper session, the author will be permitted a 4 minute slot to very briefly present his paper/work. The workshop format in the afternoon will be utilizing the "Open Space" format in order to discuss topics of interest that might be, or might not be directly related to the papers presented in the morning.


Post-workshop activities

The workshop results are published together with a schedule on follow up activities. We will provide a summary of the workshop on the web page and aim on a joint research agenda for investigating ways to handle variants consistently in design and code.
If we receive a significant amount and quality of submissions, we also consider trying a special issue of some Journal.


Organizing committee

Danilo Beuche is managing director of the pure-systems GmbH. pure-systems is a software company specialized in services and tool development for the application of product line technologies in embedded
software systems. When he joined the GMD First (now Fraunhofer FIRST) in 1995, he started to work in the field of embedded operating systems and software families and continued this line of work at the University Magdeburg. His work on tool support for feature based software development has gained interest both in the research community and in the industry and finally lead to the founding of pure-systems in 2001.

Krzysztof Czarnecki is an Assistant Professor at the University of Waterloo, Canada. Before coming to Waterloo, he spent 8 years at DaimlerChrysler Research working on the practical applications of generative programming. He is co-author of the book "Generative Programming" (Addison-Wesley, 2000), which is regarded as founding work of the area and is used as a graduate text at universities around the world. He was General Chair of the 2003 International Conference on Generative Programming and Component Engineering (GPCE) and will deliver a keynote on generative software development at the at the UML 2004 conference in Lisbon. His current research focuses on realizing the synergies between generative programming and MDA.

Mira Mezini is professor of computer science at Darmstadt University of Technology, where she is leading the software technology group. Her research focuses on developing methods and tools that support programmers in writing software that has a clear modular structure that reflects a clear separation of concerns. A key theme underlying her current work is aspect-oriented software development (AOSD). She is leading several important projects in this area.

Christa Schwannninger is a Senior Research Scientist at Siemens AG, Corporate Technology, Munich, Germany. Her fields of interest are software architecture, distributed object computing, patterns, frameworks and aspect oriented software development. She participates in industrial research in new and promising areas of software engineering and is a consultant for business units that actually build commercial software, mostly embedded in small, resource restricted devices.

Markus Voelter works as a freelance consultant for software technology and engineering. He focuses on the architecture of large, distributed systems. His interests include patterns, frameworks, components, middleware as well as generative and model-driven development. Markus is the author of various technical articles and papers as well as several published patterns. He is a regular speaker at national and international conferences and co-author of Wiley's "Server Component Patterns" book. Over the last years, Markus has worked on several projects of different sizes in different domains such as banking, media, astrophysics and automotive. Most recently, he has been working on the architecture of embedded software, specifically the small components project, which aims at providing component infrastructures for embedded systems.


Previous Workshops

Markus Voelter, Michael Kircher, Christa Schwanninger, Uwe Zdun, Alexander Schmid, Workshop - Reuse in Constrained Environments, OOPSLA'03 conference, Anaheim, California, USA , October 2003

Matthias Riebisch, Jim Coplien, Detlef Streitferdt, Workshop on Modeling Variability for Object-Oriented Product Lines, ECOOP'03, Darmstadt, July 2003

Bedir Tekinerdogan, Mehmet Aksit, Krzysztof Czarnecki, Sholom Cohen , OOPSLA'01 Workshop on Managing Variability in Domain Engineering using OO Technology, OOPSLA'01 conference, Tampa, Florida, USA, October 2001