18.01.2014 Aufrufe

Metamodellbasierte und hierarchieorientierte ... - RosDok

Metamodellbasierte und hierarchieorientierte ... - RosDok

Metamodellbasierte und hierarchieorientierte ... - RosDok

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.

98 Hierarchieorientierte Workflowmodellierung<br />

entschieden werden, ob Aufgabe B oder C auszuführen ist. Diese Entscheidung muss bei CTT implizit<br />

vom Nutzer getroffen werden <strong>und</strong> basiert nicht auf Daten, wie z.B. bei BPMN (vgl. Abschnitt 2.5.2.3). Für<br />

eine explizite Entscheidungsmodellierung fehlt die Angabe der Entscheidungstätigkeit <strong>und</strong> die Kriterien<br />

zur Pfadauswahl, wie es z.B. bei EPKs gefordert wird (vgl. Abschnitt 2.5.2.1). Somit ist die Entscheidung,<br />

welche Aktivität auszuführen ist, implizit zu fällen. Bei den Workflow Patterns wird diese Art als Deferred<br />

Choice bezeichnet [AHKB03] <strong>und</strong> repräsentiert im Vergleich zur expliziten Entscheidungsmodellierung<br />

eher die Ausnahme bei Workflowmodellen. Eine Diskussion, wie eine explizite Entscheidungsmodellierung<br />

für Aufgabenmodelle erfolgen kann, wird in Abschnitt 5.4 gegeben.<br />

Der zweite betrachtete Operator in der Tabelle 5.2 ist der Concurrency-Operator ( ||| ). Für die Transformation<br />

wird für das Aktivitätsdiagramm ein fork- <strong>und</strong> join-Operator strukturiert eingesetzt. Die Aufgaben B <strong>und</strong> C<br />

stehen zwischen diesen beiden Operatoren <strong>und</strong> können somit unabhängig voneinander ausgeführt werden.<br />

Der Disabling-Operator ( [> ) wird daraufhin betrachtet. Bei dem zugehörigen Aktivitätsdiagramm ist eine<br />

Eigenheit von CTT zu sehen, die diesen Operator angeht <strong>und</strong> von der LOTOS-Semantik abweicht. Die<br />

Aufgabe C muss bei CTT in jedem Falle ausgeführt werden, auch wenn B schon beendet wurde. In diesem<br />

Falle endet der Kontrollfluss beim Aktivitätsdiagramm im Objektknoten B [finished] <strong>und</strong> die Exeception<br />

Region bleibt weiterhin aktiv. Es wird somit in jedem Fall auf das Signal zur Abarbeitung der Aktivität C<br />

gewartet. Bei LOTOS ist C dagegen nicht weiter ausführbar, wenn B schon beendet wurde. Die operationale<br />

Semantik ist dort präziser an der eigentlichen Bezeichung des Operators, die aussagt, dass die nachfolgende<br />

Aufgabe die Vorgängeraufgabe deaktiviert. Bereits beendete Aufgaben können eigentlich nicht deaktiviert<br />

werden.<br />

OrderIndependency ( |=| ) wird in Tabelle 5.2 im Aktivitätsdiagramm so umgesetzt, dass hinter dem Choice-<br />

Operator die möglichen Ablaufsequenzen der beteiligten Aktivitäten spezifiziert sind. Beim Choice-Operator<br />

wird dann entschieden, welche Aktivität als erstes auszuführen ist. Die übrig gebliebene bleibt danach<br />

auszuführen.<br />

Der Enabling-Operator ( » ) wird als letztes in der Tabelle 5.2 transformiert. Die sequenzielle Abfolge von<br />

Aufgabe A <strong>und</strong> B wird beim Aktivitätsdiagramm durch eine simple Kontrollflusskante ausgedrückt, die die<br />

Abarbeitungsreihenfolge spezifiziert.<br />

Aus Tabelle 5.1 sind des Weiteren noch die Operatoren Concurrency with Information Exchange <strong>und</strong><br />

Enabling with Information Passing vorhanden. Wie dort in der operationalen Semantik-Spalte angegeben,<br />

unterscheidet sich die Ablaufsemantik dieser Operatoren nicht von Concurrency bzw. Enabling. CTT gibt<br />

mit diesen Operatoren lediglich an, dass Informationen zwischen den Geschwisterknoten ausgetauscht<br />

werden. Eine genauere Angabe der Daten <strong>und</strong> deren Inhalt ist in CTT nicht möglich. Aktivitätsdiagramme<br />

verlangen bei der Datenintegration mit Objektflüssen eine Typangabe der Objekte, die zwischen Aktivitäten<br />

ausgetauscht werden (s. Abschnitt 3.3.1). Da die Konzepte hier nicht zueinander passen, werden für diese<br />

spezifischen Operatoren keine Transformation vorgestellt.<br />

Der einzige temporale CTT-Operator, dessen Kontrollflusssemantik nicht in einem Aktivitätsdiagramm<br />

dargestellt werden kann ist Suspend-resume. Für dessen Umsetzung im Aktivitätsdiagramm wäre ein<br />

History-Zustand, analog zu dem, der bei UML-Zustandsdiagrammen vorhanden ist [UML10, Kap.15],<br />

notwendig. Das Merken des Ausführungszustandes der unterbrochenen Aufgabe ist notwendig, um zu<br />

diesem zurückzukehren, wenn die unterbrechende Tätigkeit beendet wurde. Da der History-Zustand aber für<br />

Aktivitätsdiagramme nicht verfügbar ist, kann die Transformation ohne Erweiterung der Sprachmittel der<br />

Aktivitätsdiagramme nicht ausgedrückt werden <strong>und</strong> bleibt offen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!