Dirk Draheim. Reflective Constraint Writing. In: Transactions on Large-Scale Data- and Knowledge-Centered Systems, vol. 24, LNCS 9510, Springer, 2016, pp. 1-60.
In this article we introduce reflective constraint writing. Reflective constraint writing is to constraint writing as generative programming is to programming. Reflective constraint writing is a powerful formal mechanism. We use it to give a (yet missing) precise semantics to UML power types. Actually, our original motivation to elaborate reflective constraint writing was semantics of modeling languages. However, reflective constraint writing can be exploited in important other fields: more adequate system analysis, quality assurance for system design (ensuring style guides, ensuring complex design patterns). Eventually it enables a symbolic viewpoint of modeling languages. We have chosen to extend the concrete constraint language OCL just for convenience; actually, the notion of reflective constraint writing is a more universal concept and independent of any concrete constraint language.
The article is the extended version of the following DEXA Iinvited Talk: Dirk Draheim. Sustainable Constraint Writing and Symbolic Viewpoints of Modeling Languages. In: Proceedings of DEXA'14 - the 25th International Conference on Database and Expert Systems Applications, LNCS 8644, Springer, 2014, pp. 12-19 [DOI] [PDF]
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, Z, Genoupe