Variability evolution and erosion in industrial product lines: a case study

Successful software products evolve continuously to meet the changing stakeholder requirements. For software product lines, modifying variability is an additional challenge that must be carefully tackled during the evolution of the product line. This bears considerable challenges for industry as understanding on how variability realizations advance over time is not trivial. Moreover, it may lead to an erosion of variability, which needs an investigation of techniques on how to identify the variability erosion in practice, especially in the source code. To address various erosion symptoms, we have investigated the evolution of a large-scale industrial product line over a period of four years. Along improvement goals, we have researched a set of appropriate metrics and measurement approaches in a goal-oriented way, applied them in this case study with tool support, and interpreted the results including identified erosion symptoms.

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

[2]  Juha Kuusela,et al.  Violatility analysis framework for product lines , 2001, SSR '01.

[3]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[4]  Charles Krueger New Methods behind a New Generation of Software Product Line Successes , 2009 .

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

[6]  Juha Savolainen,et al.  Identifying improvement potential in evolving product line infrastructures: 3 case studies , 2012, SPLC '12.

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

[8]  R. Yin,et al.  Case Study Research: Design and Methods (4th ed. , 2009 .

[9]  Danilo Beuche,et al.  Running a software product line: standing still is going backwards , 2009, SPLC.

[10]  Martin Becker,et al.  Code-based variability model extraction for software product line improvement , 2012, SPLC '12.

[11]  Angela Lozano An Overview of Techniques for Detecting Software Variability Concepts in Source Code , 2011, ER Workshops.

[12]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

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

[14]  Sven Apel,et al.  Feature-oriented software evolution , 2013, VaMoS.

[15]  John D. McGregor,et al.  The Evolution of Product Line Assets , 2003 .

[16]  Christian Kästner,et al.  Virtual Separation of Concerns: Toward Preprocessors 2.0 , 2010, it Inf. Technol..

[17]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[18]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[19]  Wolfgang Schröder-Preikschat,et al.  Variability in Time - Product Line Variability and Evolution Revisited , 2010, VaMoS.

[20]  Rini van Solingen,et al.  Goal Question Metric (GQM) Approach , 2002 .

[21]  Danilo Beuche,et al.  Minimally Invasive Migration to Software Product Lines , 2007, 11th International Software Product Line Conference (SPLC 2007).

[22]  Martin Becker,et al.  Mining complex feature correlations from software product line configurations , 2013, VaMoS.

[23]  Jens Knodel,et al.  SAVE: Software Architecture Visualization and Evaluation , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[24]  Sustainable Evolution of Product Line Infrastructure Code (PhD Theses in Experimental Software Engineering) , 2011 .

[25]  Dirk Muthig,et al.  Refactoring a legacy component for reuse in a software product line: a case study: Practice Articles , 2006 .

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

[27]  John J. Marciniak,et al.  Encyclopedia of Software Engineering , 1994, Encyclopedia of Software Engineering.

[28]  Wolfgang Schröder-Preikschat,et al.  Efficient extraction and analysis of preprocessor-based variability , 2010, GPCE '10.

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

[30]  Thomas Patzke Sustainable evolution of product line infrastructure code , 2011 .

[31]  Sven Apel,et al.  An analysis of the variability in forty preprocessor-based software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.