Product Lines
A Product Line is a strategy to exploit the commonality between similar software-intensive products and systems for achieving significant cost, schedule and quality benefits. An underlying assumption is that a shared set of software assets, including the software architecture (platform), is the basis for the product line. Another assumption is that the products or systems meet the needs of a particular market, market segment or domain.
Benefits of a software Product Line are
- Productivity gains.
- Decreased time to market for new products.
- Increased product quality.
- Ability to achieve mass customization.
- Higher predictability for product deployment.
The major and most important difference between a Product Line approach and other software reuse approaches is that Product Lines deal with predictable software reuse. In many other reuse approaches components or routines are developed, inserted and searched for in a library (repository) and then hopefully found and reused. In the case of product lines, the organization has initially identified what products that should be part of the product line and thus it is possible to identify and decide what software assets that are supposed to be developed for reuse, and reuse them (!).
The Product Line paradigm strives to imitate the manufacturing field where a product line of similar products are manufactured in a factory that assembles and configures parts designed to be used in different products in the product line.
Thus, specific issues to deal with in Product Lines are
- software assets and architectures for the product line.
- what is common between systems, when and how to design for variability among the products and how to manage the variation.
- inclusion or exclusion of potential products for the product line, i.e. deciding the scope of the product line.
- means of production of products (product derivation) i.e. how to generate, assemble and configure products from the software assets and architecture.
Of course there are other things such as economical considerations, configuration management, process changes and introduction of processes as well as organizational issues to consider when adopting a Product Line approach.
Hopefully, this short introduction text has made you more interested in Product Lines so please browse around in IEEE SE Online’s Product Lines area.