•An Association classifies a set of tuples representing links between typed instances. An AssociationClass is both an Association and a Class.
•An Association specifies that there can be “Links between instances whose types conform to or implement the associated types. A link is a tuple with one value for each memberEnd of the Association, where each value is an instance whose type conforms to or implements the type at the end.”.
The Association definition has references through its member Properties to other model elements, for example Class A and B.
Navigability
•You might want to be able to navigate from an A object to a related B object so you create a property in Class A that allows you to do that.
•Unidirectional Association: You might not want to be able to navigate from B to A in which case the property representing A-B to B would be owned by the association and set as non-navigable (there is a separate property from memberEnds which lists the navigable properties). When an association is non-navigable in one direction, it is essentially unidirectional – one class knows about the association to the other class, but the second class does not know about the association.
•Bidirectional Association: A bidirectional association has both an owning side and an inverse side, whereas the unidirectional association has only an owning side.
The Property representing the connection from A-B to B is set to be owned by the association rather than class A if it is not to be navigable from class A, otherwise it is set to be owned by class A.