CERT-SEI

Software Product Line Practice Patterns

Patterns are a common way of expressing common contexts and problem-solution pairs. Design patterns are a well-known example in software. In software product line engineering, patterns can be used to show how aggregations of practice areas (as defined in the Framework for Software Product Line Practice) can be orchestrated to solve recurring problems:

  • The context is the organizational situation.
  • The problem is what part of a software product line effort needs to be accomplished.
  • The solution is the grouping of practice areas and the relations among them that together address the problem for that context.

The book Software Product Lines: Practices and Patterns defines 12 patterns and 11 variants, including:

  • The Essentials Coverage pattern gives a mapping of each practice area to each of the three essential product line activities: core asset development, product development, and management.
  • The Each Asset pattern shows how the practice areas should be used whenever any asset in the core asset base is being developed.
  • The What to Build pattern uses practice areas that help an organization determine what products ought to be in its software product line - what products to build.
  • The Product Parts pattern is a composite pattern. It consists of practice areas and other patterns that should be used to develop the core assets that will be part of the products in the product line.
  • The Assembly Line pattern consists of practice areas that should be used to set up and run the production capability of a software product line.
  • The Monitor pattern consists of practice areas that all serve to monitor an ongoing product line effort and apply course corrections to keep activities on track.
  • The Product Builder pattern consists of practice areas that should be used whenever any product in the product line is being developed.
  • The Cold Start pattern consists of practice areas that should be used whenever any organization is launching a software product line for the first time
  • The In Motion pattern consists of practice areas that keep a product line effort going after it has been launched. In Motion is really a variant of Cold Start but is described separately because it plays a major role in product line efforts.
  • The Process pattern consists of practice areas that should be used to support all of the activities in a product line that require processes.
  • The Factory pattern is a composite pattern that describes the entire product line organization.

Related Products and Services

Products and services associated with this work include

Software Product Line Curriculum and Certificate Programs

Publications

Further Reading

Software Product Line Adoption Roadmap
Linda M. Northrop
This report introduces a variant of the Factory Pattern called the Adoption Factory pattern that provides a generic roadmap to guide a manageable, phased product line adoption strategy.