4.13 Property Associations
The Properties class can contain zero or more instances of the PropertyAssociation class (see Figure 29).  The PropertyAssociation class is a concrete class. The PropertyAssociation class is not subclassed to reflect the type of the property value.  Instead it contains zero or more instances of concrete subclasses of the PropertyValue class. The multiplicy allows lists of property values to be represented.  A PropertyAssociation class also has a reference association to the concrete PropertyDefinition class.  In other words, multiple property associations of the same property point to the same property name declaration (property definition).  A PropertyDefinition class has a propertyTypeReference reference association to a separately declared named property type or a propertyType containment association to concrete subclasses of the abstract PropertyType class representing an unnamed property type declared as part of the property definition. 
The PropertyAssociation class is not subclassed to reflect different property types, the reason being that user-defined property types can be introduced through property sets (see Annex C.4.16). This means that matching of the PropertyValue type with the type specified for the property definition is not enforced by the XML schema or the XMI meta model; it needs to be checked by the semantic checker instead.
The PropertyAssociation class has an appliesTo reference association of zero or more to the PropertyHolder class to reflect the sequence of concrete PropertyHolder subclasses.  This sequence represents the path to a contained model element to which the property association applies.  The  PropertyAssociation class has an inBinding reference association of zero or more to the ComponentClassifier class to reflect the set of concrete execution platform ComponentClassifier subclasses for the inbinding statement of the property association.
The PropertyAssociation class is a subclass of ModeMember.  This means that it also has a multiplicity reference association named inModes to the Mode class.  This means that a separate PropertyAssociation object is created for different property association declarations of the same property with values for different modes. For example,
Latency => 10 ms in modes (normal);
Latency => 8 ms in modes (highspeed);
translates into two PropertyAssociation objects, each with a property value object.
PropertyAssociation has the constraint that although it is a ModeMember and as such a subclass of PropertyHolder, it cannot contain property association declarations.  This reflects the fact that properties cannot have properties themselves.
The access, append, and constant attributes of the PropertyAssociation class reflect whether the property association is declared as an access property association, whether to append the value(s), and whether the property association should not be further overwritten.  The derived attribute is used to indicate whether a property association attached to an instance object has been derived (cached) from a property association in the declarative model (for more on instance object see Annex C.5).  A property association that is marked as not derived is only associated with the instance model. Such an instance model specific property association is used if the result of an analysis applies only to the instance model. 
graphic
Figure 29 Property Associations