Lessons learned from developing a dynamic OCL constraint enforcement tool for java

  • Authors:
  • Wojciech J. Dzidek;Lionel C. Briand;Yvan Labiche

  • Affiliations:
  • Simula Research Laboratory, Lysaker, Norway;Software Quality Engineering Laboratory, Department of Systems and Computer Engineering, Carleton University, Ottawa, ON, Canada;Software Quality Engineering Laboratory, Department of Systems and Computer Engineering, Carleton University, Ottawa, ON, Canada

  • Venue:
  • MoDELS'05 Proceedings of the 2005 international conference on Satellite Events at the MoDELS
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Analysis and design by contract allows the definition of a formal agreement between a class and its clients, expressing each party's rights and obligations. Contracts written in the Object Constraint Language (OCL) are known to be a useful technique to specify the precondition and postcondition of operations and class invariants in a UML context, making the definition of object-oriented analysis or design elements more precise while also helping in testing and debugging. In this article, we report on the experiences with the development of ocl2j, a tool that automatically instruments OCL constraints in Java programs using aspect-oriented programming (AOP). The approach strives for automatic and efficient generation of contract code, and a non-intrusive instrumentation technique. A summary of our approach is given along with the results of an initial case study, the discussion of encountered problems, and the necessary future work to resolve the encountered issues.