An association on a class diagram represents a relationship between classes, or between a class and an interface. On a usecase diagram, an association binds an actor to a usecase.
Within the UML metamodel, Association
is a sub-class of both Relationship
and
GeneralizableElement
.
The association is represented as a solid line connecting actor and usecase or class or interface (see Figure 18.1, “ Possible model elements on a class diagram. ”). The name of the association and any stereotype appear above the line.
ArgoUML is not restricted to binary associations. See Section 18.12.1, “ Three-way and Greater Associations and Association Classes ” for more on this.
Associations are permitted between interfaces and classes, but UML 1.3 specifies they must only be navigable toward the interface -in other words the interface cannot see the class. ArgoUML will draw such associations with the appropriate navigation.
Associations are often not named, when their meaning is obvious from the context.
![]() | Note |
---|---|
ArgoUML provides no specific way of showing the direction of the association as described in the UML 1.4 standard. The naming should attempt to make this clear. |
The association contains at least two ends, which may be navigated to via the association property sheet. See Section 18.13, “ Association End ” for more information.
UML 1.3 provides for N-ary associations and associations that are governed by a third associative class. Both are supported by ArgoUML.
N-ary associations are created by drawing with the association tool from an existing association to a third class. The current implementation of ArgoUML does not allow the inverse: drawing from a 3rd class towards an existing association is not possible.
Association Classes are drawn exactly like a normal association, i.e. between two classes, but with a different dedicated tool from the diagram toolbar.
The details tabs that are active for associations are as follows.
ToDoItem
Standard tab.
Properties
See Section 18.12.3, “ Association Property Toolbar ” and Section 18.12.4, “ Property Fields For Association ” below.
Documentation
Standard tab. See Section 13.4, “ Documentation Tab ”.
Presentation
Standard tab.
![]() | Note |
---|---|
The values for the bounds of the Association have no meaning, since they are determined by the location of the connected items. Changing them has no effect on the diagram. |
Source
Standard tab. You would not expect to generate any code for an association, and any code entered here is ignored (it will have disappeared when you come back to the association.
Tagged Values
Standard tab. In the UML metamodel,
Association
has the following standard tagged
values defined.
persistence
. Values
transitory
, indicating state is
destroyed when an instance is destroyed or
persistent
, marking state is preserved
when an instance is destroyed.
derived
(from the
superclass, ModelElement
).
Values true
, meaning the
association is redundant -it can be formally derived
from other elements, or false
meaning it cannot.
![]() | Note |
---|---|
Derived associations still have their value in analysis to introduce useful names or concepts, and in design to avoid re-computation. |
![]() | Note |
---|---|
The UML |
Go up
Navigate up through the package structure of the model. For an association this will be the package containing the association.
New Stereotype
This creates a new Stereotype (see Section 16.6, “ Stereotype ”) for the selected association, navigating immediately to the properties tab for that stereotype.
Delete
This deletes the selected association from the model.
![]() | Warning |
---|---|
This is a deletion from the model
not just the diagram. To delete
an association from the diagram, but keep it within
the model, use the main menu |
Name
Text box. The name of the association. By
convention association names start with a lower case
letter, with “bumpy caps” used to indicate
words within the name, thus:
salesHandling
.
![]() | Note |
---|---|
ArgoUML does not enforce any naming convention for associations. |
![]() | Tip |
---|---|
Although the design critics will advise otherwise, it is perfectly normal not to name associations on a class diagram, since the relationship is often obvious from the classes (or class and interface) name. |
Stereotype
Drop down selector. Association is provided by
default with the UML standard stereotype for
Association (implicit
) .
Stereotyping can be useful when creating associations in the problem domain (requirements capture) and solution domain (analysis), as well as for processes based on patterns.
The stereotype is shown between « and » below the name of the association on the diagram.
Navigate Stereotype
icon. If a stereotype has been selected, this will
navigate to the stereotype property panel (see
Section 16.6, “
Stereotype
”).
Namespace
Drop down selector. Records and allows changing the namespace for the association. This is the package hierarchy.
Connections
Text area. Lists the ends of this association. An association can have two or more ends. For more on association ends see Section 18.13, “ Association End ”.
The names of the association ends are listed,
unless the association end has no name (the case when
it is first created), in which case (Unnamed
AssociationEnd)
is shown.
![]() | Note |
---|---|
The only representation of association ends on a diagram is that their name appears at the relevant end of the corresponding association. |
Button 1 double click on an association end will navigate to that end.
Association Roles
Text area. (To be written)
Links
Text area. (To be written)