Many approaches to software specification and design make use of invariants: statements whose truth is preserved under various operations upon a system or component. Approaches that involve the construction of object-oriented or entity-relationship models require the expression of a particular kind of global invariant, concerning associations between objects or entities. This paper shows how association invariants can be expressed in a new, object-based formal language. It then explains how these expressions can be used to determine pre - and post-conditions for local operations, sufficient to ensure that the invariants are maintained. These conditions-and the program text to implement them can be generated automatically. This makes it easier to produce correct implementations of an objectoriented design.
Citation:
James Welch, David Faitelson, Jim Davies, "Automatic Maintenance of Association Invariants," sefm, pp.282-292, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05), 2005