UML relationship equivalents for .NET elements

The following table summarizes how UML relationships map to their .NET equivalents.
Table 1.
UML relationship .NET equivalent
Generalization Class inheritance.

Generalizations are owned by the derived class.

Association Non-primitive attributes of a class. If Class A has an attribute b of type B, Class A will own a property b with a kind of B. The property will identify an association. The association will own a property that has a kind of A.

Associations are owned by the package owning the class containing the interesting attribute.

Containment This is not strictly a UML relation, but rather the ownership of items. Packages represent namespaces (no namespace means the global namespace). Packages will contain classes, artifacts, primitive types, usages and associations. Artifacts do not contain the classes defined within them.
Manifestation Represents the model elements an artifact embodies (the classes that are defined within the file).

For example, file Sample.cs defines a class C in namespace N. The model would contain an artifact for Sample.cs, a package for namespace N. Package N would contain a class for C. The artifact Sample.cs would have a manifestation relationship between itself and the class, as well as Package N.

TemplateBinding Relationship between the class representing the type of the bound template and the template. For example, Stack<int> would result in a TemplateBinding relationship between an instantiation of this class and Stack.

Feedback