Ein Port (engl. Port) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.

Ein Port ist ein strukturelles Merkmal eines Classifiers und spezifiziert eine Art Tor, das eine Öffnung zwischen der Umgebung, in der der Classifier eingebettet ist, und dem Inneren des Classifiers darstellt. Ein Port ist also die Spezifikation eines Interaktionspunkts auf der Hülle eines Classifiers.

Wie jedes strukturelle Merkmal hat ein Port einen Classifier als Typ. Bei diesem Classifier kann es sich um eine Schnittstelle oder um eine Klasse handeln. Damit verfügt jeder Port indirekt auch über eine Menge von angebotenen und benötigten Schnittstellen. Die Menge der angebotenen Schnittstellen entspricht den angebotenen Schnittstellen, die der Typ des Ports anbietet. Analog dazu setzen sich die benötigten Schnittstellen des Ports aus den Schnittstellen zusammen, die der Typ des Ports benötigt.

Die UML2 unterscheidet zwischen Service- und Nicht-Service-Ports. Ein Service-Port gehört zur öffentlich sichtbaren Funktionalität des Classifiers, der den Port besitzt, während ein Nicht-Service-Port zwar für die Spezifikation des Classifiers benötigt wird, aber nicht nach außen sichtbar ist.

Meldungen, die von außen bei einem Port eintreffen, leitet dieser normalerweise an Elemente im Innern des Classifiers, zu dem er gehört, weiter. Falls der Classifier über ein eigenes Verhalten verfügt, kann der Port Meldungen auch direkt an dieses weiterleiten. Diese Art Port nennt die UML2 Verhaltensport (engl. behaviour port).

Notation Bearbeiten

Ein Port wird graphisch als kleines Quadrat dargestellt, entweder direkt auf dem Rand des Rechtecks, das den Besitzer des Ports repräsentiert, oder aber nahe am Rand im Innern des Rechtecks, wenn es sich um einen Nicht-Service-Port handelt.

 
Beispiel einer Komponente mit zwei Ports

Die Abbildung links zeigt eine Komponente mit zwei Service-Ports. Der Port mit dem Namen Management-Port bietet eine Schnittstelle Betrieb überwachen an. Der zweite Port ist unbenannt. Er bietet die Schnittstelle E-Mail empfangen an und benötigt die Schnittstelle E-Mail versenden.

 
Beispiel einer aktiven Klasse mit einem Verhaltensport

Die Notation für einen Verhaltensport unterscheidet sich von der Notation für andere Ports, indem zusätzlich zum Port auf dem Rand des Classifiers ein Zustandssymbol im Innern und eine Verbindungslinie vom Port zum Zustandssymbol gezeichnet wird. Die Abbildung links zeigt ein Beispiel.

Unterschiede zur UML 1.4 Bearbeiten

Das Modell-Element Port wurde in der UML2 neu eingeführt.