Software product line evolution: A systematic literature review

Abstract Context: Software Product Lines (SPL) evolve when there are changes in the requirements, product structure or the technology being used. Different approaches have been proposed for managing SPL assets and some also address how evolution affects these assets. Existing mapping studies have focused on specific aspects of SPL evolution, but there is no cohesive body of work that gives an overview of the area as a whole. Objective: The goals of this work are to review the characteristics of the approaches reported as supporting SPL evolution, and to synthesize the evidence provided by primary studies about the nature of their processes, as well as how they are reported and validated. Method: We conducted a systematic literature review, considering six research questions formulated to evaluate evolution approaches for SPL. We considered journal, conference and workshop papers published up until March 2017 in leading digital libraries for computer science. Results: After a thorough analysis of the papers retrieved from the digital libraries, we ended up with a set of 60 primary studies. Feature models are widely used to represent SPLs, so feature evolution is frequently addressed. Other assets are less frequently addressed. The area has matured over time: papers presenting more rigorous work are becoming more common. The processes used to support SPL evolution are systematic, but with a low level of automation. Conclusions: Our research shows that there is no consensus about SPL formalization, what assets can evolve, nor how and when these evolve. Case studies are quite popular, but few industrial-sized case studies are publicly available. Also, few of the proposed techniques offer tool support. We believe that the SPL community needs to work together to improve the state of the art, creating methods and tools that support SPL evolution in a more comparable manner.

[1]  Genaína Nunes Rodrigues,et al.  Building reliable and maintainable Dynamic Software Product Lines: An investigation in the Body Sensor Network domain , 2017, Inf. Softw. Technol..

[2]  Uirá Kulesza,et al.  Investigating the safe evolution of software product lines , 2011, GPCE '11.

[3]  Mari Inoki,et al.  Requirements Prioritization Decision Rule Improvement for Software Product Line Evolution , 2016, APRES.

[4]  Uwe Aßmann,et al.  Capturing variability in space and time with hyper feature models , 2014, VaMoS.

[5]  Xin Huang,et al.  A Map of Threats to Validity of Systematic Literature Reviews in Software Engineering , 2016, 2016 23rd Asia-Pacific Software Engineering Conference (APSEC).

[6]  Ina Schaefer,et al.  Higher-order delta modeling for software product line evolution , 2016, FOSD.

[7]  Ian Gorton,et al.  Essential software architecture , 2006 .

[8]  Miguel A. Laguna,et al.  A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring , 2013, Sci. Comput. Program..

[9]  Didar Zowghi,et al.  Towards understanding requirement evolution in a software product line an industrial case study , 2012, 2012 First IEEE International Workshop on the Twin Peaks of Requirements and Architecture (TwinPeaks).

[10]  Oscar Nierstrasz,et al.  CompAS: A new approach to commonality and variability analysis with applications in computer assisted orthopaedic surgery , 2009, Inf. Softw. Technol..

[11]  Krzysztof Czarnecki,et al.  Three Cases of Feature-Based Variability Modeling in Industry , 2014, MoDELS.

[12]  Wendy Zhang,et al.  Formal Definition of Feature Models to Support Software Product Line Evolution , 2008, Software Engineering Research and Practice.

[13]  Philippe Collet,et al.  SPLEMMA: a generic framework for controlled-evolution of software product lines , 2013, SPLC '13 Workshops.

[14]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[15]  Paulo Borba,et al.  A theory of software product line refinement , 2012, Theor. Comput. Sci..

[16]  Marco Kuhrmann,et al.  On the use of variability operations in the V‐Modell XT software process line , 2016, J. Softw. Evol. Process..

[17]  Juha Savolainen,et al.  From product line requirements to product line architecture: optimizing industrial product lines for new competitive advantage , 2009, SPLC.

[18]  Martin Vogel,et al.  From product architectures to a managed automotive software product line architecture , 2016, SAC.

[19]  Danny Weyns,et al.  Towards a Solution for Change Impact Analysis of Software Product Line Products , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[20]  Jan Bosch,et al.  Evolution in software product lines: Two cases , 1999 .

[21]  Eduardo Santana de Almeida,et al.  Requirements Evolution in Software Product Lines: An Empirical Study , 2015, 2015 IX Brazilian Symposium on Components, Architectures and Reuse Software.

[22]  Ping Chen,et al.  An environment for managing evolving product line architectures , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[23]  Paulo Borba,et al.  Making Software Product Line Evolution Safer , 2012, 2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse.

[24]  Jihyun Lee,et al.  Variability Change Management Using the Orthogonal Variability Model-Based Traceability , 2016, Wirel. Pers. Commun..

[25]  Danny Weyns,et al.  Codifying architecture knowledge to support online evolution of software product lines , 2011, SHARK '11.

[26]  Stefan Kowalewski,et al.  EvoFM: feature-driven planning of product-line evolution , 2010, PLEASE '10.

[27]  Jan Gerben Wijnstra Evolving a Product Family in a Changing Context , 2003, PFE.

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

[29]  John D. McGregor,et al.  On strategies for testing software product lines: A systematic literature review , 2014, Inf. Softw. Technol..

[30]  Jean-Marc Jézéquel,et al.  Model-based product line evolution: an incremental growing by extension , 2012, SPLC '12.

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

[32]  Danny Weyns,et al.  Supporting Online Updates of Software Product Lines: A Controlled Experiment , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[33]  Hassan Gomaa,et al.  Evolving software requirements and architectures using software product line concepts , 2013, 2013 2nd International Workshop on the Twin Peaks of Requirements and Architecture (TwinPeaks).

[34]  Jing Liu,et al.  State-Based Modeling to Support the Evolution and Maintenance of Safety-Critical Software Product Lines , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[35]  Paulo Borba,et al.  Partially safe evolution of software product lines , 2016, SPLC.

[36]  Stefan Kowalewski,et al.  Towards feature-driven planning of product-line evolution , 2009, FOSD '09.

[37]  Yoshiaki Fukazawa,et al.  Software product line evolution method based on kaizen approach , 2007, SAC '07.

[38]  Zhenchang Xing,et al.  Understanding Feature Evolution in a Family of Product Variants , 2010, 2010 17th Working Conference on Reverse Engineering.

[39]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[40]  Ethan V. Munson,et al.  Flexible support for managing evolving software product lines , 2011, PLEASE '11.

[41]  Claes Wohlin,et al.  Experiences from using snowballing and database searches in systematic literature studies , 2015, EASE.

[42]  Leticia Montalvillo-Mendizabal,et al.  Requirement-driven evolution in software product lines: A systematic mapping study , 2016, J. Syst. Softw..

[43]  Fereidoon Shams Aliee,et al.  Linear Evolution of Domain Architecture in Service-Oriented Software Product Lines , 2015, FSEN.

[44]  Michael Nieke,et al.  DarwinSPL: an integrated tool suite for modeling evolving context-aware software product lines , 2017, VaMoS.

[45]  Goetz Botterweck,et al.  Model-driven planning and monitoring of long-term software product line evolution , 2013, VaMoS.

[46]  Suntae Kim,et al.  Resource Versioning Scheme in Evolutionary Software Product Line , 2014 .

[47]  Michael Eisenbarth,et al.  A decade of scoping: a survey , 2009, SPLC.

[48]  Uirá Kulesza,et al.  Software product lines traceability: A systematic mapping study , 2017, Inf. Softw. Technol..

[49]  Paul Grünbacher,et al.  A prototype-based approach for managing clones in clone-and-own product lines , 2016, SPLC.

[50]  Jaime Font,et al.  Leveraging variability modeling to address metamodel revisions in Model-based Software Product Lines , 2017, Comput. Lang. Syst. Struct..

[51]  Danny Weyns,et al.  An Architectural Approach to Support Online Updates of Software Product Lines , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[52]  Paul Grünbacher,et al.  Supporting Evolution in Model-Based Product Line Engineering , 2008, 2008 12th International Software Product Line Conference.

[53]  Hong Zhao,et al.  Maintaining software product lines — an industrial practice , 2008, 2008 IEEE International Conference on Software Maintenance.

[54]  Christoph Seidl,et al.  Integrated management of variability in space and time in software families , 2014, SPLC.

[55]  Paul Grünbacher,et al.  A Case Study on the Evolution of a Component-based Product Line , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[56]  Nandamudi Lankalapalli Vijaykumar,et al.  Practical similarities and differences between Systematic Literature Reviews and Systematic Mappings: a tertiary study , 2017, SEKE.

[57]  Jennifer Pérez,et al.  Agile product line engineering—a systematic literature review , 2011, Softw. Pract. Exp..

[58]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

[59]  Samuel Ajila,et al.  Evolution support mechanisms for software product line process , 2008, J. Syst. Softw..

[60]  Uwe Ryssel,et al.  Aligning Coevolving Artifacts Between Software Product Lines and Products , 2016, VaMoS.

[61]  Alexander Egyed,et al.  Automatic and Incremental Product Optimization for Software Product Lines , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[62]  Hassan Gomaa,et al.  A software modeling odyssey: designing evolutionary architecture-centric real-time systems and product lines , 2006, MoDELS'06.

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

[64]  Jafar Habibi,et al.  A Feature Model Based Framework for Refactoring Software Product Line Architecture , 2016, Journal of Computer Science and Technology.

[65]  Andreas Rausch,et al.  Mastering Erosion of Software Architecture in Automotive Software Product Lines , 2014, SOFSEM.

[66]  Jaime Font,et al.  Achieving Knowledge Evolution in Dynamic Software Product Lines , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[67]  Hanspeter Mössenböck,et al.  Supporting Model Maintenance in Component-based Product Lines , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[68]  George Valença,et al.  Accepted Manuscript Requirements Engineering for Software Product Lines: a Systematic Literature Review Accepted Manuscript Requirements Engineering for Software Product Lines: a Systematic Literature Review Accepted Manuscript , 2022 .

[69]  D. V. Koznov,et al.  Refactoring the Documentation of Software Product Lines , 2008, CEE-SET.

[70]  Michael Nieke,et al.  Guaranteeing Configuration Validity in Evolving Software Product Lines , 2016, VaMoS.

[71]  Uwe Aßmann,et al.  Co-evolution of models and feature mapping in software product lines , 2012, SPLC '12.

[72]  Stefan Kowalewski,et al.  Model-driven support for product line evolution on feature level , 2012, J. Syst. Softw..

[73]  Cecília M. F. Rubira,et al.  Components meet aspects: Assessing design stability of a software product line , 2011, Inf. Softw. Technol..

[74]  Steve Livengood,et al.  Issues in software product line evolution: complex changes in variability models , 2011, PLEASE '11.

[75]  F. Loesch,et al.  Restructuring Variability in Software Product Lines using Concept Analysis of Product Configurations , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[76]  Lidia Fuentes,et al.  Architectural evolution of FamiWare using cardinality-based feature models , 2013, Inf. Softw. Technol..

[77]  Sven Apel,et al.  Coevolution of variability models and related software artifacts , 2016, Empirical Software Engineering.

[78]  Juha Savolainen,et al.  Variability evolution and erosion in industrial product lines: a case study , 2013, SPLC '13.