Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
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