BPMN Fundamentals: Process Modeling, Events, Gateways & Tasks
This guide explains Business Process Model Notation (BPMN) with practical examples and relevance for professional certification.
In a Nutshell
BPMN is the graphical notation for modeling business processes, providing a common language for business analysts, developers, and managers to communicate and collaborate.
Technical Overview
Business Process Model Notation (BPMN) is an international standard for visually representing business processes. Developed by the Object Management Group (OMG), version 2.0 has been available since 2011.
Key objectives:
- Standardization: Unified notation across all stakeholders
- Communication: Improved understanding between business and IT teams
- Automation: Foundation for process automation and workflow engines
- Optimization: Visual representation for process analysis and improvement
Core elements:
- Events: Start, intermediate, and end events
- Activities: Tasks and sub-processes
- Gateways: Decisions and branching logic
- Connections: Sequence and message flows
- Pools & Lanes: Organizational units and responsibilities
BPMN supports the complete process lifecycle from analysis through implementation to monitoring and optimization.
Key Concepts for Professional Certification
- Standard notation for business process modeling
- Events: Start, Intermediate, End Events with various types
- Gateways: Exclusive, Parallel, Inclusive for process control
- Tasks: User, Service, Script, Manual Tasks
- Pools & Lanes: Organization and responsibility mapping
- Sequence Flow: Order of process steps
- Message Flow: Communication between pools
- Exam-relevant for process management and optimization
Core Components
- Events: Circular shapes representing process events
- Activities: Rectangular shapes for tasks
- Gateways: Diamond shapes for decisions
- Connections: Arrows showing process and message flows
- Pools: Containers for complete processes
- Lanes: Subdivisions of pools by responsibility
- Artifacts: Documents, data, and groupings
- Data Objects: Information elements within the process
Real-World Examples
1. Order Processing (Simple Example)
<!-- BPMN 2.0 XML Structure -->
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">
<!-- Pool for the overall process -->
<process id="bestellprozess" name="Bestellprozess">
<!-- Start Event -->
<startEvent id="start" name="Bestellung eingegangen"/>
<!-- Task: Review order -->
<userTask id="pruefen" name="Bestellung prüfen">
<documentation>Verfügbarkeit und Kundendaten prüfen</documentation>
</userTask>
<!-- Exclusive Gateway: Decision -->
<exclusiveGateway id="entscheidung" name="Verfügbarkeit prüfen"/>
<!-- Task: Reject order -->
<userTask id="ablehnen" name="Bestellung ablehnen">
<documentation>Kunde über Nichtverfügbarkeit informieren</documentation>
</userTask>
<!-- Task: Process order -->
<serviceTask id="bearbeiten" name="Bestellung bearbeiten">
<documentation>Automatische Verarbeitung im System</documentation>
</serviceTask>
<!-- 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. Approval Process with Parallel Tasks
<process id="genehmigungsprozess" name="Genehmigungsprozess">
<!-- Start Event -->
<startEvent id="start" name="Antrag eingegangen"/>
<!-- User Task: Review request -->
<userTask id="antragPruefen" name="Antrag prüfen">
<potentialOwner>
<resourceAssignmentExpression>${manager}</resourceAssignmentExpression>
</potentialOwner>
</userTask>
<!-- Parallel Gateway -->
<parallelGateway id="parallelStart" name="Parallelprüfung beginnen"/>
<!-- Parallel 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 Join -->
<parallelGateway id="parallelEnd" name="Ergebnisse zusammenführen"/>
<!-- Exclusive Gateway: Decision -->
<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"/>
<!-- Parallel branches -->
<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"/>
<!-- Decision -->
<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. Cross-Departmental Process (Multi-Pool)
<!-- Pool 1: Sales -->
<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 between pools -->
<messageFlow id="angebotFlow" sourceRef="angebotGesendet" targetRef="angebotErhalten"/>
BPMN Elements Explained
Events
○ Start Event ○ Intermediate Event ● End Event
(empty circle) (circle with symbol) (filled circle)
Types:
- Timer Event (⏰)
- Message Event (✉)
- Error Event (❌)
- Signal Event (📡)
- Terminate Event (⏹)
Tasks
□ User Task ◇ Service Task ◈ Script Task
(manual) (automated) (script)
Types:
- Manual Task
- Receive Task
- Send Task
- Business Rule Task
Gateways
◇ Exclusive Gateway + Parallel Gateway ○ Inclusive Gateway
(exclusive OR) (parallel AND) (inclusive OR)
Types:
- Complex Gateway
- Event Gateway
Pools & Lanes
┌─────────────────────────────────────┐
│ Pool (organizational unit) │
├─────────────────────────────────────┤
│ Lane (area of responsibility) │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Task │ │GW │ │Task │ │End │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
└─────────────────────────────────────┘
Strengths and Weaknesses
Advantages of BPMN
- Standardization: Consistent notation across all stakeholders
- Visualization: Intuitive representation of complex processes
- Automation: Direct implementation in workflow engines
- Documentation: Living process documentation
- Analysis: Foundation for process optimization
Disadvantages
- Complexity: Large processes can become difficult to read
- Learning curve: Requires familiarity with the notation
- Over-engineering: Excessive detail can hinder clarity
- Maintenance: Updates require model adjustments
BPMN in Practice
Process Optimization
- As-Is Analysis: Map the current process
- Identify bottlenecks: Find constraints and redundancies
- To-Be Design: Design the optimized process
- Implementation: Roll out the new processes
- Monitoring: Measure results and adjust
Automation
// Camunda BPM Engine Example
import org.camunda.bpm.engine.*;
@Service
public class OrderService {
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
public void startOrderProcess(Order order) {
// Start process
Map<String, Object> variables = new HashMap<>();
variables.put("order", order);
variables.put("customerId", order.getCustomerId());
ProcessInstance process = runtimeService.startProcessInstanceByKey(
"orderProcess", variables);
System.out.println("Process started: " + process.getId());
}
public void completeTask(String taskId, Map<String, Object> variables) {
// Complete user task
taskService.complete(taskId, variables);
}
}
Common Exam Questions
-
What’s the difference between a pool and a lane? A pool represents an organizational unit, while a lane subdivides a pool by area of responsibility.
-
Explain the different gateway types. Exclusive Gateway (exclusive OR), Parallel Gateway (parallel AND), Inclusive Gateway (inclusive OR).
-
When do you use Message Flow instead of Sequence Flow? Use Message Flow for communication between pools and Sequence Flow within a single pool.
-
What is BPMN’s purpose in software development? BPMN serves as the foundation for workflow automation and process implementation.
Key Resources
- https://www.omg.org/spec/BPMN/2.0/
- https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation
- https://www.bpmn.io/
More on BPMN
BPMN is the standard for business process modeling. The following articles help you understand and apply all aspects of BPMN in practice.
Fundamentals and Concepts
- BPMN Business Process Model and Notation - Comprehensive introduction to BPMN and process modeling
- BPMN Fundamentals Process Modeling - Detailed explanation of BPMN elements including pools and lanes



