Capturing variability in space and time with hyper feature models

Software product lines (SPLs) and software ecosystems (SECOs) are approaches to capturing families of closely related software systems in terms of common and variable functionality. SPLs and especially SECOs are subject to evolution to adapt to new or changed requirements resulting in different versions of the software family and its variable assets. These versions may have to be maintained and used for products even after they were superseded by newer versions. Variability models describing valid combinations of variable assets, such as feature models, capture variability in space (configuration), but not variability in time (evolution) making it impossible to respect versions of variable assets in product definitions on a conceptual level. In this paper, we propose Hyper Feature Models (HFMs) explicitly providing feature versions as configurable units for product definition. Furthermore, we provide a version-aware constraint language to specify dependencies between features and ranges of feature versions as well as a procedure to automatically select valid combinations of versions for a pre-configuration of features. We demonstrate our approach in a case study.

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

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

[3]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[4]  Uwe Aßmann,et al.  Towards modeling and analyzing variability in evolving software ecosystems , 2013, VaMoS.

[5]  Goetz Botterweck,et al.  Modeling rationale over time to support product line evolution planning , 2012, VaMoS.

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

[7]  Theo D'Hondt,et al.  Change-oriented software engineering , 2007, ICDL '07.

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

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

[10]  Jilles van Gurp,et al.  1 Version management tools as a basis for integrating Product Deri- vation and Software Product Families , 2006 .

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

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

[13]  Krzysztof Czarnecki,et al.  Evolution of the Linux Kernel Variability Model , 2010, SPLC.

[14]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[15]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[16]  Theo D'Hondt,et al.  Feature Diagrams for Change-Oriented Programming , 2009, ICFI.

[17]  Jan Bosch,et al.  From software product lines to software ecosystems , 2009, SPLC.

[18]  Stéphane Ducasse,et al.  Modeling Software Evolution by Treating History as a First Class Entity , 2005, Electron. Notes Theor. Comput. Sci..

[19]  Malte Lochau,et al.  Multi-perspectives on feature models , 2012, MODELS'12.

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

[21]  Edward P. K. Tsang,et al.  Foundations of constraint satisfaction , 1993, Computation in cognitive science.

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

[23]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..