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.

auch den Unterautomaten kopieren, werden wir sie dann voll berücksichtigen.<br />

Ein Transitionssegment kann eine Vorbedingung (Condition) und mehrere<br />

Aktionen (Action) besitzen, die wir im Beispiel aber nicht weiter betrachten werden,<br />

sondern erst im Anhang A. Für die Spezifikationsvereinigung unterscheiden<br />

sich diese beiden nicht wesentlich von den Ein- und Ausgangsnachrichten (Input<br />

und Output), bringen uns also nichts konzeptuell Neues.<br />

Die Metamodellklassen MIFPort und MIFTerm folgen im nächsten Abschnitt.<br />

Datensicht<br />

Datentypen Mit Datentypen und deren Definition beschäftigen wir uns ausführlich<br />

in Kapitel 3. Wir belassen es hier bei der dem Hinweis, dass die Struktur<br />

und der Aufbau von Typdefinitionen in Abschnitt 3.1 im Zusammenhang mit der<br />

Typunifikation genau erläutert wird und wenden uns hier den mit Datentypen<br />

eng in Verbindung stehenden Termelementen zu.<br />

Terme Für unser Unifikationsvorhaben sind die Terme der Ein- bzw. Ausgabeausdrücke<br />

von Transitionen von besonderem Interesse. In Abschnitt 5.4.5<br />

werden wir mit ihnen eine Strukturunifikation durchführen. Daher wollen wir<br />

uns hier noch den Ausschnitt des Metamodells ansehen. Die Metamodellelemente<br />

Constructor und Selector werden ebenfalls im Kapitel 3 genau eingeführt.<br />

Args 1..* <br />

Term<br />

Appl<br />

Head<br />

Const<br />

Name: String<br />

Constructor<br />

Selector<br />

Abbildung 2.3: Metamodell für Terme<br />

Abbildung 2.3 zeigt, dass ein Term entweder ein Konstruktor oder eine<br />

Funktionsapplikation (Appl) sein kann. Letztere besteht aus einer angew<strong>and</strong>ten<br />

Funktion (Head-Assoziation) und einer geordneten Menge von Parametertermen<br />

(Args-Assoziation). Syntaktisch ist es daher auch möglich, Selektorfunktionen<br />

als angew<strong>and</strong>te Funktion in Termen zu verwenden. Da dies aber unser Vereinigungsproblem<br />

nur um gleichartige Fälle ausdehnt, werden wir Terme auf die<br />

Anwendung von Konstruktoren beschränken (siehe Abschnitt 2.5).<br />

Die Konstruktion von zulässigen Termen übernimmt in AutoFocus 2 ein<br />

entsprechender Parser. Aus ODL heraus ist ein Zugriff auf diese Funktion allerdings<br />

nicht möglich, weshalb wir selbst die Konstruktion übernehmen müssen.<br />

Wir haben uns dabei aber auf den für Beispiel relevanten Fälle beschränkt und<br />

keine Unifikation für alle in AutoFocus 2 möglichen Terme implementiert.<br />

11

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!