Duhoux, Benoît
[UCL]
Context-oriented programming enables dynamic software evolution by supporting the creation of software systems that dynamically adapt their behaviour depending on the context of their surrounding environment. Upon sensing a new particular situation in the surrounding environment, which is reified as a context, the system activates this context and then continues by selecting and activating fine-grained features corresponding to that context. These features, representing functionalities specific to that context, are then installed in the system to refine its behaviour at runtime. Conceiving such systems is complex due to their high dynamicity and the combinatorial explosion of possible contexts and corresponding features that could be active. To address this complexity, we propose a feature-based context-oriented software development approach to design and implement context-oriented applications. This approach unifies context-oriented programming, feature modelling and dynamic software product lines into a single paradigm. In this novel paradigm we separate clearly and explicitly contexts and features that we model in terms of a context model, a feature model and the mapping between them. We also design an architecture, implement a programming framework, and develop a supporting development methodology and two visualisation tools to help designers and programmers in their modelling, development and debugging tasks. Furthermore we also develop a user interface library in our approach to create applications with user interfaces that are adaptive. To validate our feature-based context-oriented software development approach, we designed five case studies and implemented three of them. Then we discussed the design qualities to evaluate our implementation of the programming framework. We also assessed the usability of the programming framework from our own perspective based on the cognitive dimensions of notations framework. Finally we also conducted four user studies with real users in which we asked them to play the role of designers and programmers to validate the understandability, usefulness and usability of our approach. The results we gathered from our participants are promising and provide us with several paths to enhance our approach.


Bibliographic reference |
Duhoux, Benoît. Feature-based context-oriented software development. Prom. : Mens, Kim ; Dumas, Bruno |
Permanent URL |
http://hdl.handle.net/2078.1/266106 |