OMT Object Model

10. Formalisation

In this chapter we will describe the Object Model is first order predicate calculus. First we define the basic concepts of the model, and after that we will define the relations between these concepts and the rules that must hold.

We made two assumptions:

The reason why we left out the n-ary relationship is that it would really complicate because we would have to change a lot of the predicates concerning relations. Besides, you have to try to avoid making ternary or higher relation, because they are difficult to comprehend.
Below you can find the predicates and axioms. Below every definition (or set of definitions) you will find the explanation.

10.1 Basic concepts

The basic concepts of the Object Model are the following:

Some remarks:
The set of Relations consists of aGgregation, aSsociation and inHeritance.
The sets B and Q only contain two items. These are used to state wether an association is ordered or classified.

10.2 Properties of classes


Every object class can have several attributes and operations.


Every object can have several instantiations.

10.3 Different kinds of relations


A relation is a connection between two classes.





A relation can be an association, an aggregation or an inheritance. With this knowledge we can form the association, aggregation and inheritance classes.

10.4 Properties of relations


One relation between two classes only denotes one association, one aggregation or one inheritance, never two at a time. (you should read the '\/' symbols as 'exclusive or')


There can exist several associations between two classes. But when there exists an aggregation or an inheritance relation, there can not be another relation



There exist some extra rules for an inheritance relation. It is not possible for a subclass, to be a super class for his own super class (directly or indirectly). This is stated in the above definitions.
In the first predicate we state that you can not inherit from your own class, and that there can not exist a cycle of inheritances between a superclass and a subclass.
This cycle is defined as follows: when A is the superclass of B, then B is the superclass of A, or there exists a class C, which is a subclass of B and a superclass (directly or indirectly) of A. With this recursive definition, you will always find a cycle when there is one present.


An association can have a so called 'link attribute'.


Every association is assigned a number for each side of the association, called the multiplicity or cardinality. This number denotes how many instances of a class, can be linked to an instance of the other class.



An association can be ordered at one side, or qualified.

10.5 Rules for completeness




There can not exist any operations, attributes or relations that are not assigned to other entities, the can not exit by themselves.

10.6 Little things

There are still a few things that we have not stated above: We know that this formalisation is not totally complete, but we feel that we addressed the most important aspects.
Last modified: February 8th, 1996
Kristel Nieuwenhuys, knieuwen@cs.utwente.nl