UML-Objektdiagramme
Ein Klassendiagramm, in einem Augenblick eingefroren, mit echten Werten statt Typen. Der billigste Weg herauszufinden, ob ein gerade gezeichnetes Modell tatsächlich funktioniert.
6 Min. LesezeitUML 2.5.123 von 35
Die kurze Antwort
- Ein Klassendiagramm sagt, was möglich ist; ein Objektdiagramm sagt, was in einem Augenblick zutrifft, mit echten Werten statt Typen.
- Die Unterstreichung markiert eine Instanz. Der Name liest sich Instanz : Klasse, und jede Hälfte darf entfallen - ein blosser Doppelpunkt ergibt eine anonyme.
- Ein Slot ist ein Attribut mit einem konkreten Wert. Slots sind das, was ein Objektdiagramm statt typisierter Attributdeklarationen trägt.
- Zeichnen Sie eines, wenn eine Multiplizität oder Selbstassoziation zweifelhaft aussieht. Lässt sich kein zulässiges Beispiel zeichnen, ist das Klassendiagramm falsch.
01Was es zeigt#
Ein Objektdiagramm ist eine Momentaufnahme. Wo ein Klassendiagrammsagt „eine Zahlung hat einen Betrag und null oder mehr Erstattungen“, sagt ein Objektdiagramm „dieseZahlung lautet gerade auf 49.90 EUR und hat eine Erstattung über 10.00“.
Es benutzt dieselben Formen wie ein Klassendiagramm mit zwei Änderungen, und diese zwei Änderungen sind die ganze Notation:
- Das Namensband lautet
instanzName: KlassenNameund ist unterstrichen. Jeder Teil darf entfallen -p1allein oder: Paymentfür eine anonyme Instanz - die Unterstreichung nie. Sie ist es, die aus dem Kasten ein Objekt statt einer Klasse macht. - Aus Attributen werden Slots mit konkreten Werten:
currency = EUR, nichtcurrency: Currency.
02Was sich gegenüber einem Klassendiagramm ändert#
| Element | Notation | Was es bedeutet |
|---|---|---|
| Instanz | unterstrichenes Namensband | p1: Payment, : Payment oder p1. Die Unterstreichung ist Pflicht. |
| Slot | name = wert | Ein Attribut mit einem tatsächlichen Wert, keinem deklarierten Typ. |
| Link | schlichte Linie | Eine Instanz einer Assoziation. Trägt einen Rollennamen, wenn nützlich, aber nie eine Multiplizität. |
| Keine Operationen | weggelassen | Instanzen haben keine eigenen Operationen - die Klasse hat sie. Das dritte Abteil wird schlicht nicht benutzt. |
03Wozu das gut ist#
Objektdiagramme sind das am seltensten gezeichnete UML-Diagramm und eines der nützlichsten je aufgewendeter Minute, weil sie ein Test für ein Klassenmodell sind.
Nehmen Sie ein Klassendiagramm, dessen sich jemand sicher ist, und versuchen Sie, je eine realistische Instanz jedes Kastens auszufüllen. Drei Dinge passieren zuverlässig. Eine Multiplizität stellt sich als falsch heraus - die 1, die 0..1 hätte sein sollen, entdeckt in dem Moment, in dem Sie nichts hineinschreiben können. Eine fehlende Beziehung taucht auf, weil zwei Objekte, die sich offensichtlich gegenseitig referenzieren müssen, keine Linie zwischen sich haben. Und ein Attribut, das als Typ in Ordnung aussah, hat keinen sinnvollen Wert, was meist heißt, es gehört an eine andere Klasse.
Das dauert etwa zehn Minuten und findet Probleme, die Monate abstrakter Diskussion überstehen. Es ist derselbe Grund, aus dem das Schreiben eines einzigen Testfalls Entwurfsprobleme findet, die das Lesen des Entwurfs nicht findet.
Der zweite Nutzen ist erklärend. Eine rekursive oder selbstbezügliche Struktur - ein Baum, ein Graph, ein Kompositum - ist aus einem Klassendiagramm wirklich schwer zu begreifen, wo sie ein Kasten mit einer auf sich zurücklaufenden Linie ist. Als fünf konkrete Objekte mit Links dazwischen gezeichnet wird sie sofort offensichtlich.
04Wann man eines zeichnet#
Dazu greifen, wenn
- Ein Klassendiagramm prüfen, aus dem Sie gleich bauen wollen
- Eine rekursive oder selbstbezügliche Struktur erklären, die ein Klassendiagramm verdeckt
- Einen bestimmten kniffligen Fall dokumentieren - die Bestellung mit geteilter Zahlung und zwei Erstattungen
- Testdaten vorbereiten: ein Objektdiagramm ist ein Bild Ihrer Seed-Daten
Zu etwas anderem greifen, wenn
- Als Ersatz für das Klassendiagramm - es zeigt einen Fall, nicht die Regeln
- Die Struktur ist flach und offensichtlich
- Sie bräuchten sechs davon für die interessanten Fälle; reparieren Sie lieber das Klassenmodell
- Die Frage betrifft Verhalten über die Zeit - nehmen Sie ein Sequenzdiagramm
In je einer Zeile
- 01Ein Objektdiagramm ist ein Augenblick eines Klassendiagramms, mit echten Werten.
- 02Die Notation ist das unterstrichene Namensband; Instanz- und Klassenname sind beide optional, die Unterstreichung nicht.
- 03Slots halten Werte (currency = EUR), keine Typen.
- 04Links tragen nie eine Multiplizität - eine Momentaufnahme zeigt, was ist, nicht was sein könnte.
- 05Der beste Nutzen ist ein Zehn-Minuten-Test eines Klassenmodells, aus dem Sie gleich bauen.
05Häufige Fragen#
Was unterscheidet Objekt- und Klassendiagramm?
Ein Klassendiagramm zeigt Typen und was möglich ist. Ein Objektdiagramm zeigt eine Menge tatsächlicher Instanzen in einem Augenblick, mit echten Werten. Jedes Objektdiagramm ist ein Beispiel irgendeines Klassendiagramms - deshalb ist es der billigste Weg zu prüfen, ob jenes Klassendiagramm funktioniert.
Warum sind Namen im Objektdiagramm unterstrichen?
Die Unterstreichung ist UMLs Markierung für eine Instanz. Das Namensfeld liest sich als Instanzname, Doppelpunkt, Klassenname, unterstrichen, und jede Hälfte darf entfallen: Doppelpunkt Bestellung ist eine anonyme Instanz, und ein blosser Name eine, deren Typ aus dem Kontext klar ist.
Was ist ein Slot in UML?
Ein Attribut einer Instanz mit einem konkreten Wert, geschrieben als Attribut gleich Wert. Slots sind das, was ein Objektdiagramm anstelle der typisierten Attributdeklarationen eines Klassendiagramms trägt.
Wann lohnt sich ein Objektdiagramm?
Wenn ein Klassendiagramm Multiplizitäten oder eine Selbstassoziation hat, bei der Sie unsicher sind. Es mit drei oder vier echten Instanzen zu füllen klärt den Streit meist in einer Minute - und wenn Sie kein zulässiges Beispiel zeichnen können, ist das Klassendiagramm falsch.
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
Grundlagen
Strukturdiagramme
Verhaltensdiagramme
Verhaltensdiagramme
Grundlagen