A Framework for Software Product Line Practice, Version 5.0
Product Line Essential Activities
At its essence, fielding a product line involves core asset development and product development using the core assets, both under the aegis of technical and organizational management. Core asset development and product development from the core assets can occur in either order: new products are built from core assets, or core assets are extracted from existing products. Often, products and core assets are built in concert with each other. The following figure illustrates this triad of essential activities.
The Three Essential Activities for Software Product Lines
Each rotating circle represents one of the essential activities. All three are linked together and in perpetual motion, showing that they are all essential, inextricably linked, and highly iterative, and can occur in any order.
The rotating arrows indicate not only that core assets are used to develop products, but also that revisions of existing core assets or even new core assets might, and most often do, evolve out of product development. The diagram above is neutral in regard to which part of the effort is launched first. In some contexts, already existing products are mined for generic assetsperhaps a requirements specification, an architecture, or software componentswhich are then migrated into the product line's core asset base. In other cases, the core assets may be developed or procured for later use in the production of products.
There is a strong feedback loop between the core assets and the products. Core assets are refreshed as new products are developed. The use of core assets is tracked, and the results are fed back to the core asset development activity. In addition, the value of the core assets is realized through the products that are developed from them. As a result, the core assets are made more generic by considering potential new products on the horizon. There is a constant need for strong, visionary management to invest resources in the development and sustainment of the core assets. Management must also precipitate the cultural change to view new products in the context of the available core assets. Either new products must align with the existing core assets, or the core assets must be updated to reflect the new products that are being marketed. Iteration is inherent in product line activitiesthat is, in turning out core assets and products and in coordinating the two. In the next three sections, we examine the three essential activities in greater detail.