A Software Product Line, or Product Family, is a set of software products that share common features but are each different in some way e.g. they may be tailored for specific customers or markets, or, for embedded software, they may be adapted to fit the characteristics specific target devices.
The key characteristics of a Software Product Line are:
- Shared features - the set of products and features in the Product Line is specified in a way that ensures that many of the requirements of individual products in the Product Line are shared by other products in the Product Line. This allows software that implements shared features to be developed once and reused multiple times.
- Market Focus - the Product Line is usually aimed at a well-defined market segment. This makes development of reusable software efficient by limiting the scope in which that software has to be reused.
- Systematic reuse - the benefits of Product Lines arise because the cost of developing reusable software is spread across all products that use it.
- Single production process - each product is built using the same production process. This makes it easier for products to be created and also makes it economic for the organisation to invest in tools to automate the production process.