BPMN Grundlagen: Prozessmodellierung, Events, Gateways & Tasks
Dieser Beitrag ist eine Begriffserklärung zur Business Process Model Notation (BPMN) – inklusive praktischer Beispiele und IHK-Relevanz.
In a Nutshell
BPMN ist die grafische Notation zur Modellierung von Geschäftsprozessen, die eine einheitliche Sprache für Business-Analysten, Entwickler und Manager bereitstellt.
Kompakte Fachbeschreibung
Business Process Model Notation (BPMN) ist ein internationaler Standard zur grafischen Darstellung von Geschäftsprozessen. Sie wurde von der Object Management Group (OMG) entwickelt und ist seit 2011 in der Version 2.0 verfügbar.
Hauptziele:
- Standardisierung: Einheitliche Notation für alle Beteiligten
- Kommunikation: Verbesserte Verständigung zwischen Fachabteilung und IT
- Automatisierung: Grundlage für Prozessautomatisierung und Workflow-Engines
- Optimierung: Visualisierung für Prozessanalyse und -verbesserung
Kernelemente:
- Events: Start, Zwischen- und Endereignisse
- Activities: Tasks und Sub-Prozesse
- Gateways: Entscheidungen und Verzweigungen
- Connections: Sequenz- und Nachrichtenflüsse
- Pools & Lanes: Organisationseinheiten und Verantwortlichkeiten
BPMN unterstützt vollständige Prozesslebenszyklen von der Analyse über die Implementierung bis zur Monitoring und Optimierung.
Prüfungsrelevante Stichpunkte
- Standardnotation für Geschäftsprozessmodellierung
- Events: Start, Intermediate, End Events mit verschiedenen Typen
- Gateways: Exclusive, Parallel, Inclusive für Prozesssteuerung
- Tasks: User, Service, Script, Manual Tasks
- Pools & Lanes: Organisation und Verantwortlichkeiten
- Sequence Flow: Reihenfolge der Prozessschritte
- Message Flow: Kommunikation zwischen Pools
- IHK-relevant für Prozessmanagement und -optimierung
Kernkomponenten
- Events: Kreisförmige Elemente für Prozessereignisse
- Activities: Rechteckige Elemente für Aufgaben
- Gateways: Rauteförmige Elemente für Entscheidungen
- Connections: Pfeile für Prozess- und Nachrichtenflüsse
- Pools: Container für komplette Prozesse
- Lanes: Unterteilung von Pools nach Verantwortlichkeiten
- Artifacts: Dokumente, Daten, Gruppen
- Data Objects: Informationselemente im Prozess
Praxisbeispiele
1. Bestellprozess (einfaches Beispiel)
<!-- BPMN 2.0 XML Struktur -->
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">
<!-- Pool für den Gesamtprozess -->
<process id="bestellprozess" name="Bestellprozess">
<!-- Start Event -->
<startEvent id="start" name="Bestellung eingegangen"/>
<!-- Task: Bestellung prüfen -->
<userTask id="pruefen" name="Bestellung prüfen">
<documentation>Verfügbarkeit und Kundendaten prüfen</documentation>
</userTask>
<!-- Exclusive Gateway: Entscheidung -->
<exclusiveGateway id="entscheidung" name="Verfügbarkeit prüfen"/>
<!-- Task: Bestellung ablehnen -->
<userTask id="ablehnen" name="Bestellung ablehnen">
<documentation>Kunde über Nichtverfügbarkeit informieren</documentation>
</userTask>
<!-- Task: Bestellung bearbeiten -->
<serviceTask id="bearbeiten" name="Bestellung bearbeiten">
<documentation>Automatische Verarbeitung im System</documentation>
</userTask>
<!-- End Events -->
<endEvent id="ende_ablehnung" name="Bestellung abgelehnt"/>
<endEvent id="ende_erfolg" name="Bestellung bearbeitet"/>
<!-- Sequence Flows -->
<sequenceFlow sourceRef="start" targetRef="pruefen"/>
<sequenceFlow sourceRef="pruefen" targetRef="entscheidung"/>
<sequenceFlow sourceRef="entscheidung" targetRef="ablehnen">
<conditionExpression xsi:type="tFormalExpression">${nichtVerfuegbar}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="entscheidung" targetRef="bearbeiten">
<conditionExpression xsi:type="tFormalExpression">${verfuegbar}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="ablehnen" targetRef="ende_ablehnung"/>
<sequenceFlow sourceRef="bearbeiten" targetRef="ende_erfolg"/>
</process>
</definitions>
2. Genehmigungsprozess mit Parallelisierung
<process id="genehmigungsprozess" name="Genehmigungsprozess">
<!-- Start Event -->
<startEvent id="start" name="Antrag eingegangen"/>
<!-- User Task: Antrag prüfen -->
<userTask id="antragPruefen" name="Antrag prüfen">
<potentialOwner>
<resourceAssignmentExpression>${manager}</resourceAssignmentExpression>
</potentialOwner>
</userTask>
<!-- Parallel Gateway -->
<parallelGateway id="parallelStart" name="Parallelprüfung beginnen"/>
<!-- Parallele Tasks -->
<serviceTask id="finanzPruefung" name="Finanzprüfung">
<documentation>Budget und Kosten prüfen</documentation>
</serviceTask>
<userTask id="rechtlichePruefung" name="Rechtliche Prüfung">
<documentation>Rechtliche Aspekte prüfen</documentation>
</userTask>
<!-- Parallel Gateway Zusammenführung -->
<parallelGateway id="parallelEnd" name="Ergebnisse zusammenführen"/>
<!-- Exclusive Gateway: Entscheidung -->
<exclusiveGateway id="genehmigungsEntscheidung" name="Genehmigung"/>
<!-- Tasks -->
<userTask id="genehmigen" name="Antrag genehmigen">
<documentation>Genehmigung erteilen und umsetzen</documentation>
</userTask>
<userTask id="ablehnen" name="Antrag ablehnen">
<documentation>Ablehnung begründen und kommunizieren</documentation>
</userTask>
<!-- End Events -->
<endEvent id="genehmigt" name="Antrag genehmigt"/>
<endEvent id="abgelehnt" name="Antrag abgelehnt"/>
<!-- Sequence Flows -->
<sequenceFlow sourceRef="start" targetRef="antragPruefen"/>
<sequenceFlow sourceRef="antragPruefen" targetRef="parallelStart"/>
<!-- Parallele Zweige -->
<sequenceFlow sourceRef="parallelStart" targetRef="finanzPruefung"/>
<sequenceFlow sourceRef="parallelStart" targetRef="rechtlichePruefung"/>
<sequenceFlow sourceRef="finanzPruefung" targetRef="parallelEnd"/>
<sequenceFlow sourceRef="rechtlichePruefung" targetRef="parallelEnd"/>
<sequenceFlow sourceRef="parallelEnd" targetRef="genehmigungsEntscheidung"/>
<!-- Entscheidung -->
<sequenceFlow sourceRef="genehmigungsEntscheidung" targetRef="genehmigen">
<conditionExpression>${genehmigt}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="genehmigungsEntscheidung" targetRef="ablehnen">
<conditionExpression>${abgelehnt}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="genehmigen" targetRef="genehmigt"/>
<sequenceFlow sourceRef="ablehnen" targetRef="abgelehnt"/>
</process>
3. Multi-Pool Prozess (Abteilungübergreifend)
<!-- Pool 1: Vertrieb -->
<pool id="vertrieb" name="Vertrieb">
<lane id="vertriebLane" name="Vertriebsmitarbeiter">
<startEvent id="angebotErstellen" name="Angebot erstellen"/>
<userTask id="angebotErstellenTask" name="Angebot ausarbeiten"/>
<endEvent id="angebotGesendet" name="Angebot gesendet"/>
<sequenceFlow sourceRef="angebotErstellen" targetRef="angebotErstellenTask"/>
<sequenceFlow sourceRef="angebotErstellenTask" targetRef="angebotGesendet"/>
</lane>
</pool>
<!-- Pool 2: Management -->
<pool id="management" name="Management">
<lane id="managementLane" name="Manager">
<intermediateCatchEvent id="angebotErhalten" name="Angebot erhalten"/>
<userTask id="angebotPruefen" name="Angebot prüfen"/>
<exclusiveGateway id="genehmigungsGateway" name="Genehmigung"/>
<sequenceFlow sourceRef="angebotErhalten" targetRef="angebotPruefen"/>
<sequenceFlow sourceRef="angebotPruefen" targetRef="genehmigungsGateway"/>
</lane>
</pool>
<!-- Message Flow zwischen Pools -->
<messageFlow id="angebotFlow" sourceRef="angebotGesendet" targetRef="angebotErhalten"/>
BPMN Elemente im Detail
Events (Ereignisse)
○ Start Event ○ Intermediate Event ● End Event
(leerer Kreis) (Kreis mit Symbol) (dicke Linie)
Typen:
- Timer Event (⏰)
- Message Event (✉)
- Error Event (❌)
- Signal Event (📡)
- Terminate Event (⏹)
Tasks (Aufgaben)
□ User Task ◇ Service Task ◈ Script Task
(Benutzer) (automatisch) (Skript)
Typen:
- Manual Task (manuell)
- Receive Task (empfangen)
- Send Task (senden)
- Business Rule Task (Regeln)
Gateways (Gateways)
◇ Exclusive Gateway + Parallel Gateway ○ Inclusive Gateway
(exklusiv ODER) (parallel UND) (inklusiv ODER)
Typen:
- Complex Gateway (komplex)
- Event Gateway (ereignisgesteuert)
Pools & Lanes
┌─────────────────────────────────────┐
│ Pool (Organisationseinheit) │
├─────────────────────────────────────┤
│ Lane (Verantwortlichkeitsbereich) │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Task │ │GW │ │Task │ │End │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
└─────────────────────────────────────┘
Vorteile und Nachteile
Vorteile von BPMN
- Standardisierung: Einheitliche Notation für alle Beteiligten
- Visualisierung: Intuitive Darstellung komplexer Prozesse
- Automatisierung: Direkte Umsetzung in Workflow-Engines
- Dokumentation: Lebende Prozessdokumentation
- Analyse: Grundlage für Prozessoptimierung
Nachteile
- Komplexität: Bei sehr großen Prozessen unübersichtlich
- Lernkurve: Erfordert Einarbeitung in die Notation
- Over-Engineering: Zu detaillierte Modellierung kann kontraproduktiv sein
- Wartung: Änderungen erfordern Anpassung der Modelle
BPMN in der Praxis
Prozessoptimierung
- As-Is Analyse: Aktueller Prozess modellieren
- Schwachstellen identifizieren: Engpässe, Redundanzen finden
- To-Be Design: Optimierten Prozess entwerfen
- Implementierung: Neue Prozesse einführen
- Monitoring: Erfolge messen und nachsteuern
Automatisierung
// Camunda BPM Engine Beispiel
import org.camunda.bpm.engine.*;
@Service
public class BestellService {
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
public void starteBestellprozess(Bestellung bestellung) {
// Prozess starten
Map<String, Object> variables = new HashMap<>();
variables.put("bestellung", bestellung);
variables.put("kundenId", bestellung.getKundenId());
ProcessInstance process = runtimeService.startProcessInstanceByKey(
"bestellprozess", variables);
System.out.println("Prozess gestartet: " + process.getId());
}
public void bearbeiteAufgabe(String taskId, Map<String, Object> variables) {
// User Task abschließen
taskService.complete(taskId, variables);
}
}
Häufige Prüfungsfragen
-
Was ist der Unterschied zwischen Pool und Lane? Pool ist eine Organisationseinheit, Lane unterteilt Pool nach Verantwortlichkeiten.
-
Erklären Sie die verschiedenen Gateway-Typen! Exclusive Gateway (exklusiv ODER), Parallel Gateway (parallel UND), Inclusive Gateway (inklusiv ODER).
-
Wann verwendet man Message Flow statt Sequence Flow? Message Flow für Kommunikation zwischen Pools, Sequence Flow innerhalb eines Pools.
-
Was ist der Zweck von BPMN in der Softwareentwicklung? Grundlage für Workflow-Automatisierung und Prozessimplementierung.
Wichtigste Quellen
- https://www.omg.org/spec/BPMN/2.0/
- https://de.wikipedia.org/wiki/Business_Process_Model_and_Notation
- https://www.bpmn.io/