OMT Object Model
7. Meta-data model
Meta data model of OMT's Object Model
7.1 Some explanation
The double lines in the meta-data model mean 'total participation'. For OMT's meta-data model this means the following:
both methods and features cannot exist unless they belong to a certain class;
an association can only exist between classes;
a link can only exist between objects;
a role has to belong to a class, otherwise it cannot exist;
a link-attribute has to belong to a class, otherwise it cannot exist;
an object has to belong to a class.
7.2 Further Constraints
(important concepts are in italics)
Objects have an identity, i.e. they are distinguished by inherent existence and not by descriptive properties they may have.
Besides the common attributes and operations, the objects in a class also share some semantics. The objects belong to each other in a certain way.
An attribute has a value for each object (instance).
The same operation may apply to many different classes. Each one of these classes has a method for dealing with the operation. It is important that the methods for one operation all have the same signature - the number and types of arguments and the type of result value.
Feature is a generic word for either an attribute or operation.
Operations that have no side effects (only compute a functional value), with no arguments except the target objects, may be considered as derived attributes.
Each association in the class diagram corresponds to a set of links in the instance diagram, just as each class corresponds to a set of objects.
The ternary association is an atomic unit and cannot be subdivided into binary associations without losing information (the ternary association is an association between three classes).
A link attribute is a property of the links in an association.
A role is one end of an association. A binary association has two roles, each of which may have a role name. A role name is a name that uniquely identifies one end of an association.
Generalization is the relationship between a class and one or more refined versions of it. The class being refined is called the superclass and each refined version is called a subclass.