OOIE Object Diagram Notation

The OOIE diagram notation is very natural for users, but still precise enough to guide software implementation. It models the relations between types of objects and how these are structured into inheritance hierarchies.

A specialization or subtyping between two object types is notated like this:

which means "a mexican dinner is a kind of meal". If the specializations of a type cannot share instances, then it is notated like this:

which means "no meal is a mexican dinner and oriental breakfast at the same time". This is called a "partition". The double line at the bottom of the partition rectangle means that there can be other kinds of meals besides mexican dinners and oriental breakfasts (an "incomplete partition"). If we want specializations to cover all the instances of the supertype, we notate it like this:

which means "all cars are either large or small", and "a car cannot be both large and small".

Relations are notated this way:

which means "a person owns zero or more pets, which in turn are owned by exactly one person". The decorations on the relation line are:

Another example:

which means "a person likes one or more meals, which in turn are liked by zero or more people".

The words on the relation line are read clock-wise, for example:

is read "pets are are owned by exactly one person, which in turn own zero or more pets". This is exactly the same as the first relation example, except with different positions of the object types on the diagram.

Return to Bock Online
If you have any comments on this page or problems, contact Conrad Bock (conrad dot bock at nist dot gov)