Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
12 Gr<strong>und</strong>lagen: Modellierung in ausgewählten Gebieten<br />
Klassendiagramme zur Datenmodellierung ein Beleg. Geht es dann um die Umsetzung der grafischen<br />
Datenmodelle können z.B. die textuellen sehr populären XML-Techniken eingesetzt werden. Hier gibt es<br />
z.B. Transformationstechniken von UML-Klassendiagrammen zu XSD-Schemata [Mal03]. Diese Technik<br />
wird ebenfalls eingesetzt um mit XML in Verbindung mit Metamodellen Austauschformate für UML-<br />
Modelle festzulegen. Hat man ein werkzeugunabhängiges XML-basiertes Austauschformat, so lassen sich<br />
Modelle zwischen unterschiedlichen Tools austauschen.<br />
Das UML-Metamodell beschreibt mit Sprachmitteln des UML-Klassendiagramms die eigene UML-Modellierungssprache<br />
[UML10]. Wird das UML-Metamodell in ein XSD-Schema transformiert, erhält man ein<br />
Austauschformat für UML-Modelle. Die dann erhaltenen XML-Dateien stellen UML-Modelle dar. Mit XMI<br />
wurde diese Vorgehensweise verfolgt, mit dem Ziel, ein verlässliches Austauschformat für UML-Modelle<br />
zu erhalten [XMI05].<br />
Metamodelle werden aber nicht nur zur Definition von Austauschformaten im Zusammenhang mit XML<br />
genutzt. Sie können ebenfalls (domänenspezifische) Sprachen definieren [Kle08]. Analog dazu wie Backus-<br />
Naur-Form Grammatiken eingesetzt werden, um Programmiersprachen zu definieren, können Metamodelle<br />
Modellierungssprachen definieren. Aus einer Grammatik werden Programme <strong>und</strong> aus Metamodellen Modelle<br />
abgeleitet. In Metamodellen wird üblicherweise erst die strukturellen Eigenschaften der Modelle festgelegt.<br />
Die operationale Semantik der einzelnen Modellelemente bleibt zumindest beim Metamodell für die<br />
UML [UML10] unterspezifiziert. Diese Eigenschaft der Metamodelle ist analog zu Grammatiken für<br />
Programmiersprachen zu sehen, bei denen in der Regel die Semantik der einzelnen Kommandos auch noch<br />
nicht definiert ist.<br />
Ist der von der Grammatik abgeleitete Compiler vorhanden, in dem zusätzlich auch die Semantiken der<br />
Kommandos umgesetzt sind, können Programme übersetzt <strong>und</strong> gestartet werden, die daraufhin im Computer<br />
ablaufen. Analog gibt es auf Modellseite auch ausführbare Modelle. Die dafür notwendigen Ausführungssprachen<br />
sind mit Alf [OMG10] oder SOIL [Büt11] für die UML vorhanden, die die operationale Semantik<br />
für Modelle definieren. Mit einem entsprechenden UML-Tool lassen sich diese Modelle dann ausführen <strong>und</strong><br />
testen.<br />
Mit Query View Transformation (QVT) [QVT08] <strong>und</strong> diverse Tools können in Verbindung mit Metamodellen<br />
Transformationen definiert werden, die Veränderungen des Systemzustands bewirken. Bei solchen<br />
Transformationen wird das gleiche Metamodell für Quelle <strong>und</strong> Ziel genutzt. Ursprünglich ist QVT jedoch<br />
dafür vorgesehen, verschiedene Metamodelle als Quelle <strong>und</strong> Ziel zu nutzen. Damit soll auf Basis von<br />
Metamodellen ermöglicht werden, Modelle einer Sprache in eine andere zu transformieren (z.B. von UML-<br />
Klassendiagramme zu Entity-Relationship-Diagramme). Seiteneffektfreie Sprachen wie OCL [OCL10]<br />
reichen für die Umsetzung von Modelltransformationen nicht aus, so dass für QVT eine imperative Version<br />
von OCL entwickelt wurde um die Modelltansformationen umzusetzen [QVT08].<br />
Metamodelle kann man des Weiteren auch zur Beschreibung von textuell dargestellten Sprachen nutzen.<br />
So ist für die OCL selber ein UML-basiertes Metamodell entwickelt worden, um die Syntax der textuellen<br />
Sprache zu beschreiben [Ric01]. Es gibt noch viele weitere Bereiche, in denen Metamodelle Anwendung<br />
finden, die hier jedoch nicht weiter aufgeführt werden. Die Einsatzmöglichkeiten von Metamodellen reichen<br />
von sehr informellen Ansätzen, die rein konzeptionell Sachverhalte ausdrücken zu eher formalen Ansätzen,<br />
die eine modellzentrierte Entwicklung mit Modelltransformationen beinhaltet.