Software product lines (SPLs), or software
product line development, refers to
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common
means of production.
The Carnegie Mellon
Software Engineering Institute defines a ''software product line'' as "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 in a prescribed way."
Description
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 can create unique variations of one
car model
The model of a car is its design, in the context of the manufacturer's range or series of cars. Different models, variants are distinguishable by technology, components, underpinnings, and/or style and appearance.
The methods used to categorise ...
using a single pool of carefully designed parts and a factory specifically designed to configure and assemble those parts.
The characteristic that distinguishes software product lines from previous efforts is predictive versus opportunistic
software reuse. Rather than put general
software components into a library in the hope that opportunities for reuse will arise, software product lines only call for software artifacts to be created when reuse is predicted in one or more products in a well defined product line.
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. The result is often a discontinuous jump in competitive business advantage, similar to that seen when manufacturers adopt
mass production
Mass production, also known as mass production, series production, series manufacture, or continuous production, is the production of substantial amounts of standardized products in a constant flow, including and especially on assembly lines ...
and
mass customization
Mass customization makes use of flexible computer-aided systems to produce custom products. Such systems combine the low unit costs of mass production processes with the flexibility of individual customization.
Mass customization is the new fro ...
paradigms.
Development
While early software product line methods at the genesis of the field provided the best software engineering improvement metrics seen in four decades, the latest generation of software product line methods and tools are exhibiting even greater improvements. New generation methods are extending benefits beyond product creation into
maintenance
The technical meaning of maintenance involves functional checks, servicing, repairing or replacing of necessary devices, equipment, machinery, building infrastructure and supporting utilities in industrial, business, and residential installa ...
and
evolution
Evolution is the change in the heritable Phenotypic trait, characteristics of biological populations over successive generations. It occurs when evolutionary processes such as natural selection and genetic drift act on genetic variation, re ...
, lowering the overall complexity of product line development, increasing the scalability of product line portfolios, and enabling organizations to make the transition to software product line practice with orders of magnitude less time, cost and effort.
Recently the concepts of software product lines have been extended to cover systems and software engineering holistically. This is reflected by the emergence of industry standard families like ISO 265xx on systems and software engineering practices for product lines.
[.]
See also
*
Software factory
*
Domain engineering
*
Feature model
*
Feature-oriented programming
In computer programming, feature-oriented programming (FOP) or feature-oriented software development (FOSD) is a programming paradigm for program generation in software product lines (SPLs) and for incremental development of programs.
History
F ...
– a paradigm for software product line development
*
Product Family Engineering
References
{{Reflist
External links
Software Product Lines Essentials, page 19. Carnegie Mellon
Software Engineering Institute Web Site
Software Products LinesCommunity Web Site and Discussion Forums
Introduction to the Emerging Practice of Software Product Line DevelopmentAMPLE ProjectSoftware Product Line Engineering Course, B. Tekinerdogan, Bilkent University
Software project management
Software industry