Archyno
UMLStrukturdiagramme

UML-Profildiagramme

Wie man UML selbst erweitert. Stereotypen, Tagged Values und der Erweiterungspfeil - der Mechanismus hinter jedem «entity», «service» und «microservice», den Sie je auf einem Diagramm gesehen haben.

6 Min. LesezeitUML 2.5.130 von 35

Die kurze Antwort

  • Jedes Guillemet, das Sie je auf einem Diagramm gesehen haben - entity, service, microservice - wurde irgendwo durch ein Profil definiert.
  • Stereotypen fügen Bedeutung hinzu, Tagged Values fügen Daten hinzu. Ein service-Stereotyp mit SLA-Tag lässt eine Komponente ein konkretes SLA tragen.
  • Der Erweiterungspfeil bindet einen Stereotyp an genau eine Metaklasse. Class zu erweitern heisst, er gilt für Klassen und für nichts sonst.
  • Definieren Sie ein Profil, wenn Werkzeuge auf eine Annotation reagieren sollen. Eine Notiz ist für jedes Werkzeug unsichtbar; ein Stereotyp gehört zum Modell.
Ein UML-Profildiagramm. Ein Microservice-Stereotyp mit zwei getaggten Werten, team und slo, erweitert die Metaklasse Class. Die Erweiterung ist als durchgezogene Linie mit einem gefüllten Dreieck gezeichnet, das auf die Metaklasse zeigt.
Ein Profil mit einem Stereotyp. Das gefüllte Dreieck ist eine Erweiterung, keine Generalisierung - Microservice erbt nicht von Class, es ergänzt sie.

01Was es zeigt#

Ein Profildiagramm ist UML, das eine Erweiterung seiner selbst beschreibt. Es ist das einzige Diagramm der Sprache, dessen Gegenstand die Sprache ist, weshalb es sich anders anfühlt als die anderen dreizehn und weshalb die meisten Leute nie eines zeichnen.

Das Ergebnis haben Sie fast sicher schon benutzt. Jedes Mal, wenn Sie «entity», «service», «controller» oder «microservice» auf einem Klassenkasten gesehen haben, sahen Sie ein angewandtes Stereotyp. Ein Profildiagramm ist der Ort, an dem dieses Stereotyp definiert wird: wie es heißt, woran es angeheftet werden darf und welche zusätzlichen Eigenschaften es trägt.

02Die Notation#

ElementNotationWas es bedeutet
MetaklasseKasten, «metaclass»Ein Element von UML selbst - Class, Component, Association. Das, was Sie erweitern.
StereotypKasten, «stereotype»Der neue Begriff, den Sie der Sprache hinzufügen.
ErweiterungDurchgezogene Linie, gefülltesDreieck an der Metaklasse. „Dieses Stereotyp darf auf jene Art von Element angewandt werden.“
Getaggter Wertein Attribut am StereotypEine zusätzliche Eigenschaft, die das Anwenden des Stereotyps mitbringt - slo: Duration.
ProfilPaket, «profile»Das Paket, das eine Menge von Stereotypen gruppiert, damit sie gemeinsam angewandt werden können.
«apply»Von einem Paket zu einem Profil: alles hierin darf jene Stereotypen benutzen.
Zwei Klassen mit angewandtem Microservice-Stereotyp, Checkout und Payment orchestrator, jede mit getaggten Werten für team und SLO. Eine Notiz erklärt, dass das Stereotyp und seine getaggten Werte aus dem Profil stammen.
Das Profil im Einsatz. Ein Stereotyp anzuwenden setzt seinen Namen in Guillemets über den Klassennamen und gibt der Klasse die getaggten Werte des Profils zum Ausfüllen.

03Wann Sie wirklich eines brauchen#

Seien Sie ehrlich über die Schwelle. Ein Stereotyp zu benutzen braucht gar kein Profil - «entity» auf einem Kasten teilt sich einer menschlichen Leserin völlig gut mit, ohne dass irgendetwas formal definiert wäre. Ein Profildiagramm brauchen Sie, wenn das Stereotyp einer Maschine etwas bedeuten muss.

Das passiert in drei Situationen. Wenn ein Werkzeug das Modell validieren muss - sich weigern, «microservice» auf eine Assoziation anzuwenden, oder verlangen, dass jedes davon ein SLO deklariert. Wenn aus dem Modell Code oder Dokumente erzeugt werden und der Generator sich am Stereotyp verzweigt. Und wenn eine ganze Branche sich auf ein Vokabular geeinigt hat: SysML, MARTE, SoaML und dergleichen sind alle UML-Profile, und sie sind der Hauptgrund, warum es den Mechanismus gibt.

04Ein Profil nützlich halten#

Dazu greifen, wenn

  • Ein Werkzeug muss aus dem Stereotyp validieren oder erzeugen, nicht nur anzeigen
  • Sie brauchen zusätzliche strukturierte Daten an Modellelementen - Eigentümer, SLO, Klassifizierung
  • Sie übernehmen ein Standardprofil wie SysML, das jemand anders bereits definiert hat
  • Dieselbe Handvoll Domänenbegriffe kehrt über viele Diagramme und Teams hinweg wieder

Zu etwas anderem greifen, wenn

  • Ein oder zwei Stereotypen, rein als optische Etiketten benutzt - schreiben Sie sie einfach hin
  • Die Begriffe, die Sie ergänzen, gibt es bereits in ArchiMate oder einer anderen Sprache
  • Niemand pflegt das Profil weiter, wenn die Person, die es schrieb, geht
  • Sie erweitern UML, um den Teil von UML nicht lernen zu müssen, der das schon abdeckt

Ein gutes Profil ist klein. Fünf bis zehn Stereotypen, jedes mit offensichtlicher Bedeutung und höchstens ein paar getaggten Werten, konsistent angewandt, sind weit mehr wert als vierzig, die sich niemand merken kann. Und jeder getaggte Wert, den Sie ergänzen, ist ein Feld, das jemand an jedem Element ausfüllen muss, für immer - lassen Sie also jedes seinen Platz verdienen.

Eine praktische Warnung zur Portabilität: Profile sind der Teil von UML, der zwischen Werkzeugen am schlechtesten reist. Stereotypdefinitionen überstehen einen XMI-Rundlauf deutlich unzuverlässiger als schlichte Modellelemente, und getaggte Werte kommen oft als untypisierte Zeichenketten oder gar nicht an. Muss Ihr Modell zwischen Werkzeugen wandern, halten Sie das Profil so klein, wie Sie es aushalten.

In je einer Zeile

  1. 01Das einzige UML-Diagramm, dessen Gegenstand UML selbst ist.
  2. 02Ein Stereotyp erweitert eine Metaklasse; der Pfeil ist eine durchgezogene Linie mit GEFÜLLTEM Dreieck.
  3. 03Das hohle Dreieck der Generalisierung bedeutet etwas anderes und ist der übliche Fehler.
  4. 04Getaggte Werte sind zusätzliche Eigenschaften, die das Anwenden des Stereotyps mitbringt.
  5. 05Ein formales Profil brauchen Sie nur, wenn ein Werkzeug auf das Stereotyp reagieren muss.
  6. 06Halten Sie Profile klein - sie sind auch der Teil eines Modells, der am unzuverlässigsten exportiert.

05Häufige Fragen#

Was ist ein Stereotyp in UML?

Eine benannte Erweiterung eines bestehenden UML-Elements, in Guillemets geschrieben: entity, service, controller. Damit spezialisiert man die Sprache für eine Domäne, ohne neue Notation zu erfinden - und jeder, den Sie gesehen haben, wurde irgendwo durch ein Profil definiert.

Was ist ein Tagged Value?

Eine Eigenschaft, die ein Stereotyp einem Element hinzufügt. Ein service-Stereotyp könnte ein SLA-Tag definieren; wendet man es auf eine Komponente an, kann diese einen konkreten SLA-Wert tragen. Tagged Values sind, wie ein Profil Daten hinzufügt, so wie Stereotypen sind, wie es Bedeutung hinzufügt.

Was ist die Erweiterungsbeziehung?

Der Pfeil vom Stereotyp zur erweiterten Metaklasse, gezeichnet als durchgezogene Linie mit gefülltem Dreieck. Er macht einen Stereotyp auf genau eine Art von Element anwendbar: Class zu erweitern heisst, er lässt sich auf Klassen anwenden und auf nichts sonst.

Wann ein Profil statt Notizen definieren?

Wenn dieselbe Annotation oft genug auftaucht, dass Werkzeuge darauf reagieren sollen: sie prüfen, danach filtern oder sie beim Export transformieren. Eine Notiz ist für jedes Werkzeug unsichtbar; ein Stereotyp ist vollwertiger Teil des Modells.

In dieser Reihe

Passend dazu

Alle Artikel