@inbook{12430, author = {James Dzidek and Lionel Briand and Yvan Labiche}, title = {Lessons Learned From Developing a Dynamic OCL Constraint Enforcement Tool for Java}, abstract = {Analysis and design by contract allows the definition of a formal agreement between a class and its clients, expressing each party{\textquoteright}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.}, year = {2006}, journal = {Satellite 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}, pages = {10-19}, month = {January}, publisher = {Springer}, isbn = {3-540-31780-5}, editor = {Jean-Michel Bruel}, }