Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Object Management Group Object Constraint Language. Version 2.2 (February 2010)
Object Management Group Unified Modeling Language: Superstructure Version 2.2. Final Adopted Specification formal/2009-02-02 (February 2009)
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)
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)
Stölzel, M., Zschaler, S., Geiger, L.: Integrating OCL and Model Transformations in Fujaba. ECEASST 5 (2006)
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)
Akehurst, D., Patrascoiu, O.: OCL 2.0 - Implementing the Standard for Multiple Metamodels. Electron. Notes Theor. Comput. Sci. 102, 21–41 (2004)
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)
Loecher, S., Ocke, S.: A Metamodel-based OCL-compiler for UML and MOF. Electron. Notes Theor. Comput. Sci. 102, 43–61 (2004)
Eclipse Model Development Tools, http://www.eclipse.org/modeling/mdt/
Object Management Group Meta-Object Facility (MOF) Core Specification. Version 2.0 (January 2006)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Pearson Education, London (2008)
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)
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)
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)
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)
TU Dresden: Software Technology Group DresdenOCL (2010), http://dresden-ocl.sourceforge.net/
Odersky, M., Spoon, L., Venners, B.: Programming in Scala, 1st edn. Artima Press, Mountain View (2008)
Kiama - A Scala library for language processing (2010), http://code.google.com/p/kiama/
Wilke, C., Thiele, M.: DresdenOCL - Manual for Installation, Use and Development. Technische Universität Dresden, Dresden, Germany (2011)
Knuth, D.: Semantics of context-free languages. Theory of Computing Systems 2(2), 127–145 (1968)
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)
Wilke, C.: Java Code Generation for Dresden OCL2 for Eclipse. Großer Beleg (minor thesis), Technische Universität Dresden, Dresden, Germany (February 2009)
AtlanMod Metamodel Zoo, http://www.emn.fr/z-info/atlanmod/index.php/Zoos
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)
Taivalsaari, A.: On the Notion of Inheritance. ACM Computing Surveys 28(3), 438–479 (1996)
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)
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)
Clark, C.: Newlines and Lexer States. SIGPLAN Notices 35(4), 18–24 (2000)
Aksit, M., Mostert, R., Haverkort, B.: Compiler Generation Based on Grammar Inheritance. Technical report, University of Twente (July 1990)
The Java Compiler Compiler, https://javacc.dev.java.net/
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)
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)
Bosch, J.: Delegating Compiler Objects: Modularity and Reusability in Language Engineering. Nordic J. of Computing 4(1), 66–92 (1997)
Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The Syntax Definition Formalism SDF – Reference Manual. SIGPLAN Notices 24(11), 43–75 (1989)
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)
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)
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)
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)
Kolovos, D.S., Paige, R.F., Polack, F.: Aligning OCL with Domain-Specific Languages to Support Instance-Level Model Queries. ECEASST 5 (2006)
Kent, S.: Constraint Diagrams: Visualizing Assertions in Object-Oriented Models. In: OOPSLA, pp. 327–341 (1997)
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)
Kolovos, D.S., Rose, L., Page, R.F.: The Epsilon Book, http://www.eclipse.org/gmt/epsilon/doc/book/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Heidenreich, F. et al. (2011). Integrating OCL and Textual Modelling Languages. In: Dingel, J., Solberg, A. (eds) Models in Software Engineering. MODELS 2010. Lecture Notes in Computer Science, vol 6627. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21210-9_34
Download citation
DOI: https://doi.org/10.1007/978-3-642-21210-9_34
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21209-3
Online ISBN: 978-3-642-21210-9
eBook Packages: Computer ScienceComputer Science (R0)