Object Constraint Language (OCL): A Definitive Guide

  • Jordi Cabot
  • Martin Gogolla
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7320)


The Object Constraint Language (OCL) started as a complement of the UML notation with the goal to overcome the limitations of UML (and in general, any graphical notation) in terms of precisely specifying detailed aspects of a system design. Since then, OCL has become a key component of any model-driven engineering (MDE) technique as the default language for expressing all kinds of (meta)model query, manipulation and specification requirements. Among many other applications, OCL is frequently used to express model transformations (as part of the source and target patterns of transformation rules), well-formedness rules (as part of the definition of new domain-specific languages), or code-generation templates (as a way to express the generation patterns and rules).

This chapter pretends to provide a comprehensive view of this language, its many applications and available tool support as well as the latest research developments and open challenges around it.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anastasakis, K., Bordbar, B., Georg, G., Ray, I.: UML2Alloy: A Challenging Model Transformation. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MoDELS 2007. LNCS, vol. 4735, pp. 436–450. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  2. 2.
    Baar, T.: On the need of user-defined libraries in OCL. ECEASST 36 (2010)Google Scholar
  3. 3.
    Bergmann, G., Horváth, Á., Ráth, I., Varró, D., Balogh, A., Balogh, Z., Ökrös, A.: Incremental Evaluation of Model Queries over EMF Models. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MoDELS 2010, Part I. LNCS, vol. 6394, pp. 76–90. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  4. 4.
    Borgida, A., Mylopoulos, J., Reiter, R.: On the frame problem in procedure specifications. IEEE Trans. Software Eng. 21(10), 785–798 (1995)CrossRefGoogle Scholar
  5. 5.
    Brucker, A.D., Krieger, M.P., Wolff, B.: Extending OCL with null-references. In: Ghosh [15], pp. 261–275Google Scholar
  6. 6.
    Brucker, A.D., Wolff, B.: The HOL-OCL book. Technical Report 525, ETH Zurich (2006)Google Scholar
  7. 7.
    Büttner, F., Gogolla, M., Hamann, L., Kuhlmann, M., Lindow, A.: On better understanding OCL collections or an OCL ordered set is not an OCL set. In: Ghosh [15], pp. 276–290Google Scholar
  8. 8.
    Cabot, J., Clarisó, R., Riera, D.: UMLtoCSP: a tool for the formal verification of UML/OCL models using constraint programming. In: ASE, pp. 547–548. ACM (2007)Google Scholar
  9. 9.
    Cabot, J., Mazón, J.-N., Pardillo, J., Trujillo, J.: Specifying aggregation functions in multidimensional models with OCL. In: Parsons, et al. [22], pp. 419–432Google Scholar
  10. 10.
    Cabot, J., Teniente, E.: Constraint Support in MDA Tools: A Survey. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 256–267. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  11. 11.
    Cabot, J., Teniente, E.: Incremental integrity checking of UML/OCL conceptual schemas. Journal of Systems and Software 82(9), 1459–1478 (2009)CrossRefGoogle Scholar
  12. 12.
    Chimiak-Opoka, J.D., Demuth, B., Awenius, A., Chiorean, D., Gabel, S., Hamann, L., Willink, E.D.: OCL tools report based on the ide4OCL feature model. ECEASST 44 (2011)Google Scholar
  13. 13.
    Dobing, B., Parsons, J.: How UML is used. Commun. ACM 49, 109–113 (2006)CrossRefGoogle Scholar
  14. 14.
    Frias, L., Queralt, A., Olivé, A.: Eu-rent car rentals specification. Technical Report LSI Research Report. LSI-03-59-R, UPC (2003)Google Scholar
  15. 15.
    Ghosh, S. (ed.): MoDELS 2009. LNCS, vol. 6002. Springer, Heidelberg (2010)Google Scholar
  16. 16.
    Gogolla, M., Bohling, J., Richters, M.: Validating UML and OCL Models in USE by Automatic Snapshot Generation. Journal on Software and System Modeling 4(4), 386–398 (2005)CrossRefGoogle Scholar
  17. 17.
    Gogolla, M., Büttner, F., Richters, M.: Use: A UML-based specification environment for validating UML and OCL. Sci. Comput. Program. 69(1-3), 27–34 (2007)MathSciNetCrossRefMATHGoogle Scholar
  18. 18.
    Heidenreich, F., Wende, C., Demuth, B.: A framework for generating query language code from OCL invariants. ECEASST 9 (2008)Google Scholar
  19. 19.
    Kuhlmann, M., Hamann, L., Gogolla, M.: Extensive Validation of OCL Models by Integrating SAT Solving into USE. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 290–306. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  20. 20.
    Object Management Group. OCL 2.3.1 Specification (2010)Google Scholar
  21. 21.
    Object Management Group. UML 2.4.1 Superstructure Specification (2011)Google Scholar
  22. 22.
    Parsons, J., Saeki, M., Shoval, P., Woo, C.C., Wand, Y. (eds.): ER 2010. LNCS, vol. 6412. Springer, Heidelberg (2010)Google Scholar
  23. 23.
    Queralt, A., Rull, G., Teniente, E., Farré, C., Urpí, T.: Aurus: Automated reasoning on UML/OCL schemas. In: Parsons, et al. [22], pp. 438–444Google Scholar
  24. 24.
    Soeken, M., Wille, R., Kuhlmann, M., Gogolla, M., Drechsler, R.: Verifying UML/OCL models using boolean satisfiability. In: DATE, pp. 1341–1344. IEEE (2010)Google Scholar
  25. 25.
    Tisi, M., Martínez, S., Jouault, F., Cabot, J.: Lazy Execution of Model-to-Model Transformations. In: Whittle, J., Clark, T., Kühne, T. (eds.) MoDELS 2011. LNCS, vol. 6981, pp. 32–46. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  26. 26.
    Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley (2003)Google Scholar
  27. 27.
    Wieringa, R.: A survey of structured and object-oriented software specification methods and techniques. ACM Comput. Surv. 30(4), 459–527 (1998)CrossRefGoogle Scholar
  28. 28.
    Willink, E.D.: Modeling the OCL standard library. ECEASST 44 (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jordi Cabot
    • 1
  • Martin Gogolla
    • 2
  1. 1.INRIA / École des Mines de NantesFrance
  2. 2.University of BremenGermany

Personalised recommendations