Modelowanie i Projektowanie Architektury Oprogramowania
Systemy Informatyczne
BPMN
Podręcznik "Modelowanie Procesów Biznesowych. Podstawy"
już dostępny:
publikacje@project-media.pl

Business Process Model and Notation (BPMN – dawniej Business Process Modeling Notation) jest graficzną notacją służącą do opisywania procesów biznesowych promowaną przez Business Process Management Initiative[1] w ramach organizacji Object Management Group (OMG[2]). Jest to lista symboli BPMN obrazujących typowe zdarzenia biznesowe, które pozwalają na zbudowanie pełnego modelu procesów biznesowych. W niniejszym opracowaniu posłużono się standardem BPMN w wersji 2.0[3].
Zaproponowana w 2004 roku notacja BPMN (Business Process Modelling Notation) pomimo braku wielu zalet w porównaniu z innymi notacjami (opis struktury danych, opis funkcjonalności), powoli zdobywa sobie uznanie i popularność, ale też wydaje się, że rozwój tej notacji umożliwi określenie również natury procesu biznesowego, która to definicja mogłaby uzyskać ogólną zgodę całego środowiska zainteresowanego wykorzystaniem procesów biznesowych.
Standard BPMN powstał m.in. ze względu na mało elastyczną notację UML w wersji 1.x na początku XXI wieku. Jednocześnie notacja BPMN pomyślana została również jako język do przenoszenia opisów procesów biznesowych za pomocą standardów BPEL oraz XPDL pomiędzy systemami BPM, których popularność ostatnio bardzo wzrosła. Pomimo więc unowocześnienia języka UML w wersji 2.0, nie wydaje się by język UML zajął miejsce notacji BPMN, tym bardziej, że sama organizacja OMG2 nie jest zainteresowana wycofaniem języka BPMN z użycia, a wprost przeciwnie, powstają kolejne jego wersje.
Poniżej podano cel standardu Business Process Model and Notation3:
 „Podstawowym celem języka BPMN jest dostarczenie notacji, która jest łatwo zrozumiała dla wszystkich uczestników projektu dotyczącego procesów biznesowych, od analityków biznesowych, którzy tworzą wstępne projekty procesów, do programistów odpowiedzialnych za wdrożenie technologii, na platformie na której będą wdrożone te procesy, a również dla ludzi biznesu, którzy będą zarządzać i monitorować wdrożone procesy. Tak więc, BPMN umożliwia wypełnienie luki pomiędzy projektowaniem procesów biznesowych, a ich wdrożeniem”.
Wydaje się, że w ostatnich latach cel ten, nakreślony na początku opisu standardu BPMN, znakomicie jest wypełniany zwłaszcza w środowisku osób zajmujących się modelowaniem procesów biznesowych zarówno dla przemysłu jak i dla administracji publicznej. Popularność swoją notacja BPMN zawdzięcza również i temu, że z jednej strony BPMN ma kilka elementów, które pozwalają utworzyć prosty model procesu biznesowego. Z drugiej strony zaś notacja ta posiada bardzo rozbudowany mechanizm związany z opisem zdarzeń, co umożliwia niekiedy na zaprezentowanie mniej istotnych szczegółów za pomocą niewielkiej liczby elementów (np. zdarzenie obsługi sytuacji wyjątkowej, błędnej, czy też wycofanie wprowadzonych wcześniej zmian od określonego momentu). Cechą charakterystyczną notacji BPMN są zatem zdarzenia, których liczba, a także charakter pozwala w odpowiedni sposób zamodelować szeroką gamę procesów biznesowych. Ponadto język BPMN posiada coraz więcej reguł wyznaczających sposób budowy diagramów, a w wersji BPMN 2.0 doszły kolejne w postaci rozbudowanego metamodelu. Coraz większa ilość elementów BPMN 2.0 oraz rosnąca złożoność modelowania diagramów może zniechęcać do stosowania tej notacji przy modelowaniu procesów biznesowych.

Podręcznik BPMN 2.0 - Spis treści

Przedmowa
1.      Modelowanie i zarządzanie procesami biznesowymi
1.1.       Wprowadzenie do biznesu
1.2.       Proces biznesowy
1.3.       Business process lifecycle
1.4.       Zarządzanie procesami biznesowymi
1.5.       Modelowanie procesów biznesowych
1.5.1.        Modelowanie biznesu
1.5.2.        Poziomy modelowania
1.5.3.        Model procesu biznesowego
1.5.4.        Metody opisu procesów biznesowych
1.5.5.        Wytyczne modelowania, jego wady i zalety
1.5.6.        Zastosowanie BPMN
2.      Techniki modelowania procesów biznesowych
2.1.       IDEF0
2.2.       Rummler-Brache Swimlane Model
2.3.       EPC
2.4.       SIPOC
2.5.       UML i przypadki użycia
2.6.       Diagram Obiegu Dokumentów
3.      Identyfikacja i budowa modelu procesów biznesowych
3.1.       Scenariusze – identyfikacja procesów biznesowych
3.2.       Struktura modelu procesów biznesowych
3.3.       Modelowanie systemów informatycznych
4.      Business Process Model and Notation
4.1.       Wprowadzenie
4.2.       Historia
4.3.       Główne pakiety metamodelu BPMN
4.4.       Główne grupy elementów BPMN
4.4.1.        Czynności (Activities)
4.4.1.1.        Zadania (Tasks)
4.4.1.4.        Procesy Ad-hoc (Ad-hoc Sub-Processess)
4.4.1.5.        Proces autonomiczny (Event Sub-process) (BPMN 2.0)
    Zdarzenie początkowe komunikatu przerywające (Start Message Interrupting) (BPMN 2.0)
    Zdarzenie początkowe komunikatu nieprzerywające (Start Message NonInterrupting) (BPMN 2.0)
    Zdarzenie początkowe czasu przerywające (Start Timer Interrupting) (BPMN 2.0)
    Zdarzenie początkowe czasu nieprzerywające (Start Timer NonInterrupting) (BPMN 2.0)
    Zdarzenie początkowe eskalacji przerywające (Start Escalation Interrupting) (BPMN 2.0)
    Zdarzenie początkowe eskalacji nieprzerywające (Start Escalation NonInterrupting) (BPMN 2.0)
    Zdarzenie początkowe błędu przerywające (Start Error Interrupting) (BPMN 2.0)
    Zdarzenie początkowe kompensacji (Start Event Compensation) (BPMN 2.0)
    Zdarzenie początkowe warunku przerywające (Start Conditional Interrupting) (BPMN 2.0)
    Zdarzenie początkowe warunku nieprzerywające (Start Conditional NonInterrupting) (BPMN 2.0)
    Zdarzenie początkowe sygnału przerywające (Start Event Interrupting) (BPMN 2.0)
    Zdarzenie początkowe sygnału nieprzerywające (Start Signal NonInterrupting) (BPMN 2.0)
    Zdarzenie początkowe wielorakie przerywające (Start Multiple Interrupting) (BPMN 2.0)
    Zdarzenie początkowe wielorakie nieprzerywające (Start Multiple NonInterrupting) (BPMN 2.0)
    Zdarzenie początkowe wielorakie współbieżnie przerywające (Start Parallel Multiple Interrupting) (BPMN 2.0)
    Zdarzenie początkowe wielorakie współbieżnie nieprzerywające (Start Parallel Multiple NonInterrupting) (BPMN 2.0)
4.4.2.        Czynności choreograficzne (Choreography Activities) (BPMN 2.0)
4.4.2.1.        Zadania choreograficzne (ChoreographyTasks) (BPMN 2.0)
4.4.2.2.        Podproces choreograficzny (SubChoreography) (BPMN 2.0)
4.4.3.        Zdarzenia (Events)
4.4.3.1.        Zdarzenie początkowe (Start Event)
    Zdarzenie początkowe komunikatu (Start Message)
    Zdarzenie początkowe czasu (Start Timer)
    Zdarzenie początkowe warunku (Start Conditional, d. Start Event Rule)
    Zdarzenie początkowe sygnału (Start Signal)
    Zdarzenie początkowe wielorakie (Start Event Multiple)
    Zdarzenie początkowe współbieżne wielorakie (Start Parallel Multiple) (BPMN 2.0)
4.4.3.2.        Zdarzenie centralne (Intermediate Event)
    Zdarzenie centralne rzucające komunikatem (Intermediate Throw Message)
    Zdarzenie centralne przechwytujące komunikat (Intermediate Catch Message)
    Zdarzenie centralne czasu (Intermediate Timer)
    Zdarzenie centralne eskalacji nieprzerywające (Intermediate Escalation Non-Interrupting) (BPMN 2.0)
    Zdarzenie centralne eskalacji (Intermediate Escalation) (BPMN 2.0)
    Zdarzenie centralne anulowania (Intermediate Cancel)
    Zdarzenie centralne błędu (Intermediate Error)
    Zdarzenie centralne kompensacji przechwytujące (Intermediate Compensation Catch)
    Zdarzenie centralne kompensacji rzucające (Intermediate Compensation Throw)
    Zdarzenie centralne warunku (Intermediate Conditional, d. Intermediate Rule)
    Zdarzenie centralne rzucające odnośnik (Intermediate Throw Link)
    Zdarzenie centralne przechwytujące odnośnik (Intermediate Catch Event Link)
    Zdarzenie centralne rzucające sygnał (Intermediate Throw Event Signal)
    Zdarzenie centralne przechwytujące sygnał (Intermediate Catch Signal)
    Zdarzenie centralne wielorakie rzucające (Intermediate Throw Multiple)
    Zdarzenie centralne wielorakie przechwytujące (Intermediate Catch Multiple)
    Zdarzenie centralne współbieżne wielorakie (Intermediate Parallel Multiple) (BPMN 2.0)
4.4.3.3.        Zdarzenie końcowe (End Event)Zdarzenie końcowe komunikatu (End Event Message)
    Zdarzenie końcowe błędu (End Event Error)
    Zdarzenie końcowe eskalacji (End Event Escalation) (BPMN 2.0)
    Zdarzenie końcowe anulowania (End Event Cancel)
    Zdarzenie końcowe kompensacji (End Event Compensation)
    Zdarzenie końcowe sygnału (End Event Signal)
    Zdarzenie końcowe terminalne (End Event Terminate)
    Zdarzenie końcowe wielorakie (End Event Multiple)
4.4.4.        Bramki (Gateways)
4.4.4.1.        Bramka rozłączna (Exclusive Gateway)
4.4.4.2.        Bramka łącząca (Inclusive Gateway)
4.4.4.3.        Bramka współbieżna (Parallel Gateway)
4.4.4.4.        Bramka zdarzeniowa (Event-Based Gateway)
4.4.4.5.        Bramka zdarzeniowa współbieżna (Parallel Event-Based Gateway)
4.4.4.6.        Bramka złożona (Complex Gateway)
4.4.5.        Partycje, tory (Swimlanes, Pools, Lanes)
4.4.6.        Partnerzy (Participants) (BPMN 2.0)
4.4.7.        Obiekty (Data)
4.4.7.1.        Obiekty wejściowe (Data Inputs) (BPMN 2.0)
4.4.7.2.        Obiekty wyjściowe (Data Outputs) (BPMN 2.0)
4.4.7.3.        Magazyny danych (Data Stores) (BPMN 2.0)
4.4.8.        Przepływy (Connecting Objects)
4.4.8.1.        Przepływy kontroli (Sequence Flows)
4.4.8.2.        Przepływy komunikatów (Message Flows)
4.4.8.3.        Asocjacje (Associations)
4.4.8.4.        Asocjacje danych (Data Associations) (BPMN 2.0)
4.4.8.5.        Związek konwersacji (ConversationLink) (BPMN 2.0)
4.4.9.        Artefakty (Artifacts)
4.4.9.1.        Asocjacje (Associations)
4.4.9.2.        Grupy (Groups)
4.4.9.3.        Adnotacje (Text Annotations)
4.4.10.     Konwersacje (Conversations) (BPMN 2.0)
4.4.10.1.      Podkonwersacje (SubConversations) (BPMN 2.0)
4.4.11.     Komunikaty (Messages) (BPMN 2.0)
4.5.       Koncepcja żetonu
4.6.       BPMN 2.0
5.      Wzorce procesowe
5.1.       Wzorce podstawowe (Basic Control Patterns)
    Sekwencja (Sequence)
    Rozpływ równoległy (Parallel Split)
    Synchronizacja (Synchronization)
    Wybór wyłączny (Exclusive Choice)
    Proste złączenie (Simple Merge)
5.2.       Wzorce zaawansowane (Advanced Branching and Synchronization Patterns)
    Rozpływ wielokrotny (Multiple Choice)
    Synchroniczne złączenie (Synchronizing Merge)
    Wielokrotne złączenie (Multiple Merge)
    Dyskryminator (Discriminator)
    Ogranicznik wątków (N out of M Join)
5.3.       Wzorce strukturalne (Structural Patterns)
    Pętla powtarzalna (Arbitrary Cycles)
    Niejawne zakończenie (Implicit Termination)
5.4.       Wzorce instancyjne (Patterns Involving Multiple Instances)
    Instancje niezsynchronizowane (Multiple Instances without synchronization)
    Określona liczba instancji (Multiple Instances with a priori know design time knowledge)
    Instancje z określoną liczbą realizacji (Multiple Instances with a priori know runtime knowledge)
    Instancja bez określonej liczby realizacji (Multiple Instances with no a priori runtime knowledge)
5.5.       Wzorce oparte na stanach maszyny (State-based patterns)
    Opóźniony wybór (Deferred Choice)
    Współbieżne przetwarzanie z przeplotem (Interleaved Parallel Routing)
    Kamień milowy (Milestone)
5.6.       Wzorce anulowania (Cancellation Patterns)
    Zakończenie czynności (Cancel Activity)
    Zakończenie procesu (Cancel Case)

Załącznik A. Definicje procesu biznesowego
Załącznik B. Przykładowe modele
B.1. System EMCS - diagram współpracy, a diagram konwersacji
B.2. Walidacja zgłoszenia w systemie ECS – diagram procesu
B.3. Kalkulator taryfowy – diagram procesu
B.4. Wywóz towaru w systemie ECS – diagram choreografii
B.5. Wywóz towaru w systemie ECS – diagram procesuLiteratura


[2] Object Management Group, http://www.omg.org/
[3] Business Process Model and Notation (BPMN) Version 2.0, formal/2011-01-03, http://www.omg.org/spec/BPMN/2.0/PDF