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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!