5 research outputs found
Enforcing Architectural Styles in Presence of Unexpected Distributed Reconfigurations
Architectural Design Rewriting (ADR, for short) is a rule-based formal
framework for modelling the evolution of architectures of distributed systems.
Rules allow ADR graphs to be refined. After equipping ADR with a simple logic,
we equip rules with pre- and post-conditions; the former constraints the
applicability of the rules while the later specifies properties of the
resulting graphs. We give an algorithm to compute the weakest pre-condition out
of a rule and its post-condition. On top of this algorithm, we design a simple
methodology that allows us to select which rules can be applied at the
architectural level to reconfigure a system so to regain its architectural
style when it becomes compromised by unexpected run-time reconfigurations.Comment: In Proceedings ICE 2012, arXiv:1212.345
Design-by-contract for software architectures
We propose a design by contract (DbC) approach to specify and maintain architectural
level properties of software. Such properties are typically relevant in the design
phase of the development cycle but may also impact the execution of systems. We give a
formal framework for specifying software architectures (and their refi nements) together
with contracts that architectural con figurations abide by. In our framework, we can
specify that if an architecture guarantees a given pre- condition and a refi nement rule
satisfi es a given contract, then the refi ned architecture will enjoy a given post-condition.
Methodologically, we take Architectural Design Rewriting (ADR) as our architectural
description language. ADR is a rule-based formal framework for modelling (the
evolution of) software architectures. We equip the recon figuration rules of an ADR
architecture with pre- and post-conditions expressed in a simple logic; a pre-condition
constrains the applicability of a rule while a post-condition specifi es the properties
expected of the resulting graphs. We give an algorithm to compute the weakest precondition
out of a rule and its post-condition. Furthermore, we propose a monitoring
mechanism for recording the evolution of systems after certain computations, maintaining
the history in a tree-like structure. 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 defi ne new rewriting mechanisms for ADR reconfi guration
rules. Also, by monitoring the evolution we propose a way of identifying which part of
a system has been a ffected when unexpected run-time behaviours emerge. Moreover,
we propose a methodology that allows us to select which rules can be applied at the
architectural level to reconfigure a system so to regain its architectural style when it
becomes compromised by unexpected run-time recon figurations
On Recovering from Run-time Misbehaviour in ADR ∗
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.