AuthorsJ. W. Dzidek, L. Briand and Y. Labiche
EditorsJ. Bruel
TitleLessons Learned From Developing a Dynamic OCL Constraint Enforcement Tool for Java
AfilliationSoftware Engineering, Software Engineering
Publication TypeBook Chapter
Year of Publication2006
Book TitleSatellite Events at the MoDELS 2005 Conference: MoDELS 2005 International Workshops OCLWS, MoDeVA, MARTES, AOM, MTiP, WiSME, MODAUI, NfC, MDD, WUsCAM, Montego Bay, Jamaica, October 2-7, 2005, Revised Selected Papers
Secondary TitleLecture Notes in Computer Science, Vol. 3844
Date PublishedJanuary
ISBN Number3-540-31780-5

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.