Modelowanie procesów biznesowych – BPMN cz. I
Modelowanie procesów biznesowych – BPMN cz. I
Modelowanie procesów biznesowych – BPMN cz. I
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Plan wykładu• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład2
Literatura*• http://www.omg.org/spec/<strong>BPMN</strong>/2.0/ <strong>–</strong> witryna organizacjiodpowiedzialnej m.in. za aktualną wersję <strong>BPMN</strong>• Bruce Silver: <strong>BPMN</strong> Method and Style• Thomas Allwayer: <strong>BPMN</strong> 2.0• Marek Piotrowski: Notacja modelowania <strong>procesów</strong> <strong>biznesowych</strong>• Szymon Drejewi<strong>cz</strong>: Zrozumieć <strong>BPMN</strong>• http://www.mgx.com.pl/pdf/<strong>BPMN</strong>2_0_Poster_PL.pdf*w prezentacji wykorzystano przykłady z wyżej wymienionych pozycji3
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład4
Pojęcie procesu• Proces w językach programowania• Procesy w naukach inżynierskich (procesychemi<strong>cz</strong>ne, procesy sterowania w automatyce)• Produkcja oprogramowania• Procesy biznesowe (zarządzanie, informatyka)5
Definicje procesubiznesowego (1)• Proces biznesowy jest to logi<strong>cz</strong>na organizacja ludzi, materiałów,energii, wyposażenia i procedur w działalności zawodowejprzezna<strong>cz</strong>ony do uzyskania określonego efektu końcowego (Pall,1987, Zarządzanie)• Proces biznesowy jest zdefiniowany jako łańcuch działań, którychostate<strong>cz</strong>nym celem jest produkcja konkretnej wartości wyjściowejdla konkretnego klienta lub rynku (Davenport, 1993, Ekonomia)• Proces biznesowy jest zbiorem <strong>cz</strong>ynności, ma jeden lub więcejrodzajów wejść i tworzy wartość wyjściową dla klienta. Procesbiznesowy posiada swój cel, a oddziałują na niego zdarzeniazachodzące w świecie zewnętrznym lub w innych procesach(Hammer and Champy, 1993, Nauki inżynierskie)6
Procesy biznesowe• Określony zbiór <strong>cz</strong>ynności <strong>biznesowych</strong>, które stanowiąniezbędne kroki w celu osiągnięcia celu biznesowego.Obejmuje on przepływ i użycie informacji oraz zasobów(OMG, 2011)• Proces biznesowy jest to zbiór powiązanych procedur lubdziałań, które wspólnie zapewniają osiągnięcie celubiznesowego lub celu polityki, zwykle w ramach strukturyorganizacyjnej definiującej funkcjonalność ról i zależnościpomiędzy nimi (WfMC, 1999)• Proces biznesowy to seria powiązanych ze sobą działań lubzadań, które rozwiązują określony problem lub prowadzą doosiągnięcia określonego efektu (Wikipedia, 2012)7
Dla<strong>cz</strong>ego warto modelowaćprocesy biznesowe? Odpowiedzialność za zadania (co kto robi) Alokacja zasobów (jak przypisać zadania) Związki (kto/co z kim/<strong>cz</strong>ym się komunikuje) Przepływy informacji (skąd biorą się dokumenty i gdzie trafiają) Ścieżki kryty<strong>cz</strong>ne (gdzie mogą pojawić się problemy) Optymalizacja <strong>procesów</strong> (jak zwiększyć produktywność, obniżyć, kosztyprzyśpieszyć proces?) Automatyzacja (które <strong>cz</strong>ynności można zautomatyzować)8
Trosze<strong>cz</strong>kę historii…• 2001 <strong>–</strong> opracowanie BPML przez organizację BPMI• 2004 <strong>–</strong> przedłożenie <strong>BPMN</strong> do akceptacji przez OMG• 2006 <strong>–</strong> akceptacja <strong>BPMN</strong> przez OMG• 2011 <strong>–</strong> wersja 2.010
<strong>BPMN</strong> vs. diagramy<strong>cz</strong>ynności<strong>BPMN</strong>Diagramy <strong>cz</strong>ynności<strong>–</strong> projektowany dla„ludzi biznesu”<strong>–</strong> <strong>cz</strong>ytelny i zrozumiałydla <strong>cz</strong>ytelnika<strong>–</strong> duża li<strong>cz</strong>baelementów<strong>–</strong> łatwość modelowania<strong>–</strong> projektowane dlainformatyków<strong>–</strong> uniwersalnośćkonstrukcji<strong>–</strong> minimalna li<strong>cz</strong>baelementów<strong>–</strong> trudniejszy wmodelowaniu11
Poziomy modelowania w<strong>BPMN</strong>Model poglądowy ogólny zarys procesu biznesowego, bez sz<strong>cz</strong>egółów takich jak typy zadań, parametrybramek, obiektów danych, rozwiniętych pod<strong>procesów</strong>; służy po to, by szybkozorientować się z <strong>cz</strong>ym mamy do <strong>cz</strong>ynienia?Model anality<strong>cz</strong>ny Dodane sz<strong>cz</strong>egóły zadań, parametry bramek, wyspecyfikowane obiekty,usz<strong>cz</strong>egółowiona komunikacja miedzy u<strong>cz</strong>estnikami; służy m.in. do oceny rozmiaruprac konie<strong>cz</strong>nych do wdrożeniaModel wykonywalny precyzyjnie opisuje proces, zadania, wszystkie używane dane i konstrukcje orazmetody komunikacji; służy do wdrożenia na silniku <strong>procesów</strong>12
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład13
BramkiSłużą do sterowania przebiegiem procesuSterownie przepływem polega rozgałęzieniu procesu naścieżki alternatywne, równoległe lub funkcjonujące wedługprakty<strong>cz</strong>nie dowolnej reguły oraz na łą<strong>cz</strong>eniu tych ścieżekZ każdej bramki może dochodzić wychodzić wieleprzepływów sekwencji<strong>BPMN</strong> dopusz<strong>cz</strong>a tzw. bramki zdarzeniowe (sterowanezdarzeniami)14
Bramka XOR (decyzyjna,wyklu<strong>cz</strong>ająca) Bramka XOR (decyzyjna) służy do wybrania tylko jednej z wielu ścieżek Wybór dokonywany jest na podstawie warunku Wybierana jest ścieżka dla której warunek jest prawdziwy Na projektancie leży obowiązek zadbania, żeby warunki nie zachodziły nasiebie i pokrywały całą przestrzeń wartości Jest to naj<strong>cz</strong>ęściej stosowana bramka Jej działanie odpowiada konstrukcji programisty<strong>cz</strong>nej if-then-else Bramka może posiadać ścieżki warunkowe i ścieżkę domyślną(wykonywaną wtedy, gdy żadna z alternatyw nie jest prawdziwa)15
Bramka XOR - przykładPrzepływdomyślnyBramka XOR• Jeśli zlecenie jest poprawne i kwota > 1000 zlecenie zostanie przekazane odBOK• Jeśli zlecenie zawiera błędy, zostanie odrzucone• W pozostałych przypadkach zlecenie będzie przetwarzane (przepływdomyślny)16
Bramka równoległa• Bramka równoległa rozdziela proces na dwie lub więcej ścieżekwykonywanych równolegle• Każde z zadań na ścieżkach równoległych zostanie uruchomione• Równoległość w <strong>BPMN</strong> ozna<strong>cz</strong>a, że zadania mogą być wykonywane wtym samym <strong>cz</strong>asie, głównie jednak chodzi o to, że zadania sąwykonywane niezależnie od siebie• Bramka równoległa służy również do synchronizacji niezależnychprzebiegów17
Bramka Równoległa <strong>–</strong>przykład Podróż jest możliwa tylko wtedy, kiedy dokonamy rezerwacjisamolotu i rezerwacji hotelu Obydwie <strong>cz</strong>ynności musza być wykonane, ich kolejność niema jednak zna<strong>cz</strong>enia• Obydwa zadania będą wykonane (niezależnie)• Proces zakoń<strong>cz</strong>y się tylko wtedy, gdy skoń<strong>cz</strong>ą się obydwazadania18
Bramka OR• Jako bramka rozdzielająca sprawdza warunki na każdej zwychodzących ścieżek i uruchamia te z nich na których warunek jestprawdziwy• Jeśli występuje ścieżka domyślna, wów<strong>cz</strong>as jest ona uruchamiana tylkowtedy, gdy żadna z pozostałych nie została uruchomiona• Może funkcjonować jako bramka XOR lub równoległa (zależy odwyrażenia na ścieżkach wyjściowych)• Jako bramka scalająca działa „inteligentnie” i synchronizuje tylko teprzebiegi, które zostały odpalone na odpowiadającej jej bramcerozdzielającej19
Bramka Or <strong>–</strong> przykładKlient podjeżdża na stację benzynową celem zatankowaniasamochodu (obowiązkowe)W trakcie tankowanie może uzupełnić płyn do spryskiwa<strong>cz</strong>a, możeteż umyć szyby• Możliwe jest realizacja następujących zbiorów zadań:<strong>–</strong> Samochód jest tankowany<strong>–</strong> Samochód jest tankowany, szyby są myte<strong>–</strong> Samochód jest tankowany, płyn jest uzupełniany<strong>–</strong> Samochód jest tankowany, szyby są myte, płyn jest uzupełniany20
Bramka złożona• Bramka złożona jako jedyna posiada własne wyrażenieokreślające zachowanie• Pozostałe bramki wykorzystują wyrażenia zdefiniowane naprzebiegach• Bramka złożona przy rozwidleniu przepływu zachowuje siępodobnie jak w bramka OR• Bramka złożona przy scalaniu przebiegów posiadamożliwość weryfikacji warunku na bramce21
Bramka złożona <strong>–</strong> przykładPracownicy dostali polecenie wyszukania pewnych informacjiInformacje mogą być wyszukiwane w Internecie lub biblioteceNależy rozpo<strong>cz</strong>ąć poszukiwania w obydwu źródłach i zakoń<strong>cz</strong>yć,kiedy zostanie znaleziona potrzebna informacja• Rozpo<strong>cz</strong>ęte zostaną dwa zadania: wyszukiwanie w Internecie iwyszukiwanie w bibliotece• Proces zakoń<strong>cz</strong>y się jeśli przynajmniej jedno z równoległych zadańzostanie zakoń<strong>cz</strong>one22
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład23
Zdarzenia• Zdarzenie ozna<strong>cz</strong>a wystąpienie pewnej sytuacji w przebieguprocesu biznesowego, istotnej z punktu widzenia tegoprocesu• Zdarzenie może ozna<strong>cz</strong>ać odebranie lub wysłaniekomunikatu, sygnału, nadejście pewnego <strong>cz</strong>asu• Zdarzenia mogą rozpo<strong>cz</strong>ynać, koń<strong>cz</strong>yć, przerywać proces• Zdarzenia umożliwiają modelowanie takich elementów jak:<strong>–</strong> Komunikacja<strong>–</strong> Transakcje<strong>–</strong> Wyjątki<strong>–</strong> Kompensacje24
Rodzaje zdarzeń• Po<strong>cz</strong>ątkowe <strong>–</strong> ozna<strong>cz</strong>a rozpo<strong>cz</strong>ęcieprocesu lub podprocesu• Pośrednie <strong>–</strong> może pojawić się jako krokw procesie• Końcowe <strong>–</strong> ozna<strong>cz</strong>a zakoń<strong>cz</strong>enie ścieżkiprocesu25
Zdarzenia po<strong>cz</strong>ątkowe• Istnieje 7 rodzajów zdarzeń po<strong>cz</strong>ątkowych• Każde z tych zdarzeń reprezentuje inny sposób iokoli<strong>cz</strong>ności w jakich uruchamiany jest proces• Zdarzenia po<strong>cz</strong>ątkowe mogą posiadać tylkoprzepływy wychodzące• Zdarzenia po<strong>cz</strong>ątkowe są opcjonalne• Proces może posiadać wiele zdarzeńpo<strong>cz</strong>ątkowych26
Nieokreślone zdarzeniepo<strong>cz</strong>ątkowe• Nieokreślonego zdarzenia po<strong>cz</strong>ątkowego używa się w sytuacji, gdy proces ma rozpo<strong>cz</strong>ąćwewnętrzny u<strong>cz</strong>estnik• Każdy proces który w pewnych warunkach będzie funkcjonował jako podproces powinienmieć jedno nieokreślone zdarzenie po<strong>cz</strong>ątkowe• Jeśli proces nie posiada nieokreślonego zdarzenia po<strong>cz</strong>ątkowego, to nie możefunkcjonować jako podproces• Procesy rozpo<strong>cz</strong>ynające się od niekreślonego zdarzenia mogą być uruchamiane przeztzw. <strong>cz</strong>ynność wywołania, <strong>cz</strong>yli mogą być uruchamiane przez inne procesy27
Zdarzenie po<strong>cz</strong>ątkowe<strong>cz</strong>asowe (Timer)• Proces rozpo<strong>cz</strong>nie się, kiedy określony warunekzwiązany z <strong>cz</strong>asem zostanie spełniony• Warunek może ozna<strong>cz</strong>ać konkretną datę i <strong>cz</strong>as,np. 1 sty<strong>cz</strong>eń 2013 lub też powtarzającą się datęi/lub <strong>cz</strong>as, np. każdy wtorek o 16.3028
Zdarzenie po<strong>cz</strong>ątkowewarunkowe (Conditional)• Pozwala na uruchomienie procesu w sytuacji, gdy pewien warunekstanie się prawdziwy• Implementacja zdarzenia wymaga ciągłego monitorowania warunku• Zasada działania zdarzenia warunkowego podobna jest do zasadydziałania wyzwala<strong>cz</strong>a w bazach danych29
Zdarzenie po<strong>cz</strong>ątkoweKomunikat (Message)• Proces jest uruchamiany, gdy dotrze odpowiedni komunikat• Komunikaty są formą porozumiewania się pomiędzy u<strong>cz</strong>estnikami biznesowymi(pulami)• <strong>BPMN</strong> nie dopusz<strong>cz</strong>a przesyłania komunikatów w obrębie tej samej puli• Komunikaty są kierowane do określonego adresata• Na diagramie zazna<strong>cz</strong>a się przepływ komunikatu30
Zdarzenie po<strong>cz</strong>ątkoweSygnał (Signal)• Proces jest uruchamiany, gdy dotrze odpowiedni sygnał• Sygnały są rozgłaszane (broadcasting) i nie mają określonego adresata• Nadawca sygnału nie ma świadomości istnienia odbiorcy (nie ma potrzebyrejestracji odbiorców)• Na diagramie nie zazna<strong>cz</strong>a się powiązania pomiędzy nadawcą sygnału aodbiorcą, bo sygnał nie ma adresata31
Komunikat vs. SygnałKomunikatKomunikat jest kierowany dookreślonego u<strong>cz</strong>estnikaNadawca musi wiedzieć do kogo chcewysłać komunikatKomunikat może uruchomić co najwyżejjeden procesSygnałSygnał jest nie jest kierowany dookreślonego odbiorcy tylko rozgłaszany(publikowany)Każdy może zasubskrybować się byodbierać sygnałSygnał może uruchomić wiele <strong>procesów</strong>Komunikaty mogą być wysyłane tylkopomiędzy pulami (u<strong>cz</strong>estnikami)Sygnały mogą być przesyłane pomiędzypulami i ramach tej samej puli32
Wielozdarzenie po<strong>cz</strong>ątkowezwykłe i równoległe (Multiplei Parallel)• Wielozdarzenie zwykłe jest zbiorem zdarzeńpo<strong>cz</strong>ątkowych funkcjonujących wedługnastępującej reguły<strong>–</strong> Wystąpienie jednego z tych zdarzeń powodujeuruchomienie procesu• Wielozdarzenie równoległe jest zbioremzdarzeń po<strong>cz</strong>ątkowych funkcjonujących wedługnastępującej reguły:<strong>–</strong> Proces jest uruchamiany tylko wtedy, gdywystąpią wszystkie zdarzenia33
Zdarzenia końcowe• Zdarzenie końcowe reprezentuje koniec przepływu wprocesie lub w jednej z jego ścieżek• Proces może zawierać dowolną skoń<strong>cz</strong>ona li<strong>cz</strong>bęzdarzeń końcowych (również zero)• Zakoń<strong>cz</strong>enie procesu może ozna<strong>cz</strong>ać wytworzeniejakiegoś rezultatu (komunikat, sygnał, itp.)• Jeśli nie ma zdarzenia po<strong>cz</strong>ątkowego, wów<strong>cz</strong>asmożna pominąć zdarzenie końcowe, gdy proces niewytwarza żadnego rezultatu• Jeśli model zawiera zdarzenie po<strong>cz</strong>ątkowe towymagane jest również zdarzenie końcowe34
Zalecenia projektowe• O ile nie zaleca się dużej li<strong>cz</strong>by zdarzeń po<strong>cz</strong>ątkowych, otyle w przypadku zdarzeń końcowych jest dokładnieodwrotnie• Powinno się tworzyć zdarzenia końcowe dla każdej innejwartości zwracanej przez proces• Jeśli proces posiada rozgałęzienie równoległe i po złą<strong>cz</strong>eniuprzebiegów występuje tylko zdarzenie końcowe, wów<strong>cz</strong>aszaleca się nie łą<strong>cz</strong>yć przebiegów, tylko zakoń<strong>cz</strong>yć dwomalub większą li<strong>cz</strong>bą zdarzeń końcowych35
Zdarzenie końcowePrzerwanie (Terminate)• Zdarzenie ozna<strong>cz</strong>a zakoń<strong>cz</strong>enie procesu niezależnieod li<strong>cz</strong>by aktywnych ścieżek• Zdarzenie powoduje zakoń<strong>cz</strong>enie procesu nabieżącym poziomie i wszystkich jego pod<strong>procesów</strong>• Zdarzenie nie przerywa <strong>procesów</strong> nadrzędnych• Po wystąpieniu zdarzenia w podprocesie procesnadrzędny jest kontynuowany tak jakby ukoń<strong>cz</strong>ył sięw normalnym trybie36
Zdarzenie końcowenieokreślone• Zdarzenie końcowe Nieokreślone ozna<strong>cz</strong>a zakoń<strong>cz</strong>eniebieżącej ścieżki procesu bez wytwarzania określonegorezultatu lub też zakoń<strong>cz</strong>enie bieżącej ścieżki procesu zwytworzeniem rezultatu innego niż w pozostałychzdarzeniach końcowych• Zdarzenie końcowe Komunikat ozna<strong>cz</strong>a zakoń<strong>cz</strong>eniebieżącej ścieżki procesu i przekazanie określonegokomunikatu do innego u<strong>cz</strong>estnika procesu• Zdarzenie końcowe Sygnał ozna<strong>cz</strong>a zakoń<strong>cz</strong>eniebieżącej procesu i rozgłoszenie określonego sygnału,który może być odebrany przez dowolnego (w tym tegosamego) u<strong>cz</strong>estnika procesu37
Throwing vs. Catching• Zdarzenia dzielą się na dwie główne kategorie:<strong>–</strong> Zdarzenia typu catch <strong>–</strong> o<strong>cz</strong>ekuje na nadejście określonego komunikatusygnału, itp., po jego nadejściu proces przechodzi dalej<strong>–</strong> Zdarzenia typu throw <strong>–</strong> wytwarza (generuje, wyrzuca) pewien komunikatsygnał, itp., po „wyrzuceniu” proces przechodzi dalej• Zdarzenia po<strong>cz</strong>ątkowe występują w wersji catch• Zdarzenia końcowe występują w wersji throw• Zdarzenia pośrednie mogą występować w wersji throw lubcatch38
Zdarzenia pośrednieNieokreśloneKomunikatCzasEskalacjaThrowCatch• Zdarzenie pośrednieozna<strong>cz</strong>a sytuację w trakciewykonywania procesubiznesowego, która jestistotna z punktu widzeniatego procesuSygnałWielozdarzenieWarunkoweKompensacjaLink• Zdarzenia pośrednie służądo modelowania wysyłania iodbierania komunikatów,sygnałów, opóźnień,sytuacji wyjątkowych orazkompensacji39
Bramka zdarzeniowa (1)• Bramka zdarzeniowa reprezentuje rozgałęzienie typu alternatywa, przy<strong>cz</strong>ym wybór konkretnej ścieżki zależy od wystąpienia określonegozdarzenia• Zdarzenia występujące w bramce muszą być typu catch• Bramka zdarzeniowa po aktywacji o<strong>cz</strong>ekuje na zajście jednego zezdefiniowanych zdarzeń• Wystąpienie takiego zdarzenia powoduje, że przebieg przechodzi dalej,a pozostałe ścieżki są dezaktywowane40
Bramka zdarzeniowa (2)• Autoryzacja przy pomocy kodu np. SMS przebiega zwykle wedługnastępującego schematu:<strong>–</strong> System wysyła SMS z kodem autoryzującym i prosi o wprowadzenie kodu doformularza<strong>–</strong> Użytkownik wprowadza kod do formularza wów<strong>cz</strong>as podejmowana jest próbaautoryzacji<strong>–</strong> Jeśli w ciągu np. 60 sekund kod nie zostanie wprowadzony proces autoryzacjikoń<strong>cz</strong>y się41
Bramka zdarzeniowa (3)• Działanie bramki przypomina tzw. race condition(wygrywa ta ścieżka, która pierwsza odbierze komunikat• Wykorzystuje się <strong>cz</strong>ęsto do obsługi przekro<strong>cz</strong>eń <strong>cz</strong>asowych(timeout) oraz do obsługi wyjątków• W odróżnieniu od pozostałych bramek nie opiera się nadanych tylko na zdarzeniach42
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład43
Czynność• Czynność to praca wykonana w ramach procesubiznesowego• Wykonanie <strong>cz</strong>ynności zajmuje określony <strong>cz</strong>as oraz wymagazaangażowania określonych zasobów• Zwykle konie<strong>cz</strong>ne jest wprowadzenie pewnych danychwejściowych• W efekcie realizacji powstaje też <strong>cz</strong>ęsto pewien wynik(produkt, usługa, dokument)44
Rodzaje <strong>cz</strong>ynności• ZadanieCzynność atomowa• PodprocesCzynności nie atomowe• Czynność wywołaniaReprezentuje wywołanie innej<strong>cz</strong>ynności45
ZadanieZadanie jest przykładem <strong>cz</strong>ynności, która nie jestdekomponowana na prostsze <strong>cz</strong>ynności (<strong>cz</strong>ynność atomowa)W modelowanej rze<strong>cz</strong>ywistości dekompozycja zadania naprostsze <strong>cz</strong>ynności zwykle istniejePrzyjmuje się jednak, że taka dekompozycja nie jest istotna zpunktu widzenia modelowanego procesuZadanie nie jest funkcją systemu ani nie jest stanem systemu <strong>–</strong>zadanie to praca wykonana w ramach procesuPrzykład:Wprowadzenie danych do formularza rejestracyjnego serwisu po<strong>cz</strong>towego46
Rodzaje zadań• Niezdefiniowane (none)• Użytkownika (user)wykonuje użytkownik pod kontrolą systemu informaty<strong>cz</strong>nego• Manualne (manual)wykonuje użytkownik bez kontroli systemu informaty<strong>cz</strong>nego• Usługowe (service)wywołuje usługę sieciową lub określoną aplikację• Wysłania (send)wysyła wiadomość do zewnętrznego u<strong>cz</strong>estnika• Odebrania (receive)O<strong>cz</strong>ekuje i odbiera wiadomość od zewnętrznego u<strong>cz</strong>estnika• Skryptowe (script)wykonuje dostar<strong>cz</strong>ony skrypt• Reguły biznesowej (business rules)wykonuje reguły biznesowe na silniku reguł47
Zadanie niezdefiniowane(None lub Abstract)Nie posiada wyspecyfikowanegorodzaju pracy do wykonaniaNa diagramie może ozna<strong>cz</strong>ać każdyrodzaj zadańJest używane w po<strong>cz</strong>ątkowej fazieodkrywania procesu, kiedy nie znamyjesz<strong>cz</strong>e sz<strong>cz</strong>egółów realizacjiposz<strong>cz</strong>ególnych zadańJeśli nie jest planowana implementacjaprocesu zadanie niezdefiniowane możeistnieć również w końcowej wersjimodelu procesu48
Zadania wykonywane przez<strong>cz</strong>łowiekaZadanie użytkownika reprezentujedowolną pracę w procesie biznesowym,która jest wykonywana przez <strong>cz</strong>łowieka zwykorzystaniem systemówkomputerowych(np. wysłanie e-maila, opracowanie danych warkuszu, wprowadzenie danych do CRM)Zadanie manualne reprezentuje dowolnąpracę w procesie biznesowym, która jestwykonywana przez <strong>cz</strong>łowieka bezużywania systemów komputerowych(np. sortowanie listów, dostar<strong>cz</strong>enie przesyłki)49
Zadanie użytkownika• Zadanie wykonywane przez użytkownika wiąże się znastępującymi operacjami• Utworzenie tzw. workitem i dodanie do listy zadań dowykonania przez użytkownika• Powiadomienie użytkownika, że pojawiło się nowe zadaniedo wykonania• Dostar<strong>cz</strong>enie danych procesowych i dokumentówniezbędnych do realizacji zadania50
Zadanie usługowe (Service) Zadanie wykonywane automaty<strong>cz</strong>nie przez zewnętrznysystem na żądanie silnika <strong>procesów</strong> Domyślne zachowanie polega na wywołaniu usługisieciowej (web service) Możliwe są inne implementacje niż usługa sieciowa(zależy od dostawcy systemu) Usługi sieciowe mogą być wywoływane synchroni<strong>cz</strong>nielub asynchroni<strong>cz</strong>nie Wywołanie synchroni<strong>cz</strong>nie wstrzymuje proces do momentupowrotu z usługi Wywołanie asynchroni<strong>cz</strong>nie nie wstrzymuje procesu Zadanie usługowe służy do modelowania usługwywoływanych w sposób synchroni<strong>cz</strong>ny Wywołania asynchroni<strong>cz</strong>ne modelowane są przypomocy zdarzeń wysyłania i odbierania komunikatów51
Zadanie wysłania (Send)Zadanie wysłania polega na wysłaniukomunikatu do innego u<strong>cz</strong>estnika (puli)Zadanie jest realizowane automaty<strong>cz</strong>nieprzez silnik <strong>procesów</strong> <strong>biznesowych</strong>wspierany przez inny system /komponentCzłowiek nie u<strong>cz</strong>estni<strong>cz</strong>y w realizacji tegozadaniaWysłanie komunikatu może byćalternatywnie modelowane przez zdarzenietypu komunikat (throw)52
Zadanie odebrania(Receive)Zadanie polega na odebraniu komunikatuod innego u<strong>cz</strong>estnikaZadanie jest realizowane automaty<strong>cz</strong>nieprzez silnik <strong>procesów</strong> <strong>biznesowych</strong>wspierany przez inny system /komponentCzłowiek nie u<strong>cz</strong>estni<strong>cz</strong>y w realizacji tegozadaniaOdebranie komunikatu może byćalternatywnie modelowane przezzdarzenie Komunikat (catch)53
Zadania wysyłania iodbierania• Jeśli w przepływ komunikatów zaangażowany jest <strong>cz</strong>łowiek(np. wysłanie maila, faksu, rozmowa telefoni<strong>cz</strong>na), wów<strong>cz</strong>asnależy używać zadania użytkownika• Jeśli przepływ komunikatów odbywa się na linii maszynado-maszyna(np. SOAP, JMS), wów<strong>cz</strong>as należy stosowaćzadanie wysyłania i odbierania lub zdarzenia typukomunikat (catch + throw)54
Zadanie skryptowe (script) Polega na wykonaniu pewnego skryptu Zadanie jest realizowane automaty<strong>cz</strong>nie przezsilnik <strong>procesów</strong> <strong>biznesowych</strong> Silniki <strong>procesów</strong> potrafią uruchomić skrypty wJavaScript, Xpath i wiele innych <strong>BPMN</strong> nie definiuje języka skryptowego Silniki <strong>procesów</strong> potrafią przekazać dane zprocesu do skryptu i odebrać wyniki działaniaskryptu Skrypty reprezentują zazwy<strong>cz</strong>aj prostezadania przetwarzania danych; stosuje się jetam, gdzie nie opłaca się używać usług55
Reguły biznesowe Przez regułę biznesową należy rozumieć zbiór powiązanych konstrukcji warunkowych typu „jeżeliA i B to C” Reguły biznesowe są niezależne od procesu: proces reprezentuje przepływ zadań, regułybiznesowe służą wyzna<strong>cz</strong>enia wartości pewnych danych/obiektów Reguły biznesowe mogą reprezentować polityki biznesowe możliwe do wykorzystania w różnychprocesach (np. sprawdzanie <strong>cz</strong>y klient może być zali<strong>cz</strong>ony do grupy „Premium” lub <strong>cz</strong>y klient jestwypłacalny?) Procesy biznesowe się uruchamia; na regułach <strong>biznesowych</strong> prowadzi się wnioskowanie Reguły biznesowe zwykle są składowane w oddzielnym repozytorium i zarządzane przez SystemZarządzania Regułami Biznesowymi Systemy Zarządzania Regułami Biznesowymi są <strong>cz</strong>ęsto zintegrowane z Systemami ZarządzaniaProcesami Biznesowymi Systemy Zarządzania Regułami Biznesowymi opró<strong>cz</strong> zbiorów reguł udostępniają takie elementyjak siatki, <strong>cz</strong>y tabele decyzyjne56
Zadanie reguły biznesowej(business Rule)Zadanie polega naprzeprowadzeniu wnioskowania nabazie reguł <strong>biznesowych</strong>W zadaniu bierze udział silnikprocesu i silnik reguł <strong>biznesowych</strong>Silnik procesu odpowiada zaprzygotowanie danych downioskowania i odebranie wynikuSilnik reguł odpowiada zaprzeprowadzenie wnioskowania57
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład58
Rodzaje przepływów wprocesie• Przepływ sekwencji• Przepływ komunikatów• Przepływ danych59
Przepływ sekwencji• Przepływ sekwencji pomiędzy dwoma elementami A i B (od A do B)ozna<strong>cz</strong>a, że jeśli element A zakoń<strong>cz</strong>ył działanie, wów<strong>cz</strong>as element Bstaje się aktywny• Przepływ sekwencji może zachodzić pomiędzy <strong>cz</strong>ynnościami,zdarzeniami, bramkami,• Przepływ sekwencji nie może jednak zachodzić miedzy pulami60
Przepływ komunikatów• Przepływ komunikatów reprezentuje wiadomość wysyłaną pomiędzydwoma pulami (u<strong>cz</strong>estnikami)• Komunikaty są wysyłane i odbierane przez dedykowane zadania lubzdarzenia, ale nie jest możliwe by wysyłający i odbiorca znajdowali się wtej samej puli.61
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład62
Pule (Baseny) i toryPula reprezentuje u<strong>cz</strong>estnika, którybierze udział w procesiePula białej skrzynki zawiera modelprocesuPula <strong>cz</strong>arnej skrzynki nie zawieramodelu procesuPule białej skrzynki zaleca nazywaćsię nazwą procesuPule <strong>cz</strong>arnej skrzynki zaleca nazywaćsię nazwą u<strong>cz</strong>estnikaTory mogą reprezentować rolęu<strong>cz</strong>estnika w organizacji lub dowolnyinny aspekt (np. odpowiedzialność)Tory mogą być zagnieżdżane63
Pule i tory• Ograni<strong>cz</strong>enia nałożone na pule<strong>–</strong> Pula może zawierać tylko jeden proces<strong>–</strong> Przepływ sekwencji jest ograni<strong>cz</strong>ony do jednej puli, nie możeprzekra<strong>cz</strong>ać granic puli<strong>–</strong> Przepływ komunikatów może odbywać się tylko pomiędzy pulami• <strong>BPMN</strong> nie określa dodatkowych ograni<strong>cz</strong>eń na tory niż tewynikające z faktu, że tory znajdują się w puli64
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład65
<strong>Modelowanie</strong> danych wprocesie• <strong>BPMN</strong> umożliwia modelowanie obiektówprzetwarzanych w procesie biznesowym• Pojęcie obiektu w <strong>BPMN</strong> odnosi się doinformacji, danych, dokumentów, obiektówmaterialnych• Do modelowanie obiektów służą następującekonstrukcje:<strong>–</strong> Obiekt danych<strong>–</strong> Magazyn danych<strong>–</strong> Dane wejściowe i wyjściowe66
Obiekt danych• Obiekty danych posiadają stan, który służy doozna<strong>cz</strong>enia jak obiekt zmienia się trakcie procesu, np.obiekt zamówienie może posiadać następujące stany:złożone, zaakceptowane, opłacone, zrealizowane• Ten sam obiekt danych może pojawić się w wielumiejscach w procesie, w każdym z tych miejsc możeznajdować się w innym stanie• Obiekt danych może być powiązany z<strong>–</strong> przepływem sekwencji, komunikatów (zwykła asocjacja),<strong>–</strong> <strong>cz</strong>ynnościami i zdarzeniami (asocjacja kierunkowa)• Przepływ obiektów w procesie nie ma wpływu naprzepływ sekwencji67
Magazyn danych• Magazyn danych służy doprzechowywania danych procesuniezależnie od tego <strong>cz</strong>y proces trwa, <strong>cz</strong>yteż został zakoń<strong>cz</strong>ony• Proces może <strong>cz</strong>ytać i zapisywać dane domagazynu• Magazyn danych może również byćprzydatny w interakcji procesu zzewnętrznymi systemami68
dane wejściowe i wyjściowe• Wejściowe i wyjściowe obiekty są obiektamizewnętrznymi, istniejącymi przed i/lub pozakoń<strong>cz</strong>eniu procesu• Obiekt wejściowy to obiekt wymagany douruchomienia / działania procesu• Obiekt wyjściowy to obiekt powstały lubprzetworzony w procesie przekazany do oto<strong>cz</strong>enia• Obiekt może jedno<strong>cz</strong>eśnie występować w roliwejściowego i wyjściowego, np. legitymacjastudencka w trakcie procesu prolongaty legitymacji69
Czas życia obiektów• Czas życia obiektu danych zależy od jego rodzaju obiektu• Obiekty wejściowe i wyjściowe żyją niezależnie od procesu• Obiekty wewnętrzne żyją tylko tyle, ile instancja procesu• Jeśli obiekt wewnętrzny ma żyć dłużej musi być składowanyw magazynie danych70
Obiekt danych <strong>–</strong> przykład71
• Literatura• Wprowadzenie• Bramki• Zdarzenia• Czynności• Przepływy• Pule i tory• Obiekty• Przykład72
KONIEC74