Modelowanie procesow biznesowych z wykorzystaniem UML i BPMN

From Training Material
Revision as of 14:42, 13 April 2018 by Fstachecki (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


title
Modelowanie procesów biznesowych
z wykorzystaniem UML i BPMN
author


NobleProg


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)

http://www.omg.org/spec/

UML⌘

Diagram przypadków użycia⌘

UseCaseDiagram.png

  • umożliwia modelowanie funkcjonalności systemu
  • jest przeglądem funkcji udostępnianych przez system

Aktor⌘

Actor.png

  • rola spoza modelowanego systemu będąca w interakcji opisanej przez przypadek użycia
  • nazwa aktora jest rzeczownikiem w liczbie pojedynczej

Przypadek użycia⌘

UseCase.png

  • 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⌘

ActorUseCaseAssociation.png

  • 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⌘

Include-use-case.png © uml-diagrams.org

  • przypadek bazowy włącza inny przypadek
  • relacja jest obligatoryjna
  • bazowy przypadek użycia jest niekompletny bez przypadku włączanego

Include.png

Extend⌘

Extend.png

  • bazowy przypadek użycia może być rozszerzony przez inny przypadek w pewnych okolicznościach i określonych miejscach

Dziedziczenie⌘

Generalization.png

  • 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⌘

BusinessActorUseCase.png

  • Wprowadza dodatkowe stereotypy stosowane w modelowaniu biznesowym.
  • Na pewnym etapie będzie przekształcony w model systemowy.

Aktor biznesowy⌘

BusinessActor.png

  • 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⌘

BusinessActorWorker.png

Pracownik pełniący rolę (lub role) w procesie biznesowym.

Case Worker⌘

BusinessActorCaseWorker.png

Obsługuje proces biznesowy i jest w bezpośredniej interakcji z aktorami biznesowymi.

Internal Worker⌘

BusinessActorInternalWorker.png

Pracownik, który jest w interakcji z innymi pracownikami oraz elementami wewnątrz systemu.

Entity⌘

BusinessActorEntity.png

Pasywny, fizyczny byt przetwarzany przez pracowników.

Operacje obejmują

  • dostęp
  • nadzór
  • tworzenie
  • kasowanie, ...

Business Use Case Realization⌘

BusinessUseCaseRealization.png

Opisuje, jak konkretny biznesowy przypadek użycia jest realizowany z wykorzystaniem instancji współpracujących obiektów biznesowych (Business Workres, Business Entities)

Przykład⌘

BusinessUseCaseDiagramExample.png

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⌘

ActivityAction.png

  • 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⌘

ActivityControlFlow.png

  • Przepływ sterowania
A control flow is an edge that starts an activity node 
after the previous one is finished.

Initial, Final⌘

ActivityInitialFinalNodes.png

  • 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⌘

ActivityDecision.png

  • 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⌘

ActivityMerge.png

  • Złączenie łączy klika przepływów wejściowych w jeden przepływ wyjściowy
  • Złączenie następuje asynchronicznie

Fork, Join⌘

ActivityForkJoin.png

  • 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⌘

BusinessClassDiagramExample.png

  • 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⌘


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
  • Call Activity (Czynność wywoływana)
    • umożliwia wywoływanie zadań lub czynności na diagramie

Rodzaje Podprocesów⌘

Figure10-25-sub-process-object-collapsed.pngFigure10-26-sub-process-object-expanded.png

Figure10-27-expanded-sub-process-used-as-parallel-box.png


Sequence Flow⌘

BPMNSequenceFlow.png

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⌘

BPMNFlowSplit.png

  • 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⌘

BPMNBasicSymbols.png

Gateways ⌘

Figure10-103-different-types-of-gateways.png
  • 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 ⌘

BPMNExclusiveGateway.png

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⌘

Figure10-105-exclusive-data-based-decision-gateway-example-without-internal-indicator.png albo Figure10-106-data-based-exclusive-decision-gateway-example-with-internal-indicaor.png

Parallel Gateway ⌘

BPMNParallelGateway.png

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⌘

Element fork multiple outgoing.png albo BPMNParallelGatewayExample.png

Parallel Gateway Example 2⌘

Element join.png

Gateway Zadania⌘

  • Zadanie 1: Lotnisko
  • Demonstracja - rozgałęzianie przepływu

BPMNSplit.png

    • 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 ⌘

BPMNInclusiveGateway.png

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⌘

Figure10-108-example-using-inclsive-gateway.png

Inclusive Gateway Example 2⌘

BPMNInclusiveGatewayExample.png

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ń:
    1. Start Events - start procesu
    2. Intermediate Events - używany pomiędzy początkiem i końcem procesu
    3. End Events - zakończenie procesu

BPMNThreeTypesOfEvents.png

Events Example⌘

BMPNEventsExample.png

BPMNIntermediateEventExample.png

Events Zadania⌘

  • Zadanie 1: Zamówienie

Pool and Participant⌘

BPMNPoolLane.png

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 ⌘

BPMNMessageFlow.png

  • 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 ⌘

BPMNMessageEvents.png

Występują cztery podstawowe typy zdarzeń związane z komunikatami

Message Events Example⌘

BPMNMessageFlowsExample.png

Collaboration Zadania⌘

  • Zadanie 1: Zapytanie o towar
  • Zadanie 2: Rezerwowania noclegu
  • Zadanie 3: Skarga

Artifacts ⌘

Artefakty dostarczają dodatkowych informacji na temat procesu

  1. Element group.pngGroup (Grupa)
  2. Text annotations.pngText Annotation (Adnotacja tekstowa)

Group ⌘

BPMNGroup.png

  • 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 ⌘

Text Annotation.png

  • 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 ⌘

BPMNTypesOfTasks.png

Rodzaje zadań określają typ wykonywanej czynności

Receive Task ⌘

Figure10-15-receive-task-object.png

  • Oczekuje na komunikat od zewnętrznego uczestnika (Participant)
  • Kiedy komunikat zostanie odebrany, zadanie jest wykonane

Figure10-16-receive-task-object-that-instantiates-process.png

  • Szczególny przypadek Receive Taks - rozpoczyna proces
  • NIE MOŻE posiadać żadnych wejściowych przepływów (Sequence Flow)

Send Task ⌘

BPMNSendTask.png

  • Wysła komunikat do zewnętrznego uczestnika
  • Po wysłaniu komunikatu zadanie jest ukończone

Service Task ⌘

BPMNServiceTask.png

  • Zadanie wykorzystuje pewien rodzaj usługi (np. Web Service)

User Task ⌘

Figure10-17-user-task-object.png

  • 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 ⌘

Figure10-18-manual-task-object.png

  • Wykonywany przez człowieka bez wsparcia ze strony systemu komputerowego
  • Przykład:
    • Technik instaluje telefon w mieszkaniu klienta

Business Rule Task ⌘

Figure10-19-business-rule-task-object.png

  • Zapewnia mechanizm dostarczenia danych wejściowych do silnika reguł biznesowych oraz obsługi wyników

Script Task ⌘

Figure10-20-script-task-object.png

  • 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⌘

BPMNTimerExample.png

Timer Example 2⌘

BPMNIntermediateTimerExample.png

BPMNIntermediateTimerNonInteruptingExample.png

Interrupting vs. Non-Interrupting⌘

BPMNInterruptingVSNonInterrupting.png

Conditional Events ⌘

BPMNConditionalEvent.png

  • Reaguje na zmianę warunków biznesowych
  • Przykłady: temperatura poniżej 20°C, wzrost liczby zapytań o 10%

BPMNConditionalEventExample.png

Event-Based Exclusive Gateway⌘

Element event based multiple intermediate gateway.png

  • 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)

Figure10-116-event-based-gateway-example-using-message-intermidate-events.png lub Figure10-117-event-based-gateway-example-using-receive-tasks.png

Event-Based Gateway Starts a Process⌘

BPMNEventBasedGatewayStartsProcess.png

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⌘