The product family engineering process consists of several phases. The three main phases are: • Phase 1:
Product management • Phase 2:
Domain engineering • Phase 3:
Product engineering The process has been modeled on a higher abstraction level. This has the advantage that it can be applied to all kinds of product lines and families, not only
software. The model can be applied to any product family. Figure 1 (below) shows a model of the entire process. Below, the process is described in detail. The process description contains elaborations of the activities and the important concepts being used. All concepts printed in italic are explained in Table 1.
Phase 1: product management The first phase is the starting up of the whole process. In this phase some important aspects are defined especially with regard to economic aspects. This phase is responsible for outlining market strategies and defining a
scope, which tells what should and should not be inside the product family.
Evaluate business visioning During this first activity all context information relevant for defining the scope of the product line is collected and evaluated. It is important to define a clear market strategy and take external market information into account, such as consumer demands. The activity should deliver a
context document that contains
guidelines,
constraints and the
product strategy.
Define product line scope Scoping techniques are applied to define which aspects are within the scope. This is based upon the previous step in the process, where external factors have been taken into account. The output is a
product portfolio description, which includes a
list of current and future products and also a
product roadmap. It can be argued whether phase 1, product management, is part of the product-family-engineering process, because it could be seen as an individual
business process that is more focused on the management aspects instead of the product aspect. However phase 2 needs some important input from this phase, as a large piece of the scope is defined in this phase. So from this point of view it is important to include the product-management phase (phase 1) into the entire process as a base for the domain-engineering process.
Phase 2: domain engineering During the domain-engineering phases, the variable and common requirements are gathered for the whole product line. The goal is to establish a reusable platform. The output of this phase is a set of
common and variable requirements for all products in the product line.
Analyze domain requirements This activity includes all activities for analyzing the domain with regard to concept requirements. The requirements are categorized and split up into two new activities. The output is a document with the
domain analysis. As can be seen in Figure 1 the process of defining common requirements is a parallel process with defining variable requirements. Both activities take place at the same time.
Define common requirements Includes all activities for eliciting and documenting the common requirements of the product line, resulting in a document with
reusable common requirements.
Define variable requirements Includes all activities for eliciting and documenting the variable requirements of the product line, resulting in a document with
variable requirements.
Design domain This process step consists of activities for defining the
reference architecture of the product line. This generates an
abstract structure for all products in the product line.
Implement domain During this step a detailed design of the reusable components and the implementation of these components are created.
Test domain Validates and verifies the reusability of components. Components are tested against their specifications. After successful testing of all components in different use cases and scenarios, the domain engineering phase has been completed.
Phase 3: product engineering In the final phase a product X is being engineered. This product X uses the commonalities and variability from the domain engineering phase, so product X is being derived from the platform established in the domain engineering phase. It basically takes all common requirements and similarities from the preceding phase plus its own variable requirements. Using the base from the domain engineering phase and the individual requirements of the product engineering phase a complete and new product can be built. After the product has been fully tested and approved, the product X can be delivered.
Define product requirements Developing the product
requirements specification for the individual product and reuse the requirements from the preceding phase.
Design product All activities for producing the product
architecture. Makes use of the reference architecture from the step "design domain", it selects and configures the required parts of the
reference architecture and incorporates product specific adaptations.
Build product During this process the product is built, using selections and configurations of the
reusable components.
Test product During this step the product is verified and validated against its specifications. A test report gives information about all tests that were carried out, this gives an overview of possible errors in the product. If the product in the next step is not accepted, the process will loop back to "build product", in Figure 1 this is indicated as "[unsatisfied]".
Deliver and support product The final step is the acceptance of the final product. If it has been successfully tested and approved to be complete, it can be delivered. If the product does not satisfy to the specifications, it has to be rebuilt and tested again. The next figure shows the overall process of product-family engineering as described above. It is a full process overview with all concepts attached to the different steps. ==Process data diagram==