BPMN Best Practices
Inhaltsverzeichnis
Ablauf des Workshops
1. Begrüßung durch Projektron
2. Vorstellung BPMB durch Jan Mendling
3. Vorstellungsrunde aller Teilnehmer
4. Einführung "Warum Best Practices?" durch Jan Mendling
5. Hauptteil: Diskussion konkreter Beispiele
6. Vorschau auf die nächsten Termine
Mehrere Startereignisse
Kernfrage: Wie modelliert man verschiedene Eintrittspunkte in einen Prozess?
Alternative 1: Ein Startereignis, danach ein Event-based Gateway
Alternative 2: Kein Startereignis, danach ein Event-based Gateway
Alternative 3: Mehrere Startereignisse (diese Alternative wird von der Mehrheit favorisiert)
Anlagen:
Mehrere eingehende Nachrichtenflüsse für ein Nachrichtenereignis
Verboten laut Spezifikation
Delegation
Idee: Task wird zu einer Lane zugeordnet (dort, wo der Task eigentlich ausgeführt werden soll). Die Möglichkeit der Delegation kann nicht explizit dargestellt werden.
Pools/Lanes: Rollen vs. Systeme
Wie stellt man dar, dass ein Task von einer Rolle und mit Hilfe eines Systems dargestellt wird (wie es in EPKs möglich ist). Dies kann nicht so einfach dargestellt werden.
Option 1: Verschiedene Pools. Ein Pool, der alle menschlichen Aktivitäten enthält. Interaktion mit Systemen geschieht über Nachrichtenfluss.
Option 2: Verschiedene Lanes. Pro Rolle und System eine Lane. Hier kann der ursprüngliche Use Case allerdings nicht umgesetzt werden.
Option 3: Kombinationen von Rolle/System in Lanes umsetzen.
Option 4: Darstellung von Systemen über Datenobjekte mit speziellen Symbolen.
Mehrere Rollen führen einen Task aus
Beispiel: Meeting
Option 1: Task duplizieren in verschiedenen Pools/Lanes und dann Verbindung durch Gruppierung. Achtung: Gruppierungen dürfen NICHT Start oder Ziel von Sequenzflüssen sein!
Wann verwende ich Pools und wann Lanes?
Vorschlag von Jakob:
- Pool = Prozessverantwortung. Label ergibt sich aus Prozessverantwortlichem und Prozessname.
- Lane = Teilprozessverantwortung.
Folien von Jakob Freund, auch als Slidecast erhältlich.
Zerschneiden von komplexen Diagrammen
Komplexe Modelle müssen für bessere Wartbarkeit / bessere Übersichtlichkeit zerschnitten werden / Abstraktionsebenen müssen eingeführt werden. Hier müssen Kriterien für das Zerschneiden gewählt werden. Beispiele:
- Zerschneiden anhand von Lanes
- Zerschneiden anhand von Zustandübergängen von Datenobjekten