Software product lines


Software product lines

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.

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 tens of thousands of unique variations of one car model using a single pool of carefully designed parts and one 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 hopes 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.

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 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.

See Also

*Domain engineering
*Feature-oriented Programming -- a paradigm for software product line development

External links

* [http://www.sei.cmu.edu/productlines Software Product Lines] Carnegie Mellon Software Engineering Institute Web Site
* [http://www.softwareproductlines.com Software Products Lines] Community Web Site and Discussion Forums


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Multiagent systems product lines — On the one hand, the field of Software Product Lines (SPL) covers all the software development lifecycle necessary to develop a family of products where the derivation of concrete products is made systematically and rapidly. On the other hand,… …   Wikipedia

  • Product Family Engineering — Product families/lines are quite common in our daily lives, but before a product family can be successfully established, an extensive process has to be followed. This process is known as product family engineering, product line engineering, and… …   Wikipedia

  • Software Engineering Institute — The Carnegie Mellon Software Engineering Institute (SEI) 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 …   Wikipedia

  • Software-Ökosystem — Ein Software Ökosystem (engl. software ecosystem) beschreibt das Zusammenspiel zwischen Organisationen und Unternehmen auf einem geteilten Markt für Softwareentwicklung und Webservices. Hierbei stehen die Beteiligten in ihren Netzwerken und den… …   Deutsch Wikipedia

  • Software-defined radio — A Software Defined Radio (SDR) system is a radio communication system where components that have typically been implemented in hardware (i.e. mixers, filters, amplifiers, modulators/demodulators, detectors. etc.) are instead implemented using… …   Wikipedia

  • Software Lifecycle Processes — are methods and standards for improving and mastering development processes, supporting processes and management processes throughout the software lifecycle.The quest for the optimized mix of processes has resulted in different standards… …   Wikipedia

  • Software testing — is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test [ [http://www.kaner.com/pdfs/ETatQAI.pdf Exploratory Testing] , Cem Kaner, Florida Institute of Technology,… …   Wikipedia

  • Software Innovation — can be understood in (at least) two ways:1. Software Product Innovation the creation of novel and useful software programs.2. Software Process Innovation the introduction of novel and useful ways of developing software.Innovation should be… …   Wikipedia

  • Software Sizing — is an important activity in software engineering that is used to estimate the size of a software application or component in order to be able to implement other software project management activities (such as estimating or tracking). Size is an… …   Wikipedia

  • Software quality — Contents 1 Motivation for Defining Software Quality 2 Definition 3 Alternative Approaches to Software Quality Defin …   Wikipedia