A taxonomy of context-aware software variability approaches

Modern software systems demand more and more smart capabilities depending on their context of use, as well as the ability to dynamically adapt these capabilities according to sensed context changes. This requires appropriate techniques for modelling, representing and handling context-aware software variability. While traditional variability modelling approaches like feature orientation and software product lines are evolving to address the increased dynamicity and context specificity required for this new generation of software systems, new paradigms such as context-oriented programming have emerged. Although developed independently, since they address similar issues, many similarities exist between these approaches. The purpose of this paper is to define, categorise and compare key concepts shared by these approaches. Such a taxonomy is a first step towards a better understanding of the differences and similarities between different approaches for managing context-aware software variability, and to achieve a cross-fertilisation between them.

[1]  Rafael Capilla,et al.  Dynamic Variability Meets Robotics , 2015, Computer.

[2]  Sooyong Park,et al.  Dynamic Software Product Lines , 2008, Computer.

[3]  Carl K. Chang Situation Analytics: A Foundation for a New Software Engineering Paradigm , 2016, Computer.

[4]  Theo D'Hondt,et al.  Context-Oriented Domain Analysis , 2007, CONTEXT.

[5]  Rabeb Mizouni,et al.  A framework for context-aware self-adaptive mobile applications SPL , 2014, Expert Syst. Appl..

[6]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[7]  Xiaodong Liu,et al.  Mapping Features to Context Information: Supporting Context Variability for Context-Aware Pervasive Applications , 2010, 2010 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology.

[8]  Tim Trew,et al.  Using Feature Diagrams with Context Variability to Model Multiple Product Lines for Software Supply Chains , 2008, 2008 12th International Software Product Line Conference.

[9]  Matthias Baldauf,et al.  A survey on context-aware systems , 2007, Int. J. Ad Hoc Ubiquitous Comput..

[10]  Iakovos S. Venieris,et al.  Context-aware service engineering: A survey , 2009, J. Syst. Softw..

[11]  Lidia Fuentes,et al.  Configuring a Context-Aware Middleware for Wireless Sensor Networks , 2012, Sensors.

[12]  Matteo Pradella,et al.  Context-oriented programming: A software engineering perspective , 2012, J. Syst. Softw..

[13]  Jadwiga Indulska,et al.  A survey of context modelling and reasoning techniques , 2010, Pervasive Mob. Comput..

[14]  Kim Mens,et al.  Feature-Oriented Programming and Context-Oriented Programming: Comparing Paradigm Characteristics by , 2011, ICSEA 2011.

[15]  Gregory D. Abowd,et al.  Towards a Better Understanding of Context and Context-Awareness , 1999, HUC.

[16]  Henry Lieberman,et al.  Out of context: Computer systems that adapt to, and learn from, context , 2000, IBM Syst. J..

[17]  A. Crisafulli Enabling Knowledge Sharing and Reuse on the Semantic Web , 2003 .

[18]  Sebastian Günther,et al.  rbFeatures: Feature-oriented programming with Ruby , 2012, Sci. Comput. Program..

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

[20]  Rafael Capilla,et al.  Context variability modeling for runtime configuration of service-based dynamic software product lines , 2014, SPLC '14.

[21]  Matteo Pradella,et al.  Context-Oriented Programming: A Programming Paradigm for Autonomic Systems , 2011, ArXiv.

[22]  Vicente Pelechano,et al.  Prototyping Dynamic Software Product Lines to evaluate run-time reconfigurations , 2013, Sci. Comput. Program..

[23]  Don S. Batory,et al.  Feature-oriented programming and the AHEAD tool suite , 2004, Proceedings. 26th International Conference on Software Engineering.

[24]  Andry Rakotonirainy,et al.  Context-oriented programming , 2003, MobiDe '03.

[25]  Kim Mens,et al.  Context traits: dynamic behaviour adaptation through run-time trait recomposition , 2013, AOSD.

[26]  Rafael Capilla,et al.  Collaborative Context Features for Critical Systems , 2015, VaMoS.

[27]  Avelino J. Gonzalez,et al.  Context in Computing: A Cross-Disciplinary Approach for Modeling the Real World , 2014 .

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

[29]  Kim Mens,et al.  Subjective-C - Bringing Context to Mobile Platform Programming , 2010, SLE.

[30]  Kim Mens,et al.  Features on demand , 2014, VaMoS.

[31]  DustdarSchahram,et al.  A survey on context-aware systems , 2007 .

[32]  Agnar Aamodt,et al.  Towards a Model of Context for Case-Based Diagnostic Problem Solving , 2007 .

[33]  Robert Hirschfeld,et al.  Declarative Layer Composition with The JCop Programming Language , 2013, J. Object Technol..

[34]  Jean Vanderdonckt,et al.  A Unifying Reference Framework for multi-target user interfaces , 2003, Interact. Comput..

[35]  Tetsuo Tamai,et al.  Context-oriented software engineering: a modularity vision , 2014, MODULARITY.

[36]  Paola Inverardi,et al.  Leveraging State-Based User Preferences in Context-Aware Reconfigurations for Self-Adaptive Systems , 2011, SEFM.

[37]  Claudia Linnhoff-Popien,et al.  A Context Modeling Survey , 2004 .

[38]  Kim Mens,et al.  Context-Oriented Programming with the Ambient Object System , 2008, J. Univers. Comput. Sci..

[39]  Rafael Capilla,et al.  Context Variability for Context-Aware Systems , 2014, Computer.

[40]  Don Batory Feature-oriented programming and the AHEAD tool suite , 2004, ICSE 2004.

[41]  Robert Hirschfeld,et al.  Language constructs for context-oriented programming: an overview of ContextL , 2005, DLS '05.

[42]  Michael Haupt,et al.  A comparison of context-oriented programming languages , 2009, COP@ECOOP.

[43]  Bill N. Schilit,et al.  Disseminating active map information to mobile hosts , 1994, IEEE Network.

[44]  P. Giorgini,et al.  Context for Goal-level Product Line Derivation , 2009 .

[45]  Eli Rohn Predicting context aware computing performance , 2003, UBIQ.

[46]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.