Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.2.2 Das AutoFocus 2-Metamodell<br />
Gegenüber der ersten Version des AutoFocus-Werkzeugs, das die Datenspeicherung<br />
den Sichten entspreched vornahm, wurde die Architektur von AutoFocus 2<br />
so konstruiert, das sämtliche Modelldaten zusammen abgelegt werden. Zur Zeit<br />
geschieht dies in Form von XML-Dateien, konzeptuell ist die persistente Speicherung<br />
von Modellen aber auch in einer Datenbank möglich. Die Struktur der<br />
Daten, und somit der jeweiligen Speicherungsform, ist im Metamodell festgelegt.<br />
Das Metamodell beschreibt in Form von Klassendiagrammen, welche Modellelemente<br />
es gibt und wie diese mitein<strong>and</strong>er verknüpft sind bzw. sein können. Ein<br />
Metamodellelement beschreibt also eine ganze Klasse von Modellelementen.<br />
In den mit ODL formulierten Transformationen treten die Metamodellelemente<br />
als Bezeichner für Mengen, der jeweils im bearbeiteten Modell vorh<strong>and</strong>enen<br />
Elemente auf. So repräsentiert Component die Menge aller Komponenten<br />
innerhalb eines AutoFocus 2-Projekts. Zum Verständnis der Modelltransformationen<br />
und -analysen, die wir im Folgenden betrachten werden, ist die Kenntnis<br />
des Metamodells notwendig. Wir haben die relevanten Teile als Klassendiagramme<br />
dargestellt.<br />
Das Metamodell basiert selbst wieder auf einem Meta-Metamodell, was mit<br />
Blick auf die Portierbarkeit der Transformationssprache von Bedeutung ist. Diesen<br />
Aspekt beleuchten wir in Abschnitt 6.3 für die Anbindung von ODL an<br />
UML-Werkzeuge genauer.<br />
Wir wollen nun für die drei für uns relevanten Sichten die jeweiligen Metamodellteile<br />
betrachten. Dabei zeigen wir nur die für die folgenden Ausführungen<br />
relevanten Teile und lassen manche Spezialität, der besseren Verständlichkeit<br />
wegen, weg.<br />
Struktursicht<br />
Die Struktursicht beschreibt den Sytemaufbau und umfasst im Wesentlichen<br />
drei Klassen von Modellelementen. Wie Abbildung 2.1 zeigt sind dies die Metamodellelemente<br />
für Komponenten (Component), Schnittstellen (Port) und Kommunikationskanäle<br />
(Channel).<br />
SubComponents<br />
0..*<br />
Component<br />
Name: String<br />
Port<br />
Ports<br />
0..*<br />
Name: String<br />
DefinedType: MIFType<br />
Direction: Direction<br />
SuperComponent<br />
SourcePort<br />
DestinationPort<br />
OutChannels 0..*<br />
InChannel 0..1<br />
Channel<br />
Name: String<br />
DefinedType: MIFType<br />
Direction<br />
Channels<br />
0..*<br />
IsEntry: boolean<br />
Abbildung 2.1: Metamodell für Komponenten<br />
Die Klasse Direction kapselt die Information, ob ein Port-Element eine Ein-<br />
9