Evaluating and generalizing constraint diagrams

Gem Stapleton, Aidan Delaney

Research output: Contribution to journalArticle

Abstract

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 (OCL) in that they can be used for specifying system invariants and operation contracts in the context of a UML model. Unlike the OCL, however, constraint diagrams can be used independently of the UML. In this paper, we illustrate a range of intuitive and counter-intuitive features of constraint diagrams and highlight some (potential) expressiveness limitations. The counter-intuitive features are related to how the individual pieces of syntax interact. A generalized version of the constraint diagram language that overcomes the illustrated counter-intuitive features and limitations is proposed. In order to discourage specification readers and writers from overlooking certain semantic information, the generalized notation allows this information to be expressed more explicitly than in the non-generalized case. The design of the generalized notation takes into account five language design principles which are discussed in the paper. We provide a formalization of the syntax and semantics for generalized constraint diagrams. Moreover, we establish a lower bound on the expressiveness of the generalized notation and show that they are at least as expressive as constraint diagrams.
Original languageEnglish
Pages (from-to)499-521
Number of pages23
JournalJournal of Visual Languages and Computing
Volume19
Issue number4
DOIs
Publication statusPublished - 1 Aug 2008

Keywords

  • Constraint diagrams
  • Precise software specification
  • Diagrammatic specification
  • Expressiveness

Fingerprint Dive into the research topics of 'Evaluating and generalizing constraint diagrams'. Together they form a unique fingerprint.

  • Cite this