Modelowanie procesow biznesowych z wykorzystaniem UML i BPMN
Copyright Notice
Copyright © 2004-2023 by NobleProg Limited All rights reserved.
This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise.
Definicja procesu biznesowego⌘
- BPMN 2.0:
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
- BMM:
Business processes realize courses of action. Courses of action are undertaken to ensure that the enterprise makes progress towards one or more of its goals.
- Wikipedia:
Seria powiązanych ze sobą działań lub zadań, które rozwiązują określony problem lub prowadzą do osiągnięcia określonego efektu.
Jak modelować procesy biznesowe?⌘
- UML (Unified Modeling Language)
- graficzny język do modelowania i specyfikacji obiektowej wykorzystywany w inżynierii oprogramowania
- umożliwia specyfikację, wizualizację, projektowanie i dokumentowanie systemów informatycznych
- BPMN (Business Process Model and Notation)
- graficzna notacją służąca do opisywania procesów biznesowych
UML i BPMN to standardy OMG (Object Management Group)
UML⌘
Diagram przypadków użycia⌘
- umożliwia modelowanie funkcjonalności systemu
- jest przeglądem funkcji udostępnianych przez system
Aktor⌘
- rola spoza modelowanego systemu będąca w interakcji opisanej przez przypadek użycia
- nazwa aktora jest rzeczownikiem w liczbie pojedynczej
Przypadek użycia⌘
- spójna jednostka funkcjonalności dostarczonej przez system
- ma znaczenie jako całość dla aktora będącego w interakcji z przypadkiem użycia
Asocjacja⌘
- relacja pomiędzy aktorem a przypadkiem użycia
- określa dwukierunkową komunikację
- może występować w formie skierowanej, w celu wskazania inicjatora interakcji
Include⌘
- przypadek bazowy włącza inny przypadek
- relacja jest obligatoryjna
- bazowy przypadek użycia jest niekompletny bez przypadku włączanego
Extend⌘
- bazowy przypadek użycia może być rozszerzony przez inny przypadek w pewnych okolicznościach i określonych miejscach
Dziedziczenie⌘
- przypadek specjalizowany dziedziczy wszystkie cechy przypadku ogólnego
Modelowanie⌘
Można wyróżnić dwie kategorie modelowania
- Biznesowe - odwzorowanie i udokumentowanie procesów biznesowych
- Systemowe - skupia się na tworzeniu systemu informatycznego (software, sprzęt, ...)
Modelowanie biznesowe⌘
Na model biznesowy najczęściej składają się:
- Business Use Case Model
- określa, co dostarcza proces biznesowy (what)
- Business Object Model
- określa, jak jest to dostarczane (how)
- wykorzystywane diagramy:
- Business Class Diagram
- (Business) Activity Diagram
- Business Sequence Diagram
Biznesowy diagram przypadków użycia⌘
- Wprowadza dodatkowe stereotypy stosowane w modelowaniu biznesowym.
- Na pewnym etapie będzie przekształcony w model systemowy.
Aktor biznesowy⌘
- Rola pełniona przez użytkownika (niekoniecznie człowieka) działającego w obrębie organizacji.
- Można korzystać z notacji często występującej w modelowaniu biznesowym, która nie jest częścią UML.
Worker⌘
Pracownik pełniący rolę (lub role) w procesie biznesowym.
Case Worker⌘
Obsługuje proces biznesowy i jest w bezpośredniej interakcji z aktorami biznesowymi.
Internal Worker⌘
Pracownik, który jest w interakcji z innymi pracownikami oraz elementami wewnątrz systemu.
Entity⌘
Pasywny, fizyczny byt przetwarzany przez pracowników.
Operacje obejmują
- dostęp
- nadzór
- tworzenie
- kasowanie, ...
Business Use Case Realization⌘
Opisuje, jak konkretny biznesowy przypadek użycia jest realizowany z wykorzystaniem instancji współpracujących obiektów biznesowych (Business Workres, Business Entities)
Przykład⌘
Activity Diagram⌘
Diagram aktywności/czynności ma zastoswoanie w
- modelowaniu procesów biznesowych
- doprecyzowaniu przypadków użycia (scenariuszy)
- modelowaniu algorytmów
- ...
Activity, Action⌘
- Activity - Czynność to zachowanie złożone z logicznie uporządkowanych podczynności, akcji, obiektów.
- Action - Akcja to atomowy krok danego zachowania
Control Flow⌘
- Przepływ sterowania
A control flow is an edge that starts an activity node after the previous one is finished.
Initial, Final⌘
- Punkt rozpoczęcia przepływu sterowania
- Punkt zatrzymania wszystkich przepływów sterownia na diagramie czynności
- Punkt, w którym następuje zatrzymanie pojedynczego przepływu – bez wpływu na pozostałe przepływy
Decision⌘
- Węzeł decyzyjny - jeden lub więcej wychodzących przepływów sterownia z których tylko jeden może zostać zrealizowany
- Wybór przepływu sterowania następuje na podstawie warunku
- Warunki muszą być wzajemnie rozłączne
Merge⌘
- Złączenie łączy klika przepływów wejściowych w jeden przepływ wyjściowy
- Złączenie następuje asynchronicznie
Fork, Join⌘
- Fork – jeden wejściowy przepływ sterowania, wiele wyjściowych
- Join – wiele wejściowych przepływów sterowania, jeden wyjściowy
- Wszystkie strzałki muszą być jednego typu
Business Class Diagram⌘
- Biznesowy diagram klas przedstawia biznesowe klasy przechowujące
- Może również wskazywać relację pracowników w kontekście tych bytów, jak i względem siebie
Literatura⌘
- UML Extension for Business Modeling, version 1.1, 1 September 1997
- Effective Business Modeling with UML: Describing Business Use Cases and Realizations, Pan-Wei Ng, Rational Software
- http://www.sparxsystems.com.au/business_process_model.html
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
Process design best practices⌘
- Nie ma modeli uniwersalnych ani idealnych!
All models are wrong, but some are useful
- Nie twórz szyfru - diagram powinien ułatwiać komunikację, a nie wprowadzać w zakłopotanie.
- Pamiętaj o czytelności i przejrzystości - twórz schludne diagramy.
- Używaj jawnie bramek.
Literatura⌘
- Business Process Model and Notation (BPMN), Version 2.0, Object Management Group
- BPMN 2.0 by Example, Version 1.0 (non-normative), June 2010, Object Management Group
Programy⌘
- Signavio Editor
- Intalio Designer
- Bonita Open Solution (desktop)
- jBPM
- Yaoqiang BPMN Editor