16. – 20. April 2001, Dagstuhl Seminar 01161
Product Family Development
Günter Böckle (Siemens AG – München, DE)
Paul C. Clements (Carnegie Mellon University – Pittsburgh, US)
Henk Obbink (Philips Research – Eindhoven, NL)
Klaus Pohl (Universität Duisburg – Essen, DE)
H. Dieter Rombach (Fraunhofer ITWM – Kaiserslautern, DE)
Auskunft zu diesem Dagstuhl Seminar erteilt
The purpose of this workshop is to convene a group of leading researchers from various disciplines - including, but not limited to, component development, distributed objects, product family methods, requirements engineering, software architecture to cross-examine the effectiveness and the efficiency of product family based software system development.
Product families have recently gained much interest in various application domains including electronic commerce, information systems, medical systems and telecommunication systems. There are two main tasks to be performed in a product family development: domain engineering and application engineering . The goal of domain engineering is to identify a stable set of domain requirements common to a product family, derive a reference architecture common for all family members, and implement the respective functionality in distributed, platform independent components. Variability is captured in encapsulated architectural modules and corresponding subcomponents to support the fast derivation of customer specific products as family members.
The goal of application engineering is to identify the customer requirements for a specific application and to map (as far as possible) those requirements to the domain requirements thereby initiating the reuse of the reference architecture and the associated core components. Obviously not all application specific requirements can be mapped to domain requirements. As a consequence, the realization of an application may require an adaptation or even extension of the reference architecture and/or the underlying components. Those adaptations/extensions have to be performed in a way that its effects to the product family and the existing applications are minimized.
Product family development thus focuses on the creation and maintenance of a whole set (family) of software products. It has to differentiate between the creation and the maintenance of system assets (development artifacts) which are common to the various application systems (during domain engineering) and the parts that are specific to particular applications, i.e. the variable parts (during application engineering).
In contrast, research in traditional software engineering disciplines has mainly focused on "one of a kind4 systems. The principle ideas and solutions developed for "one of a kind4 systems in industry and research may still be applicable to product family development. But, product family development requires an adjustment and extension of those concepts, especially in the areas of requirements engineering, software architecture and components.
Software architectures and distributed components, for example, have to be built under the premise that evolution of the product family is inevitable and they thus have to provide solutions for actually mapping variable parts onto interfaces and code. Or, requirements engineering must take the results of the domain analysis into account when defining the application specific requirements. User needs should, whenever possible, be mapped to requirements already satisfied by the core architecture to guarantee a successful reuse of other product family assets.
This workshop seeks to elicit and synthesize the requirements and their cross-discipline effects for the adjustment of existing software engineering results to product family development. Moreover it will discuss the potential of product family development as well as the soundness of its application to the development of software products. Topics to be discussed include (representative but not exhaustive):
- Change tolerant architecture
- Change support and propagation
- Component coupling and integration in unknown architectural settings
- Gaps and improvement areas identified by product family research
- Goal and scenario-driven product family development
- Instantiation of product families to meet application specific requirements
- Lessons learnt from industrial product family development
- Product family driven requirements engineering for customer specific applications
- Reduction of test efforts caused by application specific extensions
- Reuse and embedding of commercial of the shelf systems (COTs)
- Selection and integration of distributed components
- Support for change integration in domain and application specific assets
- Traceability among the various product family assets
Position statements .
It is mandatory that each participation submits a 2-5 page position paper to email@example.com. The submission deadline is 1st of February 2001 . The position paper will be made available to all seminar participants and should be red prior to the seminar. The presentations during the seminar are intended to give an up-to-date picture on product families and related areas, or to provoke discussions. The presentations will be selected based on the submitted position paper.