Self-Prioritized Modular Adaptations using Bidirectional Transformations

  • Jérémy Duchesne
  • Quentin Lombat

Student thesis: Master typesMaster in Computer Science Professional focus in Software engineering

Abstract

As self-adaptive software systems get complex, it is desirable to modularize the monitoringanalysis-planning-execution (MAPE) feedback loop into ones that manage the changes related to individual goals. However, decomposing into modules requires resolving conflicts when the shared information is updated simultaneously. To address the challenge, we propose self-prioritization on top of Kramer et al.'s three-layered architecture of self-managing systems. A complex MAPE loop is first broken down into model-based Analysis-Planning (AP) process pairs, formulating an M(AP)+E loop template while sharing the monitor and execution interfaces to the managed system. Then, bidirectional transformations (BXs) are used to propagate changes between the modularized AP views, using BiGUL, a well-behaved put-based bidirectional language. Finally, conflicts between views are avoided by executing the AP pairs sequentially in a certain ordering, giving the maximum priority to the last one, and allowing it to overwrite the changes made by the previous ones. An important feature of our approach is that it frees users from specifying the changing priorities by employing a rule-based synchronizer that self-prioritizes the conflict-free execution of AP modules with
respect to dynamic contexts. Our approach has been implemented and illustrated on an
Infrastructure as a Service (IaaS), the Amazon Web Services (AWS) API. Its evaluation
highlights the effciency of using BiGUL, and the usefulness of the self-prioritized modular adaptation system.
Date of Award18 Jun 2018
Original languageEnglish
Awarding Institution
  • University of Namur
SupervisorPierre Yves Schobbens (Supervisor)

Cite this

'