Software product lines
Encyclopedia
Software product lines, or software product line
development, refers to software engineering
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
.
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
and mass customization
paradigms.
and evolution
, 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.
Product lining
Product lining is the marketing strategy of offering for sale several related products. Unlike product bundling, where several products are combined into one, lining involves offering several related products individually. A line can comprise related products of various sizes, types, colors,...
development, refers to software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
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
Means of production
Means of production refers to physical, non-human inputs used in production—the factories, machines, and tools used to produce wealth — along with both infrastructural capital and natural capital. This includes the classical factors of production minus financial capital and minus human capital...
.
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 modelCar model
An automobile model is a particular brand of vehicle sold under a marque by a manufacturer, usually within a range of models, usually of different sizes or capabilities...
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
Order of magnitude
An order of magnitude is the class of scale or magnitude of any amount, where each class contains values of a fixed ratio to the class preceding it. In its most common usage, the amount being scaled is 10 and the scale is the exponent being applied to this amount...
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
Mass production is the production of large amounts of standardized products, including and especially on assembly lines...
and mass customization
Mass customization
Mass customization, in marketing, manufacturing, call centres and management, is the use of flexible computer-aided manufacturing systems to produce custom output...
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 maintenanceSoftware maintenance
Software Maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes....
and evolution
Software evolution
Software evolution is the term used in software engineering to refer to the process of developing software initially, then repeatedly updating it for various reasons.-General introduction:...
, 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.
See also
- Domain engineeringDomain engineeringDomain engineering, also called product line engineering, is the entire process of reusing domain knowledge in the production of new software systems. It is a key concept in systematic software reuse. A key idea in systematic software reuse is the application domain, a software area that contains...
- Feature ModelFeature modelFeature model is a compact representation of all the products of the Software Product Line in terms of "features". Feature models are visually represented by means of feature diagrams. Feature models are widely used during the whole product line development process and are commonly used as input...
- Feature-oriented Programming -- a paradigm for software product line development
External links
- Software Product Lines Carnegie Mellon Software Engineering InstituteSoftware Engineering InstituteThe Carnegie Mellon Software Engineering Institute is a federally funded research and development center headquartered on the campus of Carnegie Mellon University in Pittsburgh, Pennsylvania, United States. SEI also has offices in Arlington, Virginia, and Frankfurt, Germany. The SEI operates...
Web Site - Software Products Lines Community Web Site and Discussion Forums
- Introduction to the Emerging Practice of Software Product Line Development
- AMPLE Project
- Software Product Line Engineering Course, B. Tekinerdogan, Bilkent University
- Mohamed Zaatar, Haitham Hamza and Abd Elfattah Hegazy, Egypt