RECOCO: Reflective Reconfiguration Support for Context-dependent Software Updates

Printer-friendly version
January 2009 to December 2012
FWO Research Project

Ensuring that software can display different behavior in different use contexts requires adapting software at runtime in dynamically created scopes (e.g. in a thread, in a client session, in a collaboration). Context-Oriented Programming (COP) [12]offers dedicated language constructs for performing such dynamically scoped adaptations. However, like any dynamic software adaptation technique, COP hits a conceptual barrier when new variations of existing program entities are integrated into a running system: Although dynamically scoped adaptations inherently preserve some structural integrity requirements [5], global state consistency requirements [6] cannot be automatically ensured. Managing dynamically scoped adaptations therefore requires additional application-specific logic from within the system itself. Currently this application-specific logic must be added by the programmer in an ad-hoc way, which pollutes the system's design. The aim of this project is two-fold: (i) the description of the foundations of context-oriented programming that allows systematic reasoning about system-wide consistency in the presence of dynamically scoped adaptations, and (ii) based on this foundation, the creation of a reflective architecture for context-oriented programming languages that accommodates implementing application-specific policies for dealing with consistency conflicts.