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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.5 Einschränkungen für die Modellierungselemente<br />

AutoFocus 2 bietet eine breite Palette von Modellierungsmöglichkeiten für komponentenbasierte<br />

Systeme. In dem dargestellten Beispiel haben wir auf einige<br />

dieser Möglichkeiten verzichtet, da diese eine Vielzahl von Sonderfällen erzeugen.<br />

Unser Anspruch ist hier nicht den perfekten Ablauf der Spezifikationsvereinigung<br />

zu präsentieren, sondern das Grundprinzip zu verdeutlichen und<br />

zu zeigen, dass solch komplexe Modelltransformationen durchführbar sind. Eine<br />

einsatzfähige Transformation muss im Kontext eines Entwicklungsprozesses<br />

massgeschneidert werden. Wir legen hier den Fokus auf die theoretische Fundierung<br />

sowie die technische Umsetzung als Konzeptbeweis.<br />

Im Einzelnen haben wir folgende Einschränkungen benutzt:<br />

• Die zu vereinigenden Komponenten besitzen keine hierarchische Struktur.<br />

Wir verwenden nur Einzelkomponenten zur Vereinigung, deren Verhalten<br />

durch einen Automaten beschrieben ist.<br />

• Die Unifikation von lokalen Variablen führen nur im Programmlisting in<br />

Anhang A durch.<br />

• Die Vereingung der Automaten ist flach, d.h. wir gehen davon aus, dass die<br />

Automaten keine hierarchischen Zustände besitzen. Für solche Zustände<br />

müsste zusätzlicher Aufw<strong>and</strong> betrieben werden, um die Struktur rekursiv<br />

abzuarbeiten. Unterautomaten werden erst im Programm miteinbezogen,<br />

dort jedoch auch nur kopiert, nicht unifiziert.<br />

• Automaten haben keine ausgezeichneten Zustände, wie Start- und Endzustände.<br />

• Die Zust<strong>and</strong>sübergänge besitzen keine Vorbedingungen und keine Aktionen,<br />

da hierzu zunächst die Definition entsprechender Terminterpretationen<br />

notwendig ist, um über die Vereinigung von Vorbedingungen zu sprechen.<br />

• Zahlreiche Modellattribute wurden der Übersichtlichkeit wegen weggelassen,<br />

insbesondere Comment und Ähnliches.<br />

• Ausschließliche Verwendung von nutzerdefinierten Datentypen; alle Werte<br />

sind als Konstruktoren vorh<strong>and</strong>en. Wir verzichten auch auf den Einsatz<br />

primitiver Datentypen, da sie nur zusätzliche zu berücksichtigende<br />

Fälle erzeugen, die keine neuen Konzepte mit sich bringen und somit dem<br />

Verständnis nur abträglich sind.<br />

• Funktionsapplikationen in Termen müssen als Funktion einen Konstruktor<br />

haben. Selektoren sind nicht zugelassen. Die Begründung ist die selbe wie<br />

eben.<br />

• Polymorphe Datentypen sind nicht Teil unserer Betrachtungen, da sie eine<br />

zusätzliche Abstraktionsebene einführen, die eigene Vereinigungsverfahren<br />

erfordert.<br />

18

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!