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.

Kapitel 4<br />

Spezifikationsvereinigung<br />

aus theoretischer Sicht<br />

Nachdem wir in Kapitel 3 einen ersten Eindruck gewonnen haben, wie mit ODL<br />

das Teilproblem der Typunifikation gelöst wird, wenden wir uns nun wieder<br />

dem Gesamtproblem der Spezifikationsvereinigung zu. In diesem Kapitel werden<br />

wir hierfür ein Lösungskonzept entwickeln und formal fundieren. Wir erläutern<br />

zunächst geeignete Lösungsstrukturen. Über diesen werden wir, ausgehend vom<br />

AutoFocus 2-Metamodellstruktur, Prädikate definieren, welche uns die Lösung<br />

des Vereinigungsproblems als Variablenbelegungsproblem ermöglichen. Eine Betrachtung<br />

des notwendigen Berechnungsaufw<strong>and</strong>es des beschriebenen Verfahrens<br />

schließt dieses Kapitel ab.<br />

Die hier gezeigte theoretische Fundierung ist für das Anwendungsbeispiel aus<br />

Kapitel 2 um viele Modellelemente vereinfacht worden. In Anhang A finden sich<br />

die für das Anwendungsbeispiel relevanten, zusätzlichen Theorieüberlegungen,<br />

die aber im Wesentlichen den hier beschriebenen entsprechen.<br />

4.1 Definition des Lösungsraumes<br />

Im Einführungsbeispiel (siehe Kapitel 3) zu ODL haben wir gesehen, wie die Typunifikation<br />

realisiert wurde. Das Problem der Spezifikationsvereinigung werden<br />

wir ebenfalls mit Hilfe eines der Unifikation ähnlichen Ablaufs lösen.<br />

In Abschnitt 3.4 haben wir gesehen, wie die Typvereinigung mit ODL interaktiv<br />

durchgeführt wird. Die Eingabe des Benutzers waren dabei Mengen<br />

von 2-Tupeln über den Modellelementmengen der Datendefinitionen DataDef,<br />

Konstruktoren Constructor und Selektoren Selector. Verallgemeinern wir diese<br />

Strukturen, so kommen wir zu Relationen von zu unifizierenden Modellelementen,<br />

die wir im folgenden als Unifikationsrelationen bezeichnen.<br />

Wir erhalten jeweils eine Unifikationsrelation für jedes Metamodellelement,<br />

also für jede Klasse von Modellelementen. Für unser Beispiel sind dies die folgenden<br />

Relationen:<br />

componentMap ∈ P( Component × Component )<br />

portMap ∈ P( P ort × P ort )<br />

32

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!