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.

Für die interaktive Spezifikationsvereinigung nutzen wir die Dialogfähigkeiten<br />

von ODL und gliedern den Ablauf in mehrere Dialogeinzelschritte. In jedem<br />

wird der Entwickler nach einzelnen Teilen des aus dem Theorieteil bekannten<br />

Unifikators gefragt, wobei ständig die Zulässigkeit seiner Entscheidungen überprüft<br />

wird. Es ist ihm nur erlaubt von einem Dialog aus fortzufahren, wenn die<br />

von ihm definierte Unifikationsrelation bezüglich der Abhängigkeiten mit seinen<br />

früheren Entscheidungen verträglich ist. Andernfalls wird eine Fortsetzung des<br />

interaktiven Ablaufs verhindert bis die Korrektheit gemäß den Abhängigkeiten<br />

hergestellt ist oder abgebrochen wird.<br />

Bei der Definition des Ablaufs mittels ODL könnten wir sehr schematisch<br />

vorgehen und für jedes Metamodellelement bzw. jede Unifikationsrelation einen<br />

gleichartigen Abfragedialog definieren. Da wir jedoch maximalen Nutzen aus<br />

den Entscheidungen des Nutzers ziehen wollen, werden wir hier eine nichtschematische<br />

Variante des ODL-Ablaufs aufbauen und für jeden Teil des Unifikators<br />

einen möglichst nutzerfreundlichen Dialog konstruieren, indem wir gewisse<br />

Vorberechnungen vornehmen. Die interne Abhängigkeit bei Port bietet sich<br />

hierfür beispielsweise an.<br />

Desweiteren werden wir einige Unifikationsrelationen automatisch bestimmen,<br />

indem wir die Abhängigkeiten und die getroffenen Festlegungen zur Berechnung<br />

nutzen. Dies gilt im folgenden für den Bereich der Datendefinitionen,<br />

obwohl auch hier eine interaktive Variante denkbar ist (vgl. Abschnitt 3.4).<br />

5.2 Festlegung der Dialogführung<br />

In Abbildung 4.2 auf Seite 36 haben wir die für die Spezifikationsvereinigung<br />

relevanten Metamodellelemente und deren Abhängigkeiten gesehen. Für jedes<br />

Element ergab sich dabei genau eine Unifikationsrelation. Diese werden wir nun<br />

nicht durch existenzielle Quantifizierung, wie in Abschnitt 4.4, berechnen, sondern<br />

interaktiv durch den Entwickler bestimmen lassen. Die Forderung, dass<br />

Unifikationsrelationen partielle ein-eindeutige Funktionen sein müssen halten<br />

wir aufrecht. Wie in Abschnitt 4.2 gezeigt, ist dies eine Hilfsforderung um den<br />

Konstruktionsteil nicht zu verkomplizieren.<br />

Die naheliegende Umsetzung, nämlich jede Relation vom Nutzer aus allen<br />

vorh<strong>and</strong>enen Modellelementen auszuwählen, liefert zwar ein effektives, interaktives,<br />

aber kaum praktikables und auch nicht effizientes Verfahren. Wir werden daher<br />

der Reihe nach alle Unifikationsrelationen durchgehen und eine jeweils günstige<br />

Dialogvariante erläutern. Insbesondere möchten wir die Auswahlmöglichkeiten<br />

eines Dialogs auf das zulässige Minimum beschränken. Wir nutzen dazu<br />

die festgelegten Abhängigkeiten. Bei der Reihenfolge der Einzelschritte orientieren<br />

wir uns an den Modellierungssichten von AutoFocus 2. Beginnend mit der<br />

Struktursicht, kommen wir über die Verhaltenssicht schließlich zur Datensicht.<br />

Die hier beschriebene Dialogführung entspricht dem Programmlisting in Anhang<br />

A. Sie erhebt nicht den Anspruch absolut zu sein, sondern stellt vielmehr<br />

eine Möglichkeit dar, die Spezifikationsvereinigung interaktiv umzusetzen. An<br />

den entsprechenden Stellen geben wir jeweils den Hinweis auf alternative Dialogvarianten,<br />

die meist auch eine Anpassung des in Abschnitt 5.5 beschriebenen<br />

Konstruktionsteils erfordern.<br />

41

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!