Key activities for product derivation in software product lines

More and more organizations adopt software product lines to leverage extensive reuse and deliver a multitude of benefits such as increased quality and productivity and a decrease in cost and time-to-market of their software development. When compared to the vast amount of research on developing product lines, relatively little work has been dedicated to the actual use of product lines to derive individual products, i.e., the process of product derivation. Existing approaches to product derivation have been developed independently for different aims and purposes. While the definition of a general approach applicable to every domain may not be possible, it would be interesting for researchers and practitioners to know which activities are common in existing approaches, i.e., what are the key activities in product derivation. In this paper we report on how we compared two product derivation approaches developed by the authors in two different, independent research projects. Both approaches independently sought to identify product derivation activities, one through a process reference model and the other through a tool-supported derivation approach. Both approaches have been developed and validated in research industry collaborations with different companies. Through the comparison of the approaches we identify key product derivation activities. We illustrate the activities' importance with examples from industry collaborations. To further validate the activities, we analyze three existing product derivation approaches for their support for these activities. The validation provides evidence that the identified activities are relevant to product derivation and we thus conclude that they should be considered (e.g., as a checklist) when developing or evaluating a product derivation approach.

[1]  Ita Richardson,et al.  Important issues and key activities in product derivation: experiences from two independent research projects , 2009, SPLC.

[2]  Jacques Klein,et al.  Reconciling Automation and Flexibility in Product Derivation , 2008, 2008 12th International Software Product Line Conference.

[3]  Marco Sinnema,et al.  The COVAMOF Derivation Process , 2006, ICSR.

[4]  John D. McGregor Preparing for Automated Derivation of Products in a Software Product Line , 2005 .

[5]  Alexander Egyed,et al.  Tool Support for Incremental Consistency Checking on Variability Models , 2010, VaMoS.

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

[7]  Dirk Muthig,et al.  PuLSE-I: Deriving instances from a product line infrastructure , 2000, Proceedings Seventh IEEE International Conference and Workshop on the Engineering of Computer-Based Systems (ECBS 2000).

[8]  Klaus Pohl,et al.  Communicating the variability of a software-product family to customers , 2004, Informatik Forschung und Entwicklung.

[9]  Paul Grünbacher,et al.  Supporting Product Derivation by Adapting and Augmenting Variability Models , 2007, 11th International Software Product Line Conference (SPLC 2007).

[10]  Marco Sinnema,et al.  Product derivation in software product families: a case study , 2005, J. Syst. Softw..

[11]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[12]  Ita Richardson,et al.  Developing a product derivation process framework for software product line organisataions , 2008 .

[13]  Paul Grünbacher,et al.  Model-Based Customization and Deployment of Eclipse-Based Tools: Industrial Experiences , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[14]  M. Hammersley,et al.  Case Study Method: Key Issues, Key Texts , 2000 .

[15]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[16]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[17]  Marco Sinnema,et al.  Industrial validation of COVAMOF , 2008, J. Syst. Softw..

[18]  Muhammad Ali Babar,et al.  Product derivation process and agile approaches:exploring the integration potential , 2007 .

[19]  Paul Grünbacher,et al.  Three-Level Customization of Software Products Using a Product Line Approach , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[20]  Luiz Fernando Capretz,et al.  Software Product Lines: A Process Assessment Methodology , 2010 .

[21]  K. Schmid,et al.  Introducing the PuLSE approach to an embedded system population at Testo AG , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[22]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[23]  P. Muller 33rd Euromicro Conference on Software Engineering and Advanced Applications - Seaa 2007 , 2008 .

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

[25]  Marco Sinnema,et al.  Modeling dependencies in product families with COVAMOF , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[26]  Mari Matinlassi,et al.  Comparison of software product line architecture design methods: COPA, FAST, FORM, KobrA and QADA , 2004, Proceedings. 26th International Conference on Software Engineering.

[27]  Paul Grünbacher,et al.  Structuring the modeling space and supporting evolution in software product line engineering , 2010, J. Syst. Softw..

[28]  Pádraig O'Leary,et al.  Towards a product derivation process reference model for software product line organisations , 2010 .

[29]  Klaus Schmid,et al.  A customizable approach to full lifecycle variability management , 2004, Sci. Comput. Program..

[30]  Colin Atkinson,et al.  Component-based product line development: the KobrA Approach , 2000, SPLC.

[31]  Patrick Donohoe,et al.  Product Line Production Planning for the Home Integration System Example , 2002 .

[32]  Marco Sinnema,et al.  COVAMOF: A Framework for Modeling Variability in Software Product Families , 2004, SPLC.

[33]  Fergal McCaffery,et al.  An agile process model for product derivation in software product line engineering , 2012, J. Softw. Evol. Process..

[34]  Rick Rabiser,et al.  Tool Support for Evolution of Product Lines through Rapid Feedback from Application Engineering , 2010, VaMoS.

[35]  Roy Sterritt,et al.  Engineering of Computer Based Systems, The 15th Annual IEEE International Conference and Workshop on the (ecbs 2008) , 2008 .

[36]  Martin L. Griss,et al.  Implementing Product-Line Features with Component Reuse , 2000, ICSR.

[37]  Deepak Dhungana,et al.  Integrated Support for Product Configuration and Requirements Engineering in Product Derivation , 2007, 33rd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO 2007).

[38]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[39]  K. Czarnecki,et al.  Cardinality-Based Feature Modeling and Constraints : A Progress Report , 2005 .

[40]  Jordi Cabot,et al.  Doctoral Symposium , 2004, UML Satellite Activities.

[41]  Ita Richardson,et al.  Towards a product derivation process framework , 2008 .

[42]  Contents , 2009, Clinical Neurophysiology.

[43]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[44]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[45]  Paul Grünbacher,et al.  Requirements for product derivation support: Results from a systematic literature review and an expert survey , 2010, Inf. Softw. Technol..