Integrating OCL and Textual Modelling Languages

  • Florian Heidenreich
  • Jendrik Johannes
  • Sven Karol
  • Mirko Seifert
  • Michael Thiele
  • Christian Wende
  • Claas Wilke
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6627)


In the past years, many OCL tools achieved a transition of OCL from a language meant to constrain UML models to a universal constraint language applied to various modelling and metamodelling languages. However, OCL users still experience a discrepancy between the now highly extensible parsing and evaluation backend of OCL tools and the lack of appropriate frontend tooling like advanced OCL editors that adapt to the different application scenarios.

We argue that this has to be addressed both at a technical and methodological level. Therefore, this paper provides an overview of the technical foundations to provide an integrated OCL tooling frontend and backend for arbitrary textual modelling languages and contributes a stepwise process for such an integration. We distinguish two kinds of integration: external definition of OCL constraints and embedded definition of OCL constraints. Due to the textual notation of OCL the second kind provides particularly deep integration with textual modelling languages. We apply our approach in two case studies and discuss the benefits and limitations of the approach in general and both integration kinds in particular.


Form Language Object Constraint Language Object Management Group Eclipse Modeling Framework Attribute Grammar 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Object Management Group Object Constraint Language. Version 2.2 (February 2010)Google Scholar
  2. 2.
    Object Management Group Unified Modeling Language: Superstructure Version 2.2. Final Adopted Specification formal/2009-02-02 (February 2009)Google Scholar
  3. 3.
    Dang, D.H., Gogolla, M.: On Integrating OCL and Triple Graph Grammars. In: Chaudron, M.R.V. (ed.) MODELS 2008. LNCS, vol. 5421, pp. 124–137. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  4. 4.
    Debnath, N., Funes, A., Dasso, A., Montejano, G., Riesco, D., Uzal, R.: Integrating OCL Expressions into RSL Specifications. In: IEEE Int’l Conf. on Electro/Information Technology (EIT 2007), May 2007, pp. 182–186 (2007)Google Scholar
  5. 5.
    Stölzel, M., Zschaler, S., Geiger, L.: Integrating OCL and Model Transformations in Fujaba. ECEASST 5 (2006)Google Scholar
  6. 6.
    Demuth, B., Hußmann, H., Loecher, S.: OCL as a Specification Language for Business Rules in Database Applications. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 104–117. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  7. 7.
    Akehurst, D., Patrascoiu, O.: OCL 2.0 - Implementing the Standard for Multiple Metamodels. Electron. Notes Theor. Comput. Sci. 102, 21–41 (2004)CrossRefGoogle Scholar
  8. 8.
    Bräuer, M., Demuth, B.: Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support. In: Ocl4All: Modelling Systems with OCL Workshop at MoDELS 2007, Berlin, Germany, Technische Universität Berlin (October 2007)Google Scholar
  9. 9.
    Loecher, S., Ocke, S.: A Metamodel-based OCL-compiler for UML and MOF. Electron. Notes Theor. Comput. Sci. 102, 43–61 (2004)CrossRefGoogle Scholar
  10. 10.
    Eclipse Model Development Tools,
  11. 11.
    Object Management Group Meta-Object Facility (MOF) Core Specification. Version 2.0 (January 2006)Google Scholar
  12. 12.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Pearson Education, London (2008)Google Scholar
  13. 13.
    Wilke, C., Thiele, M., Wende, C.: Extending Variability for OCL Interpretation. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010. LNCS, vol. 6394, pp. 361–375. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  14. 14.
    Kolovos, D., Paige, R., Polack, F.: Detecting and Repairing Inconsistencies across Heterogeneous Models. In: 2008 Int’l Conf. on Software Testing, Verification, and Validation, pp. 356–364. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
  15. 15.
    Chimiak-Opoka, J., Demuth, B., Silingas, D., Rouquette, N.: Requirements Analysis for an Integrated OCL Development Environment. In: OCL 2009 Workshop - The Pragmatics Of OCL And Other Textual Specification Languages (2009)Google Scholar
  16. 16.
    Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and Refinement of Textual Syntax for Models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  17. 17.
    TU Dresden: Software Technology Group DresdenOCL (2010),
  18. 18.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala, 1st edn. Artima Press, Mountain View (2008)Google Scholar
  19. 19.
    Kiama - A Scala library for language processing (2010),
  20. 20.
    Wilke, C., Thiele, M.: DresdenOCL - Manual for Installation, Use and Development. Technische Universität Dresden, Dresden, Germany (2011)Google Scholar
  21. 21.
    Knuth, D.: Semantics of context-free languages. Theory of Computing Systems 2(2), 127–145 (1968)MathSciNetzbMATHGoogle Scholar
  22. 22.
    Demuth, B., Wilke, C.: Model and Object Verification by Using Dresden OCL. In: Proceedings of the Russian-German Workshop Innovation Information Technologies: Theory and Practice, Ufa, Russia, July 25-31. Ufa State Aviation Technical University, Ufa (2009)Google Scholar
  23. 23.
    Wilke, C.: Java Code Generation for Dresden OCL2 for Eclipse. Großer Beleg (minor thesis), Technische Universität Dresden, Dresden, Germany (February 2009)Google Scholar
  24. 24.
  25. 25.
    Bracha, G., Lindstrom, G.: Modularity Meets Inheritance. In: Int’l Conf. on Computer Languages, IEEE Computer Society, pp. 282–290. IEEE Computer Society, Los Alamitos (1992)Google Scholar
  26. 26.
    Taivalsaari, A.: On the Notion of Inheritance. ACM Computing Surveys 28(3), 438–479 (1996)CrossRefGoogle Scholar
  27. 27.
    Wende, C., Thieme, N., Zschaler, S.: A Role-based Approach Towards Modular Language Engineering. In: van den Brand, M., Gašević, D., Gray, J. (eds.) SLE 2009. LNCS, vol. 5969, pp. 254–273. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  28. 28.
    Karol, S., Zschaler, S.: Providing Mainstream Parser Generators with Modular Language Definition Support. Technical Report TUD-FI10-01 - Januar 2010, Technische Universität Dresden (January 2010)Google Scholar
  29. 29.
    Clark, C.: Newlines and Lexer States. SIGPLAN Notices 35(4), 18–24 (2000)CrossRefGoogle Scholar
  30. 30.
    Aksit, M., Mostert, R., Haverkort, B.: Compiler Generation Based on Grammar Inheritance. Technical report, University of Twente (July 1990)Google Scholar
  31. 31.
    The Java Compiler Compiler,
  32. 32.
    Ford, B.: Parsing Expression Grammars: A Recognition-Based Syntactic Foundation. In: 31st Symposium on Principles of Programming Languages (POPL 2004), pp. 111–122. ACM, New York (2004)Google Scholar
  33. 33.
    Grimm, R.: Better Extensibility through Modular Syntax. In: 2006 Conf. on Programming Language Design and Implementation (PLDI 2006), pp. 38–51. ACM, New York (2006)Google Scholar
  34. 34.
    Bosch, J.: Delegating Compiler Objects: Modularity and Reusability in Language Engineering. Nordic J. of Computing 4(1), 66–92 (1997)zbMATHGoogle Scholar
  35. 35.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The Syntax Definition Formalism SDF – Reference Manual. SIGPLAN Notices 24(11), 43–75 (1989)CrossRefGoogle Scholar
  36. 36.
    Wyk, E.R.V., Schwerdfeger, A.C.: Context-Aware Scanning For Parsing Extensible Languages. In: 6th Int’l Conf. on Generative Programming and Component Engineering (GPCE 2007), pp. 63–72. ACM, New York (2007)Google Scholar
  37. 37.
    Schürr, A.: Specification of Graph Translators with Triple Graph Grammars. In: Mayr, E.W., Schmidt, G., Tinhofer, G. (eds.) WG 1994. LNCS, vol. 903. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  38. 38.
    Berkenkötter, K.: OCL-based Validation of a Railway Domain Profile. In: Auletta, V. (ed.) MoDELS 2006. LNCS, vol. 4364, pp. 159–168. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  39. 39.
    Scheidgen, M.: Textual Modelling Embedded into Graphical Modelling. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 153–168. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  40. 40.
    Kolovos, D.S., Paige, R.F., Polack, F.: Aligning OCL with Domain-Specific Languages to Support Instance-Level Model Queries. ECEASST 5 (2006)Google Scholar
  41. 41.
    Kent, S.: Constraint Diagrams: Visualizing Assertions in Object-Oriented Models. In: OOPSLA, pp. 327–341 (1997)Google Scholar
  42. 42.
    Bottoni, P., Koch, M., Parisi-Presicce, F., Taentzer, G.: A Visualization of OCL Using Collaborations. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 257–271. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  43. 43.
    Kolovos, D.S., Rose, L., Page, R.F.: The Epsilon Book,

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Florian Heidenreich
    • 1
  • Jendrik Johannes
    • 1
  • Sven Karol
    • 1
  • Mirko Seifert
    • 1
  • Michael Thiele
    • 1
  • Christian Wende
    • 1
  • Claas Wilke
    • 1
  1. 1.Institut für Software- und MultimediatechnikTechnische Universität DresdenDresdenGermany

Personalised recommendations