Typhierarchie: Vererbung, Verschachtelung und Aggregation

Fortgeschritten

Typhierarchie: Vererbung, Verschachtelung und Aggregation

Jeder Beziehungstyp kann semantische Flags tragen, die das Verhalten seiner Verbindungen verändern — über das bloße Zeichnen einer Linie hinaus. Wählen Sie einen Beziehungstyp im Modell-Navigator, öffnen Sie das Eigenschaften-Panel und suchen Sie den Abschnitt Typhierarchie. Die Flags sind voneinander unabhängig — aktivieren Sie nur, was Sie benötigen.

Vererbungs-Flags

Verwenden Sie diese, wenn eine Beziehung „ist eine Art von“ bedeutet (z. B. eine is_a-Verbindung von Elektroauto zu Auto). Der Untertyp übernimmt dann Dinge von seinem Obertyp:

  • Eigenschaften vererben — der Untertyp erhält die Eigenschaften des Obertyps. Sie erscheinen am Untertyp (ausgegraut/kursiv) und an jeder seiner Instanzen; bearbeitet werden sie am Obertyp.
  • Erlaubte Verbindungen vererben — der Untertyp kann überall dort verbinden, wo auch der Obertyp verbinden darf.
  • Ansichten vererben — der Untertyp verwendet den visuellen Stil des Obertyps, sofern Sie ihn nicht überschreiben.

Beim Modellieren (in der App und über die API) gilt: Ein Typ darf einen Obertyp haben, und Zyklen werden abgelehnt.

Enthält (Verschachtelung)

Aktivieren Sie Enthält (Verschachtelung), wenn eine Beziehung „ist Teil von / ist enthalten in“ bedeutet (z. B. ein Motor in einem Auto). Verbindungen dieses Typs werden dann als Verschachtelung statt als Linie dargestellt:

  • Auf der Zeichenfläche sitzt das enthaltene Element innerhalb seines Containers (Box-in-Box). Der Container wächst passend zu seinem Inhalt, und beim Verschieben des Containers wird alles darin mitbewegt. Die Verbindungslinie wird ausgeblendet — die Verschachtelung ist die Beziehung.
  • Im Baum des Modell-Navigators erscheint das enthaltene Element unterhalb seines Containers.

Die Richtung ist wichtig: Ziehen Sie die Verbindung vom enthaltenen Element zu seinem Container (Quelle = das Teil, Ziel = das Ganze).

Aggregation

Aggregation kennzeichnet eine schwächere „Teil von“-Beziehung (geteilte Bestandteile, unabhängiger Lebenszyklus) zu Dokumentationszwecken. Sie hat für sich genommen keine visuelle Wirkung — die Verbindung bleibt eine gewöhnliche Linie. Für eine UML-typische, nicht ausgefüllte Raute stellen Sie in der Formatierung des Beziehungstyps ein Rauten-Ende ein (siehe Beziehungstypen gestalten).

Gut zu wissen

  • Alle Flags sind standardmäßig deaktiviert, bestehende Modelle bleiben also unverändert.
  • Die Flags sind unabhängig: Eine Beziehung kann verschachteln, ohne zu vererben, oder vererben, ohne zu verschachteln.