A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets using specific software engineering methods, tools and techniques.
Manufacturers have long employed analogous engineering techniques to create a product line of similar products using a common factory that assembles and configures parts designed to be reused across the product line, for example, automotive manufacturers.
The characteristic of software product lines is to aim at predictive reuse while previous efforts have mainly been opportunistic approaches hoping to reuse software components stored into a library. It relies on specific techniques to model an manage variability and configuration.
Recent advances in the software product line field have demonstrated that narrow and strategic application of these concepts can yield order of magnitude improvements in software engineering capability.