An introduction to product line engineering terminology

The difference between the almost right word and the right word is really a large matter – ’tis the difference between the lightning-bug and the lightning. – Mark Twain, letter to George Bainton,

Innovation requires words – Daniel Moul

Introduction

I’m in the market for a new car and I’ve been spending my spare time visiting showrooms looking at the 2014 and 2015 product lines. Often when I get behind the wheel of a new car, I’ll notice parts or features that are identical to parts or features from another car. This strategic reuse of parts enables the manufacturer to more efficiently offer a wide range of products meeting a broad set of needs.

Many organizations use product lines to develop and sell their products. Products can be built from a common platform and share common components. By strategically reusing software and hardware components, organizations can reduce costs by eliminating duplication, and they improve efficiency allowing new products to go to market faster. Product line engineering is a multidisciplinary engineering practice that enables strategic reuse throughout the complete lifecycle of product development.

Product line engineering is used by organizations from a wide variety of industries such automotive, electronic, and defense. As a result, terminology can vary greatly from one industry to another. This article describes the terminology used in IBM Rational products to support these diverse industries. We are making an effort to use more consistent terminology across products and would appreciate your input.

The things we produce

Organizations develop complex products like cars and telephones that we purchase from a store or business. The car I see in the showroom contains parts made by the car manufacturer, parts manufactured by suppliers, and products (tires, stereo) made by other manufacturers. The manufacturer assembles the car from a large and specific set of components.

From a consumer point of view, product lines help us focus on the type of product we want to buy. When I shop for a new car, I might look at cars in a particular product line, choosing the car with the features that most interest me. Each car in the product line is a variant of another.

Here are a few definitions related to products:

Product
Something produced that is marketed or sold. A product is formed from a specific configuration of component parts, which can be physical objects or software.

Product lines
A group of closely related products that are variants of each other. Products that make up a product line are often produced from a common base or architecture.

Variant
A version of an artifact or a product that is identified by a specific set of characteristics that distinguish it from other artifacts or products in the product line, where each variant can exist at the same time as other versions of the artifact or product.

How we manage complexity

I have no idea how many parts go into a car today but I know when I look under the hood of a new car, things look a lot more complicated than what I saw in my first car, a 1984 Firebird. Cars today are full of electronic parts. Manufacturers have to track the designs for all these parts, knowing where they are used across the product line. If any part needs an update, it must be updated in all the products containing that part. That’s a lot to track.

Each part used in a product has associated requirements specifications, designs, software, test plans and more. We use the generic word artifact to refer to any object used in the engineering or design process. Artifacts, like the products they describe, have versions. Artifacts may be grouped into components so they can be more easily tracked and reused.

A configuration is used to track a set of unique versions of artifacts. Configurations typically are frozen when the design of a component is complete, forming a baseline. When I look in the showroom at a 2014 SUV, I know that behind the scenes there are configurations describing every part in that version of the vehicle.

Here are terms related to product design and development:

Artifact
An entity that is used or produced by an engineering design or development process. Examples include designs, requirements specifications, software source files for a project, plans, scripts, simulations, models, test plans, and binary executable files. In an HTTP context, artifacts have a URI and are called resources.

Version
A referenceable state of an artifact. In some tools, versions are created automatically when changes are saved, while with others versions are created explicitly with check-out and check-in operations. A revision is a version reflecting a change to the state of an artifact over time, while a variant can exist at the same time as other variants of the artifact or product, and each variant is typically identified by a specific set of distinguishing characteristics.

Component
A unit of organization that enables reuse, consisting of a set of engineering artifacts.

Configuration
A set of specific versions of artifacts. Configurations commonly identify one version of each artifact in the set. The artifacts can be unchanging (from a baseline) or open to change (in development). In some systems, configurations can be hierarchical, so that they contain other configurations.

Stream
A modifiable configuration of artifacts from one or more components. For example, team members deliver to a stream when they want to make their changes visible to other team members, having first made those changes in a stream.

Baseline
An uneditable or frozen configuration of artifacts from one or more components. Baselines are useful for enabling a team to work with a known configuration, or as an initial state for some new stream of work.

Tell us what you think

The terms described in this article will be used by IBM products supporting product line engineering such as Rational Engineering Lifecycle Manager, Rational DOORS Next Generation, Rational Quality Manager, Rational Team Concert, and Rational Rhapsody Design Manager. Do these terms work for your engineering teams? Let us know by adding a comment below.

Now I need to find the variant of the vehicle in my favorite product line with the configuration of components that best meets my needs. It might turn out to be a small red convertible.


About the author

Bob Fraser is a senior manager with IBM Rational. He manages documentation teams for Rational Engineering Lifecycle Manager, Rational Rhapsody and Rational Rhapsody Design Manager. He can be contacted at bfraser@ca.ibm.com.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.
Feedback
Was this information helpful? Yes No 5 people rated this as helpful.