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:
endType :
Type (1 *); -- source
Association isDerived : Boolean (1 1); -- source
Association memberEnd :
Property (2 *); -- source
Association navigableOwnedEnd :
Property (0 *); -- source
Association ownedEnd :
Property (0 *); -- source
Association relatedElement :
Element (1 *); -- source
Relationship attribute :
Property (0 *); -- source
Classifier collaborationUse :
CollaborationUse (0 *); -- source
Classifier feature :
Feature (0 *); -- source
Classifier general :
Classifier (0 *); -- source
Classifier generalization :
Generalization (0 *); -- source
Classifier inheritedMember :
NamedElement (0 *); -- source
Classifier isAbstract : Boolean (1 1); -- source
Classifier isFinalSpecialization : Boolean (1 1); -- source
Classifier ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier ownedUseCase :
UseCase (0 *); -- source
Classifier powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier redefinedClassifier :
Classifier (0 *); -- source
Classifier representation :
CollaborationUse (0 1); -- source
Classifier substitution :
Substitution (0 *); -- source
Classifier templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier useCase :
UseCase (0 *); -- source
Classifier elementImport :
ElementImport (0 *); -- source
Namespace importedMember :
PackageableElement (0 *); -- source
Namespace member :
NamedElement (0 *); -- source
Namespace ownedMember :
NamedElement (0 *); -- source
Namespace ownedRule :
Constraint (0 *); -- source
Namespace packageImport :
PackageImport (0 *); -- source
Namespace package :
Package (0 1); -- source
Type visibility :
VisibilityKind (0 1); -- source
PackageableElement owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement isLeaf : Boolean (1 1); -- source
RedefinableElement redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement redefinitionContext :
Classifier (0 *); -- source
RedefinableElement clientDependency :
Dependency (0 *); -- source
NamedElement name : String (0 1); -- source
NamedElement nameExpression :
StringExpression (0 1); -- source
NamedElement namespace :
Namespace (0 1); -- source
NamedElement qualifiedName : String (0 1); -- source
NamedElement ownedComment :
Comment (0 *); -- source
Element ownedElement :
Element (0 *); -- source
Element 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].