Harmonized temporal feature modeling to uniformly perform, track, analyze, and replay software product line evolution

A feature model (FM) describes commonalities and variability within a software product line (SPL) and represents the configuration options at one point in time. A temporal feature model (TFM) additionally represents FM evolution, e.g., the change history or the planning of future releases. The increasing number of different TFM notations hampers research collaborations due to a lack of interoperability regarding notations, editors, and analyses. We present a common API for TFMs, which provides the core of a TFM ecosystem, to harmonize notations. We identified the requirements for the API based on systematically classifying and comparing the capabilities of existing TFM approaches. Our approach allows to work seamlessly with different TFM notations to perform, track, analyze and replay evolution. Our evaluation investigates two research questions on the expressiveness (RQ1) and utility (RQ2) of our approach by presenting implementations for several existing FM and TFM notations and replaying evolution histories from two case study systems.

[1]  Michael Eichberg,et al.  Supporting the Evolution of Software Product Lines , 2008 .

[2]  Jocelyn Simmonds,et al.  Software product line evolution: A systematic literature review , 2019, Inf. Softw. Technol..

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

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

[5]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[6]  Birgit Vogel-Heuser,et al.  Researching Evolution in Industrial Plant Automation: Scenarios and Documentation of the Pick and Place Unit , 2014 .

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

[8]  Pearl Brereton,et al.  Using Mapping Studies in Software Engineering , 2008, PPIG.

[9]  Paul Grünbacher,et al.  Facilitating the evolution of products in product line engineering by capturing and replaying configuration decisions , 2012, International Journal on Software Tools for Technology Transfer.

[10]  Daniel Hinterreiter Supporting feature-oriented development and evolution in industrial software ecosystems , 2018, SPLC.

[11]  Michael Nieke,et al.  Context-aware reconfiguration in evolving software product lines , 2018, Sci. Comput. Program..

[12]  Paul Grünbacher,et al.  Simulating evolution in model-based product line engineering , 2010, Inf. Softw. Technol..

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

[14]  Michael Nieke,et al.  Back to the future: avoiding paradoxes in feature-model evolution , 2018, SPLC.

[15]  Jan Muntermann,et al.  A method for taxonomy development and its application in information systems , 2013, Eur. J. Inf. Syst..

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

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

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

[19]  Reijo Sulonen,et al.  Evolution of Schema and Individuals of Configurable Products , 1999, ER.

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

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

[22]  Paul Grünbacher,et al.  Supporting Feature Model Evolution by Lifting Code-Level Dependencies: A Research Preview , 2019, REFSQ.

[23]  Krzysztof Czarnecki,et al.  Coevolution of variability models and related artifacts: a case study from the Linux kernel , 2013, SPLC '13.

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

[25]  Eduardo Figueiredo,et al.  A Systematic Literature Review of Software Product Line Management Tools , 2015, ICSR.

[26]  Krzysztof Czarnecki,et al.  CVL: common variability language , 2012, SPLC '12.

[27]  Jean-Marc Jézéquel,et al.  Model-Driven Engineering for Software Product Lines , 2012 .

[28]  Udo Kelter,et al.  Reasoning about product-line evolution using complex feature model differences , 2016, Automated Software Engineering.

[29]  Paul Grünbacher,et al.  A classification of variation control systems , 2017, GPCE.

[30]  Márcio Ribeiro,et al.  Characterizing safe and partially safe evolution scenarios in product lines: An Empirical Study , 2019, VaMoS.

[31]  Uwe Aßmann,et al.  DeltaEcore - A Model-Based Delta Language Generation Framework , 2014, Modellierung.

[32]  Bernhard Westfechtel,et al.  SuperMod: Tool support for collaborative filtered model-driven software product line engineering , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[33]  Christoph Seidl,et al.  A Software Product Line of Feature Modeling Notations and Cross-Tree Constraint Languages , 2016, Modellierung.

[34]  Felix Schwägerl,et al.  Version Control and Product Lines in Model-Driven Software Engineering , 2018 .

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

[36]  Alexander Egyed,et al.  Feature-Oriented Evolution of Automation Software Systems in Industrial Software Ecosystems , 2018, 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA).

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

[38]  Andreas Grimmer,et al.  Multi-purpose, multi-level feature modeling of large-scale industrial software systems , 2016, Software & Systems Modeling.

[39]  Juha Savolainen,et al.  Coevolution of variability models and code: an industrial case study , 2014, SPLC.

[40]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .