Reflective Constraint Writing

A Symbolic Viewpoint of Modeling Languages
  • Dirk Draheim
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9510)


In this article we show how to extend object constraint languages by reflection. We choose OCL (Object Constraint Language) and extend it by operators for reification and reflection. We show how to give precise semantics to the extended language OCL\(_{R}\) by elaborating the necessary type derivation rules and value specifications. A driving force for the introduction of reflection capabilities into a constraint language is the investigation of semantics and pragmatics of modeling constructs. We exploit the resulting reflective constraint language in modeling domains including sets of sets of domain objects. We give precise semantics to UML power types. We carve out the notion of sustainable constraint writing which is about making models robust against unwanted updates. Reflective constraints are an enabler for sustainable constraint writing. We discuss the potential of sustainable constraint writing for emerging tools and technologies. For this purpose, we need to introduce a symbolic viewpoint of information system modeling.


Meta modeling Multi-level modeling Object constraint languages Generative programming Database migration Schema evolution clabjects Modeling tools UML OCL Genoupe 



I am grateful to Roland Wagner and Josef Küng for the many inspiring discussions on the foundations and, in particular, on the realization of database information systems, e.g., in the context of the DEXA series of conferences and related events. In particular, I am also grateful for the joint endeavors in distributed workflow automation projects.

Supplementary material


  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)zbMATHCrossRefGoogle Scholar
  2. 2.
    Asikainen, T., Männistö, T.: Nivel – a metamodeling language with a formal semantics. Softw. Syst. Model. 8(4), 521–549 (2009)CrossRefGoogle Scholar
  3. 3.
    Atkinson, C., Bostan, P., Draheim, D.: Foundational MDA patterns for service-oriented computing. J. Object Technol. 13(5), 1–30 (2015)Google Scholar
  4. 4.
    Atkinson, C., Bostan, P., Draheim, D.: A unified conceptual framework for service-oriented computing. In: Hameurlain, A., Küng, J., Wagner, R. (eds.) TLDKS VII. LNCS, vol. 7720, pp. 128–169. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  5. 5.
    Atkinson, C., Draheim, D.: Cloud aided-software engineering - evolving viable software systems through a web of views. In: Mahmood, Z., Saeed, S. (eds.) Software Engineering Frameworks for the Cloud Computing Paradigm, pp. 255–281. Springer, London (2013)CrossRefGoogle Scholar
  6. 6.
    Atkinson, C., Gerbig, R., Kennel, B., General-purpose, symbiotic, languages, domain-specific. In: Proceedings of the 34th International Conference on Software Engineering, ICSE 2012. IEEE Press (2012)Google Scholar
  7. 7.
    Atkinson, C., Grossman, G., Kühne, T., de Lara, J. (eds.): Proceedings of the 1st Workshop on Multi-Level Modelling, MULTI 2014 (2014)Google Scholar
  8. 8.
    Atkinson, C., Gutheil, M., Kennel, B.: A flexible infrastructure for multilevel language engineering. IEEE Trans. Softw. Eng. 35(6), 742–755 (2009)CrossRefGoogle Scholar
  9. 9.
    Atkinson, C., Kennel, B., Goß, B.: Supporting constructive and exploratory modes of modeling in multi-level ontologies. In: Proceedings of the 7th International Conference on Semantic Web-Enabled Software Engineering, SWESE 2011 (2011)Google Scholar
  10. 10.
    Atkinson, C., Kühne, T.: Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simulat. 12(4), 290–321 (2002)CrossRefGoogle Scholar
  11. 11.
    Barendregt, H.P.: The Lambda Calculus - Its Syntax and Semantics. North Holland, Amsterdam (1984)zbMATHGoogle Scholar
  12. 12.
    Barr, M., Wells, C.: Category Theory for Computing Science, 2nd edn. Prentice Hall, Reading (1995)Google Scholar
  13. 13.
    Berger, M., Tratt, L.: Program logics for homogeneous generative run-time meta-programming. Logic Comput. Sci. 11(5) (2015)Google Scholar
  14. 14.
    Bordbar, B., Draheim, D., Horn, M., Schulz, I., Weber, G.: Integrated model-based software development, data access and data migration. In: Proceedings of the 8th ACM/IEEE Conference on Model Driven Engineering, Languages and Systems, MODELS 2005 (2005)Google Scholar
  15. 15.
    Brentano, F.: Psychologie vom empirischen Standpunkt. Duncker & Humblot, Leipzig (1874)Google Scholar
  16. 16.
    Brentano, F.: Psychology from an Empirical Standpoint. Routledge, London (1995)Google Scholar
  17. 17.
    Cardelli, L.: Type systems. In: Handbook of Computer Science and Engineering. CRC Press (1997)Google Scholar
  18. 18.
    Chen, P.P.-S.: The entity-relationship model - toward a unified view of data. ACM Trans. Database Syst. 1(1), 9–36 (1976)CrossRefGoogle Scholar
  19. 19.
    Corradi, A., Servetto, M., Zucca, E.: DeepFJig: modular composition of nested classes. In: Proceedings of the 9th International Conference on Principles and Practice of Programming in Java, PPPJ 2011. ACM Press (2011)Google Scholar
  20. 20.
    Czarnecki, K., Eisenecker, U.: Generative Programming - Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  21. 21.
    Deridder, D., et al. (eds.): Pre-proceedings of the International Workshop on Models and Evolution, MODELS 2011 (2010)Google Scholar
  22. 22.
    van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. ACM SIGPLAN Not. 35(6), 26–36 (2000)CrossRefGoogle Scholar
  23. 23.
    de Lara, J., Guerra, E.: Deep meta-modelling with MetaDepth. In: Vitek, J. (ed.) TOOLS 2010. LNCS, vol. 6141, pp. 1–20. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  24. 24.
    de Lara, J., Guerra, E.: Generic meta-modelling with concepts, templates and mixin layers. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010, Part I. LNCS, vol. 6394, pp. 16–30. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  25. 25.
    Draheim, D., Weber, G.: Strongly typed server pages. In: Halevy, A.Y., Gal, A. (eds.) NGITS 2002. LNCS, vol. 2382, pp. 29–44. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Draheim, D., Weber, G.: Modeling submit/response style systems with form charts and dialogue constraints. In: Meersman, R., Tari, Z. (eds.) OTM 2003. LNCS, vol. 2889, pp. 267–278. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  27. 27.
    Draheim, D.: Business Process Technology - A Unified View on Business Processes, Workflows and Enterprise Applications. Springer, Heidelberg (2010)Google Scholar
  28. 28.
    Draheim, D., Horn, M., Schulz, I.: The schema evolution, data migration framework of the environmental mass database IMIS. In: Proceedings of the 16th International Conference on Scientific and Statistical Database Management. IEEE (2004)Google Scholar
  29. 29.
    Draheim, D.: Sustainable constraint writing and a symbolic viewpoint of modeling languages. In: Decker, H., Lhotská, L., Link, S., Spies, M., Wagner, R.R. (eds.) DEXA 2014, Part I. LNCS, vol. 8644, pp. 12–19. Springer, Heidelberg (2014)Google Scholar
  30. 30.
    Draheim, D., Himsl, M., Jabornig, D., Leithner, W., Regner, P., Wiesinger, T.: Intuitive visualization-oriented metamodeling. In: Bhowmick, S.S., Küng, J., Wagner, R. (eds.) DEXA 2009. LNCS, vol. 5690, pp. 727–734. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  31. 31.
    Draheim, D., Himsl, M., Jabornig, D., Küng, J., Leithner, W., Regner, P., Wiesinger, T.: Concept and pragmatics of an intuitive visualization-oriented metamodeling tool. J. Vis. Lang. Comput. 21(4), 157–170 (2010). ElsevierCrossRefGoogle Scholar
  32. 32.
    Draheim, D., Natschlger, C.: A context-oriented synchronization approach. In: Proceedings of the 2nd International Profile Management, and Context Awarness, VLDB Workshop in Personalized Access, PersDB 2008 (2008)Google Scholar
  33. 33.
    Draheim, D., Lutteroth, C., Weber, G.: Generative programming for C#. ACM SIGPLAN Not. 40(8), 29–33 (2005). ACM PressCrossRefGoogle Scholar
  34. 34.
    Draheim, D., Lutteroth, C., Weber, G.: A type system for reflective program generators. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 327–341. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  35. 35.
    Draheim, D., Lutteroth, C., Weber, G., Factory: statically type-safe integration of genericity and reflection. In: Proceedings of the 4th International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, ACIS 2003 (2003)Google Scholar
  36. 36.
    Draheim, D., Weber, G.: Modelling form-based interfaces with bipartite state machines. J. Interact. Comput. 17(2), 207–228 (2005). ElsevierCrossRefGoogle Scholar
  37. 37.
    Draheim, D., Weber, G.: Form-Oriented Analysis - A New Methodology to Model Form-Based Applications. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  38. 38.
    Froehner, T., Nickles, M., Weiss, G.: Open ontologies – the need for modeling heterogeneous knowledge. In: Proceedings of the International Conference on Information and Knowledge Engineering, IKE 2004 (2004)Google Scholar
  39. 39.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn. Addison Wesley, Reading (2005)Google Scholar
  40. 40.
    Gurevich, Y.: Evolving Algebras 1993 - Lipari Guide. Oxford University Press, New York (1995)Google Scholar
  41. 41.
    Guarino, N.: Formal ontology and information systems. In: Guarino, N. (ed.) Proceedings of the 1st International Conference on Formal Ontology and Information Systems, pp. 3–15. IOS Press, Amsterdam (1998)Google Scholar
  42. 42.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 30–32 (1969)CrossRefGoogle Scholar
  43. 43.
    Hayes, I.J.: Applying formal specification to software development in industry. IEEE Trans. Softw. Eng. 11(2), 169–178 (1985)CrossRefGoogle Scholar
  44. 44.
    Hayes, I.J.: Specification Case Studies. Prentice Hall, London (1993)zbMATHGoogle Scholar
  45. 45.
    Henderson-Sellers, B.: Bridging metamodels and ontologies in software engineering. J. Syst. Softw. 84, 303–313 (2011)CrossRefGoogle Scholar
  46. 46.
    Henderson-Sellers, B., Gonzalez-Perez, C.: Connecting powertypes and stereotype. J. Object Technol. 4(7), 83–96 (2005). ETH, ZürichCrossRefGoogle Scholar
  47. 47.
    Henderson-Sellers, B., Gonzalez-Perez, C.: The rationale of powertype-based metamodelling to underpin software development methodologies. In: Proceeding of the 2nd Asia-Pacific Conference on Conceptual Modelling, APCCM 2005, vol. 43, Australian Computer Society (2005)Google Scholar
  48. 48.
    Himsl, M., Jabornig, D., Leithner, W., Regner, P., Wiesinger, T., Küng, J., Draheim, D.: An iterative process for adaptive meta- and instance modeling. In: Wagner, R., Revell, N., Pernul, G. (eds.) DEXA 2007. LNCS, vol. 4653, pp. 519–528. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  49. 49.
    ISO: ISO/IEC 13568:2002. Information technology – Z Formal Specification Notation – Syntax, Type System and Semantics. ISO (2002)Google Scholar
  50. 50.
    ISO: International Standard ISO/IEC 24744: Software Engineering – Metamodel for Development Methodologies. ISO (2007)Google Scholar
  51. 51.
    ISO: Information Technology - Object Management Group Object Constraint Language, version 2.3.1, ISO Standard ISO/IEC 19507: (E), ISO (2012)Google Scholar
  52. 52.
    Johnson, R., Woolf, B.: Type object. In: Pattern Languages of Program Design, vol. 3. Addison-Wesley (1997)Google Scholar
  53. 53.
    Kappel, G., Preishuber, S., Prö II, E., Rausch-Schott, S., Retschitzegger, W., Wagner, R., Gierlinger, C.: COMan – coexistence of object-oriented and relational technology. In: Loucopoulos, P. (ed.) ER 1994. LNCS, vol. 881, pp. 259–277. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  54. 54.
    Kolyang, T., Santen, B., Wolff, B.: A structure preserving encoding of Z in Isabelle/HOL. In: Goos, G., Hartmanis, J., van Leeuwen, J., von Wright, J., Grundy, J., Harrison, J. (eds.) TPHOLs 1996. LNCS, vol. 1125, pp. 283–298. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  55. 55.
    Kühne, T., Schreiber, D.: Can programming be liberated from the two-level style? Multi-level programming with DeepJava. In: Proceedings of the 22th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007. ACM Press (2007)Google Scholar
  56. 56.
    Kühne, T.: Matters of metamodeling. Softw. Syst. Model. 5(1), 369–385 (2006). SpringerCrossRefGoogle Scholar
  57. 57.
    Lutteroth, C., Draheim, D., Weber, G.: A type system for reflective program generators. Sci. Comput. Program. 76(5), 392–422 (2011). ElsevierzbMATHMathSciNetCrossRefGoogle Scholar
  58. 58.
    Martin-Löf, P.: Intuistionistic Type-Theory. Bibliopolis (1984)Google Scholar
  59. 59.
    Mahmood, Z., Saeed, S. (eds.): Software Engineering Frameworks for Cloud Computing Paradigm. Springer, London (2013)Google Scholar
  60. 60.
    Martin, J., Odell, J.J.: Object-Oriented Methods - A Foundation (UML). Prentice Hall, Englewood Cliffs (1998)Google Scholar
  61. 61.
    Morgan, C.: Programming from Specification. Prentice Hall, Englewood Cliffs (1990)Google Scholar
  62. 62.
    Neumayr, B., Grün, K., Schrefl, M.: Multi-level domain modeling with M-objects and M-relationships. In: Proceedings of the 6th Asia-Pacific Conference on Conceptual Modeling, APCCM 2009. Australian Computer Society (2009)Google Scholar
  63. 63.
    Neumayr, B., Schrefl, M.: Comparison criteria for ontological multi-level modeling. Presented at: Dagstuhl Seminar on The Evolution of Conceptual Modeling, Technical Report 08.03., Johannes-Kepler-University Linz (2008)Google Scholar
  64. 64.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL - A Proof Assistant for Higher-Order Logic. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  65. 65.
    Nystrom, N., Qi, X., Myers, A.C.: J & – nested intersection for scalable software composition. In: Proceedings of the 21th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006. ACM Press (2006)Google Scholar
  66. 66.
    Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. In: Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004. ACM Press (2004)Google Scholar
  67. 67.
    Odell, J.J.: Dynamic and multiple classification. J. Object Oriented Program. 4(9), 45–48 (1998)Google Scholar
  68. 68.
    Odell, J.J.: Power types. J. Object Oriented Program. 7(2), 8–12 (1994)MathSciNetGoogle Scholar
  69. 69.
    OMG: Object Constraint Language, version 1.1. Rational Software Corporation et al. (1997)Google Scholar
  70. 70.
    OMG: Object Constraint Language, version 2.0, OMG (2006)Google Scholar
  71. 71.
    OMG: Object Constraint Language, version 2.2, OMG (2010)Google Scholar
  72. 72.
    OMG: Object Constraint Language, version 2.3.1, OMG (2012)Google Scholar
  73. 73.
    OMG: Object Constraint Language, version 2.4, OMG (2014)Google Scholar
  74. 74.
    OMG: OMG Unified Modeling Language - Infrastructure, version 2.4.1. OMG (2011)Google Scholar
  75. 75.
    OMG: OMG Unified Modeling Language - Superstructure, version 2.4.1. OMG (2011)Google Scholar
  76. 76.
    OMG: OMG Meta Object Facility - Core Specification, version 2.4.1. OMG (2011)Google Scholar
  77. 77.
    Parr, T., Fisher, K.: LL(*) - the foundation of the ANTLR parser generator. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011. ACM Press (2011)Google Scholar
  78. 78.
    Parnas, D.L.: A technique for software module specification with examples. Commun. ACM 15(5), 330–336 (1972)CrossRefGoogle Scholar
  79. 79.
    Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)Google Scholar
  80. 80.
    Plotkin, G.: LCF considered a programming language. Theoret. Comput. Sci. 5, 229–256 (1977)MathSciNetCrossRefGoogle Scholar
  81. 81.
    Razavi, R., Bouraqadi, N., Yoder, J.W., Perrot, J.-F., Johnson, R.E.: Language support for adaptive object-models using metaclasses. Comput. Lang. Syst. Struct. 31(3–4), 199–218 (2005)Google Scholar
  82. 82.
    Rossini, A., de Lara, J., Guerra, E., Rutle, A., Wolter, U.: A formalisation of deep metamodelling. Formal Aspects Comput. 26(6), 1115–1152 (2014)MathSciNetCrossRefGoogle Scholar
  83. 83.
    Santen, T.: On the semantic relation of Z and HOL. In: Bowen, J.P., Fett, A., Hinchey, M.G. (eds.) ZUM 1998. LNCS, vol. 1493, pp. 96–116. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  84. 84.
    Schätz, B., et al. (eds.): Pre-proceedings of the International Workshop on Models and Evolution, MoDELS 2010 (2011)Google Scholar
  85. 85.
    Selic, B.: On the semantic foundations of standard UML 2.0. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 181–199. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  86. 86.
    Simons, P., Niemel, I., Soininen, T.: Extending and implementing the stable model semantics. Artif. Intell. 138(1–2), 181–234 (2002)zbMATHCrossRefGoogle Scholar
  87. 87.
    Spivey, J.M.: The Z Notation. Prentice Hall, Englewood Cliffs (1992)Google Scholar
  88. 88.
    Lara, J., Vangheluwe, H.: Using AToM as a meta CASE tool. In: Proceedings of the 4th International Conference on Enterprise Information Systems, ICEIS 2002 (2002)Google Scholar
  89. 89.
    Yoder, J., Johnson, R.: The adaptive object model architectural style. In: Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture, WICSA 2002. IEEE Press (2002)Google Scholar
  90. 90.
    Zermelo, E.: Untersuchungen über die Grundlagen der Mengenlehre. Mathematische Annalen 65, 261–281 (1908)zbMATHMathSciNetCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  1. 1.University of InnsbruckInnsbruckAustria

Personalised recommendations