Product-family engineering (PFE), also known as product-line engineering, is a synonym for 'domain engineering' created by the Software Engineering Institute, a term coined by James Neighbors in his 1980 dissertation at University of California, Irvine. Software product lines are quite common in our daily lives, but before a product family can be successfully established, an extensive process has to be followed. This process is known as product-family engineering.The product family engineering process consists of several phases. The three main phases are:On the left side the entire process from the top to bottom has been drawn. All activities on the left side are linked to the concepts on the right side through dotted lines. Every concept has a number, which reflects the association with other concepts.Below the list with concepts will be explained. Most concept definitions are extracted from Pohl, Bockle, & Linden (2005) and also some new definitions have been added.DomainanalysisDocument contains an analysis of thedomain through which common and variable requirements can be split up.Reusablecommon requirementsDocument contains requirements that arecommon to all products in the product line.Variable requirementsDocument contains derivation ofcustomised requirements for different products.ReferenceArchitectureDetermines the static and dynamicdecomposition that is valid for all products of the product line. Also thecollection of common rules guiding the design, realisation of the parts, andhow they are combined to form products.VariabilitymodelDefines the variability of the product line.Design & implementation assets of reusable componentsThe major components for the design andimplementation aspects, which are relevant for the whole product family.TestresultsThe output of the tests performed indomain testing.Reusabletest artifactsTest artifacts include the domain testplan, the domain test cases, and the domain test case scenarios.RequirementsspecificationsThe requirements for a particularproduct.ProductarchitectureComparable to reference architecture, butthis contains the product specific architecture.RunningapplicationA working application that can be testedlater on.Detaileddesign artifactsThese include the different kinds ofmodels that capture the static and dynamic structure of each component.TestreportDocument with all test results of theproduct.ProblemreportDocument, which lists all problemsencountered while testing the product.FinalproductThe delivery of the completed product.FamilymodelThe overlapping concept of all familymembers with all sub products.FamilymemberThe concept of the individual product.ContextdocumentDocument containing important informationfor determining the scope; containing guidelines, constraints and productionstrategy.GuidelinesMarket/business/product guidelinesConstraintsMarket/business/product constraintsProductstrategyProduct strategy with regard to marketsProductportfolio descriptionPortfolio containing all availableproducts, with important properties.List ofcurrent & future productsA list of all current products and theproducts that will be produced in the future.ProductroadmapDescribes the features of all products ofthe product line and categorises the feature into common features that arepart of each product and variable features that are only part of someproducts.There are some good examples of the use of product family engineering, which were quite successful. The abstract model of product family engineering allows different kinds of uses, most of them are related to the consumer electronics market. Below an example is given of an application of the product line engineering process, based on a real experience of Nokia.