Learn More
Thanks to steady advances in hardware, mobile computing platforms are nowadays much more connected to their physical and logical environment than ever before. To ease the construction of adaptable applications that are smarter with respect to their execution environment , the context-oriented programming paradigm has emerged. However , up until now there(More)
Software-as-a-Service (SaaS) applications are multi-tenant software applications that are delivered as highly configurable web services to individual customers, which are called tenants in this context. For reasons of complexity management and to lower maintenance cost, SaaS providers maintain and deploy a single version of the application code for all(More)
Context-oriented programming enables adaptation of systems to their execution environment. Behavioral adaptations are defined in the system and then associated to a context. Such adaptations are made available at runtime when their context is deemed more appropriate by the execution environment. Context activation is reified using two techniques. Global to(More)
Ensuring the consistent composition of context-dependent behavior is a major challenge in context-aware systems. Developers have to manually identify and validate existing interactions between behav-ioral adaptations, which is far from trivial. This paper presents a run-time model for the consistency management of context-dependent behavior, called context(More)
Context-oriented programming languages provide language abstractions for the dynamic activation and deactivation of behavioral adaptations, based on the system's context of execution. As contexts are freely activated and deactivated, their associated behavior adaptations are added and removed to and from the system, which may break its consistency with(More)
—The development of self-adaptive systems requires the definition of the parts of the system that will be adapted, when such adaptations will take place, and how these adaptations will interact with each other. However, foreseeing all possible adaptations and their interactions is a difficult task, opening the possibility to inconsistencies or erroneous(More)
Context-Oriented Programming languages enable the definition of systems that can adapt their behavior according to specific situations in their surrounding environment. Current approaches require developers to have prior knowledge about such situations and the adaptations applicable in each one. Such approach hinders the use of Context-Oriented Programming(More)
Role-based approaches gain more and more interest for modeling and implementing variable software systems. Role models clearly separate static behavior represented by players and dynamic behavior modeled as roles which can be dynamically bound and unbound to players at run time. To support the execution of role-based systems, a dynamic binding mechanism is(More)
This paper introduces a new plant-inspired mechanism for decentralized adaptation, called <i>clonal plasticity</i>, which does not make use of the MAPE loop. The mechanism acts on every individual in a population and does not require centralized control. The paper presents a case-study demonstrating its utility and feasibility in adaptation. The paper(More)
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(More)