 |
 | |  |  | | Beschreibung |  | Das MOF benutzt ein Objekt Modellierungsframework, welches in vielen Aspekten eine Teilmenge der UML ist. Deren vier Hauptmodellierungskonstrukte sind:
Klassen, welche MOF Metaobjekte modellieren. Diese können grundsätzlich Attribute, Operationen und Referenzen enthalten. Diese werden im Wesentlichen analog zu UML Klassenattributen und Operationen definiert.
Eine Änderung bei den Operationen ist beispielsweise, dass Parametern Annotationen hinsichtlich der Client-Server Kommunikationsrichtung zugewiesen werden (vgl. CORBA IDL, sowie eine Liste von Exceptions, die geworfen werden können und das bei Attributen und Parametern sich zudem Vielfachheiten in der gewohnten Weise spezifizieren lassen.
Desweiteren sind Generalisierungen zwischen Klassen analog zur UML-Notation erlaubt, wobei gewisse Restriktionen einzuhalten sind, so lassen sich beispielsweise keine Zyklen modellieren, oder Werte der Superklasse in der abgeleiteten Klasse neu definieren. Desweiteren lassen sich abstrakte Klassen modellieren, von denen keine direkten Objekte instanziiert werden können und zudem können Klassen als "Leaf" (Blatt) oder "Root" (Wurzel) deklariert werden. "Leaf" verhindert, dass Klassen abgeleitet werden können und "Root", dass es Superklassen zu dieser Klasse gibt.
Assoziationen, welche binäre (in Kontrast zur UML, die auch n-näre) Beziehungen zwischen Metaobjekten modelliert ansonsten werden diese allerdings grundsätzlch konform zur UML erstellt. Im Gegensatz dazu werden allerdings Vielfachheiten am Assoziationsende nicht zwangsläufig auf alle Elemente der anderen Klasse angewendet, sondern auf sog. Projektionen. Das sind Teilmengen der jeweiligen Instanzenmengen (vgl. S. 42). Zudem werden zwei Aggregationen definiert "non-aggregate" und "composite", wobei ersteres eine eher lose Kopplung zwischen Instanzen ist, z.B. können so verbundene Objekte unterschiedliche Lebenszyklen besitzen - beim "composite" hingegen nicht.
Datentypen zur Erstellung von einfachen und komplexen (zusammengesetzten) Typen. Die MOF sieht dabei 6 einfache Datentypen (bspw. Boolean, Integer, String) vor, die mit Hilfe von Standardtypenkonstruktoren (enumeration, structures etc.) verknüpft werden können.
Pakete zur Gruppierung von Elementen. Auf der Metamodellebene dienen diese Pakete zur Modularisierung und Partitionierung des Modellraums. So können Pakete dementsprechend hierzu wiederrum aus Paketen und allen anderen Metamodellkonstrukten (wie Klassen, Assozationen, Attributen) bestehen. Auf der Modellebene werden Pakete als Kontainer für Metadata benutzt. Zur Komposition und Wiederverwendbarkeit stehen zudem vier weitere Mechanismen zur Verfügung:
- Generalisierung: Analog zu Klassengeneralisierung lassen sich somit Pakete von anderen (Superpaketen) ableiten. Die abgeleiteten Pakete besitzen dann alle Elemente des Superpaketes. Analog zu den Klassen können diese zudem "Leaf" und "Root" Annotationen besitzen, wobei abstrakte Pakete nicht unterstützt werden.
- Verschachtelung: Ein Paket kann wiederrum Pakete enthalten. Eine darart verschachteltes Paket stellt eine Komponente des einschließenden Pakets dar und besitzt aufgrund des speziellen, damit verbundenen Kontexts bestimmte Regeln, welche z.B. die Generalisierung oder Importierung mit bzw. durch andere Pakete verbieten.
- Importierung: Das importierende Paket kann Gebrauch von Elementen des importieren Pakets machen, so lassen sich z.B. bestimmte Attribute, Operationen oder Ausnahmen durch importierte Klassen und Datentypen nutzen.
- Clustering: Das Clustering ist eine verstärkte Form des Imports von Paketen hinsichtlich des Lebenszyklusses von Instanzen, die analog zur Importierung verwendet werden können.
Die bisland skizzierten Konstrukte dienen dazu eine "abstrakte" Syntax bestehend aus Metadatenknoten und Verbindungen zu erstellen. Diese Syntax muss i.A. noch durch weitere Konsistenzregeln angereichert werden.
Zurück zu Meta-Object Facility (MOF). |  |
 | |  |  | |  | |  | |  |  |  | | Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben. |
|
|  | |  |  |   | Übergeordnet |  |  |  | |  |  |  |  |  | Metamodellierungskonstrukte |  |  |  |  |  | Weitere Themen |  |  |  | |  |  |  |  |  |  |
|