A review on variability mechanisms for product lines

Software product line SPL is an approach that develops a family of similar software products by maximising the reusability of development artefacts. Variability that differentiates a product from others plays a pivotal role in SPL, together with commonality. Variability mechanisms have been suggested in many development approaches, and new mechanisms have been proposed in SPL approaches. This paper analyses the existing literature on potential variability mechanisms, and thereafter tries to determine the state of the practice and possible weaknesses in the practice. As for the results, there are few mechanisms that can be used in the early lifecycle phases, and most of those mechanisms support late-binding.

[1]  Wan Mohd. Nasir Wan Kadir,et al.  An Architecture-based Approach to Support Alternative Design Decision in Component-Based System: A Case Study from Information System Domain , 2012 .

[2]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Krzysztof Czarnecki,et al.  Generative programming - principles and techniques of software engineering based on automated configuration and fragment-based component models , 1999 .

[5]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

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

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[8]  Dirk Muthig,et al.  Generic Implementation of Product Line Components , 2002, NetObjectDays.

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

[10]  M.L. Griss,et al.  Software reuse architecture, process, and organization for business success , 1997, Proceedings of the Eighth Israeli Conference on Computer Systems and Software Engineering.

[11]  Birger Møller-Pedersen,et al.  Developing a Software Product Line for Train Control: A Case Study of CVL , 2010, SPLC.

[12]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[13]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[14]  Nadia Bouassida,et al.  Modeling Real-Time Applications with Reusable Design Patterns , 2010 .

[15]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[16]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[17]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[18]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

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