In einem Prozess müssen häufig Entscheidungen getroffen werden. Wenn diese einfacher Natur sind (und nicht etwa einem komplexen Regelwerk zugrunde liegen), so können sie mit Hilfe von Gateways ausgedrückt werden.
In BPMN 2.0 werden alle Verzweigungen oder Zusammenführungen als Gateways bezeichnet und durch eine kleine Raute dargestellt. Ein Gateway kann z.B. eine bedingte oder eine parallele Ausführung eines Prozesspfades zur Folge haben.
|
Gatewayarten in BPMN 2.0 |
Verwendung von Gateways
Gateways sind keine Aktivitäten
Wichtig ist, dass ein Gateway keine Tätigkeit ausführt. Ein Gateway verändert nicht den Zustand eines Objekts oder beinhaltet eine prüfende Aktivität. Gateways arbeiten nur mit bereits vorhandenen Daten. Für Entscheidungspunkte werden XOR-Gateways verwendet; die Synchronisierung kann direkt an einer Aktivität erfolgen.
|
Antipattern: Gateways dürfen nicht als Aktivität fungieren. |
|
Korrekt: Die Aktivität zur Entscheidungsfindung ist vorgeschaltet, das Gateway wertet nur aus. |
Standardpfad
Wenn angedeutet werden soll, dass einer der Pfade dem Standardfall entspricht, so kann dies mit einem kleinen Querstrich am Sequenzfluss kenntlich gemacht werden.
|
Standardverwendung von Gateways |
Antipattern: Inkonsistenter Gebrauch von Gateways
In der BPMN können Bedingungen auch mit bedingten Sequenzflüssen realisiert werden. Dabei werden die Sequenzflüsse mit einer leeren Raute und einer Bedingung versehen. Wie in der nachfolgenden Abbildung dargestellt, kann so eine etwas kompaktere Darstellung bewirkt werden.
|
Ersetzung eines Gateways durch bedingte Sequenzflüsse |
Da nun aber in einer Aktivität mehrere Sequenzflüsse ein- und ausgehen können, wird die Lesbarkeit beeinträchtigt und somit die Interpretierbarkeit erschwert.
Antipattern: Schlechte Synchronisierung mit Teilprozessen
Wenn Teilprozesse mehrere Endereignisse besitzen, kann es zu Synchronisierungsproblemen mit nachgelagerten Gateways kommen, wenn diese eine falsche Fragestellung aufweisen.
In der nachfolgenden Abbildung ist dargestellt, wie ein XOR-Gateway mit einer Entscheidungsfrage das Ergebnis eines Teilprozesses abfragt.
|
Antipattern: Entscheidungsfragen nach einem Teilprozess erhöhen das Risiko von Synchronisierungsproblemen. |
Sollte der Teilprozess später mehr als nur zwei Endereignisse definiert haben, so kann es bei der Ausführung zu einer Fehlermeldung kommen, wenn das nicht abgefangene Endereignis eintritt.
Wenn das Gateway nicht mit einer Entscheidungsfrage versehen wird, lassen sich relativ unkompliziert weitere, voneinander unabhängige Zustände ergänzen und das Matching von Endereignis und Gateway fällt deutlich leichter.
|
Korrekt: Das Gateway besitzt keine Entscheidungsfrage und kann mehrere Endereignisse verarbeiten. |
Bei vielen zu differenzierenden Ereignissen kann die Verwendung von Boundary Events hilfreich sein.
Keine Kommentare :
Kommentar veröffentlichen