Komponentendiagramm-Symbole
Jedes Zeichen, das ein UML-Komponentendiagramm tragen kann, und worauf es Sie festlegt: das Stecker-Icon, Lolli und Pfanne, Assembly- und Delegations-Konnektoren, Ports und die vier Stereotypen, die sich zu schreiben lohnen.
7 Min. LesezeitUML 2.5.120 von 35
Die kurze Antwort
- Ein Lolli ist eine angebotene Schnittstelle, und ein Realisierungspfeil auf einen Schnittstellenkasten sagt dasselbe. Pro Diagramm eine Form, nie beide.
- Realisierung läuft vom Implementierer zum Vertrag, eine Abhängigkeit mit offener Spitze umgekehrt. Dieselbe gestrichelte Linie, die entgegengesetzte Aussage.
- UML 1 ersetzte den Kasten durch ein Rechteck mit zwei Laschen. UML 2 behält den Klassifiziererkasten und schrumpft das Icon in die rechte obere Ecke.
- Die Pfanne ist die andere Hälfte der Kugel: eine benötigte Schnittstelle. Eine Komponente mit lauter Lollis hat keine einzige Abhängigkeit erklärt.
01Die Komponente selbst#
Zwei Formen sind im Umlauf und beide sind korrekt, weshalb dasselbe System in zwei Werkzeugen gezeichnet wie zwei Notationen aussehen kann.
| Element | Notation | Was es bedeutet |
|---|---|---|
| Komponente (UML 2) | Kasten, kleines Stecker-Icon oben rechts | Ein gewöhnlicher Klassifiziererkasten mit dem in die Ecke geschrumpften Icon. Trägt oft das Schlüsselwort «component» über dem Namen. Das zeichnen aktuelle Werkzeuge standardmässig. |
| Komponente (UML 1) | Kasten mit zwei Laschen an der linken Kante | Die ältere Form, bei der das Icon die Gestalt ist. In Lehrbüchern und in aus den 2000ern geerbten Diagrammen weiterhin verbreitet; erkennen Sie sie, aber zeichnen Sie sie in neuer Arbeit nicht. |
| Subsystem | «subsystem» auf einer Komponente | Eine Komponente, die gross genug für eigene Teile ist. Nur dann schreibenswert, wenn das Diagramm zeigt, was darin steckt. |
| Artefakt | «artifact», Blatt mit umgeknickter Ecke | Die physische Datei, als die eine Komponente ausgeliefert wird - ein Jar, ein Image, ein Bundle. Sie gehört auf ein Verteilungsdiagramm, nicht hierher, ausser es geht gerade um die Verpackung. |
02Angebotene und benötigte Schnittstellen#
Jede Komponente hat zwei Listen - was sie anbietet und was sie braucht - und die ganze Notation besteht aus Arten, diese beiden Listen aufzuschreiben. Es gibt zwei, und sie sind austauschbar.
| Element | Notation | Was es bedeutet |
|---|---|---|
| Angeboten (explizit) | Gestrichelte Linie, hohles Dreieck, zeigt auf die Schnittstelle. Die Komponente implementiert diesen Vertrag. | |
| Angeboten (Lolli) | ein Kreis an einem kurzen Stiel | Dieselbe Aussage, an die Kante der Komponente gezeichnet, mit dem Schnittstellennamen neben dem Kreis. Kompakt, und deshalb die Vorgabe der meisten Werkzeuge. |
| Benötigt (explizit) | Gestrichelte Linie, offene Pfeilspitze, zeigt auf die Schnittstelle. Meist mit «use» beschriftet. Die Komponente braucht jemanden, der das erfüllt. | |
| Benötigt (Pfanne) | eine Halbschale an einem kurzen Stiel | Dieselbe Aussage in kompakter Form. Eine leere Pfanne ist eine unerfüllte Abhängigkeit, und das ist etwas Nützliches, das ein Diagramm zeigen kann. |
Explizit oder als Kurzform, nie beides in einem Diagramm - ein Leser soll nicht prüfen müssen, ob zwei Notationen im selben Bild zwei verschiedene Dinge bedeuten.
03Konnektoren, Ports und Delegation#
Sobald Komponenten andere Komponenten enthalten, kommen zwei weitere Zeichen dazu. Ein Assembly-Konnektor verdrahtet die angebotene Schnittstelle der einen Komponente direkt mit der benötigten der anderen - eine Kugel in einer Pfanne, die Kurzform für die beiden Pfeile in der Abbildung am Anfang dieses Artikels. Ein Delegations-Konnektor läuft von einem Port an der äusseren Grenze zu dem inneren Teil, der ihn erfüllt.
| Element | Notation | Was es bedeutet |
|---|---|---|
| Assembly-Konnektor | eine Kugel, die in einer Pfanne ruht | Eine Komponente erfüllt den Bedarf einer anderen. Dieselbe Aussage wie Realisierung plus Abhängigkeit über eine gemeinsame Schnittstelle, auf einem Drittel des Platzes. |
| Port | kleines Quadrat auf der Grenze | Ein eigener Interaktionspunkt. Zeichnenswert, wenn eine Komponente wirklich getrennte Oberflächen hat - eine öffentliche API und eine Admin-API - und sonst Rauschen. |
| Delegations-Konnektor | Von einem Port zu einem inneren Teil: diesen äusseren Vertrag bedient jenes Stück. Das macht das Innere eines Subsystems gegen sein Äusseres prüfbar. | |
| Abhängigkeit zwischen Komponenten | Zulässig und fast immer ein Mangel: sie sagt „hängt irgendwie ab“, genau die Unschärfe, zu deren Beseitigung das Diagramm existiert. Benennen Sie stattdessen die Schnittstelle. |
Verschachtelung ist die dritte Art, „innen“ zu sagen, und die, die diese Reihe zeichnet: Teile innerhalb der Grenze ihres Eigentümers, wie oben. Sie braucht kein zusätzliches Symbol und übersteht einen Leser, der nie einen Delegations-Konnektor gesehen hat - also die meisten.
04Die Stereotypen, die sich lohnen#
Ein Stereotyp in Guillemets erweitert die Bedeutung eines Kastens, und die Versuchung ist, ein eigenes Vokabular zu erfinden. Vier verdienen ihren Platz, weil jedes ändert, was ein Leser mit dem Kasten tun soll:
«subsystem»- das hat eigene Teile, und die stehen vielleicht auf einem anderen Diagramm.«service»- das ist verteilt und wird über ein Netz erreicht, seine Schnittstelle ist also ein Vertrag auf der Leitung, und ihn zu versionieren ist jemandes Aufgabe.«library»- das wird eingebunden, nicht über eine Grenze aufgerufen, eine Änderung daran ist also ein Neubau und keine Auslieferung.«external»- das gehört jemand anderem, seine Schnittstelle ist also eine Randbedingung und keine Entscheidung.
Alles darüber hinaus ist meist ein verkleidetes Profil. Braucht ein Team wirklich ein eigenes formales Vokabular - markierte Elemente, eingeschränkte Elemente, vom Werkzeug durchgesetzte Regeln - ist dafür ein UML-Profil da, und es ordentlich aufzuschreiben ist billiger als eine Konvention, an die sich die halbe Mannschaft hält.
05Wo die Werkzeuge auseinandergehen#
Drei Unterschiede erklären die meiste Verwirrung, wenn ein Diagramm das Werkzeug wechselt, und keiner davon ändert die Bedeutung:
- Icon oder Schlüsselwort. Manche Werkzeuge zeichnen das Stecker-Icon, manche schreiben
«component», manche beides. Alle drei sind dieselbe UML-2-Komponente. - Lollis als Vorgabe. Die meisten Zeichenwerkzeuge hängen Kugel und Pfanne an die Komponentenkante; Modellierungswerkzeuge mit einem Repository zeichnen die Schnittstelle eher als eigenes Element, weil sie eines ist.
- Ports, wo keine sind. Manche Werkzeuge setzen an jeden Schnittstellenanschluss ein kleines Quadrat. Unterscheidet das Diagramm nie zwei Oberflächen an einer Komponente, tragen diese Quadrate keine Information.
In je einer Zeile
- 01Kasten mit Stecker-Icon in der Ecke: die UML-2-Komponente. Zwei Laschen an der linken Kante: die UML-1-Form.
- 02Realisierung - gestrichelt, hohles Dreieck - zeigt vom Implementierer auf den Vertrag.
- 03Abhängigkeit - gestrichelt, offene Spitze - zeigt vom Bedürftigen auf den Vertrag.
- 04Der Lolli ist angeboten, die Pfanne benötigt, die Kugel in der Pfanne die Assembly aus beidem.
- 05Ein Port ist ein eigener Interaktionspunkt; ein Delegations-Konnektor leitet ihn an ein inneres Teil.
- 06Ein Pfeil zwischen zwei Komponenten ohne Schnittstelle benennt nichts - genau danach sucht man.
Die Zeichen im Einsatz an echten Systemen stehen in den fünf durchgearbeiteten Beispielen, und die Reihenfolge, in der man sie setzt, in ein Komponentendiagramm zeichnen.
06Häufige Fragen#
Was bedeutet das Lollipop-Symbol in UML?
Ein Lolli - ein kleiner Kreis an einem kurzen Stiel - ist eine angebotene Schnittstelle: die Komponente, an der er hängt, implementiert diesen Vertrag. Er ist die Kurzform eines Realisierungspfeils auf einen Schnittstellenkasten; beide bedeuten dasselbe, also sollte ein Diagramm eine der beiden Formen wählen.
Darf ich Lollis und Schnittstellenkästen mischen?
Dürfen ja, und es kostet den Leser Mühe ohne Gegenwert. Beide Formen sagen genau dasselbe, also prüft bei zwei Notationen auf einem Bild erst jemand, ob der Unterschied etwas bedeutet. Nehmen Sie die kompakte Kugel-Pfanne-Form, wenn der Platz knapp ist, und explizite Schnittstellenkästen, wenn es um die Pfeile selbst geht.
Was bedeutet ein gestrichelter Pfeil mit hohlem Dreieck?
Das ist eine Realisierung, und auf einem Komponentendiagramm zeigt sie immer vom Implementierer auf den Vertrag. Die Komponente am Pfeilende verspricht, die Schnittstelle an der Spitze zu erfüllen. Ein gestrichelter Pfeil mit offener Spitze ist die Gegenseite: eine Abhängigkeit, die Komponente braucht diesen Vertrag von jemandem.
Unterscheidet sich das Komponentensymbol in UML 1 und UML 2?
Ja, und beide werden gezeichnet. UML 1 ersetzte den Kasten durch ein Rechteck mit zwei kleineren Rechtecken an der linken Kante. UML 2 nutzt einen gewöhnlichen Klassifiziererkasten mit diesem Icon verkleinert in der rechten oberen Ecke, wahlweise mit dem Schlüsselwort «component» über dem Namen - so zeichnen es heutige Werkzeuge.
In dieser Reihe
- 01Was ist UML?
- 02UML-Symbole
- 03Diagramm auswählen
- 04Klassendiagramme
- 05Klassendiagramm-Beispiele
- 06Klassendiagramm zeichnen
- 07Klassendiagramm-Symbole
- 08Sequenzdiagramme
- 09Sequenzdiagramm-Beispiele
- 10Sequenzdiagramm zeichnen
- 11Anwendungsfalldiagramme
- 12Anwendungsfall-Beispiele
- 13Aktivitätsdiagramme
- 14Aktivitätsbeispiele
- 15Zustandsdiagramme
- 16Zustandsdiagramm-Beispiele
- 17Komponentendiagramme
- 18Komponenten-Beispiele
- 19Komponentendiagramm zeichnen
- 20Komponenten-Symbole
- 21Verteilungsdiagramme
- 22Verteilungsbeispiele
- 23Objektdiagramme
- 24Paketdiagramme
- 25Kompositionsstrukturdiagramme
- 26Kommunikationsdiagramme
- 27Sequenz vs Kommunikation
- 28Zeitverlaufsdiagramme
- 29Interaktionsübersichtsdiagramme
- 30Profildiagramme
- 31UML mit KI
- 32E-Commerce-Beispiel
- 33Banken-Beispiel
- 34Microservices-Beispiel
- 35AWS-Beispiel
Passend dazu
Strukturdiagramme
Strukturdiagramme
Modellierungspraxis
Strukturdiagramme
Notationsreferenz
Strukturdiagramme