Using Aspects for Enforcing Formal Architectural Invariants

Slim Kallel, Anis Charfi, Mohamed Jmaiel
2008 Electronical Notes in Theoretical Computer Science  
Formal methods such as Z and Petri nets can be used to specify invariants that should hold during the execution of component-based applications such as those regarding changes in the architecture of the application and valid sequences of architecture reconfigurations. Integrating logic for checking and enforcing these invariants into the application's implementation is generally done by adding appropriate code to the functional application code. In this paper, we discuss several limitations of
more » ... his approach that may ensue in a disconnection between the application implementation and its formal specification. We propose an approach for specifying and enforcing architectural constraints, which combines formal methods and Aspect-Oriented Programming. We use the Z notation for describing the architectural invariants of the application and Petri nets for modeling coordination protocols. At the implementation level, aspects intercept architecture reconfiguration events and check according to the formal specification and the coordination protocol whether a reconfiguration action can be performed.
doi:10.1016/j.entcs.2008.06.018 fatcat:zpxmk6hvevgnnfrugfmqgc73yu