Product line analysis (PLA) is early requirements engineering for a product line; it is the link between the recognition of a business opportunity and the design of a product line architecture. It incorporates the views of multiple product line stakeholders in a preliminary requirements model that includes the functional features of products and the software quality attributes (e.g., performance, modifiability) of both the products and their development. The stakeholders include marketers, managers, customer representatives, and architects. The requirements model created by product line analysis identifies common requirements across the product line and their allowed variants.
A product line succeeds because the commonalities shared by the
software products can be exploited to achieve economies of production.
Once an initial business case, market analysis, and scope have been
established for the product line, you should consider the following:
- How do you capture and represent the driving product line requirements?
- How do you communicate those early requirements to the product line stakeholders?
- How do you ensure that these requirements form a useful AND used basis for the creation of product line assets and products?
PLA systematically identifies opportunities for large-grained reuse across the product line. The modeling process incorporates the organization's business goals and constraints, clarifies and refines assumptions about the product line scope, and provides early feedback on the technical feasibility of the product line.
Who Would Benefit
Beneficiaries of PLA include managers seeking to minimize the risk of adopting software product lines, and asset developers (including architects) who need usable AND useful representations of requirements.
Examples of Use
A joint SEI-customer team used an early version of product line analysis to define the requirements for a product line of automotive software. The requirements model captured common requirements and variation points and allowed early exploration of the product line architecture to proceed in parallel with detailed requirements engineering.
Product line analysis identifies opportunities for large-grained reuse across a product line; hence, it is not concerned with all the requirements. It is an iterative, incremental process of eliciting, analyzing, specifying, and verifying the early requirements for a product line, based on an initial business case and market analysis. The output of the process is a requirements model comprising four interrelated work products. The work products are based on object modeling, use case modeling, and feature-modeling techniques:
- The use case model specifies the product line stakeholders and their key interactions with the product line. Those stakeholders will verify the acceptability of the product line (and of the requirements).
- The feature model specifies the stakeholders' views of the product line. It captures the functional features of products and the software quality attributes of the product line and its products.
- The object model specifies the product line responsibilities that support those features, and the commonality and variability of the responsibilities.
- The dictionary defines the terminology utilized in the work products and supports a consistent view of the product line requirements.
Together these work products form the basis of a systematic method for capturing and refining requirements for current products, future envisioned products, stakeholder needs and expectations, and associated rationales and tradeoffs. Use cases and features drive the elicitation of the product line requirements. Features and objects are analyzed for commonalities and variabilities, consistency, quality, interactions, and priority. The product line stakeholders verify the accuracy and completeness of the requirements.
SEI staff is available to conduct a workshop or tutorial on product line analysis. Contact us using the link in the For more information box at the bottom of this page.
Related SEI Products and Services
Framework for Software Product Line Practice
Software Product Lines: Practices and Patterns
Product Lines Training and Publications