On Recovering from Run-time Misbehaviour in ADR
This addresses system reliability issues for users of ADR-based architectures, but appears incremental as it builds on existing ADR frameworks.
The paper tackles the problem of unexpected run-time misbehaviour in systems modeled with ADR by proposing a monitoring mechanism that records system evolution in a tree-like structure, enabling identification of affected parts and suggesting reconfigurations to recover to a non-erroneous state.
We propose a monitoring mechanism for recording the evolution of systems after certain computations, maintaining the history in a tree-like structure. Technically, we develop the monitoring mechanism in a variant of ADR (after Architectural Design Rewriting), a rule-based formal framework for modelling the evolution of architectures of systems. The hierarchical nature of ADR allows us to take full advantage of the tree-like structure of the monitoring mechanism. We exploit this mechanism to formally define new rewriting mechanisms for ADR reconfiguration rules. Also, by monitoring the evolution we propose a way of identifying which part of a system has been affected when unexpected run-time behaviours emerge. Moreover, we propose a methodology to suggest reconfigurations that could potentially lead the system in a non-erroneous state.