3 Podstawowe obiekty BPMN

Efekty uczenia się: W2, W3, U1, U3 · Treści programowe: 5 · Czas: Nauka 40 min, Wyzwanie 50 min

3.1 Nauka

Cztery rodziny symboli

BPMN ma ponad sto rodzajów elementów, ale prawie wszystkie należą do czterech rodzin. Jeśli rozpoznasz rodzinę po kształcie, odczytasz każdy diagram, nawet gdy nie znasz szczegółów:

Kształt Rodzina Znaczenie
zdarzenie początkowe kółko zdarzenie (event) coś się dzieje: przychodzi pismo, mija termin
zadanie prostokąt z zaokrąglonymi rogami czynność (activity) ktoś albo coś wykonuje pracę
bramka wykluczająca romb bramka (gateway) ścieżki się rozdzielają albo łączą
przepływ sekwencji linia ze strzałką przepływ (flow) co następuje po czym

Do tego dochodzą baseny i linie (pools, lanes), czyli prostokąty, które mówią, kto wykonuje pracę, oraz dane i artefakty: dokumenty, rejestry i adnotacje. Baseny, linie i dane omówimy na spotkaniu 4. Dziś zajmujemy się czterema rodzinami z tabeli. Wystarczą do narysowania pierwszego pełnego modelu.

Jak czytać diagram w 30 sekund

Zanim zaczniesz rysować, naucz się czytać. Oto pięć kroków, które pozwalają szybko zrozumieć każdy diagram BPMN:

  1. Znajdź kółko z cienką linią. To początek procesu.
  2. Idź za strzałkami do kółek z grubą linią. To możliwe zakończenia. Przeczytaj ich nazwy, bo mówią, jakie wyniki może mieć proces.
  3. Przeczytaj nazwy prostokątów po drodze. To praca do wykonania.
  4. Przy każdym rombie przeczytaj pytanie i odpowiedzi na strzałkach.
  5. Spójrz na linie, czyli poziome pasy. Mówią, kto wykonuje kolejne kroki i ile razy sprawa przechodzi z rąk do rąk.

Przećwicz to na rysunku 3.1, zanim przeczytasz jego omówienie w dalszej części rozdziału.

Żeton: jak „wykonać” diagram w głowie

Specyfikacja BPMN opisuje przebieg procesu za pomocą żetonu (token). Wyobraź sobie pionek, który pojawia się na zdarzeniu początkowym i wędruje po strzałkach. Każde uruchomienie procesu, np. każde zamówienie czytelnika, to osobny żeton.

  • Na zdarzeniu początkowym powstaje żeton.
  • Czynność zatrzymuje żeton na czas wykonania pracy, a potem wypuszcza go dalej.
  • Bramka decyduje, którą strzałką lub którymi strzałkami żeton pójdzie dalej. Może też go zatrzymać, dopóki nie przyjdą żetony z innych ścieżek.
  • Na zdarzeniu końcowym żeton znika. Proces kończy się, gdy nie ma w nim już żadnego żetonu.

Przesuwanie żetonu palcem po diagramie to najlepszy sposób, żeby sprawdzić, czy model działa tak, jak chcesz. Jeśli żeton gdzieś utknie albo pojawi się dwa razy tam, gdzie powinien być raz, model ma błąd.

Zdarzenia: początek i koniec

Zdarzenie (event) to coś, co zachodzi, ale nie trwa. Nikt go nie wykonuje. Po prostu się dzieje. Dziś poznajemy dwa rodzaje zdarzeń, a zdarzenia pośrednie zostawiamy na spotkanie 5.

Zdarzenie początkowe (start event) to kółko z cienką linią. Każdy proces ma początek, więc każdy model ma zdarzenie początkowe. Nazwij je tym, co uruchamia proces: „Pismo wpłynęło”, „Potrzeba książki”. Do zdarzenia początkowego nie wchodzi żadna strzałka.

W środku kółka może być ikona wyzwalacza (trigger). Mówi ona, co dokładnie uruchamia proces:

Wygląd Wyzwalacz Kiedy używać Przykład
zdarzenie początkowe puste kółko brak (none) nie wiemy albo nie chcemy pokazywać, co uruchamia proces „Potrzeba książki”
zdarzenie początkowe: wiadomość koperta wiadomość (message) proces uruchamia wiadomość od kogoś z zewnątrz „Wniosek o kwerendę wpłynął”
zdarzenie początkowe: czas zegar czas (timer) proces rusza o określonej porze lub cyklicznie „Pierwszy dzień miesiąca”: comiesięczne zestawienie wypożyczeń

Zdarzenie końcowe (end event) to kółko z grubą linią. Każda ścieżka procesu kończy się zdarzeniem końcowym. Jeśli proces może zakończyć się na kilka sposobów, narysuj kilka zdarzeń końcowych i nazwij każde wynikiem: „Książka wypożyczona”, „Zamówienie odrzucone”. Nazwane końce są dla czytelnika najszybszą odpowiedzią na pytanie „czym ten proces może się skończyć?”. Ze zdarzenia końcowego nie wychodzi żadna strzałka.

Czynności: zadania

Czynność (activity) to praca wykonywana w procesie. Najmniejszą, niepodzielną czynnością jest zadanie (task). Nazwa zadania mówi, co jest robione i z czym: „Sprawdzenie katalogów”, „Rejestracja pisma”. W kursie używamy formy rzeczownikowej, takiej jak w tabelach kroków. Ważne, żeby w jednym modelu trzymać się jednej formy.

Ikona w lewym górnym rogu zadania mówi, jak wykonywana jest praca. Na poziomie opisowym wystarczą trzy rodzaje, a pełną listę poznasz w dodatku A:

Ikona Rodzaj zadania Kiedy Przykład
zadanie brak zadanie ogólne nie wiadomo albo nie jest ważne, jak praca jest wykonywana „Przygotowanie zestawienia”
zadanie użytkownika ludzik zadanie użytkownika (user task) człowiek pracuje w systemie informatycznym bibliotekarz wypełnia formularz w systemie bibliotecznym
zadanie usługowe zębatka zadanie usługowe (service task) system wykonuje pracę sam, bez udziału człowieka system wysyła powiadomienie e-mail
zadanie ręczne dłoń zadanie ręczne (manual task) człowiek pracuje bez systemu magazynier zdejmuje książkę z regału

Uważaj na słowo „ręcznie”. Zdanie „pracownik wprowadza dane ręcznie do systemu” opisuje zadanie użytkownika, bo „ręcznie” znaczy tu „nie automatycznie”. Zadanie ręczne to praca, przy której nie ma systemu w ogóle.

Zadanie ma zwykle jedno wejście i jedno wyjście. Jeśli z zadania wychodzą dwie strzałki bez bramki, żeton pójdzie obiema naraz. Jeśli do zadania wchodzą dwie strzałki, zadanie wykona się tyle razy, ile żetonów do niego dotrze. Specyfikacja to dopuszcza, ale model staje się trudny do czytania. Dlatego w kursie rozdzielamy i łączymy ścieżki zawsze bramkami.

Bramki: XOR i AND

Bramka (gateway) to romb. Bramka niczego nie wykonuje i niczego nie decyduje. Kieruje tylko żetonem na podstawie tego, co już wiadomo. Decyzję podejmuje zadanie przed bramką, np. „Sprawdzenie statusu egzemplarza” ustala, czy książka jest dostępna, a bramka tylko kieruje proces w odpowiednią stronę.

Każda bramka może pracować na dwa sposoby:

  • rozwidlenie (split): jedno wejście, kilka wyjść;
  • złączenie (join): kilka wejść, jedno wyjście.

Na poziomie opisowym używamy dwóch rodzajów bramek:

Znak Bramka Rozwidlenie Złączenie
bramka wykluczająca X albo pusty romb wykluczająca (exclusive, XOR) żeton idzie dokładnie jedną ścieżką przepuszcza każdy żeton, który przyjdzie
bramka równoległa + równoległa (parallel, AND) żeton dzieli się i idzie wszystkimi ścieżkami naraz czeka, aż przyjdą żetony ze wszystkich ścieżek

Reguły, których pilnuje walidator i każdy uważny czytelnik:

  • Rozwidlenie XOR nazwij pytaniem, a strzałki odpowiedziami: „Czy egzemplarz dostępny?”, strzałki „tak” i „nie”. Strzałka bez odpowiedzi to zagadka dla czytelnika (W021).
  • Rozwidlenie AND nie ma pytania ani warunków na strzałkach (E017). Wszystkie ścieżki ruszają zawsze.
  • Łącz tym samym typem, którym rozdzielasz (W051). Jeśli rozdzielisz AND, a złączysz XOR, złączenie przepuści każdy z żetonów osobno i dalsza część procesu wykona się kilka razy. Jeśli rozdzielisz XOR, a złączysz AND, złączenie będzie czekać na żeton, który nigdy nie przyjdzie, i proces utknie na zawsze.
  • Bramka z jednym wejściem i jednym wyjściem jest zbędna (W020). Usuń ją.

Kiedy używać którego rozwidlenia? Szukaj w opisie procesu charakterystycznych słów:

  • „jeśli… w przeciwnym razie”, „tak albo nie”, „w zależności od wyniku” → XOR;
  • „obie czynności zawsze”, „jednocześnie”, „niezależnie od siebie”, „w dowolnej kolejności” → AND.

AND nie oznacza, że czynności dzieją się dokładnie w tej samej sekundzie. Oznacza, że obie muszą się wykonać, a ich kolejność nie ma znaczenia.

Przepływ sekwencji

Przepływ sekwencji (sequence flow) to linia ciągła z pełnym grotem. Pokazuje kolejność kroków w jednym procesie. Może przechodzić między liniami tego samego basenu, bo linie to tylko role w jednej organizacji. Nie może wychodzić poza basen ani wchodzić do wnętrza podprocesu. Do tych ograniczeń wrócimy na spotkaniach 4 i 6.

Strzałka może mieć nazwę. Używamy jej prawie wyłącznie przy wyjściach z rozwidlenia XOR, gdzie nazwa jest odpowiedzią na pytanie bramki.

Przykład: zamówienie książki z magazynu

Rysunek 3.1 pokazuje zamówienie książki z magazynu biblioteki. Przeczytaj go metodą 30 sekund, a potem prześledź drogę żetonu.

Zamówienie książki z magazynu: rozwidlenie XOR z dwoma nazwanymi końcami oraz rozwidlenie i złączenie AND.

Rysunek 3.1: Zamówienie książki z magazynu: rozwidlenie XOR z dwoma nazwanymi końcami oraz rozwidlenie i złączenie AND.

Pobierz model (.bpmn)

Droga żetonu wygląda tak:

  1. Czytelnik odczuwa potrzebę książki i składa zamówienie w systemie (zadanie użytkownika).
  2. System sam sprawdza status egzemplarza (zadanie usługowe). Wynik tego sprawdzenia decyduje o drodze na bramce XOR.
  3. Jeśli egzemplarz jest niedostępny, system wysyła powiadomienie i proces kończy się zdarzeniem „Zamówienie odrzucone”.
  4. Jeśli jest dostępny, żeton trafia na rozwidlenie AND i dzieli się na dwa. Jeden idzie do magazyniera, który zdejmuje książkę z regału (zadanie ręczne). Drugi powoduje, że system powiadamia czytelnika o terminie odbioru.
  5. Złączenie AND czeka na oba żetony. Bibliotekarz wydaje książkę dopiero wtedy, gdy jest ona przyniesiona z magazynu i czytelnik został powiadomiony.
  6. Proces kończy się zdarzeniem „Książka wypożyczona”.

Zwróć uwagę, że bramki AND nie mają nazw. Rozwidlenie AND nie zadaje pytania, więc nazwa nie jest potrzebna. Model ma też dwa nazwane końce, po jednym dla każdego wyniku.

Przykład z błędami: rejestracja pisma

Rysunek 3.2 przedstawia próbę zamodelowania rejestracji pisma w kancelarii uczelni. Model otwiera się w programie i wygląda porządnie, ale zawiera trzy błędy z tego rozdziału.

Rejestracja pisma w kancelarii: model z trzema błędami do znalezienia.

Rysunek 3.2: Rejestracja pisma w kancelarii: model z trzema błędami do znalezienia.

Pobierz model (.bpmn)

Znajdź błędy, przesuwając żeton po diagramie. Wskazówki: sprawdź, ile razy wykona się „Dekretacja pisma”; przeczytaj odpowiedzi na wszystkich wyjściach z bramki pytającej; sprawdź, czy każda ścieżka ma koniec. Omówimy je na zajęciach.

Sześć zasad na początek

Pełna lista zasad dobrego modelu jest w dodatku A. Na początek wystarczy sześć:

  1. Jeden start i nazwane końce dla każdego możliwego wyniku.
  2. Zadania nazywaj czynnością i jej przedmiotem.
  3. Rozwidlenie XOR to pytanie, a strzałki to odpowiedzi.
  4. Łącz tym samym typem bramki, którym rozdzielasz.
  5. Rozdzielaj i łącz ścieżki bramkami, a nie zadaniami.
  6. Model czyta się od lewej do prawej, a strzałki nie przecinają się bez potrzeby.

Kolejność pracy nad modelem

Początkujący często zaczynają rysować od pierwszego kroku i dorysowują kolejne, aż model się „rozjedzie”. Lepsza jest kolejność od ogółu do szczegółu:

  1. Narysuj start i wszystkie końce, które znasz z tabeli kroków.
  2. Narysuj ścieżkę szczęśliwą (happy path), czyli przebieg, w którym wszystko idzie dobrze.
  3. Dodaj bramki i ścieżki alternatywne, każdą doprowadź do końca albo do złączenia.
  4. Na końcu rozłóż kroki do linii według kolumny „Kto wykonuje?”.
  5. Przesuń żeton po każdej ścieżce i sprawdź, czy nigdzie nie utknie.

3.2 Wyzwanie

Polecenie: narysuj pierwszy model BPMN procesu z tabeli kroków: najpierw na papierze, potem w przeglądarce w demo.bpmn.io.

Dane wejściowe: Twoja tabela kroków ze spotkań 1 i 2. Jeśli jej nie masz albo Twój proces nie ma rozgałęzień, użyj tabeli „Rejestracja pisma w kancelarii” poniżej.

Wymagania:

  • start z nazwą i co najmniej dwa nazwane końce;
  • co najmniej jedno rozwidlenie XOR z pytaniem i odpowiedziami;
  • jeśli w procesie są czynności wykonywane „zawsze, obie, w dowolnej kolejności”, para bramek AND;
  • rodzaje zadań (ogólne, użytkownika, usługowe, ręczne) zgodne z opisem kroków;
  • linie według kolumny „Kto wykonuje?”.

Praca:

  1. Papier (15 minut). Narysuj model ołówkiem, w kolejności podanej na końcu części Nauka. Pokaż go osobie obok i przesuńcie razem żeton po każdej ścieżce.
  2. demo.bpmn.io (25 minut). Otwórz stronę demo.bpmn.io i wybierz utworzenie nowego diagramu. Elementy przeciągasz z palety po lewej stronie. Po kliknięciu elementu obok niego pojawia się menu kontekstowe. Ikona klucza zmienia typ elementu (np. zadanie na zadanie użytkownika, bramkę na równoległą), a pozostałe ikony dodają następny element z połączeniem. Basen z liniami utworzysz ikoną basenu w palecie, a kolejne linie dodasz z menu kontekstowego basenu. Nazwę wpisujesz po dwukrotnym kliknięciu elementu.
  3. Zapis (5 minut). Przyciskami w lewym dolnym rogu zapisz model jako plik BPMN (proces-03.bpmn) i jako obraz SVG (proces-03.svg).

Rezultat: pliki proces-03.bpmn i proces-03.svg. Plik .bpmn otworzysz na następnym spotkaniu w Camunda Modeler i rozbudujesz.

Czas: 50 minut, w tym 5 minut na pokazanie dwóch modeli na forum grupy.

Tabela zapasowa: rejestracja pisma w kancelarii

Nr kroku Nr kolejnego kroku Nazwa kroku Wariant Opis kroku Kto wykonuje? Dokumenty
1 2 Pismo wpłynęło Do kancelarii uczelni wpływa pismo w formie papierowej. Pracownik kancelarii Pismo [wpływające]
2 3 Rejestracja pisma w EZD Pracownik kancelarii rejestruje pismo w systemie EZD i nadaje mu numer w rejestrze przesyłek wpływających. Pracownik kancelarii Pismo [zarejestrowane]; Rejestr przesyłek
3 4 Przygotowanie pisma Obie czynności (4 i 5) wykonuje się zawsze, niezależnie od siebie i w dowolnej kolejności.
5
4 6 Skanowanie pisma Pracownik skanuje pismo i dołącza skan do rejestracji w EZD. Pracownik kancelarii Skan pisma
5 6 Powiadomienie adresata pisma Pracownik wysyła z EZD powiadomienie do jednostki, do której skierowano pismo. Pracownik kancelarii
6 7 Synchronizacja Proces idzie dalej dopiero wtedy, gdy zakończą się oba kroki 4 i 5.
7 8 Dekretacja pisma Kierownik jednostki wskazuje w EZD osobę, która poprowadzi sprawę. Kierownik jednostki Pismo [zadekretowane]
8 9 Czy pismo wymaga odpowiedzi? T Tak, nadawca oczekuje odpowiedzi.
11 N Nie, pismo ma charakter informacyjny.
9 10 Przygotowanie odpowiedzi Kierownik jednostki przygotowuje w EZD odpowiedź i podpisuje ją elektronicznie. Kierownik jednostki Odpowiedź [podpisana]
10 Koniec — odpowiedź wysłana
11 12 Przekazanie pisma do akt Kierownik jednostki włącza pismo do akt sprawy. Kierownik jednostki Pismo [w aktach sprawy]
12 Koniec — pismo w aktach

Na co zwrócić uwagę

  • Wiersze bez osoby w kolumnie „Kto wykonuje?” (np. 3, 6, 8) to zwykle bramki, a nie zadania.
  • W demo.bpmn.io łatwo połączyć strzałką element w jednej linii z elementem w innym basenie. Sprawdź, czy wszystkie strzałki w Twoim modelu są ciągłe.
  • Porównaj swój model z rysunkiem 3.2. Jeśli korzystasz z tabeli zapasowej, Twój model nie może powtórzyć żadnego z trzech błędów.

3.3 Pytania sprawdzające

  1. Wymień cztery rodziny symboli BPMN i rozpoznawczy kształt każdej z nich.
  2. Czym różni się zdarzenie od czynności? Czy „Mija termin zwrotu” to zdarzenie, czy czynność?
  3. Jakie zadanie narysujesz dla kroku „Archiwista przenosi akta z magazynu do pracowni”, a jakie dla „System archiwalny generuje sygnaturę”?
  4. Prześledź żeton na rysunku 3.1. Ile żetonów jest w procesie w chwili, gdy magazynier zdejmuje książkę z regału?
  5. Co się stanie, jeśli ścieżki rozdzielone bramką XOR złączysz bramką AND?
  6. Dlaczego rozwidlenie AND nie ma nazwy w postaci pytania?