Archyno
UMLStrukturdiagramme

Ein UML-Klassendiagramm zeichnen

Fünf Schritte in der Reihenfolge, die funktioniert: Substantive finden, Linien ziehen, Multiplizitäten entscheiden, dann Attribute, dann Operationen - und aufhören, sobald es die Frage beantwortet.

7 Min. LesezeitUML 2.5.16 von 35

Die kurze Antwort

  • Klassen, dann Beziehungen, dann Multiplizitäten, dann Attribute, dann Operationen. Attribute wirken wie der Anfang und sind der schlechteste.
  • Ein Substantiv wird zur Klasse, wenn es Identität, veränderlichen Zustand und eine eigene Lebensdauer hat. Eine Farbe oder ein Betrag ist ein Attribut.
  • Fertig ist es, wenn es die Frage beantwortet, für die es gezeichnet wurde, und jede Beziehung darauf eine Multiplizität trägt.
  • Nicht wenn jede Klasse darauf steht und nicht wenn jedes Attribut aufgeführt ist - beide Zustände erreicht ein Diagramm, ohne etwas zu beantworten.
Ein frühes UML-Klassendiagramm mit vier Klassen und ohne Attribute. Patient ist mit Appointment assoziiert, Appointment mit Doctor, und Appointment mit Prescription.
Nach Schritt zwei. Vier Substantive und drei Linien, keine Attribute - und schon jetzt wert, es jemandem zu zeigen.

01Schritt eins und zwei: die Substantive, dann die Linien#

Schritt eins ist, aufzuschreiben, wie die Domäne laut beschrieben wird, und die Substantive zu unterstreichen."Eine Patientin bucht einen Termin bei einer Ärztin, und die Ärztin kann ein Rezept ausstellen" liefert sofort vier Kandidaten. Behalten Sie die mit drei Eigenschaften: Identität (zwei davon sind unterscheidbar), Zustand, der sich über die Zeit ändert, und eine eigene Lebensdauer. Ein Substantiv, das an allen dreien scheitert - eine Farbe, ein Betrag, ein Status - ist ein Attribut von etwas anderem.

Schritt zwei ist eine Linie je Satz, den Sie über die Domäne sagen können. Nicht je Datenbank-Join und nicht je Methodenaufruf: eine Linie heißt, dass die beiden Klassen im fachlichen Sinn voneinander wissen. Das Diagramm oben ist, wo das endet, und es lohnt sich schon jetzt, es jemandem vorzulegen, der die Domäne kennt - denn die Diskussion, die Sie wollen, geht darum, ob ein Rezept zu einem Termin oder zu einer Patientin gehört, und die ist jetzt zu haben, bevor ein einziges Attribut getippt wurde.

02Schritt drei: die Multiplizitäten, vor allem anderen#

Jede Linie bekommt an beiden Enden eine Zahl, bevor ein einziges Attribut ergänzt wird. Das ist der Schritt, den man überspringt, und der, der sich auszahlt - denn eine Multiplizität ist eine Entscheidung darüber, was das System zulässt, und ein Attribut ein Detail, das daraus folgt.

Lesen Sie jedes Ende als Satz und sprechen Sie ihn aus. "Eine Patientin hat null oder mehr Termine" - in Ordnung. "Ein Termin hat genau eine Patientin" - in Ordnung, und prüfenswert, denn eine Praxis, die je einen Familientermin vergibt, hat Ihnen gerade das Gegenteil gesagt. Die drei Fragen an jedem Ende lauten: kann es null sein, kann es mehr als eins sein, und ändert sich das an einem schlechten Tag?

Dann wählen Sie die Beziehungsart, und nur über zwei Entscheidungen lohnt sich Grübeln. Wird der Teil mit dem Ganzen gelöscht - wenn ja, Komposition. Hält etwas den Elterntyp, ohne sich um den Untertyp zu kümmern - wenn ja, Generalisierung. Alles andere ist eine schlichte Assoziation, und die durchgearbeiteten Beispiele zeigen beide Urteile in Aktion.

03Schritt vier und fünf: Attribute, Operationen, und aufhören#

Dasselbe UML-Klassendiagramm, fertig. Patient hat id, name und dateOfBirth und ist mit null oder mehr Appointment assoziiert. Doctor hat id, name und specialty und ist mit null oder mehr Appointment assoziiert. Appointment hat startsAt, duration und status, bietet die Operationen book und cancel und ist aus null oder mehr Prescription komponiert.
Dasselbe Modell in Schritt fünf. Beachten Sie die Komposition: ein Rezept überlebt seinen Termin nicht.

Attribute kommen viertens, und jedes braucht eine Quelle. Wenn Sie nicht sagen können, woher ein Wert stammt - ein Formular, ein anderes System, eine Berechnung -, ist er geraten, und Geratenes ist das, was ein Modell aufhören lässt, zu dem zu passen, was es beschreibt. Typen aufzuschreiben lohnt sich: startsAt: Instant entscheidet eine Frage, die startsAt: Date offenlässt.

Operationen kommen fünftens, und die meisten Klassen bekommen keine. Eine Operation gehört an eine Klasse, wenn das Verhalten wirklich deren eigenen Zustand braucht - cancel() braucht den Status des Termins, gehört also dorthin. Alles, was drei andere Objekte braucht, um seine Arbeit zu tun, ist ein Service, und es hierher zu setzen ist der Weg, auf dem ein Domänenmodell still zum Diagramm des Codes statt der Domäne wird.

Dann hören Sie auf. Das fertige Diagramm oben hat vier Klassen und beantwortet eine Frage; Clinic, Room, Invoice und Insurer zu ergänzen machte es vollständiger und weniger nützlich. Muss eine zweite Frage beantwortet werden, zeichnen Sie eine zweite Sicht über dasselbe Modell - dafür gibt es Sichten.

In je einer Zeile

  1. 01Substantive mit Identität, wechselndem Zustand und eigener Lebensdauer werden Klassen. Der Rest sind Attribute.
  2. 02Zeichnen Sie die Linien vor den Attributen und zeigen Sie die hässliche Fassung - sie ist die, die korrigiert wird.
  3. 03Entscheiden Sie Multiplizitäten als drittes, laut, mit der Frage, ob ein Ende null oder mehr als eins sein kann.
  4. 04Jedes Attribut braucht eine Quelle. Typen entscheiden Fragen, die Namen offenlassen.
  5. 05Hören Sie auf, wenn die Frage beantwortet ist, nicht wenn das System vollständig gezeichnet ist.

04Häufige Fragen#

Wie entscheide ich, was eine Klasse wird?

Nehmen Sie die Substantive daraus, wie die Domäne laut beschrieben wird, und behalten Sie die mit Identität, veränderlichem Zustand und eigener Lebensdauer. Ein Substantiv, das immer nur der Wert von etwas anderem ist - eine Farbe, ein Betrag - ist ein Attribut, keine Klasse.

In welcher Reihenfolge zeichnet man ein Klassendiagramm?

Klassen, dann Beziehungen, dann Multiplizitäten, dann Attribute, dann Operationen. Attribute wirken wie der naheliegende Anfang und sind der schlechteste, weil sie am ehesten wieder verworfen werden, sobald die Beziehungen erzwingen, neu zu überlegen, was wohin gehört.

Wann ist ein Klassendiagramm fertig?

Wenn es die Frage beantwortet, für die es gezeichnet wurde, und jede Beziehung darauf eine Multiplizität trägt. Nicht, wenn jede Klasse des Systems darauf steht, und nicht, wenn jedes Attribut aufgeführt ist - beide Zustände kann ein Diagramm erreichen, ohne irgendetwas zu beantworten.

In dieser Reihe

Passend dazu

Alle Artikel