Dynamic visualisation of features and contexts for context-oriented programmers

Context-oriented programming languages allow programmers to develop context-aware systems that can adapt their behaviour dynamically upon changing contexts. Due to the highly dynamic nature of such systems and the many possible combinations of contexts to which such systems may adapt, developing such systems is hard. Feature-based context-oriented programming helps tackle part of this complexity by modelling the possible contexts, and the different behavioural adaptations they can trigger, as separate feature models. Tools can also help developers address the underlying complexity of this approach. This paper presents a visualisation tool that is intricately related to the underlying architecture of a feature-based context-oriented programming language, and the context and feature models it uses. The visualisation confronts two hierarchical models (a context model and a feature model) and highlights the dependencies between them. An initial user study of the visualisation tool is performed to assess its usefulness and usability.

[1]  Alexander Egyed,et al.  Towards Visualization of Feature Interactions in Software Product Lines , 2016, 2016 IEEE Working Conference on Software Visualization (VISSOFT).

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

[3]  Sven Apel,et al.  Feature cohesion in software product lines: an exploratory study , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[5]  Jean Vanderdonckt,et al.  Simplifying the development of cross-platform web user interfaces by collaborative model-based design , 2013, SIGDOC '13.

[6]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

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

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

[9]  Michael Nieke,et al.  Context Aware Reconfiguration in Software Product Lines , 2016, VaMoS.

[10]  Alexandre Bergel,et al.  A visual support for decomposing complex feature models , 2015, 2015 IEEE 3rd Working Conference on Software Visualization (VISSOFT).

[11]  Jens von Pilgrim,et al.  Gef3D: a framework for two-, two-and-a-half-, and three-dimensional graphical editors , 2008, SOFTVIS.

[12]  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.

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

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

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

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

[17]  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.

[18]  Thomas Leich,et al.  FeatureIDE: A tool framework for feature-oriented software development , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[19]  Ramana Rao,et al.  A focus+context technique based on hyperbolic geometry for visualizing large hierarchies , 1995, CHI '95.

[20]  Kim Mens,et al.  Modeling and Managing Context-Aware Systems' Variability , 2017, IEEE Softw..

[21]  Oscar Nierstrasz,et al.  Context-oriented Programming , 2008, J. Object Technol..

[22]  Kim Mens,et al.  Feature Visualiser: an Inspection Tool for Context-Oriented Programmers , 2018, COP@ECOOP.

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

[24]  Kim Mens,et al.  A Context-Oriented Software Architecture , 2016, COP@ECOOP.