Skip to content
IRC-Coding IRC-Coding
BPMN Business Process Model Prozessmodellierung Events Gateways Tasks IHK relevant

BPMN Grundlagen: Prozessmodellierung, Events, Gateways & Tasks

BPMN ist die Standardnotation für Geschäftsprozessmodellierung. Events, Gateways, Tasks, Pools, Lanes mit praktischen Beispielen und IHK-Relevanz.

S

schutzgeist

2 min read

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

  1. Events: Kreisförmige Elemente für Prozessereignisse
  2. Activities: Rechteckige Elemente für Aufgaben
  3. Gateways: Rauteförmige Elemente für Entscheidungen
  4. Connections: Pfeile für Prozess- und Nachrichtenflüsse
  5. Pools: Container für komplette Prozesse
  6. Lanes: Unterteilung von Pools nach Verantwortlichkeiten
  7. Artifacts: Dokumente, Daten, Gruppen
  8. 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

  1. As-Is Analyse: Aktueller Prozess modellieren
  2. Schwachstellen identifizieren: Engpässe, Redundanzen finden
  3. To-Be Design: Optimierten Prozess entwerfen
  4. Implementierung: Neue Prozesse einführen
  5. 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

  1. Was ist der Unterschied zwischen Pool und Lane? Pool ist eine Organisationseinheit, Lane unterteilt Pool nach Verantwortlichkeiten.

  2. Erklären Sie die verschiedenen Gateway-Typen! Exclusive Gateway (exklusiv ODER), Parallel Gateway (parallel UND), Inclusive Gateway (inklusiv ODER).

  3. Wann verwendet man Message Flow statt Sequence Flow? Message Flow für Kommunikation zwischen Pools, Sequence Flow innerhalb eines Pools.

  4. Was ist der Zweck von BPMN in der Softwareentwicklung? Grundlage für Workflow-Automatisierung und Prozessimplementierung.

Wichtigste Quellen

  1. https://www.omg.org/spec/BPMN/2.0/
  2. https://de.wikipedia.org/wiki/Business_Process_Model_and_Notation
  3. https://www.bpmn.io/
Zurück zum Blog
Share:

Ähnliche Beiträge