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.
3.2 Workflow-Metamodell 35<br />
der BPMN 1.2 Spezifikation übernommen [BPM09]. Damit wurden alle Elemente im BPMN-Prozessmodell<br />
bezeichnet, die mit Kanten verb<strong>und</strong>en werden. In der neueren BPMN Spezifikation [BPM11] wurde ein<br />
Metamodell entwickelt, in dem FlowObjects nun als FlowElements bezeichnet werden (s. Abbildung 2.5(c)).<br />
Die Klasse Process beschreibt Prozessobjekte. Diese werden über das Attribut name bezeichnet. Zudem<br />
können spezielle Prozesse anhand der Klasse CancelProcess im Workflowmodell verwendet werden, die<br />
während der Ausführung vom Nutzer abgebrochen werden können. Näheres dazu wird in Unterabschnitt<br />
3.2.4.5 erläutert. Über die Assoziation includes werden Prozessobjekte mit FlowObjects verb<strong>und</strong>en <strong>und</strong><br />
damit als Elemente vom Prozess aufgenommen. Aus praktischen Gründen brauchen nicht alle zugehörigen<br />
Modellierungselemente mit dem Prozessobjekt verlinkt werden. Es gilt hier der Gr<strong>und</strong>satz: Wenn ein<br />
Modellierungselement zu einem Prozess gehört, dann auch die, die indirekt über beliebige Assoziation aus<br />
dem Metamodell erreichbar sind. Die Berechnung der transitiven Hülle, um alle enthaltenen Modellelemente<br />
einzusammeln ist Teil des Metamodells <strong>und</strong> Thema in Unterabschnitt 3.2.3.2. Somit spart man viele Verbindungen<br />
der Assoziation includes in den Prozessmodellen. Diese werden dadurch deutlich übersichtlicher<br />
<strong>und</strong> lesbarer.<br />
Die abstrakte Klasse FlowObject hat wiederum die abstrakte Klasse FlowOperator als Unterklasse. Deren<br />
Unterklassen stellen Flussoperatoren dar. Diese werden bei EPKs als Konnektoren, bei Aktivitätsdiagrammen<br />
als ControlNodes <strong>und</strong> BPMN als Gateways bezeichnet. Die Klasse AndOperator repräsentiert einen And-<br />
Konnektor in EPKs bzw. einen split- bzw. join-Knoten bei UML-Aktivitätsdiagrammen. Führen mehrere<br />
seq-Links in den Knoten, ist dieser Knoten als join anzusehen. Die Kontrollflüsse werden an diesem<br />
Knoten synchronisiert. Es wird also auf die Abarbeitung aller verb<strong>und</strong>ener Aktivitäten gewartet, bis die<br />
nachfolgenden Aktivitäten ausgeführt werden können. Hat der Knoten dagegen mehrere seq-Links, die<br />
herausführen ist ein split vorhanden. Die damit verb<strong>und</strong>enen Aktivitäten können dann also unabhängig<br />
voneinander ausgeführt werden. Analog zu UML-Aktivitätsdiagrammen können auch beim DMWM-Ansatz<br />
hybride AndOperator-Knoten existieren, in die mehrere seq-Links hineingehen <strong>und</strong> auch herauskommen.<br />
Diese Knoten sind dann sowohl als join als auch als split-Knoten anzusehen.<br />
Des Weiteren gibt es bei den Flussoperatoren die Klasse MergeOperator, die dazu dient, Flüsse zusammenzuführen,<br />
ohne sie zu synchronisieren. Als letztes gibt es noch die Klasse Discriminator. Diese Klasse<br />
wird für ein spezielles Workflow Pattern benötigt. Aktivitätsabfolgen, die mit seq-Links verknüpft werden,<br />
werden nicht synchronisiert. Bereits nach Erledigung der ersten Vorgängeraktivität, können die Nachfolgeaktivitäten<br />
abgearbeitet werden. Alle weiteren Vorgänger-Aktivitäten können dann ohne weitere Konsequenzen<br />
beendet werden. In Unterabschnitt 3.2.4.2 erfolgt eine näher Erklärung zum Workflow Pattern <strong>und</strong> zu deren<br />
Modellierung in DMWM.<br />
Die abstrakte Klasse ActivityGroup umfasst die reflexive Assoziation exceeded. Hiermit können ebenso<br />
wie bei der seq-Assoziation Aktivitäten <strong>und</strong> Gruppen von Aktivitäten verb<strong>und</strong>en werden. Es können damit<br />
eine Art Timeout-Punkte im Prozessmodell definiert werden, die bei Überschreitung andere Aktivitäten<br />
überspringen <strong>und</strong> nicht weiter ausführen lassen. Die Semantik dieser Beziehung wird für die cancellation<br />
and force completion Workflow Patterns benötigt <strong>und</strong> in Unterabschnitt 3.2.4.5 näher beschrieben.<br />
Die zentrale Klasse im Metamodell von Abbildung 3.2 ist Activity. Die Klasse hat ein Attribut state, das mit<br />
Werten der Enumeration State belegt wird. Zudem umfasst die Klasse die Operationen start(), finish(), skip()<br />
<strong>und</strong> fail(). Die spezielle Klasse Cancel umfasst des Weiteren die Operation cancel(). Die Operationen stellen<br />
die Schnittstelle für den Nutzer bereit, der anhand dieser mit den Aktivitäten zur Runtime interagiert <strong>und</strong><br />
damit den Workflow steuern kann. Wie bereits in Unterabschnitt 1.2.1 beschrieben, liegt die Bestimmung<br />
der Ausführungsreihenfolge des Workflows beim Nutzer. Dieses ist analog zu [Peš08] ein eher deklarativer<br />
Ansatz, der weniger die Automatisierung der Workflows zum Ziel hat. Die Zustände <strong>und</strong> Methoden bei den<br />
Aktivitätsobjekten bilden die Gr<strong>und</strong>lage zur Definition der Zustandsdiagramme von Abbildung 3.3.