Using Aspects for Enforcing Formal Architectural Invariants

  • Authors:
  • Slim Kallel;Anis Charfi;Mohamed Jmaiel

  • Affiliations:
  • Software Technology Group, Darmstadt University of Technology, Darmstadt, Germany;SAP Research CEC Darmstadt, Darmstadt, Germany;ReDCAD Laboratory, National Engineering School of Sfax, Sfax, Tunisia

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 this 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.