NEWS AT SEI
This article was originally published in News at SEI on: January 1, 2005
Over the past several years, software product line practice has emerged as an important and viable software development paradigm. Instead of building suites of related software-intensive systems separately, companies of all sizes and in all application areas are learning to build them as a family from a common set of core assets in a prescribed way. Software product line practice has resulted in dramatic (sometimes order-of-magnitude) improvements in time to market, flexibility, productivity, and product quality.
The Product Line Practice (PLP) program at the Software Engineering Institute (SEI) exists to help build and nurture a community of practitioners and researchers interested in improving the state of software product line engineering. Members of the initiative are working to make software product line practice a low-risk, high-payoff undertaking for developing families of related systems. To this end, the SEI maintains a comprehensive Framework for Software Product Line Practice, describing 29 key technical and managerial practice areas for successful creation and sustainment of a software product line sponsors a successful series of international Software Product Line Conferences maintains an active web site where visitors can find and download the latest information about software product lines has defined a number of software product line practice patterns [Clements and Northrop 02], which help organizations carry out practices in a structured, planned, predictable way
But the primary mission of this initiative is to help organizations make the transition to successful software product line practice. An organization that does not know how to go about this transition is unlikely to succeed without great difficulty and cost. To help organizations adopt software product line practices, the SEI recently defined a roadmap based on the Adoption Factory pattern [Northrop 04]. Adoption Factory is a pattern that describes the entire product line organization. It is a composite of eight other patterns, showing how they are orchestrated to accomplish the overall objective of setting up and maintaining a software product line capability:
- What to Build, which helps organizations decide on the set of products to be included in the product line
- Each Asset, which shows organizations how to build individual core assets
- Product Parts, which shows how to supply the core assets from which products will be built
- Assembly Line, which helps organizations establish the production infrastructure
- Product Builder, which shows how to produce the individual products in the product line
- Cold Start, which prepares the organization for its first product line operation
- In Motion, which shows how to keep the product line organization running
- Monitor, which shows how to maintain a picture of how well the product line organization is running
Figure 1: Adoption Factory Pattern
These patterns are in turn defined in terms of the Framework practice areas that each one puts into action and shows how those practice areas are used in concert to produce the desired outcome of each pattern. In addition, Adoption Factory appeals to the “Process Definition” practice area directly, to emphasize an organization’s need to define and carry out disciplined processes.
Adoption Factory becomes useful as a roadmap when it is annotated showing
- temporal phases of product line adoption (“establish the context,” “establish the production capability,” and “operate the product line”)
- focus areas on which the patterns and practice areas in Adoption Factory operate (products, processes, and the organization itself)
- the practice areas involved in each part of the pattern
- the artifacts (such as a production plan, or a concept of operations, or a scope definition) produced in each part of the pattern
- the organizational roles carrying the primary responsibility for each part of the pattern
For instance, the figure above shows the pattern annotated with phases and focus areas. This can allow a decision-maker to identify where his or her organization currently is with respect to achieving full software product line capability.
At the SEI, Adoption Factory serves as the unifying theme for several products and services; for example,
The PLP Initiative is actively seeking to assist organizations wishing to embrace the software product line approach. A structured, methodical, step-by-step adoption strategy is the cornerstone for a successful transition, and Adoption Factory provides the blueprint.
L. Northrop. Product Line Adoption Roadmap (CMU/SEI-2004-TN-035). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2004.
[Clements and Northrop 02]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns, Boston, MA: Addison Wesley Longman, 2002.