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.

...<br />

exists constructorMap: set (Constructor, Constructor) .<br />

exists datadef:set (DataDef, DataDef) . (<br />

forall pme:portMap . ( ... ) <strong>and</strong><br />

forall come:constructorMap . ( ... ) <strong>and</strong><br />

...<br />

)<br />

Die Relationen (im Beispiel portMap, datadefMap, componentMap, usw.) sind also<br />

die Variablen eines Belegungsproblems. Leicht zu folgern ist, dass für dieses<br />

Problem eine triviale Lösung (die leere Relation für alle Unifikationsrelationen)<br />

existiert.<br />

4.5 Komplexitätsbetrachtung<br />

Am Ende dieses Kapitels wenden wir uns der Frage zu, mit welchem Berechnungsaufw<strong>and</strong><br />

das hier gezeigte Lösungsverfahren funktioniert. Wir werden sehen,<br />

dass der Aufw<strong>and</strong> bereits für sehr kleine AutoFocus 2-Modelle exponentiell<br />

groß wird.<br />

Um alle möglichen Lösungen des Vereinigungsproblems zu finden müssen wir<br />

sämtliche Unifikatork<strong>and</strong>idaten auf ihre Sinnfälligkeit prüfen, d.h. die im vorherigen<br />

Abschnitt gezeigten Prädikate bezüglich dieser K<strong>and</strong>idaten evaluieren.<br />

Die Anzahl solcher K<strong>and</strong>idaten lässt sich mit dem Wissen über den Aufbau des<br />

Lösungsraumes (siehe Abschnitt 4.1) leicht ermitteln. Für jede Unifikationsrelation<br />

gibt es<br />

2 (u·u)<br />

Möglichkeiten. u ist dabei die Anzahl der Modellelemente dieser Relation, also<br />

bspw. die Anzahl der Modell vorh<strong>and</strong>enen Komponenten.<br />

Aufgrund der Abhängigkeiten müssen wir zusätzlich alle Kombinationen von<br />

konkreten Unifikationsrelationen ausprobieren. Dies entspricht genau der Existenzquantifizierung<br />

der Unifikationsrelationen, wie im vorherigen Abschnitt dargestellt.<br />

Insgesamt erhalten somit<br />

2 u2 1 +u2 2 +...+u2 k<br />

Unifikatork<strong>and</strong>idaten. In unserem Beispiel ist k = 9 wegen der neun Modellelementklassen.<br />

Hieraus ergibt sich, dass selbst für die kleinsten praxisnahen Modelle<br />

die Berechnung sämtlicher Unifikatoren nicht effizient durchgeführt werden<br />

kann.<br />

4.6 Zusammenfassung<br />

In diesem Kapitel haben wir das Problem der Spezifikationsvereinigung aus<br />

theoretischer Sicht untersucht. Wir haben zunächst passende Lösungsstrukturen<br />

definiert, die Unifikationsrelationen. Daraufhin erfolgte eine genauere Betrachtung<br />

dieser Relationen, insbesondere ihre Interpretation im Hinblick auf<br />

die konstruktive Vereinigung von Spezifikationen und alternative Definitionen<br />

für diese Relationen.<br />

38

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!