@inbook{49b3284370e64694a64e945937f60a6e,
title = "Constraint trees",
abstract = "OCL's contribution to the definition of constraint languages is twofold: the identification of core concepts for a constraint language suitable for object-oriented modeling; a developer-friendly notation for that language, as an alternative to traditional mathematical syntax. Whilst the former is an important contribution the latter is more questionable. Not only is notation often a matter of taste, but it would also be desirable to freely mix notations, allowing the most appropriate notation to be chosen for the task at hand or for notations to be seamlessly interchanged. A further problem when writing constraints is scalability: the number and complexity of constraints can be overwhelming for a model of a real-sized system, and current techniques for organizing the constraint space of a model are limited. The contribution of this paper is to provide a notation, constraint trees, which can be used both for mixing different notations and for organizing the constraint space of a model. Constraint trees achieve this by revealing aspects of the underlying abstract syntax structure of a constraint. The paper demonstrates the utility of the notation using an example from the telecomms networks domain, and shows how constraint trees can be used to write a constraint involving a mix of textual OCL notation, constraint diagrams, object diagrams and rich pictures. This also demonstrates the organizational role of constraint trees. An outline meta-model definition of constraint trees is provided and issues surrounding their tooling is discussed.",
keywords = "OCL, constraint trees",
author = "Stuart Kent and John Howse",
year = "2002",
month = jan,
day = "1",
doi = "10.1007/3-540-45669-4_12",
language = "English",
isbn = "9783540431695",
series = "Lecture Notes in Computer Science",
publisher = "Springer-Verlag",
pages = "427--430",
editor = "A. Clark and J. Warmer",
booktitle = "Object modeling with the OCL: the rationale behind the object constraint language",
}