Class UML 2.5::Association
Description:
A link is a tuple of values that refer to typed objects. An Association
classifies a set of links, each of which is an instance of the Association.
Each value in the link refers to an instance of the type of the corresponding
end of the Association.
Direct Superclasses: Relationship,
ClassifierDirect Subclasses: Extension,
CommunicationPath,
AssociationClassClass Precedence List: Association,
Relationship,
Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
TemplateableElement,
RedefinableElement,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
endType :
Type (1 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
isDerived : Boolean (1 1); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
memberEnd :
Property (2 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
navigableOwnedEnd :
Property (0 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedEnd :
Property (0 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
relatedElement :
Element (1 *); -- source
Relationship![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
general :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
isAbstract : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
visibility :
VisibilityKind (0 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=141144%3AFCBCC58C5CC0BF7D32DFEE54AC6EC705)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: CMOF_14_3_29() : Boolean;
Description: 14.3 [29] Each Association memberEnd Property must be typed by a Class.
Expression: memberEnd.type.oclIsKindOf(Class)
Signature: CMOF_14_3_1() : Boolean;
Description: 14.3 [1] The multiplicity of Association::memberEnd is limited to 2 rather than 2..*
(i.e., n-ary Associations are not supported);
unlike EMOF, CMOF associations can have navigable association-owned ends.
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/association-does-not-have-two-member-ends
Expression: memberEnd->size() = 2 and ownedEnd->size() < 2
Operations:
Signature: endType.1() : Type;
Description: endType is derived from the types of the member ends.
Expression: result = (memberEnd->collect(type)->asSet())
Send questions or comments to
[email protected].