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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

stateMap ∈ P( State × State )<br />

transitionMap ∈ P( T ransitionSegment × T ransitionSegment )<br />

inputMap ∈ P( Input × Input )<br />

outputMap ∈ P( Output × Output )<br />

datadefMap ∈ P( DataDef × DataDef )<br />

constructorMap ∈ P( Constructor × Constructor )<br />

selectorMap ∈ P( Selector × Selector )<br />

Wählen wir für jede Unifikationsrelation eine konkrete Instanz, so bildet<br />

das Tupel dieser Instanzen einen Unifikator, wenn es die in Abschnitt 4.3 beschriebenen<br />

Abhängigkeiten erfüllt. Der Unifikator bildet die Grundlage für den<br />

zweiten Schritt der Spezifikationsvereinigung, die Konstruktion, die wir in Kapitel<br />

5 weiter ausführen. Die Relationen geben dabei an, aus welchen bestehenden<br />

Modellelementen die neu erzeugten Modellelemente entstehen.<br />

Ein einfacher Unifikator ist das Tupel der Identitätsrelationen. Jedes Modellelement<br />

würde hierbei mit sich selbst vereinigt, was bei der konstrutiven<br />

Durchführung eine Kopie des Produktmodells erzeugt. Wählten wir für jede Unifikationsrelation<br />

hingegen jeweils die leere Relation, so würde das AutoFocus 2-<br />

Produktmodell überhaupt nicht verändert. In beiden Fällen h<strong>and</strong>elt es sich also<br />

um in der Theorie korrekte Lösungen bzw. Unifikatoren, welche mit ODL auch<br />

technisch umsetzbar sind, aber keine praktische Relevanz haben.<br />

4.2 Unifikationsrelationen<br />

Die im letzten Abschnitt eingeführten Unifikationsrelationen können im Hinblick<br />

auf die Konstruktion einer Vereinigungsspezifikation unterschiedlich interpretiert<br />

werden. Im Einzelfall bieten sich alternative Definitionen für die Unifikation<br />

der betrachteten Modellelemente an. Wir werden beides hier anh<strong>and</strong><br />

von Beispielen sehen und am Ende dieses Abschnitts eine Festlegung für die<br />

konstruktive Durchführung der Spezifikationsvereinigung in Kapitel 5 treffen.<br />

4.2.1 Alternative Relationsdefinition<br />

Am Beispiel der Automatenbeschreibungen wollen wir aufzeigen, dass es auch<br />

möglich ist <strong>and</strong>ere Definitionen für die Unifikationsrelationen zu verwenden.<br />

Abbildung 4.1 zeigt eine <strong>and</strong>ere Vereinigung der Spezifikationen des Verhaltens<br />

unserer Beispielkomponenten. Wir vereinigen jetzt zwei Zustände der Komponente<br />

ErrorTreatment mit einem Zust<strong>and</strong> der Komponente Press, nämlich<br />

Init und Stop mit Off.<br />

Hierfür definieren wir die Unifikationsrelation, wie folgt, über den Potenzmengen<br />

der Modellelementmengen:<br />

stateMap ∈ P ( P(State) × P(State) )<br />

Die dem Beispiel entsprechende konkrete Unifikationsrelation hat dann folgende<br />

Form:<br />

{ ({Initial, ) }<br />

stateMap = Stop}, {Off}<br />

33

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!