Vol 2 No.3

Checking Design Constraints at Run-time Using OCL and AspectJ

ABSTRACT  Design decisions and constraints of a software system can be specified precisely using a formal notation such as the Object Constraint Language (OCL). However, they are not executable, and assuring the conformance of an implementation to its design is hard. The inability of expressing design constraints in an implementation and checking them at runtime invites, among others, the problem of design drift and corrosion. We propose runtime checks as a solution to mitigate this problem. The key idea of our approach is to translate design constraints written in a formal notation such as OCL into aspects that, when applied to a particular implementation, check the constraints at run-time. Our approach enables runtime verification of design-implementation conformance and detects design corrosion. The approach is modular and plug-and-playable; the constraint checking logic is completely separated from the implementation modules which are oblivious of the former. We believe that a significant portion of constraints translation can be automated.

Authors
Carmen Avila
  • Organization : Department of Computer Science, University of Texas at El Paso, El Paso, Texas, U.S.A.
  • Email : ceavila3@miners.utep.edu
Read More
Cuauhtemoc Munoz
  • Organization : Department of Computer Science, University of Texas at El Paso, El Paso, Texas, U.S.A.
  • Email : cuauhtemocm@miners.utep.edu
Read More
Steve Roach
  • Organization : Department of Computer Science, University of Texas at El Paso, El Paso, Texas, U.S.A.
  • Email : sroach@utep.edu
Read More
Yoonsik Cheon
  • Organization : Department of Computer Science, University of Texas at El Paso, El Paso, Texas (U.S.A.)
  • Email : ycheon@utep.edu
Read More