On the Semantics of Object-Oriented Data Structures and Path Expressions
Résumé
UML/OCL is perceived as the de-facto standard for specifying
object-oriented models in general and data models in particular. Since
recently, all data types of UML/OCL comprise two different exception
elements: invalid ("bottom" in semantics terminology) and null (for
"non-existing element"). This has far-reaching consequences on both
the logical and algebraic properties of OCL expressions as well as the
path expressions over object-oriented data structures, i.e., class
models.
In this paper, we present a formal semantics for object-oriented data
models in which all data types and, thus, all class attributes and
path expressions, support invalid and null. Based on this formal
semantics, we present a set of OCL test cases that can be used for
evaluating the support of null and invalid in OCL tools.