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.
36 Deklarative UML metamodellbasierte Workflowmodellierung<br />
Neben Cancel gibt es noch diverse weitere spezielle Aktivitäten, die mit Vererbungsbeziehungen zur Klasse<br />
Activity im Metamodell vorhanden sind. Zu ihnen gehört die Klasse Iteration, welche die Eigenschaft hat,<br />
dass sie mehrfach ausgeführt werden kann. Damit hat sie ein anderes Verhalten verglichen zu dem, das im<br />
Objektlebenszyklus in Abbildung 3.3(a) dargestellt ist. Ruft der Nutzer die Operation start() auf, leitet er<br />
einen neuen Iterationszyklus ein. Damit wird ein neues Aktivitätsobjekt erstellt <strong>und</strong> mit Hilfe der Assoziation<br />
iteration an das Iterationsobjekt gehängt. Der start()-Aufruf wird an das neu erstellte Aktivitätsobjekt<br />
weiterdelegiert. Das Verhalten ist in einem Sequenzdiagramm in Abbildung 4.6(b) veranschaulicht. Anhand<br />
dessen können zur Runtime die Anzahl <strong>und</strong> die Zeitpunkte der einzelnen Operationsaufrufe festgehalten<br />
werden. Die abstrakte Klasse MultiInstance enthält Aktivitäten, von denen mehrere Instanzen zur gleichen<br />
Zeit unabhängig abgearbeitet werden können. Näheres dazu <strong>und</strong> den zugehörigen Unterklassen wird in<br />
Unterabschnitt 3.2.4.3 erklärt.<br />
Mit Decision ist eine weitere spezielle Aktivität im Metamodell vorhanden. Diese Klasse stellt Entscheidungsaktivitäten<br />
dar, in denen der Nutzer zur Runtime entscheidet, welcher Pfad zu nehmen ist. Während der<br />
Designtime werden die Kriterien zur Entscheidungsauswahl in den zugeordneten Guards festgelegt. Die mit<br />
diesen verb<strong>und</strong>enen Aktivitäten werden dann aktiviert, wenn der Nutzer den entsprechenden Pfad ausgewählt<br />
hat. Diese Modellierungsphilosophie wird auch in EPKs verfolgt, in denen vor Entscheidungskonnektoren<br />
eine Funktion zu modellieren ist, in der die Entscheidung aktiv zu treffen ist (s. Abschnitt 2.5.2.1). In BPMN<br />
wird dafür ein datenbasierter Choice verwendet (s. Abschnitt 2.5.2.3). Mit der Klasse XorDecision wird<br />
festgelegt, dass genau ein Pfad zur Runtime ausgewählt werden muss. Bei OrDecision muss mindestens ein<br />
Pfad, es können aber auch mehrere ausgewählt werden. Diese Auswahlmöglichkeiten haben sich bei den<br />
Sprachen EPK, BPMN <strong>und</strong> YAWL bewährt. Zusätzlich gibt es bei DMWM die Möglichkeit mit der Klasse<br />
NandDecision, keinen Prozesspfad auszuwähen. In diesem Falle würden alle über Guards mit der Entscheidungsaktivität<br />
verb<strong>und</strong>enen Prozesspfade geskippt werden. Das Verhalten der Entscheidungsaktivitäten <strong>und</strong><br />
die Benutzung zur Runtime wird Thema in Abschnitt 4.2.4 sein.<br />
Ein weiterer wichtiger Aspekt im Metamodell ist die Gruppierung von Aktivitäten. Dieser wird ausgedrückt<br />
durch die Klasse Group <strong>und</strong> durch die Aggregationsbeziehung group. Gruppen können spezielle temporale<br />
Beziehungen ausdrücken. Hierüber können diverse Workflow Patterns sehr einfach modelliert werden. Dazu<br />
gehört beispielsweise die Deferred Choice <strong>und</strong> Interleaved Parallel Routing-Beziehung, die in Abschnitt<br />
3.2.4.4 näher erläutert werden.<br />
Eine temporale Beziehung, die nicht bei den Workflow Patterns wiederzufinden ist, ist die Parallel-Beziehung.<br />
Bei Aktivitäten, die zu einer solchen Gruppe gehören, wird zugesichert, dass diese parallel auszuführen<br />
sind. Hier sind Assistenz- oder Observierungstätigkeiten denkbar, die zugesichert parallel geschehen müssen.<br />
Beispiele für die Deferred Choice <strong>und</strong> Parallel-Gruppen werden im Modellierungsbeispiel von Abschnitt<br />
3.5.3 verwendet. Abschnitt 3.2.4 gibt vorher eine formalere strukturierte Betrachtung der temporalen<br />
Beziehungen mit einer Workflow Pattern-Analyse.<br />
Eine letzte wichtige Gruppe im Metamodell stellt die Klasse IterationGroup dar. Alle Aktivitäten, die dieser<br />
Gruppe zugeordnet sind, können zurückgesetzt werden, indem die Operation nextIteration() aufgerufen<br />
wird. Hier ist zu beachten, dass nur bei in der Gruppe komplett abgearbeiteten Iterationszyklen anhand<br />
dieser Operation ein neuer Iterationszyklus eingeleitet werden kann. Die durch OCL ausgedrückte formale<br />
Semantik dafür wird in Abschnitt 3.2.3.1 näher vorgestellt. Eine spezielle Klasse, die von IterationGroup<br />
abgeleitet wurde, ist MultiMerge. Diese realisiert das gleichnamige Workflow Pattern. Eine genauere<br />
Betrachtung dazu wird in Abschnitt 3.2.4.2 gegeben.<br />
Das in Abbildung 3.2 vorgestellte Klassendiagramm repräsentiert ein einziges (integriertes) Metamodell<br />
sowohl für die Modellierung von Workflows (zur Designtime) als auch für die Beschreibung der Workflowinstanzen<br />
(zur Runtime). Im Metamodell ist die operationale Semantik der Modellelemente mit OCL