Combining formal methods and aspects for specifying and enforcing architectural invariants

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

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

  • Venue:
  • COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Several types of invariants should be maintained when the architecture of a software application evolves. To specify these invariants in a reliable way, formal methods are used. However, current approaches suffer from two limitations. First, they support only certain types of invariants. Second, checking and enforcing the invariants is generally done by adding appropriate logic to the application implementation in a manual way, which is error-prone and may lead to architectural erosion. In this paper, we combine the Z notation and Petri nets to specify formally architectural invariants in distributed object-oriented software applications. Moreover, we use a generative aspect-based approach to checking and enforcing these invariants. Thus, we bridge the gap between the formal specification and the implementation. Our approach brings several other benefits as the code that checks and enforces invariants is generated automatically and well-modularized in aspects.