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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!