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