Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
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