BPMN 2.0 dla Analitykow Biznesowych
Jump to navigation
Jump to search
Modelowanie procesów biznesowych z wykorzystaniem notacji BPMN 2.0
Proces biznesowy⌘
Definicja (BPMN 2.0 Spec)
A Process describes a sequence or flow of Activities in an organization with the objective of carrying out work.
Proces opisuje sekwencję lub przepływ czynności w organizacji, których celem jest wykonanie pewnej pracy
BPMN⌘
- Business Process Model and Notation (BPMN)
- standard konsorcjum OMG
- podobny do schematów blokowych (flowchart diagram), ale
- bardziej formalny (specyfikacja)
- oparty na zdarzeniach
- pokazujący wymianę komunikatów
Demonstracja⌘
- Prosty proces
BPMN Activity⌘
Czynność
- jest pracą, która ma być wykonana w obrębie procesu biznesowego
- może być atomowa lub złożona
- może być wykonywalnym elementem procesu
Rodzaje czynności⌘
- Task (Zadanie)
- atomowa czynność w obrębie procesu
- nie może być dalej dekomponowana
- Sub-Process (Podproces)
- czynność złożona, która może zawierać inne czynności
- Event Sub-Process (Podproces wyzwalany zdarzeniem)
- Transaction (Transakcja)
- Ad-Hoc
- czynność złożona, która może zawierać inne czynności
- Call Activity (Czynność wywoływana)
- umożliwia wywoływanie zadań lub czynności na diagramie
Rodzaje Podprocesów⌘
Sequence Flow⌘
Przepływ sekwencyjny określa kolejność wykonywania czynności
Token ⌘
- Token "przemierza" przepływy sekwencyjne i przechodzi przez elementy procesu
- Nazywany jest czasem "obiektem przepływu" lub "reprezentantem ścieżki w procesie"
- Koncepcja tokenu ułatwia zrozumienie zachowania procesu
- Token nie przechodzi za pośrednictwem Message Flow (przepływ komunikatu)
Rozdzielenie przepływu⌘
- przepływ warunkowy - określa warunek, który musi być spełniony, żeby przepływ mógł przejść daną ścieżką
- przepływ domyślny - nie ma warunku, określa ścieżkę, która zostanie wybrana, jeśli żadne warunki nie zostały spełnione
Podstawowe symbole BPMN⌘
Gateways ⌘
- Bramki są używane do kontrolowania przepływu sekwencyjnego
- Określają miejsca rozchodzenia i schodzenia się przepływów
- Nie są wymagane na diagramach
- Nie reprezentują pracy (jak czynności)
- Nie mają wpływu na miary procesu (koszt, czas, ...)
Exclusive Gateway ⌘
Bramka ALBO, XOR
- Bramka umożliwia stworzenie alternatywnych ścieżek w procesie
- Bramka XOR to "pytanie" na ścieżce procesu, które ma zdefiniowany zestaw odpowiedzi
- Każda odpowiedź jest połączona z warunkiem na odowiednim przepływie wychodzącym z bramki
- Tylko jedna odpowiedź może zostać wybrana
Exclusive Gateway Example⌘
Parallel Gateway ⌘
Bramka AND, równoległa
- Bramka równoległa jest używana do tworzenia oraz synchronizowania równoległych przepływów
- Tworzy ścieżki równoległe bez sprawdzania jakichkolwiek warunków
- Każdy wychodzący przepływ sekwencyjny otrzymuje token po przejściu bramki
- W przypadku przepływów wchodzących bramka oczekuje na wszystkie przepływy (synchronizacja)
Parallel Gateway Example 1⌘
Parallel Gateway Example 2⌘
Gateway Zadania⌘
- Zadanie 1: Lotnisko
- Demonstracja - rozgałęzianie przepływu
- proste rozgałęzienie - niejawne bramki
- przepływ warunkowy i domyślny
- jedna bramka XOR, dwie bramki XOR
- jedna bramka AND, dwie bramki AND
Inclusive Gateway ⌘
Bramka LUB, OR
- W formie decyzyjnej (bramka rozdzielająca) może być użyta do stworzenia alternatywnych lub równoległych ścieżek
- Inaczej niż w przypadku bramki XOR wszystkie warunki są sprawdzane
- Wartość true na jednej ze ścieżek wychodzących nie wyklucza sprawdzenia pozostałych
- Wszystkie wychodzące przepływy, dla których spełniony jest warunek otrzymają token
Inclusive Gateway Example 1⌘
Inclusive Gateway Example 2⌘
Events ⌘
An Event is something that “happens” during the course of a Process.
- Zdarzenia wpływają na przebieg procesu. Zwykle są przyczyną lub bodźcem.
- Przykładami zdarzeń mogą być: rozpoczęcie lub zakończenie aktywności, zmiana stanu dokumentu, odebranie komunikatu, ...
- Wyróżnia się trzy rodzaje zdarzeń:
- Start Events - start procesu
- Intermediate Events - używany pomiędzy początkiem i końcem procesu
- End Events - zakończenie procesu
Events Example⌘
Events Zadania⌘
- Zadanie 1: Zamówienie
Pool and Participant⌘
The pool shape represents a participant.
- Pool (Basen) = Uczestnik
- W obrębie elementu Pool można wyróżnić tory (Lanes)
- Uczestnicy i tory reprezentują odpowiedzialność za wykonanie czynności w danym procesie
Message Flows ⌘
- Message flow (przepływ komunikatu) reprezentuje komunikację pomiędzy procesami.
- Nie może łączyć obiektów w obrębie jednego elementu Pool
- Może być podłączony do elementów typu Pool, Activity lub Event
Demonstracja ⌘
- Pool, Lane, Blackbox
4 Basic Message Events ⌘
Występują cztery podstawowe typy zdarzeń związane z komunikatami
Message Events Example⌘
Collaboration Zadania⌘
- Zadanie 1: Zapytanie o towar
- Zadanie 2: Rezerwowania noclegu
- Zadanie 3: Skarga
Artifacts ⌘
Artefakty dostarczają dodatkowych informacji na temat procesu
Group ⌘
- grupa nie jest aktywnością ani elementem przepływu
- nie można jej łączyć z sequence ani message flow
- może przecinać granice Pool
Text Annotation ⌘
- umożliwia dodanie dodatkowej informacji dla osoby czytającej diagram
- może być połączony z konkretnym elementem na diagramie za pomocą asocjacji
- nie wpływa na przebieg procesu
Types of Tasks ⌘
Rodzaje zadań określają typ wykonywanej czynności
Receive Task ⌘
- Oczekuje na komunikat od zewnętrznego uczestnika (Participant)
- Kiedy komunikat zostanie odebrany, zadanie jest wykonane
- Szczególny przypadek Receive Taks - rozpoczyna proces
- NIE MOŻE posiadać żadnych wejściowych przepływów (Sequence Flow)
Send Task ⌘
- Wysła komunikat do zewnętrznego uczestnika
- Po wysłaniu komunikatu zadanie jest ukończone
Service Task ⌘
- Zadanie wykorzystuje pewien rodzaj usługi (np. Web Service)
User Task ⌘
- Zadanie wykonywane przez człowieka przy pomocy systemu komputerowego
- Przykłady:
- Operator call-center aktualizuje dane klienta
- Użytkownik zmienia swoje hasło
Manual Task ⌘
- Wykonywany przez człowieka bez wsparcia ze strony systemu komputerowego
- Przykład:
- Technik instaluje telefon w mieszkaniu klienta
Business Rule Task ⌘
- Zapewnia mechanizm dostarczenia danych wejściowych do silnika reguł biznesowych oraz obsługi wyników
Script Task ⌘
- Skrypt wykonywany przez silnik procesów biznesowych
- Kiedy zadanie jest gotowe do uruchomienia, silnik wykonuje skrypt
- Kiedy skrypt się zakończy, zadanie zostaje ukończone
Timer Events ⌘
- Określa lukę czasową, lub czas oczekiwania
- Start Timer – dotyczy konkretnego punktu w czasie (np. Poniedziałek 8:00, ..)
- Intermediate Timer to określony punkt czasowy lub cykl (np. Każdy czwartek o 9:00)
- Może wskazywać opóźnienie (oczekiwanie)
Timer Example 1⌘
Timer Example 2⌘
Interrupting vs. Non-Interrupting⌘
Conditional Events ⌘
- Reaguje na zmianę warunków biznesowych
- Przykłady: temperatura poniżej 20°C, wzrost liczby zapytań o 10%
Event-Based Exclusive Gateway⌘
- Bramka sterowana zdarzeniami stanowi punkt rozgałęzienia w procesie
- Stosowana jest w sytuacji, gdy wybór ścieżki procesu zależy od decyzji podjętej przez innego uczestnika (w innym elemencie Pool) na podstawie danych niedostępnych w pierwotnym procesie
- Alternatywne przepływy wychodzące z bramki dotyczą zdarzeń, które mogą wystąpić
- Nie jest obliczana wartość wyrażenia
Przykład ⌘
- Firma oczekuje na odpowiedź od klienta. W zależności, czy odpowie TAK lub NIE podjęte zostaną różne działania
- Odpowiedź klienta określa, która ścieżka wychodząca z bramki będzie wybrana
- Odebranie wiadomości może być modelowane jako Intermediate Event (Message trigger) lub Receive Task
- Dodatkowo może zostać użyty inny trigger (np. timer)
Event-Based Gateway Starts a Process⌘
Event-Based Gateway Zadania⌘
- Zadanie 1: Pacjent
- Zadanie 2: Kredyt
Parallel Event-Based Gateway⌘
- Równoległa bramka sterowana zdarzeniami
- Muszą wystąpić wszystkie zdarzenia, żeby proces mógł się rozpocząć
Complex Gateway⌘
- Bramka złożona służy do modelowania rozdzielania lub złączenia przepływów nieobsługiwanych przez inne bramki
- Jej obecność na diagramie może świadczyć o niskiej jakości modelowania :)
Link Events⌘
- Link jest graficznym uproszczeniem przekazującym przepływ z jednego punktu diagramu na inny
- Może być stosowany tylko do przepływów sekwencyjnych
- Nie może przenosić do innego basenu lub z procesu do podprocesu
Error Events⌘
- Błąd jest generowany, gdy wystąpi krytyczny problem w czasie wykonywania aktywności lub gdy wykonanie operacji nie powiodło się.
- Zdarzenie Error przechwytuje lub wyrzuca błąd
- Występuję tylko w postaci:
- Start Event Sub-Process Interrupting
- Intermediate Boundary Interrupting
- End
- Nie można oczekiwać lub wyrzucać błędu w zdarzeniu Intermediate (chyba, że to zdarzenie Boundary)
- Nie można rozpoczynać procesu od błędu (chyba, że to Event Sub-Process)
Error Events Example 1⌘
Error Events Example 2⌘
Error Events Example 3⌘
Error Event Zadania ⌘
- Zadanie 1. Logowanie
- Zadanie 2. Kredyt
Escalation Events⌘
- Eskalacja oznacza "wyjątek, którego obsługa nie musi przerywać czynności"
- Domyślnie nie przerywa czynności, do której krawędzi jest podpięta
Escalation Example⌘
Escalation Example 2⌘
Escalation Zadania⌘
- Zadanie 1. Produkt
Compensation⌘
- Kompensacja to mechanizm mający na celu niwelowanie skutków już wykonanych czynności
- Pośrednie krawędziowe zdarzenie kompensacji nie posiada wyjściowych przepływów sekwencyjnych
- Zdarzenie kompensacji może zostać uruchomione po zakończeniu czynności
- Kompensacja to nie obsługa wyjątku
Compensation Example⌘
Compensation Zadanie⌘
- Zadanie 1. Szkolenie
- Zadanie 2. Szkolenie (wersja 2)
Transaction⌘
- Transakcja to grupa czynności, które mogą zostać wykonane w całości lub wcale.
- Nie może mieć miejsca sytuacja, że niektóre czynności zakończyły się sukcesem, a inne nie.
- Transakcje są często opisywane modelem ACID:
- Atomic (Atomowe) - transakcja albo wykona się w całości, albo w ogóle
- Consistent (Spójne) - po wykonaniu transakcji system będzie spójny - nie zostaną naruszone żadne zasady integralności
- Isolatated (Izolowane) - jeżeli dwie transakcje wykonują się współbieżnie, to zazwyczaj nie widzą zmian przez siebie wprowadzanych
- Durable (Trwałe) - system potrafi uruchomić się i udostępnić spójne, nienaruszone i aktualne dane zapisane w ramach zatwierdzonych transakcji.
Transaction in BPMN⌘
BPMN dopuszcza 3 możliwe wyniki transakcji:
- sukces
- anulowanie
- błąd
Cancel Events⌘
- Zdarzenie anulowania występuje tylko w powiązaniu z transakcją
- Czynności wskazane przez przepływ wychodzący ze zdarzenia anulowania będą wykonane po anulowaniu transakcji
Transaction Zadania⌘
- Zadanie 1. Ziemniaki
- Zadanie 2. Przelot
- Zadanie 3. Drzwi
Pętle i wiele instancji⌘
Standard Loop ⌘
- Czynność będzie wykonywana tak długo, jak warunek loopCondition ma wartość true
- Warunek jest obliczany dla każdego przejścia pętli - na początku lub na końcu iteracji (testBefore = true lub testBefore = false)
- Można również określić maksymalną liczbę powtórzeń loopMaximum
- Kolejne iteracje są zawsze sekwencyjne - nie można rozpocząć kolejnej iteracji przed zakończeniem poprzedniej.
- Standard Loop Activity przypomina pętlę DO WHILE
Wiele instancji (Multi-Instance Activity) ⌘
Multi-Instance parallel (równoległe)
Multi-Instance sequential (sekwencyjnie)
- Instancje czynności mogą być wykonywane równolegle lub sekwencyjnie
- Te czynności mają sens przy pracy z kolekcjami danych
- Multi-Instance Activity przypomina w działaniu pętlę FOR EACH
Multi-Instance Activity Example⌘
Loop - zadania ⌘
- Zadanie 1
- Zadanie 2* - Rekrutacja
Proces, współpraca, choreografia i konwersacja w BPMN 2.0⌘
Proces - przypomnienie ⌘
A Process describes a sequence or flow of Activities in an organization with the objective of carrying out work.
Proces opisuje sekwencję lub przepływ czynności w organizacji, których celem jest wykonanie pewnej pracy
- BPMN używa terminu proces w odniesieniu do elementów przepływu (czynności, zdarzeń, bramek i przepływów sekwencyjnych)
- Pojęcia współpraca (collaboration) oraz choreografia (choreography) służą do opisu interakcji pomiędzy procesami
Typy procesów w BPMN ⌘
Trzy podstawowe typy procesów w BPMN:
- Private Non-executable (internal) Business Process
- Private Executable (internal) Business Process
- Public Process
Współpraca (Collaboration)⌘
- Diagram współpracy to kolekcja Uczestników (Participants) reprezentowanych jako Baseny (Pools) oraz ich wzajemnych interakcji (Message Flows).
- Diagram może zawierać procesy w obrębie basenów i/lub choreografie pomiędzy.
- Choreografia jest rozbudowanym typem współpracy
Collaboration Example⌘
Choreografia (Choreography)⌘
- Choreografia przypomina wyglądem prywatny proces biznesowy
- Czynności choreografii reprezentują zbiory wymian komunikatów pomiędzy uczestnikami
- Główny nacisk nie jest kładziony na kolejność czynności tylko na interakcję między uczestnikami
- Nie wskazuje się kontrolera całej interakcji
Choreography Example 1⌘
Choreography Example 2 from spec⌘
Business Process Model and Notation (BPMN), Version 2.0, pages 318-319
Konwersacje (Conversations)⌘
- Diagram konwersacji jest szczególnym przypadkiem diagramu współpracy
- Baseny zwykle nie posiadają zawartości
- Konwersacja jest zestawem logicznie powiązanych wymian komunikatów
Conversation Example⌘
Literatura
- Specyfikacja BPMN 2.0
- BPMN 2.0 by Example
- Szymon Drejewicz, Zrozumieć BPMN. Modelowanie procesów biznesowych, Helion
- Mr. Tom Debevoise, Rick Geneva and Dr. Richard Welke, The Microguide to Process Modeling in BPMN 2.0: How to Build Great Process, Rule, and Event Models
- Bruce Silver, BPMN Method and Style, 2nd Edition, with BPMN Implementer's Guide: A structured approach for business process modeling and implementation using BPMN 2.0
Dodatek
Business Process Model and Notation, v2.0, page 261