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.
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