Namespaces

Figure 28 shows the Namespaces diagram from the UML specification. It defines the three abstract types NamedElement, Namespace, and PackageableElement, and the non-abstract type Package. NamedElement defines the name property, which means that only UML elements whose type inherits from NamedElement can actually have a name. As all objects can have a name in ARIS and Element inherits from ArisElement in the ARIS implementation of the UML metamodel, the suffix {redefines name} for NamedElement::name specifies that a second name property is not defined, but that this definition of name replaces the ArisElement::name definition in the inheritance hierarchy for NamedElement. Both properties – ArisElement::name and NamedElement::name – are mapped to the ARIS attribute type Name in the ARIS object model.
Namespace is an abstract type for UML elements whose contained elements are differentiated using their name. The non-abstract type Package, which can contain elements of the abstract type PackageableElement, inherits from this.
The Namespaces diagram in Figure 28 also contains a further example of derived unions: The Package::packagedElement property contributes to the Namespace::member property, which in turn contributes to the Element::ownedElement property.

The Package::packagedElement or PackageableElement::owningPackage property can be represented graphically as an edge in diagrams (see Figure 29).