Strukturieren eines Modells
Sie strukturieren ein Innovator-Modell mit System- und Teilmodellen, Komponenten, Paketen, Diagrammen und Anlegevoreinstellungen.
Mittel zur Strukturierung eines Modells
Die Struktur eines Modells ist durch die Art und Weise bestimmt, wie dessen Elemente untereinander durch Beziehungen verbunden sind. Wesentlich hierfür sind die Besitzbeziehungen der Elemente, aus denen sich die Hierarchie des Modells ergibt, weil sie festlegen, dass jedes Modellelement unabhängig von seinen sonstigen Beziehungen genau einen Besitzer haben muss. Die Profile, die in Ihrem Modell verwendet werden, bestimmen die Möglichkeiten beim Aufbau einer konkreten Modellstruktur. In der Konfiguration ist z.B. festgelegt, ob das Anlegen eines Elements in einem Container erlaubt ist, er es also besitzen darf.
Zur Strukturierung eines Modells stehen bestimmte Elementtypen zur Verfügung, insbesondere Pakete und Komponenten. Wenn das Anlegen in einem Container erlaubt ist, dann wird ein neues Element auch stets in diesem Container angelegt.
Anlegevoreinstellungen dienen dazu, Elemente beim Anlegen in einen bestimmten Container umzulenken. Anlegevoreinstellungen modellieren Sie als spezielle Abhängigkeit z.B. im Abhängigkeitseditor oder im Toolfenster Abhängigkeiten. Die beste Übersicht zu den Anlegevoreinstellungen im Modell können Sie sich mit einem entsprechenden Komponentendiagramm erstellen.
Element | Symbol-beispiel | Verwendung |
---|---|---|
Systemmodell | Systemmodelle grenzen ein Softwaresystem ab, stellen gemeinsame Profile für ihre Teilmodelle zur Verfügung und bilden deren Wurzel. Innovator-Modelle können ggf. mehrere Systemmodelle beinhalten. | |
Modell | Teilmodelle erlauben eine Gliederung auf oberster Ebene innerhalb eines Systems, z.B. in unterschiedliche fachliche Bereiche oder Modellierungsphasen. | |
Paket | Pakete sind ein Strukturierungselement ohne weitere Semantik. Sie entsprechen einem Ordner eines Dateisystems. Um beliebige Zusammenstellungen (z.B. für die Dokumentation) erstellen zu können, ist es möglich, dass Pakete ausschließlich Referenzen enthalten. | |
Komponente | Komponenten sind eine semantische Gruppierung zusammenhängender Elemente, welche für sich eine eigenständige Einheit bilden; häufig eine Softwarekomponente. | |
Diagramm | Diagramme sind das wesentliche Strukturelement zur Modellierung der Beziehungen zwischen Modellelementen. (Bedingt durch ihre Sonderstellung als Visualisierungsmittel werden sie separat und nicht als normales Element im Menüband angeboten. Sie erscheinen deshalb nicht im Untermenü Modellstruktur.) | |
Anlegevoreinstellung | Anlegevoreinstellungen werden in Innovator als eine spezielle Abhängigkeit zwischen Paketen oder Komponenten modelliert. Sie dienen dazu, Elemente beim Anlegen in einen anderen Container (Paket oder Komponente) und damit zu einem bestimmten Besitzer umzulenken. |
Grundsätzlich strukturieren Sie Ihr Modell durch Pakete und Komponenten, wobei System- und Teilmodelle spezielle Pakete sind. Für Pakete und Komponenten können Sie die Anlegevoreinstellung nutzen, um bestimmte Elemente – ausschließlich beim Anlegen – in andere Pakete oder Komponenten und damit zu einem bestimmten Besitzer umzulenken. In Innovator werden Anlegevoreinstellungen als spezielle Abhängigkeit modelliert.
Sie können Ihr Modell z.B. strukturieren, indem Sie seine Elemente nach bestimmten Kriterien gruppieren und in jeweils einem Paket zusammenfassen. Die Kriterien, nach denen Sie Ihr Modell strukturieren, können Sie dabei nach Belieben festlegen. So könnten Sie beispielsweise die Elemente nach ihrem Typ sortieren, also alle Diagramme eines Typs in einem Paket zusammenfassen. Wenn Sie bereits die Architektur Ihres Modells abbilden möchten, könnten Sie für die verschiedenen Komponenten Ihres Systems jeweils ein Paket einrichten. Natürlich sind auch beliebige Kombinationen aus diesen Ansätzen denkbar.
Hinweis
Der strukturelle Aufbau eines Modells oder Modellsystems ist zuerst eine administrative Aufgabe der Konfiguratoren. Sie legen mit den zur Verfügung gestellten Profilen und den in der Modellvorlage bereits enthaltenen Strukturelementen den Ausgangspunkt und die Freiheitsgrade der Modellierung fest. In der Modellierungsphase werden diese Grundlagen genutzt.
Ergänzungen und Änderungen der Modellstruktur sind nur im Ausnahmefall ohne entsprechende Anpassungen der Profile möglich. Meist muss erneut der Zusammenhang von Besitzern und zugeordneten Elementen passend hergestellt werden. Umgekehrt führt z.B. das Löschen von bestehenden Anlegevoreinstellungen im Modell zur Störung dieser Beziehungen und damit zur durchaus massiven Einschränkung der Modellierungsmöglichkeiten.
Die bestehende Struktur des Modells können Sie im Toolfenster Modellinhalt (Ansicht Modellstruktur) betrachten.
Das Beispiel zeigt die Struktur eines fachlichen Modells auf, welches mit mehreren Unterpaketen versehen ist, beispielsweise mit einem für die Zuordnung von Prozessen, einem weiteren für Anwendungsfälle etc.
Bei der Arbeit mit Strukturelementen müssen Sie folgende Eigenheiten berücksichtigen:
- Hierarchischer Aufbau
Strukturelemente können hierarchisch gegliedert sein. Jedes Strukturelement kann also beliebig viele weitere Strukturelemente enthalten. - Modellwurzel
Das oberste Strukturelement eines Modells – die sogenannte Modellwurzel – ist automatisch vorhanden. Es erhält den Namen des aktuellen Modells und kann nicht gelöscht werden. - Identifikation eines Elements
Jedes Modellelement hat einen Besitzer. Das Element wird identifiziert durch seinen Pfad in der Modellstruktur, seinen Namen und seinen Elementtyp. Für einen Besitzer kann es (trotz Universally Unique Identifier) nicht zwei Elemente mit gleichem Namen und gleichem Typ geben.
Dies gilt auch für die Strukturelemente selbst.
Wirkungsweise der Anlegevoreinstellungen
Anlegevoreinstellungen dienen dazu, Elemente in einen anderen Container und damit zu einem bestimmten Besitzer umzulenken. Normalerweise ergibt sich der Container eines neuen Elements aus der Selektion. So wird z.B. in einem Klassendiagramm beim Anlegen einer neuen Klasse standardmäßig immer der Container des Klassendiagramms auch als Container der Klasse verwendet.
In einigen Fällen kann es erwünscht sein, dass grundsätzlich ein anderer Container zum Einsatz kommt. So können Sie z.B. alle Primitivtypen in einem Container sammeln, der dann unabhängig vom Container der Selektion gewählt werden soll. Zu diesem Zweck werden Anlegevoreinstellungen verwendet.
Eine Anlegevoreinstellung wird zwischen zwei Paketen oder Komponenten angelegt. Zu jeder Anlegevoreinstellung wird das Merkmal Umgeleitetes Stereotyp festgelegt. Daneben kann über das Merkmal ist Standard festgelegt werden, ob dieses umgeleitete Stereotyp als Standard verwendet werden soll.
Bei der Auswertung ist zu unterscheiden, ob das Stereotyp des anzulegenden Elements bekannt ist oder nicht. Legt man ein Element direkt über einen Menübefehl an, dann wird eine Anlegeschablone zu einem bestimmten Stereotyp ausgewertet und das Stereotyp ist bekannt. Daneben gibt es allerdings auch Fälle, in denen ein Element nur indirekt angelegt wird. In diesen Fällen ist das Stereotyp in der Regel nicht bekannt.
Gehen wir zunächst einmal von dem Fall aus, dass das Stereotyp bekannt ist. Auf Basis eines selektierten Elements wird beim Anlegen eines neuen Elements zunächst ein möglicher Container berechnet. Zu diesem Container wird dann in der Konfiguration geprüft, ob das Anlegen des neuen Elements in diesem Container erlaubt ist. Falls dies der Fall ist, wird dieser Container auch verwendet und eine ggf. vorhandene Anlegevoreinstellung wird nicht greifen.
Ist der Container nicht zulässig, dann wird ausgehend von diesem Container bis hinauf zur Wurzel nach auslaufenden Anlegevoreinstellungen gesucht. Die erste Anlegevoreinstellung, bei welcher das Merkmal Umgeleitetes Stereotyp das vorgegebene oder eines seiner Oberstereotype eingestellt hat, legt über ihr Zielelement den zu verwendenden Container fest. Um mehrere Stereotype eines Elementtyps umzulenken, genügt es also, wenn das gemeinsame Oberstereotyp umgelenkt wird.
Falls das Stereotyp nicht bekannt ist, kommt das Merkmal ist Standard zum Tragen. In diesem Fall wird ebenfalls ausgehend vom Container der Selektion in Richtung Wurzel nach einer Anlegevoreinstellung gesucht. Verwendet wird in diesem Fall die erste Anlegevoreinstellung, die das Merkmal ist Standard aktiviert und ein Stereotyp zum gewünschten Elementtyp eingestellt hat. Die Anlegevoreinstellung liefert in diesem Fall zunächst das Stereotyp des anzulegenden Elements. Damit wird dann wiederum das Verfahren zum Anlegen eines Elements mit bekanntem Stereotyp durchlaufen. D.h., es könnte theoretisch sogar der Container der Selektion als Container des neuen Elements in Frage kommen, wenn dieser das Stereotyp als Inhalt zulässt. In diesem Fall greift eine Anlegevoreinstellung also nicht unbedingt als Containerumlenkung, sondern zunächst als Stereotypzuweisung.
Der über Anlegevoreinstellung ermittelte Container sollte Elemente mit dem gewählten Stereotyp als Inhalt zulassen. Andernfalls führt dies beim Anlegen des Elements zu einer Fehlermeldung.
Hinweis
Die Merkmale Pakethierarchie kopieren, Stereotyp des Zielpakets und Anlegeschablone dienen ausschließlich der Nutzung über die API in Engineering-Aktionen.
Ein Einsatzgebiet sind z.B. die Engineering-Aktionen zum Mapping. Als Anlegeschablone wird dabei die Schablone festgelegt, die für ein anzulegendes Element mit einem vorgegebenen Stereotyp verwendet werden soll.
Auf der Modellierungsseite kollidiert das Verändern von Anlegevoreinstellungen normalerweise mit der Konfiguration und den damit umgesetzten Intentionen des Modells. Die konfigurierten Besitzbeziehungen bestimmen die zulässigen Ziele einer Anlegevoreinstellung. Auf der Modellierungsseite geht es vor allem um die Transparenz der Ablage direkt oder indirekt neu angelegter Elemente.