Namensraum (UML)
# Namensraum (UML)

Ein Namensraum (englisch Namespace) ist ein Modellelement in der Unified Modeling Language (UML). Damit sollen Namen von Modellelementen eindeutig unterscheidbar sein, womit eine eindeutige Zuordnung (=Identifizierung) zwischen Namen und Modellelement möglich wird.

Namensraum ist ein abstraktes Modellelement im Metamodell der UML2. Das heißt, dass ein Modellierer, der ein Modell basierend auf UML erstellt, nicht direkt mit Namensraum arbeitet. Er wird eher mit einem der Modellelemente der UML in Kontakt kommen, die Namensraum spezialisieren, zum Beispiel mit dem Modellelement Paket.

Ein Namensraum enthält eine Gruppe von Modellelementen, die zwei Bedingungen erfüllen müssen. Erstens müssen sie einen Namen haben. Zweitens muss jedem Element eine der Sichtbarkeiten public, private, protected oder package zugeordnet sein.

Modellelemente in einem Namensraum müssen eindeutig unterscheidbar sein. Die Regel dafür ist relativ einfach: zwei Modellelemente sind genau dann gleich, wenn sie den gleichen Namen haben und wenn ihre Metaklassen auf dem gleichen Generalisierungsart liegen. Sonst gelten sie als verschieden.

Zwei Modellelemente in unterschiedlichen Namensräumen dürfen aber durchaus den gleichen Namen haben. Sie unterscheiden sich in diesem Fall in ihrem qualifizierten Namen. Der qualifizierte Name eines Modellelements besteht aus dem einfachen Namen, dem die Namen aller umschließenden Namensräume vorangestellt sind. Die einzelnen Segmente des qualifizierten Namens werden mit :: abgetrennt. Die Klasse Heizung im Namensraum Heizungssteuerung trägt zum Beispiel den qualifizierten Namen Heizungssteuerung::Heizung.

