Kampf der Notationen: BPMN vs. UML Teil 1

Im ständigen globalen Wettbewerb stehen viele Unternehmen vor dem Problem effizienter zu arbeiten. Um dieses Ziel zu erreichen, haben früher viele Unternehmen oftmals auf eine reine Ablösung eines bestehenden, ineffizienten Altsystems gesetzt. Doch in den letzten Jahren kann man häufig einen anderen Trend beobachten: Bevor sich ein Unternehmen an die Systementwicklung macht, wird zunächst eine Analyse und Dokumentation der Geschäftsprozesse vorgeschaltet. Diese Entwicklung zeigt sich u. a. daran, dass die Verbreitung der BPMN 2.0 (Business Process Model and Notation 2.0) permanent zunimmt. Daraus folgt jedoch, dass sich die Projektbeteiligten, v. a. die Fachseiten, die sich gerade an die UML (Unified Modeling Language) gewöhnt haben, eine „neue“ Notationssprache aneignen müssen.

In unser dreiteiligen Blogserie „Kampf der Notationen“ werden wir der Frage nachgehen, ob sich ein Umstieg vom Aktivitätsdiagramm der UML 2.3 auf die BPMN 2.0 wirklich lohnt oder ob nicht.

Der Vergleich im Detail

Beginnen wollen wir mit der Betrachtung des zentralen Elements eines Geschäftsprozesses, den Arbeitsschritten. Innerhalb dieser Arbeitsschritte werden Informationen unter Verwendung von Ressourcen durch Organisationseinheiten verändert. Dafür steht in der BPMN 2.0 das Element „Aktivität“ zur Verfügung. Wobei man  bei einer Aktivität zwischen Teilprozess (= setzt sich aus detaillierteren Aktivitäten zusammen und wird zur Hierarchisierung genutzt) und Task (= atomare Aktivität, die nicht mehr detailliert wird) unterscheidet. Auch im Aktivitätsdiagramm (vgl. Abbildung 1) existiert ein Element mit dem Namen „Aktivität“. Dabei versteht man unter einer Aktivität die gesamte Einheit die im Aktivitätsdiagramm modelliert wird. Dies kann der gesamte Prozess oder auch nur ein Teilprozess sein. Damit haben wir die erste Übereinstimmung. Des Weiteren setzt sich eine Aktivität u.a. aus „Aktionen“ zusammen. Auch eine Aktion beschreibt einen atomaren Schritt, so dass sie exakt einem Task der BPMN 2.0 entspricht. Nutzt man die Möglichkeit des Aufrufs einer Aktivität mittels einer Aktion, so besitzt man auch hier die Möglichkeit der Hierarchisierung von Prozessen. Fazit: Unentschieden. Zwischenergebnis: BPMN: 1 – UML: 1

Abbildung 1: Vergleich der Modellierung von Arbeitsschritten

Die BPMN 2.0 bietet außerdem die Möglichkeit, den einzelnen Aktivitäten sogenannte Aktivitätstypen zuzuweisen. Die am häufigsten verwendeten Typen stellen die Schleife und die Mehrfach-Instanz dar (vgl. Abbildung 2). Dabei wird bei einer Schleife der Task/Teilprozess so lange wiederholt bis die Bedingung erfüllt ist, während bei einer Mehrfach-Instanz ein Task/Teilprozess mehrfach gestartet wird (z.B. das Prüfen aller Rechnungspositionen einer Rechnung). Diese BPMN 2.0-Aktivitätstypen sucht man im UML-Aktivitätsdiagramm vergeblich. Verwenden Sie also die UML, so müssen Sie zum Einen die Schleifen ausmodellieren. Wollen Sie zum Anderen eine Mehrfach-Instanz darstellen, so müssen Sie im Aktivitätsdiagramm einen Mengenverarbeitungsbereich verwenden. Natürlich besteht auch in der BPMN 2.0 die Möglichkeit der Ausmodellierung von Schleifen und in der Praxis entscheiden sich viele Unternehmen für diese explizite Variante. Fazit: Da die Ausmodellierung von Schleifen und v.a. die Verwendung von Mengenverarbeitungsbereichen detaillierte Kenntnisse voraussetzt sehen wir hier einen leichten Vorteil für die BPMN 2.0. Zwischenergebnis: BPMN: 2 – UML: 1

Abbildung 2: Vergleich von Schleifen und Mehrfach-Instanzen

Nach unseren ersten beiden Vergleichen liegt die BPMN leicht vorne. In unserem nächsten Teil unserer Blogserie werden wir weitere Eigenschaften der BPMN und der UML vergleichen, um Ihnen ein transparentes Ergebnis zu liefern.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


eins − 1 =

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>