Product Line
  • Product lines are a way of structuring and managing the on-going development of a collection of related products in a highly efficient and cost-effective manner. In Software Product Line (SPL) development, a collection of related products is developed by combining reused core assets with product-specific custom assets that vary the functionality provided by the core assets.
  • Benefits: significant cost and effort reductions through large scale reuse of software product assets such as architectures, components, test cases and documentation. Also time and quality.
  • Software variation has a number of roles in SPL development. The most obvious role is to support functional differences in the features of the SPL. It can also be used to support non-functional differences (such as performance, scalability, or security)
  • SPL development is not simply a matter of architecture, design, and programming. SPL development impacts existing processes across the software development lifecycle, and requires new dimensions of process capability for the management of reused assets, products, and the overarching SPL itself.
  • 3 is the minimum number of product for a SPL.
  • SPL should be considered as ONE product not multiple products having things in common.


  • SPL development is usually described as making use of a Product Line Architecture (PLA). A PLA is a reuse-oriented architecture for the core assets in the SPL.

SCM for Reuse

  • Software configuration management for SPL development is more complicated than in normal product development partly because configuration identification (CI) is more complicated.
  • One approach to SCM for SPL development is for core assets and products each have their own line of development (LOD). Each product version includes its own custom assets, as well as versions of core assets.

Adopting SPL

  • Green fields: It's easier!
  • Ploughed fields: It is hard but there are mechanisms and patterns to start with!
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License