PROCEEDINGS OF THE 9TH INTERNATIONAL WORKSHOP ON CONTEXT-ORIENTED PROGRAMMING, 2017
Context-oriented Programming enables dynamic behavioral adaptations with the purpose of presenting the most appropriate behavior to the situations in software systems’ surrounding execution environment. However, as multiple situations may be sensed simultaneously, different such adaptations may be applicable, generating conflicts in systems’ execution. Deciding which behavioral adaptation to use in every situation is normally left to developers, who are therefore required to foresee and resolve all possible conflicts between adaptations manually at design time. Due to systems’ high dynamicity, combinations of situations and interactions between adaptations might be unfeasible to foresee and may vary during the system execution. In response to this, we posit an automated conflict resolution mechanism that accounts for the system uncertainty and dynamics. The mechanism builds on W-Learning, a Reinforcement Learning algorithm that captures the relationships between simultaneously proposed adaptations over time, updating their appropriateness as the system progresses. As a consequence, the system itself learns which of the potentially conflicting adaptations is most appropriate for the current combination of the sensed situations, according to the system’s global payoff. We implement a proof-of-concept vehicle cruise-control system, illustrating the situations in which multiple conflicting adaptations are proposed. We demonstrate that the system learns which adaptation should be executed for every combination of the sensed contexts, such that high-level goals of the underlying system remain satisfied.