Software development organizations are increasingly recognizing the benefits of the product family engineering (PFE) approach that has been quite successful in manufacturing. Success of PFE relies on the capability to systematically reuse a common platform across multiple product variants that are different members of the product family. Through such reuse, PFE can improve productivity of IT industries with higher product variety and shorter time to market . Though PFE offers significant economic benefits, managing variations in this process is challenging .
Variations are differences in features across product variants. For example, in the mobile browser family developed by Nokia , product variants are the browsers that are used by different types of mobile devices. There are several differences in features across these variants. For example, while small devices require a compact implementation with stringent memory requirements, more advanced devices need sophisticated interfaces and integration with various personal information management applications. Variations are typically implemented through variation points. These points identify alternative ways of deriving product variants, using techniques ranging from simple configurations to design patterns.
In product families, even a few variations in features, each with a few alternatives, can result in an exponentially large number of potential product variants. Supporting the development and evolution of the product family with changing customer needs and maintaining consistency across the family requires adept management of knowledge about variations. The ability to understand when, how, and why variations are incorporated in the PFE process helps in designing and evolving variations embedded in the product platform. Current industry practice is constrained by the lack of a clear answer to the question: What type of knowledge is most valuable in facilitating effective variability management in PFE? On the basis of a detailed field study of PFE activities (see the sidebar), we answer this question, offering a model or schema that represents the most valuable knowledge for variability management in PFE, and making recommendations for successful practice of variability management in PFE.
Our study shows that knowledge integration, which is the synthesis of individuals' specialized knowledge into situation-specific systemic knowledge , improves the PFE process. Establishing traceability, or the ability to describe and follow the life of various fragments of knowledge about variability, is an effective way to achieve knowledge integration in PFE. Traceability practices vary widelyfrom high-end to low-end . High-end traceability practices use customized traceability knowledge for managing variability. Project managers select traceability practices based on project characteristics such as system complexity, product family vs. single system development, and degree of variety involved. Low-end practices take more of a "one-size fits all" approach to documenting traceability knowledge, and create simple traceability links between customer requirements, design, and code modules. While high-end traceability practices aim at customer satisfaction and system quality, low-end practices are used just to meet organizational or customer-mandated quality requirements. Developing a high-end traceability practice for PFE involves identifying knowledge needs of product family developers, especially on how variations are managed.
Our study identifies these needs in the form of a traceability model shown in Figure 1. This model distinguishes between primitives used in both high-end and low-end practice. Whereas primitives commonly used in low-end practice are shown within the blue ellipse, the high-end model includes all the primitives shown in Figure 1. The low-end model includes links between requirements and design objects, and dependencies among different design objects. However, these dependency links are documented at a high level of detail (for example, at file or module level), typically using a traceability matrix. The high-end traceability model specializes these dependency links. A dependency link between two design documents in the low-end model can potentially be specialized into numerous links between several variation points documented in the design documents in the high-end model. Figure 1 shows the various specializations along with additional primitives that are specific to variability management in PFE.
High-end traceability practice for PFE involves documenting several aspects about variations that developers find useful during the PFE process. These include details about sources of variations and their manifestations in design. Variable requirements from different customer segments constitute the sources for variations in the product family. These variations are incorporated in the design at variation points.
Careful design of variation points is crucial for effective PFE. Variations are implemented using mechanisms such as design patterns, runtime and install-time configurations, and inheritance. Documenting the rationale behind the use of specific variability mechanisms enables more effective change management. Documenting the derivation of product variants by configuring variation points is useful in understanding the alternatives available and how these alternatives can be derived from the platform. This knowledge is useful when it is necessary to add, modify, or remove alternatives from a variation point. Identification of software artifacts that are impacted by changes to variation points is critical to completely and accurately manage variability. In order to facilitate impact analysis, knowledge about the relationships among the variation points, software artifacts that implement them, and documents that describe them is essential.
In an experimental study on the usefulness of high-end traceability practices to support variability management in PFE (see Phase 3 in the sidebar), we found that commonly used low-end practices are inadequate in addressing the challenges in managing variability. The use of high-end traceability model or schema (shown in Figure 1) significantly improves the quality of variability management practice. In essence, knowledge schemas used to guide traceability practice should be customized for PFE. Acquisition and use of knowledge defined by this schema should be supported by tools that are seamlessly integrated with developers' work environments.
Though high-end traceability practices provide significant benefits, they also incur significant costs. To help PFE organizations understand the contexts in which low-end and high-end practices are appropriate, we have developed a framework (see Figure 2). We use two important studies on knowledge management in the development of this framework.
First, we draw from Robillard , who applies key concepts from cognitive sciences to knowledge management in software development. He identifies three characteristics of knowledge and two knowledge processes:
Second, Alavi and Leidner's framework proposes five socially enacted knowledge processes: construction, storage and retrieval, transfer, and application that shape an organization's knowledge management practices .
We integrate these two frameworks in developing a traceability knowledge management framework (see Figure 2) as follows: Low-end practices document just topic knowledge with very few basic primitives used in structuring this knowledge. They face several challenges in executing the five knowledge processes. In contrast, high-end traceability practices follow a detailed schema for knowledge structuring to represent both episodic and topic knowledge that is customized to specific types of projects. All the knowledge processes shown along the x-axis in the figure can be executed much more effectively with high-end practices.
Knowledge construction, which refers to adding new knowledge or replacing existing tacit and explicit knowledge, is improved when a customized and detailed knowledge schema is used since it reduces ambiguities about the usefulness of different kinds of knowledge. Storage and retrieval become more effective with such guidance. Effective knowledge transfer is enabled due to improved communication and understanding within and across development teams, as the customized schema provides a common vocabulary. Knowledge application is improved as the customization takes into account the nature of situations where knowledge about variability is useful . High-end practices also provide a natural way to chunk knowledge during development. Knowledge management planning is improved by guidelines on how to customize knowledge to suit specific types of projects. It should be noted that since knowledge chunking and planning span across the other five knowledge processes, they are not shown in the figure. Table 1 summarizes how high-end and low-end practices differ in supporting the various knowledge processes.
We use this integrated framework to develop guidelines for knowledge management in PFE. These include general guidelines for stakeholders involved in PFE, and directions for implementing the guidelines.
Develop and use a Variability Management Plan. Developing large-scale software product families involves managing a huge number of variations across the members of the family. The number and complexity of these variations, and the dependencies across these variations warrant a planned approach that includes the development and use of a traceability model that is suitable for the project at hand. Product family developers should be provided with concrete guidelines on how to manage knowledge about variations that are important enough to be documented.
A variability management plan that identifies the different tasks involved in managing variations throughout the development life cycle, helps make changes to the system when variations are introduced or modified, and identifies the tools that keep track of variations, will assist in the implementaton of a standardized process for managing variations. Process frameworks like Rational Unified Process may be tailored to include a variability management plan that is customized to suit the needs of the project.
Documentation of product family development should center on variation points. In order for a knowledge management system to be cost-effective, it is essential to document only the knowledge elements that have significant impact on the development process. In PFE, this corresponds to documenting the life of variations from their sources to the final variant products that are derived from the platform, say using the schema shown in Figure 1. Documenting both topic and episodic knowledge based on a knowledge schema that is customized to support variability management in PFE results in more effective variability management. In contrast, it should be noted that most PFE organizations follow low-end practices. They use traceability matrices that map customer requirements to software modules that will be impacted when changes are made to requirements. Our study reveals that such low-end practice results in poorer quality of changes to variations when compared to high-end practice that uses the traceability schema shown in Figure 1.
Using traceability schema and design processes that are centered on variation points improves the effectiveness of PFE. Variation-oriented traceability can be complemented by specialized design modeling representations such as Unified Modeling Language with stereotypes to model variation points.
Manage dependencies among variations. In large-scale product families, variations are spread across several different artifacts generated during various phases of the development life cycle. Typically, knowledge related to various aspects of variations is documented in the environments in which the variation points are present. Also, dependencies across variation points, especially across different phases of development, are widespread. Therefore, decisions related to a variation point may affect several others. For example, the choice of an alternative for a particular variation point may restrict the choices available for other variation points. Documenting variations in isolation creates fragmented knowledge and results in a myopic understanding of the variations. PFE developers need to understand the dependencies among variations that are spread across different phases and artifacts.
Typically, changes made to software artifacts developed during PFE are documented in configuration management systems like Concurrent Versions System and MS Visual SourceSafe. However, these configuration management systems do not facilitate the management of dependencies among these artifacts. They can be augmented with traceability support systems that help manage dependencies.
Provide an integrated environment to manage widespread variations. Product family developers use several development tools and environments to manage different parts of the PFE process. Knowledge about variations is fragmented across them. For instance, feature models showing optional, required, substitutable features in the family may be developed using a diagramming tool like MS Visio, while analysis and design models in UML may be created using IBM Rational Software Architect. Similarly, programming, configuration management, project planning, communication, and documentation are often done with isolated tools. Providing a seamlessly integrated view of knowledge related to variations enables product family developers understand the widespread impact of changes to variations without having to shuttle between multiple work environments . Such integration will also motivate developers to document and use traceability knowledge. Documenting and using both topic and episodic knowledge elements through all the knowledge processes (construction, storage and retrieval, transfer, application, chunking, and planning) requires tools for seamlessly transitioning the user from one task to another, and from work processes to knowledge management processes.
Some of the common solutions that can facilitate seamless integration among diverse work environments include:
Use traceability knowledge to enable cross-functional knowledge integration: Product family engineering includes domain engineering, during which commonality and variability are analyzed and the platform architecture is built, followed by application engineering, during which product variants are derived from the product platform. Traceability knowledge documented during domain engineering will be valuable during application engineering in identifying variation points, their characteristics, and any impact of changes to them. This knowledge can be used by marketing and sales departments to identify potential variants of interest to different customers.
Cross-functional integration through traceability can be augmented by developing and using ontologies. Traceability schemas (like the one shown in Figure 1) can be derived from comprehensive ontologies based on project-specific parameters. They can provide a common vocabulary among stakeholders involved in cross-functional areas in PFE processes. While ontologies can provide a logical common ground, peer-to-peer (P2P) networks may be used to provide an infrastructural common ground. P2P networks can bring together stakeholders in PFE despite the diversity in the platforms used across their functional areas.
In summary, the knowledge-intensive nature of the process of managing variability in PFE demands high-end knowledge management practices. Improving the quality of designs and implementations to accommodate changes to variation points and dependent artifacts requires mature practices that involve using a schema-based, structured, and customized traceability approach that facilitates documentation of both topic and episodic knowledge. In general, high-end traceability practices in PFE organizations involve the integration of individually and collectively held knowledge. Such integration will result in significant process improvements as its role has been well recognized in improving organizational processes .
This study was conducted in three phases: First, we conducted a qualitative study in two organizations that develop large-scale product families. Data collected through semi-structured interviews with project managers and developers was analyzed using open, axial, and selective coding techniques of the grounded theory method . Based on this analysis, the high-end traceability knowledge schema that identifies key knowledge elements and traceability links among them (shown in Figure 1) was developed. In the second phase, we developed a traceability system that facilitates acquisition and use of this knowledge. In Phase 3, we experimentally evaluated the usefulness of the high-end traceability knowledge schema. This study assessed the impact of the type of traceability practice on the performance of participants in maintaining product family design. In addition, we analyzed verbal protocols of expert product family developers to gain insights into how high-end practices impact developer performance. These empirical studies suggest that high-end traceability practices significantly improve the performance of product family developers in maintenance tasks.
7. Ravichandran, T. and Rai, A. Structural analysis of the impact of knowledge creation and knowledge embedding on software process capability. IEEE Transactions on Engineering Management 50, 3 (2003), 270284.
©2007 ACM 0001-0782/07/1200 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2007 ACM, Inc.
No entries found