Software Production Line
   HOME

TheInfoList



OR:

Software product lines (SPLs), or software
product line In marketing jargon, product lining refers to the offering of several related product (business), products for individual sale. Unlike product bundling, where several products are combined into one group, which is then offered for sale as a uni ...
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 In political philosophy, the means of production refers to the generally necessary assets and resources that enable a society to engage in production. While the exact resources encompassed in the term may vary, it is widely agreed to include the ...
. The Carnegie Mellon
Software Engineering Institute Software Engineering Institute (SEI) is a Federally funded research and development centers, federally funded research and development center in Pittsburgh, Pennsylvania, United States. Founded in 1984, the institute is now sponsored by the Uni ...
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 Code reuse is the practice of using existing source code to develop software instead of writing new code. ''Software reuse'' is a broader term that implies using any existing software asset to develop software instead of developing it again. An as ...
. Rather than put general
software components Component-based software engineering (CBSE), also called component-based development (CBD), is a style of software engineering that aims to construct a software system from components that are loosely-coupled and reusable. This emphasizes the sep ...
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 In a ratio scale based on powers of ten, the order of magnitude is a measure of the nearness of two figures. Two numbers are "within an order of magnitude" of each other if their ratio is between 1/10 and 10. In other words, the two numbers are ...
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 A software factory is a structured collection of related software assets that aids in producing computer software applications or software components according to specific, externally defined end-user requirements through an assembly process. A s ...
*
Domain engineering Domain 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 and product line engineering. A key idea in systematic software reuse is the domain. M ...
* 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 Product-family engineering (PFE), also known as product-line engineering, is based on the ideas of " domain engineering" created by the Software Engineering Institute, a term coined by James Neighbors in his 1980 dissertation at University of Cal ...


References

{{Reflist


External links



Software Product Lines Essentials, page 19. Carnegie Mellon
Software Engineering Institute Software Engineering Institute (SEI) is a Federally funded research and development centers, federally funded research and development center in Pittsburgh, Pennsylvania, United States. Founded in 1984, the institute is now sponsored by the Uni ...
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
Software project management Software industry