Managing Variability in Product Family Development
In: Proceeding of 5th Intl. Workshop on Product Family Engineering (PFE-5). Lecture Notes in Computer Science / van der Linden, F. (Hrsg.)
Siena, Italien: Springer Verlag (2003), S. 66-80
Buchaufsatz / Kapitel / Fach: Wirtschaftswissenschaften
Effective product family based development depends on exploiting the commonality and variability in customer requirements. The desirability of variability in products is driven by the (manifest and hidden) needs of the various target market segments identified by various organizational units like sales and marketing. These are informed by other critical components of the context in which product families are developed including the technological capabilities, people/human resources available with the organization, the policies and procedures of the organization, and the strategic objective of the organization. Variability Management is seen as the key aspect that differentiates conventional software engineering and software product line engineering [Kruger 02]. Variability in a product family is defined as a measure of how members of a family may differ from each other [WeissLai 99]. Variability is made explicit using variation points. Variation points are places in design artifacts where a specific decision has been narrowed to several options but the option to be chosen for a particular system has been left open [Atkinson 01]. Identification of the points of variability is crucial in proliferating variety from a single product platform. A central component of product family approach is the management of variability. The product family development process involves managing variations among different members of the family by identifying common and variable aspects in the domain under consideration. The need to explicitly represent variability to facilitate their identification and exploitation has been recognized by recent research. Various extensions to UML (Unified Modeling Language) have been proposed to tailor it to represent variability [Clauss 01]. This work suggests a first-class representation of variability with its own properties and interfaces. Svahnberg and Bosch [Svahnberg 00] discuss several issues related to implementation of variability, viz., the level of abstraction in which variability has to be introduced and the different possible states of variation points. Feature-based recognition of variability, proposed by Lee et al [Lee 12], suggests that variability should be analyzed in terms of product features. The explicit representation of variability in various phases of the product development process including requirements engineering, architecture description, implementation, as well as mechanisms needed to facilitate the systematic exploitation of variability during product derivation have been suggested by such recent literature. However, there been have no attempts to provide a uniform representation of variability across various phases of the process. Our research proposes to fulfill this void. In contrast to prior research (discussed in detail in Section 4), which has developed representations of variability within the context of specific product development activities such as architecture specifications, we argue for a uniform representation of variation across various activities where variability is introduced and exercised. This approach will also help understand and model the dependencies between variability introduced at different phases. A major goal of this approach is to separate out the representation of variability from the representation of various assets developed in the product development lifecycle while maintaining the traceability between them.