Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
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.