Das E³-Modell ist ein Metamodell, das die einheitliche Definition von Methoden erlaubt. Es kann also sowohl Modellierungssprachen als auch das Vorgehen zur Anwendung dieser Sprachen beschreiben. Zusätzlich zur Definition einer Sprache können im E³-Modell auch konkrete - in einer Sprache erstellte - Modelle abgelegt werden. Aus diesen Ansprüchen ergibt sich im E³-Modell folgende Dreiteilung:
enthält die Beschreibung des Vorgehens
enthält die Beschreibung einer Modellierungssprache
enthält konkrete Modelle (Instanzen) einer in der Typebene definierten Sprache
Typ- und Instanzebene sind horizontal in drei Ebenen unterteilt. Sie dienen der Trennung des Kontextes eines Modells von der grafischen Repräsentation. Über Sichten, welche beliebig geschachtelt werden können (es ergibt sich eine hierarchische Struktur), wird eine logische Gliederung der Modelle ermöglicht. Die vertikalen Ebenen dienen der Detaillierung eines Modells in seine Modellelemente (Objekte) und deren Eigenschaften.
Verwandte Hilfethemen:
Der horizontalen und vertikalen Gliederung folgend ergeben sich die Elemente des E³-Modells, die E³-Elemente.
Ein Modelltyp dient zur Aufnahme der Elemente der Kontextebene.
Der Objekttyp definiert die Elemente des Modelltyps.
Eigenschaften zu einem Objekttyp werden durch seine Propertytypen festgelegt. Zusätzlich sind für den Propertytypen ein Wertebereich, eine Multiplizität und ein Strukturtyp anzugeben. Durch den Strukturtyp wird definiert, in welcher Form Menge (set), Liste (list) oder Baum (tree), die Ausprägungen des Wertebereichs verwaltet werden.
Der einfache Wertebereich umfasst z.B. Zeichenketten und gebrochene Zahl. Weiterhin existiert der Wertebereich E3, der jedes E3-Element umfassen kann. Dadurch wird ein Teil der möglichen Beziehungen gebildet. Zusätzlich kann ein dynamischer Wertebereich angegeben werden, über den für Instanzen eine oder mehrere Wertebereiche vorgegeben werden. Die Multiplizität eines Propertytypen gibt an, welche minimale und maximale Anzahl von Ausprägungen der Wertebereich zu einem Propertytypen annehmen kann. Jedem Objekttyp können mehrere Propertytypen zugeordnet sein.
Durch einen Viewtyp werden Sichten gebildet, d. h. die relevanten Ausschnitte des Metamodells selektiert. Einem Viewtypen können weitere Viewtypen nachgeordnet sein.
Ein Präsentationstyp dient zur grafischen Darstellung der durch einen Viewtypen selektierten Ausschnitte des Metamodells.
Die Objekttypen der Kontextebene werden durch ihren nachgeordneten Präsentationsobjekttyp grafisch dargestellt.
Durch Präsentationpropertytypen werden die Eigenschaften des Objekttypen sowie seine Beziehungen zu anderen E³-Elementen repräsentiert.
Den Zusammenhang der Konzepte verdeutlicht nachstehende Abbildung.
Ein Trigger reagiert in der Modellinstanz auf Ereignisse (nach dem Erstellen, vor bzw. nach Änderung und vor dem Löschen) und führt ein entsprechendes Skript aus. Weiterhin existiert ein Trigger zur Namensberechnung. Trigger ermöglichen bspw. eine Konsistenzprüfung beim Löschen eines Objektes oder die dynamische Anpassung von Grafiken mit Hilfe eines ECMASkripts. Sie können zu jedem der sieben Typen notiert werden.
Verwandte Hilfethemen:
Die E³-Elemente werden in folgender Weise notiert.
Dabei werden Beziehungen nur minimal aufgeführt, wie das Beispiel einer Modellierungssprache für Knoten und Kanten verdeutlicht.
Zum Modelltyp werden keine Beziehungen angegeben. Er "kennt" also seine nach- und untergeordneten E³-Elemente, z. B. Objekt-, View- und Präsentationstypen nicht.
Der Objekttyp ist seinem Modelltyp untergeordnet. Propertytypen werden zu ihrem übergeordneten Objekttypen in der Form Bezeichnung: Strukturtyp (minimale, maximale Multiplizität) Wertebereich notiert.
Objekttypen können in Vererbungsbeziehungen stehen. Dabei werden die Propertytypen (Eigenschaften) des Superobjekttypen an seinen Subobjekttypen vererbt.
Direkte Beziehungen unter E³-Elementen werden durch eine Assoziation oder eine Aggregation angegeben. Diese werden über den Wertebereich E³ eines Propertytyps gebildet. Die Rolle bezeichnet den Propertytypen, der durch die Assoziation bzw. Aggregation ausgedrückt wird.
Eine Assoziation wird zwischen zwei Objekttypen gebildet. Im Beispiel ist der Propertytyp "knoten" dem Objekttypen "Kante" untergeordnet. Die Multiplizität (2,2) bedeutet, dass zu einer Kante immer zwei Knoten gehören. Der Propertytyp "kante" des Objekttyps "Knoten" der Multiplizität (0,*) gibt an, dass beliebig viele Kanten einem Knoten zugeordnet sind. Eine Aggregation besteht zwischen einem Objekttyp und einem Objekt- oder View- oder Präsentationstypen. Es werden die Eigenschaften des Aggregationspartners im Objekttyp (Ende Raute) aggregiert. Im Beispiel wird der Objekttyp "Typ" im Objekttyp "Knoten" aggregiert.
Ein Viewtyp ist seinem Modelltyp nachgeordnet. Der Modelltyp muss angegeben werden.
Einem Viewtyp ist immer ein Präsentationstyp nachgeordnet. Die indirekte Beziehung zum Modelltyp wird über seinen vorgeordneten Viewtyp ausgedrückt und somit nicht notiert.
Der Präsentationsobjekttyp ist seinem Präsentationstyp untergeordnet sowie seinem Objekttypen nachgeordnet. Neben den Präsentationsproperties wird ihm eine Grafik zugeordnet.
Präsentationsproperties sind den Properties ihres zugeordneten Objekttyps nachgeordnet. Sie werden einem Verbinder zugewiesen, sodass die Grafiken miteinander verbunden werden können. Diese Zuweisung wird in der ConnectorDefinition vorgenommen, in der die ID der Verbinder dem Präsentationspropertytyp zugewiesen werden. Im Beispiel sind somit Verbindungen zwischen den Grafiken der Präsentationsobjekttypen "Knoten" und "Kante" möglich.
Verwandte Hilfethemen:
Seit der Version 1.2.5 des Cubetto Toolset können Modelldaten auch in Form von Tabellen angezeigt und bearbeitet werden. Die Tabellen sind dabei im E³-Modell verankert, besitzen also Beziehungen zu den bereits aufgeführten Konzepten. Auf Typebene wird eine Tabelle durch einen Tabellentypen definiert. Dieser ist wie ein Präsentationstyp stets an einen Viewtypen gebunden. Folglich werden auch Tabellen immer innerhalb einer Sicht (View) angelegt und verwaltet.
Das Cubetto Toolset unterscheidet zwischen einfachen Tabellen und Matrizen. Während einfache Tabellen Eigenschaften mehrer Objekte eines bestimmten Objekttypen anzeigen, stellen Matrizen komplexe Beziehungen zwischen zwei Objekttypen dar. Die folgende Abbildung zeigt eine einfache Tabelle. Als Zeilengruppentyp wurden der Objekttyp Fahrzeug gewählt und damit festgelegt, dass als Zeilen nur Objekte von diesem Typ in die Tabelle eingefügt werden dürfen. Als Spaltengruppentyp wurden ebenfalls der Objekttyp Fahrzeug gewählt, um Eigenschaften des Fahreuges darzustellen. Dem Spaltengruppentyp wurden anschließend zwei Spaltentypen zugeordnet. Ein Spaltentyp wurde mit der Eigenschaft Farbe, der andere mit der Eigenschaft Kilometerstand des Objekttypen Fahrzeug verknüpft. Die Namen der Spalten- als auch der Zeilengruppentypen wurden ausgeblendet, da jeweils nur ein Typ existiert.
Im Gegensatz zu einfachen Tabellen stellen Matrizen komplexe Tabellen dar, deren Spalten- und Zeilengruppentypen nicht den selben Objekttypen referenzieren. In der folgenden Abbildung wurde im Zeilengruppentyp wiederum der Objekttyp Fahrzeug referenziert. Der Spaltengruppentyp verweist auf den Objekttyp Person. Weiterhin existiert der Objekttyp Mietvertrag, der beide Objekttypen miteinander verbindet. Dabei enthält der Objekttyp Fahrzeug einen Propertytypen mietvertrag, der für die Anzeige in der Tabelle als Zeilentyp verwendet wurde. Der Objekttyp Person besitzt ebenfalls einen Propertytypen miertvertrag, der die Verbindung zum Mietvertrag speichert. Dieser wurde als Spaltentyp verwendet. Die Matrix zeigt nun, welche Person mit welchem Fahrzeug über welchen Mietvertrag verbunden ist. Auch in diesem Beispiel wurden die Namen der Spalten- als auch der Zeilengruppentypen ausgeblendet, da jeweils nur ein Spalten- bzw. Zeilengruppentyp existiert.
Verwandte Hilfethemen: