Automated invariant maintenance via OCL compilation

  • Authors:
  • Kurt Stirewalt;Spencer Rugaber

  • Affiliations:
  • Computer Science and Engineering, Michigan State University;College of Computing, Georgia Institute of Technology

  • Venue:
  • MoDELS'05 Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

UML design models, specifically their declarative OCL invariants, must be refined into delivered code. A key problem is the need to integrate this logic with programmer-written code in a non-intrusive way. We recently developed an approach, called mode components, for compiling OCL constraints into modules that implement logic for transparently maintaining these constraints at run time. Specifically, mode components are implemented as nested C++ class template instantiations. The approach makes use of a key device-status variables. The attributes of a component to which other components are sensitive are called its status. A status variable is a lightweight wrapper on a status attribute that detects changes to its value and transparently invokes a method to handle announcements to dependent components. A mode component is a wrapped code unit containing one or more status variables. The contribution of this paper is a technique for achieving this integration using metaprogramming techniques.