Skip to Main Content
The constraint diagram language was designed to be used in conjunction with the Unified Modelling Language (UML), primarily for placing formal constraints on software models. In particular, constraint diagrams play a similar role to the textual object constraint language in that they can be used for specifying system invariants and operation contracts in the context of a UML model. Constraint diagrams can also be used independently of the UML. In this paper, we illustrate a range of counter-intuitive features of constraint diagrams and highlight some (potential) expressiveness limitations. We propose a generalized version of the constraint diagram language that overcomes the illustrated counter-intuitive features and limitations.