A systematic review of evaluation of variability management approaches in software product lines

ContextVariability management (VM) is one of the most important activities of software product-line engineering (SPLE), which intends to develop software-intensive systems using platforms and mass customization. VM encompasses the activities of eliciting and representing variability in software artefacts, establishing and managing dependencies among different variabilities, and supporting the exploitation of the variabilities for building and evolving a family of software systems. Software product line (SPL) community has allocated huge amount of effort to develop various approaches to dealing with variability related challenges during the last two decade. Several dozens of VM approaches have been reported. However, there has been no systematic effort to study how the reported VM approaches have been evaluated. ObjectiveThe objectives of this research are to review the status of evaluation of reported VM approaches and to synthesize the available evidence about the effects of the reported approaches. MethodWe carried out a systematic literature review of the VM approaches in SPLE reported from 1990s until December 2007. ResultsWe selected 97 papers according to our inclusion and exclusion criteria. The selected papers appeared in 56 publication venues. We found that only a small number of the reviewed approaches had been evaluated using rigorous scientific methods. A detailed investigation of the reviewed studies employing empirical research methods revealed significant quality deficiencies in various aspects of the used quality assessment criteria. The synthesis of the available evidence showed that all studies, except one, reported only positive effects. ConclusionThe findings from this systematic review show that a large majority of the reported VM approaches have not been sufficiently evaluated using scientifically rigorous methods. The available evidence is sparse and the quality of the presented evidence is quite low. The findings highlight the areas in need of improvement, i.e., rigorous evaluation of VM approaches. However, the reported evidence is quite consistent across different studies. That means the proposed approaches may be very beneficial when they are applied properly in appropriate situations. Hence, it can be concluded that further investigations need to pay more attention to the contexts under which different approaches can be more beneficial.

[1]  Robyn R. Lutz,et al.  Extending the product family approach to support safe reuse , 2000, J. Syst. Softw..

[2]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[3]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[4]  Ying Li,et al.  Software Product Line Oriented Feature Map , 2007, International Conference on Computational Science.

[5]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[6]  Don S. Batory,et al.  Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study , 2000, ICSR.

[7]  Kyo Chul Kang,et al.  A feature-oriented approach to developing dynamically reconfigurable products in product line engineering , 2006 .

[8]  Takuya Katayama,et al.  Design Verification for Product Line Development , 2005, SPLC.

[9]  Jean-Marc Geib,et al.  A Model-Driven Approach for Smart Card Configuration , 2004, GPCE.

[10]  Jan Bosch,et al.  First class feature abstractions for product derivation , 2004, IEE Proc. Softw..

[11]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[12]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[13]  Danilo Beuche,et al.  Variability management with feature models , 2004, Sci. Comput. Program..

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

[15]  T. John Brown,et al.  Managing Component Variability within Embedded Software Product Lines via Transformational Code Generation , 2003, PFE.

[16]  Colin Atkinson,et al.  Model-Driven Product Line Architectures , 2002, SPLC.

[17]  Klaus Pohl,et al.  Model-Based System Testing of Software Product Families , 2005, CAiSE.

[18]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[19]  Kyo Chul Kang,et al.  Feature Dependency Analysis for Product Line Component Design , 2004, ICSR.

[20]  Mike Mannion,et al.  Using Patterns to Model Variability in Product Families , 1999, IEEE Softw..

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

[22]  James R. Hamilton,et al.  Product-line reuse for Ada systems , 1995, TRI-Ada '95.

[23]  Henry Muccini,et al.  Towards Testing Product Line Architectures , 2003, TACoS.

[24]  Paul Clements,et al.  Variability in Software Product Lines , 2005 .

[25]  Camille Salinesi,et al.  Criteria for Comparing Requirements Variability Modeling Notations for Product Lines , 2006, Fourth International Workshop on Comparative Evaluation in Requirements Engineering (CERE'06 - RE'06 Workshop).

[26]  Klaus Pohl,et al.  Communicating the variability of a software-product family to customers , 2003, Software and Systems Modeling.

[27]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[28]  Kathrin Berg,et al.  Tracing software product line variability: from problem to solution space , 2005 .

[29]  David R. Jones,et al.  Synthesising qualitative and quantitative evidence: A review of possible methods , 2005 .

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

[31]  Klaus Pohl,et al.  Domain-Specific Runtime Variability in Product Line Architectures , 2002, OOIS.

[32]  Felix Lösch,et al.  Optimization of Variability in Software Product Lines , 2007, 11th International Software Product Line Conference (SPLC 2007).

[33]  Leonor Barroca,et al.  A Product Line Architecture for Workflow Management Systems According to the Component-based Development Approach. , 2003 .

[34]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

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

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

[37]  Itana Maria de Souza Gimenes,et al.  A variability management process for software product lines , 2005, CASCON.

[38]  Javier Cámara,et al.  Theorem Proving for Product Line Model Verification , 2003, PFE.

[39]  Guenther Ruhe,et al.  Impact Analysis of Missing Values on the Prediction Accuracy of Analogy-based Software Effort Estimation Method AQUA , 2007, ESEM 2007.

[40]  Haiyan Zhao,et al.  A Propositional Logic-Based Method for Verification of Feature Models , 2004, ICFEM.

[41]  Jan Bosch,et al.  Variability Issues in Software Product Lines , 2001, PFE.

[42]  Stan Jarzabek,et al.  XML-based method and tool for handling variant requirements in domain models , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[43]  René L. Krikhaar,et al.  Representing variability in a family of MRI scanners , 2004, Softw. Pract. Exp..

[44]  Roberto Erick Lopez-Herrejon,et al.  Generating product-lines of product-families , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[45]  Christian Denger,et al.  Testing and inspecting reusable product line components: first empirical results , 2006, ISESE '06.

[46]  Stan Jarzabek,et al.  XVCL: a mechanism for handling variants in software product lines , 2004, Sci. Comput. Program..

[47]  Stan Jarzabek,et al.  Industrial experience with building a web portal product line using a lightweight, reactive approach , 2005, ESEC/FSE-13.

[48]  Hong Mei,et al.  A feature oriented approach to modeling and reusing requirements of software product lines , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[49]  Rainer Koschke,et al.  Extending the Reflexion Method for Consolidating Software Variants into Product Lines , 2007, WCRE.

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

[51]  Juha Kuusela,et al.  Consistency management of product line requirements , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[52]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[53]  Charles W. Krueger,et al.  Variation Management for Software Production Lines , 2002, SPLC.

[54]  Kyo Chul Kang,et al.  Domain-oriented engineering of elevator control software , 2000, SPLC.

[55]  Awais Rashid,et al.  From Requirements Documents to Feature Models for Aspect Oriented Product Line Implementation , 2005, MoDELS.

[56]  Juha Kuusela,et al.  Requirements engineering for product families , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[57]  Weishan Zhang Architecturally reconfigurable development of mobile games , 2005, Second International Conference on Embedded Software and Systems (ICESS'05).

[58]  Huilin Ye,et al.  Approach to modelling feature variability and dependencies in software product lines , 2005, IEE Proc. Softw..

[59]  Tore Dybå,et al.  Applying Systematic Reviews to Diverse Study Types: An Experience Report , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[60]  Daniel Hoffman,et al.  Software product lines: a case study , 2000, Softw. Pract. Exp..

[61]  Dietmar Pfahl,et al.  Reporting guidelines for controlled experiments in software engineering , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[62]  Klaus Pohl,et al.  Integration Testing in Software Product Line Engineering: A Model-Based Technique , 2007, FASE.

[63]  Carlos José Pereira de Lucena,et al.  Refactoring product lines , 2006, GPCE '06.

[64]  Mary Shaw,et al.  Writing good software engineering research papers: minitutorial , 2003, ICSE 2003.

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

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

[67]  Kannan Mohan,et al.  Ontology-based support for variability management in product and families , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[68]  Ralf H. Reussner,et al.  Managing Product Line Variability by Patterns , 2004, Net.ObjectDays.

[69]  Wenyun Zhao,et al.  An Approach to Managing Feature Dependencies for Product Releasing in Software Product Lines , 2006, ICSR.

[70]  Marco Sinnema,et al.  Classifying variability modeling techniques , 2007, Inf. Softw. Technol..

[71]  Sooyong Park,et al.  A method and tool support for variant requirements analysis: goal and scenario based approach , 2004, 11th Asia-Pacific Software Engineering Conference.

[72]  Keunhyuk Yeom,et al.  An approach to developing domain requirements as a core asset based on commonality and variability analysis in a product line , 2005, IEEE Transactions on Software Engineering.

[73]  Tomi Männistö,et al.  Kumbang: A domain ontology for modelling variability in software product families , 2007, Adv. Eng. Informatics.

[74]  Don S. Batory,et al.  Achieving extensibility through product-lines and domain-specific languages: a case study , 2000, TSEM.

[75]  Marvin V. Zelkowitz,et al.  Experimental Models for Validating Technology , 1998, Computer.

[76]  Arie van Deursen,et al.  Feature-Based Product Line Instantiation Using Source-Level Packages , 2002, SPLC.

[77]  Nicolas Guelfi,et al.  A Template for Requirement Elicitation of Dependable Product Lines , 2007, REFSQ.

[78]  Steffen Thiel,et al.  Systematic Integration of Variability into Product Line Architecture Design , 2002, SPLC.

[79]  Mark Staples,et al.  Systematic review of organizational motivations for adopting CMM-based SPI , 2008, Inf. Softw. Technol..

[80]  Muthu Ramachandran,et al.  Commonality and variability analysis in industrial practice for product line improvement , 2005, Softw. Process. Improv. Pract..

[81]  I.M.S. Gimenes,et al.  A product line architecture for workflow management systems with component-based development , 2003, Proceedings Fifth IEEE Workshop on Mobile Computing Systems and Applications.

[82]  Timothy W. Simpson,et al.  A Variation-Based Method for Product Family Design , 2002 .

[83]  András Balogh,et al.  Model-driven development of Particle System Families , 2007, Fourth International Workshop on Model-Based Methodologies for Pervasive and Embedded Software (MOMPES'07).

[84]  Sooyong Park,et al.  A domain analysis method for software product lines based on scenarios, goals and features , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[85]  S. Buhne,et al.  Modeling features for multi-criteria product-lines in the automotive industry , 2004, ICSE 2004.

[86]  Tore Dybå,et al.  A systematic review of quasi-experiments in software engineering , 2009, Inf. Softw. Technol..

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

[88]  Kyo Chul Kang,et al.  Domain-oriented engineering of elevator control software: a product line practice , 2000 .

[89]  Tore Dybå,et al.  Strength of evidence in systematic reviews in software engineering , 2008, ESEM '08.

[90]  Mary Shaw,et al.  Writing good software engineering research papers , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[91]  Leonard J. Bass,et al.  Managing variability in software architectures , 2001, SSR '01.

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

[93]  Tore Dybå,et al.  Evidence-based software engineering , 2004, Proceedings. 26th International Conference on Software Engineering.

[94]  Ilka Philippow,et al.  Feature-Oriented Development of Software Product Lines: Mapping Feature Models to the Architecture , 2004, Net.ObjectDays.

[95]  Jacky Estublier,et al.  Reuse and variability in large software applications , 2005, ESEC/FSE-13.

[96]  R. Harrison,et al.  A Meta-analysis of Multidisciplinary Research , 2012 .

[97]  Ilka Philippow,et al.  The feature-architecture mapping (FArM) method for feature-oriented development of software product lines , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[98]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[99]  Grigori Melnik,et al.  On the success of empirical studies in the international conference on software engineering , 2006, ICSE.

[100]  Bernhard Schätz Combining Product Lines and Model-Based Development , 2007, Electron. Notes Theor. Comput. Sci..

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

[102]  André van der Hoek,et al.  Design-time product line architectures for any-time variability , 2004, Sci. Comput. Program..

[103]  Jan Gerben Wijnstra Supporting diversity with component frameworks as architectural elements , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[104]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[105]  Guilherme Horta Travassos,et al.  Cross versus Within-Company Cost Estimation Studies: A Systematic Review , 2007, IEEE Transactions on Software Engineering.

[106]  Yuzo Ishida Software Product Lines Approach in Enterprise System Development , 2007 .

[107]  Pierre-Yves Schobbens,et al.  Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[108]  Anil Kumar Thurimella Rationale-based variability management in product line requirements engineering , 2007 .

[109]  Uwe Zdun,et al.  Designing runtime variation points in product line architectures: three cases , 2004, Sci. Comput. Program..

[110]  Felix Bachmann,et al.  A Meta-model for Representing Variability in Product Family Development , 2003, PFE.

[111]  Stuart R. Faulk Product-line requirements specification (PRS): an approach and case study , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[112]  Andrzej Pieczynski,et al.  Employing fuzzy logic in feature diagrams to model variability in software product-lines , 2003, 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2003. Proceedings..

[113]  Lianping Chen,et al.  Variability management in software product lines: a systematic review , 2009, SPLC.

[114]  Antonio Ruiz Cortés,et al.  Using Java CSP Solvers in the Automated Analyses of Feature Models , 2005, GTTSE.

[115]  Lianping Chen,et al.  Evaluation and Assessment in Software Engineering a Status Report on the Evaluation of Variability Management Approaches , 2022 .

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

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

[118]  Katharina Mehner,et al.  Applying Aspect-Orientation Techniques in Automotive Software Product-Line Engineering , 2006, International Automotive Requirements Engineering Workshop (AURE'06 - RE'06 Workshop).

[119]  Keunhyuk Yeom,et al.  A Metamodel Approach to Architecture Variability in a Product Line , 2006, ICSR.

[120]  Soo Dong Kim,et al.  A Variability-Centric Approach to Instantiating Core Assets in Product Line Engineering , 2006, PROFES.

[121]  Mike Mannion Using First-Order Logic for Product Line Model Validation , 2002, SPLC.

[122]  Eun Man Choi,et al.  Representation of Variability in Software Product Line Using Aspect-Oriented Programming , 2006, Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06).

[123]  Doo-Kwon Baik,et al.  Managing Variability for Software Product-Line , 2006, Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06).

[124]  Soo Dong Kim,et al.  A systematic method for scoping core assets in product line engineering , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[125]  Jing Liu,et al.  Safety analysis of software product lines using state-based modeling , 2007, J. Syst. Softw..

[126]  Haiyan Zhao,et al.  An approach to constructing feature models based on requirements clustering , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[127]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[128]  M. Zand,et al.  Aspectual Support for Specifying Requirements in Software Product Lines , 2007, Early Aspects at ICSE: Workshops in Aspect-Oriented Requirements Engineering and Architecture Design (EARLYASPECTS'07).

[129]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

[130]  Kai Koskimies,et al.  A Model-Driven Approach to Variability Management in Product-Line Engineering , 2006, Nord. J. Comput..

[131]  Doo-Kwon Baik,et al.  An Approach to Analyzing Commonality and Variability of Features using Ontology in a Software Product Line Engineering , 2007, 5th ACIS International Conference on Software Engineering Research, Management & Applications (SERA 2007).

[132]  Robert L. Glass,et al.  Science and substance: a challenge to software engineers , 1994, IEEE Software.

[133]  Jan Bosch,et al.  Architecting product diversification - formalizing variability dependencies in software product family engineering , 2004 .

[134]  María Victoria Cengarle,et al.  Semantics of UML 2.0 Interactions with Variabilities , 2006, FACS.

[135]  Hassan Gomaa,et al.  Modeling variability in software product lines with the variation point model , 2004, Sci. Comput. Program..

[136]  Marco Sinnema,et al.  COSVAM: a technique for assessing software variability in software product families , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[137]  Tomi Männistö,et al.  A Koala-Based Approach for Modelling and Deploying Configurable Software Product Families , 2003, PFE.

[138]  Venkataraman Ramesh,et al.  Research in software engineering: an analysis of the literature , 2002, Inf. Softw. Technol..