Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
48 Deklarative UML metamodellbasierte Workflowmodellierung<br />
Kategorie wurde in der überarbeiteten Fassung der Workflow Patterns noch erweitert [RHAM06]. Die<br />
zusätzlich hinzugefügten Patterns betrachten wir hier jedoch nicht weiter.<br />
Der Arbitrary Cycle ist in Abbildung 3.8(a) modelliert. Dieses Pattern beschreibt Zyklen in Prozessmodellen,<br />
die unstrukturiert vorhanden sind. D.h. es gibt mehr als einen Entry- bzw. Exit-Punkt für Zyklen in<br />
Prozessmodellen. Beispielsweise gibt es im Modell von Abbildung 3.8(a) zwei Einstiegspunkte für die<br />
iterative Ausführung von Aktivität a3. Sowohl i1 als auch i2 kann genutzt werden, um nextIteration() <strong>und</strong><br />
damit einen neuen Ausführungszyklus im Zusammenhang mit a3 einzuleiten. Somit ist beispielsweise eine<br />
Abarbeitungsfolge wie die folgende denkbar, in der zunächst nextIteration() auf dem Objekt i2 <strong>und</strong> danach<br />
auf i1 aufgerufen wird: a1,a2,a3,a4,a3,a2,a3,a4,a5<br />
(a) WCP10: Arbitrary Cycles<br />
(b) WCP19&20: Cancel Task and Cancel<br />
Case<br />
Abbildung 3.8: Iteration, Cancellation and Force Completion Patterns<br />
Zu den Cancellation and Force Completion Patterns gehören dann schließlich die in Abbildung 3.8(b)<br />
dargestellten Cancel Task <strong>und</strong> Cancel Case (WCP19 & 20) Patterns. WCP19 wird durch eine einzelne<br />
Aktivität der Klasse Cancel repräsentiert. Im Metamodell von Abbildung 3.2 ist zu sehen, dass mit der<br />
Operation cancel() dem Nutzer für diese Aktivitäten die Möglichkeit bereitgestellt wird, die Aktivität<br />
abzubrechen. Zudem ist in der Enumteration State der Zustand canceled aufgeführt. Die Cancel-Aktivitäten<br />
können in den Zuständen waiting <strong>und</strong> running abgebrochen werden. Dieser Zustand kann nicht wieder<br />
verlassen werden. Neue Iterationen sind also mit nextIteration() nicht möglich.<br />
Beim Cancel Case Pattern (WCP20) kann die komplette Prozessausführung abgebrochen werden. Damit<br />
würden alle wartenden <strong>und</strong> laufenden Aktivitäten in den Zustand canceled überführt. Hierzu gehören alle<br />
Arten von Aktivitäten, auch wenn sie keine Operation cancel() besitzen. Eine weitere Ausführung von<br />
Aktivitäten ist damit nicht weiter möglich, womit der komplette Prozess abgebrochen wird.<br />
3.2.5 Ein Beispielprozess in DMWM<br />
In Abbildung 3.9 ist ein fertiges Workflowmodell zu einer Krankenhaus-Notfallaufnahme zu sehen. Der<br />
Prozess ist mit EmergencyProcess bezeichnet <strong>und</strong> als oberstes Objekt im Prozessmodell vorhanden. Mit<br />
dem Objekt verb<strong>und</strong>en sind die Objekte AdjustMedication <strong>und</strong> HeliAmbu.<br />
AdjustMedication ist eine Iterationsaktivität, die mehrfach ausgeführt werden kann. Sie hat Beziehungen<br />
zu anderen Modellelementen <strong>und</strong> ist somit keiner Ausführungsbeschränkungen unterworfen. HeliAmbu<br />
repräsentiert eine Deferred Choice Beziehung (s. Abschnitt 3.2.4.4) zwischen HelicopterDelivery <strong>und</strong><br />
AmbulanceDelivery Aktivitäten. Die Ausführung einer Aktivität hat das implizite Überspringen der anderen<br />
zur Folge.<br />
In einer Sequenz folgt dahinter die SurgeryCheck Gruppe, in der zunächst der Zustand des Patienten in<br />
der Aktivität CheckPatientCondition zu prüfen ist. Diese Aktivität repräsentiert eine XorDecision, in der