Variability in Software Product Lines

Abstract : Product line engineering is a widely used approach for the efficient development of whole portfolios of software products. The basis of the approach is that products are built from a core asset base, a collection of artifacts that have been designed specifically for use across the portfolio. To account for differences among the software products, some adaptations of the core assets are usually required. These adaptations should be planned before development and made easy for the product developers to use without jeopardizing existing properties of the core assets. In a product line with a large number of products and core assets, as well as requirements to make fine-grained adjustments, managing variability can become problematic very quickly. Mismanagement may result in adding unnecessary variability, implementing variation mechanisms more than once, selecting incompatible or awkward variation mechanisms, and missing required variations. As the product line grows and evolves, the need for variability increases, and managing the variability grows increasingly difficult. This report describes the concepts needed when creating core assets with included variability. These concepts provide guidelines to core asset creators on how to model the variability explicitly, so it is handled consistently throughout the product line and managing the variability becomes feasible.

[1]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[2]  Linda M. Northrop,et al.  A Framework for Software Product Line Practice , 1999, ECOOP Workshops.

[3]  Paul Clements,et al.  The Structured Intuitive Model for Product Line Economics (SIMPLE) , 2005 .

[4]  John D. McGregor,et al.  Project management in a software product line organization , 2005, IEEE Software.

[5]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[6]  Charles W. Krueger New Methods Behind the New Generation of Software Product Line Success Stories , 2007, SPLC.

[7]  Thomas P. Flanders,et al.  Performing Organization Name(s) and Address(es) , 2001 .

[8]  John D. McGregor,et al.  Initiating software product lines , 2002, IEEE Software.

[9]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[10]  Paul Clements,et al.  Salion, Inc.: A Software Product Line Case Study , 2002 .

[11]  Jan Bosch,et al.  Representing Variability in Software Product Lines: A Case Study , 2002, SPLC.

[12]  M. Pursley Report Documentation Page Form Approved Omb No. 0704-0188 Please Do Not Return Your Form to the above Address. 1. Report Date (dd-mm-yyyy) Final Technical Report Receiver Statistics for Cognitive Radios in Dynamic Spectrum Access Networks Onr , 2007 .

[13]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[14]  Paul Clements,et al.  A framework for software product line practice - version 2 , 1999 .

[15]  Andreas Hein,et al.  Modeling and Using Product Line Variability in Automotive Systems , 2002, IEEE Softw..

[16]  Jaejoon Lee,et al.  Concepts and Guidelines of Feature Modeling for Product Line Software Engineering , 2002, ICSR.

[17]  Charles W. Krueger Towards a Taxonomy for Software Product Lines , 2003, PFE.

[18]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[19]  Gary J. Chastek,et al.  Guidelines for Developing a Product Line Production Plan , 2002 .

[20]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[21]  IEEE-SA Standards Board , 2000 .

[22]  Cristina Gacek,et al.  Implementing product line variabilities , 2001, SSR '01.