03.02.2014 Aufrufe

Spezifikationsmodule - Software and Systems Engineering - TUM

Spezifikationsmodule - Software and Systems Engineering - TUM

Spezifikationsmodule - Software and Systems Engineering - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!