1 Diagramy czynności
2 Modelowanie dynamiki systemuDiagramy czynności Modelowanie dynamiki systemu Diagramy do modelowania dynamiki systemu: Diagram przypadków użycia Diagramy interakcji Diagram sekwencji Diagram komunikacji Diagram czynności Diagram stanu
3 Diagramy czynności Diagram czynności Diagram czynności – graficzne przedstawienie sekwencyjnych i (lub) współbieżnych przepływów sterowania oraz danych pomiędzy uporządkowanymi ciągami czynności, akcji i obiektów Służą do modelowania dynamicznych właściwości systemu Wszystkie akcje i (lub) czynności wykonywane w trakcie realizacji dowolnej funkcjonalności systemu tworzą pewien proces Diagramy czynności pozwalają w graficzny sposób pokazać ten proces - jakie akcje i (lub) czynności są wykonywane, kolejność ich wykonania oraz dane na których operują
4 Diagram czynności przykładDiagramy czynności Diagram czynności przykład Węzeł początkowy Węzeł połączenia Akcje / czynności Węzeł decyzyjny Przepływy sterowania Węzeł końcowy
5 Elementy diagramu czynnościDiagramy czynności Elementy diagramu czynności Akcje Czynności Przepływy sterowania Węzły początkowe i końcowe Węzły decyzyjne i połączenia Węzły rozwidlenia i scalenia
6 Elementy diagramu czynnościDiagramy czynności Elementy diagramu czynności Początek – punkt rozpoczęcia przepływu sterowania i danych. Zazwyczaj na diagramie występuję jeden punkt startowy, dopuszczalne jest jednak kilka punktów startowych Koniec – punkt zatrzymania wszystkich przepływów sterowania i danych. Na diagramie może występować wiele punktów końcowych
7 Elementy diagramu czynnościDiagramy czynności Elementy diagramu czynności Zakończenie przepływu – punkt zatrzymania wybranego przepływu sterowania. Na diagramie może pojawić się więcej niż jedno zakończenie przepływu Przepływ sterowania – związek między dwiema czynnościami lub akcjami wskazujący, że po wykonaniu jednej czynności (lub akcji) sterowanie zostanie przekazane do drugiej czynności (lub akcji)
8 Diagramy czynności Akcje Akcja (ang. action) – elementarna jednostka specyfikacji zachowania reprezentująca transformację lub przetwarzanie w modelowanym systemie Ogólne właściwości: akcie są niepodzielne akcje nie mogą być przerywane czas trwania akcji z reguły jest nieznaczny akcje są aktywnymi krokami procesu wykonanie akcji prowadzi do zmiany stanu systemu lub przekazania pewnych danych
9 Diagramy czynności Czynności Czynność (ang. activity) – określone zachowanie złożone z logicznie uporządkowanych ciągów innych czynności, akcji oraz obiektów w celu wykonania pewnego procesu Ogólne właściwości: czynności są podzielne – na czynność składają się inne czynności i akcje czynności mogą być przerywane czas trwania czynności jest znaczący czynności reprezentują złożony element procesu biznesowego bądź przetwarzania informacji
10 Akcje - Czynności - przykładDiagramy czynności Akcje - Czynności - przykład Czynność Dokonaj rozliczenia zawiera dwie (pod)czynności: Oblicz dochód i Oblicz podatek (Pod)czynność Oblicz dochód jest procesem składającym się z (pod)czynności: Oblicz przychód i Oblicz koszty uzyskania oraz akcji obliczającej dochód
11 Diagramy czynności Węzeł decyzyjny [warunek 1] else [warunek 2] Węzeł decyzyjny (ang. decision node) – służy do utworzenia przepływów alternatywnych uzależnionych od spełnienia określonego warunku lub do wykonania iteracji (wielokrotne wykonywanie określonych czynności lub akcji)
12 Węzeł decyzyjny - właściwościDiagramy czynności Węzeł decyzyjny - właściwości Węzeł decyzyjny zawiera jeden przepływ wejściowy i przynajmniej dwa przepływy wyjściowe (alternatywne) Każdy przepływ wyjściowy opisany jest warunkiem Zbiór wszystkich warunków musi być kompletny, tj. pokrywać wszystkie możliwe wartości zmiennej decyzyjnej Warunki na przepływach alternatywnych nie mogą się nakładać – muszą być rozłączne
13 Węzeł decyzyjny - właściwościDiagramy czynności Węzeł decyzyjny - właściwości Dopuszcza się warunek typu else dla oznaczenia przypływu realizowanego w sytuacji, gdy żaden z warunków na alternatywnych przepływach wyjściowych nie jest prawdziwy Wybór przepływu wyjściowego dokonywany jest na podstawie warunku Może być realizowany tylko jeden przepływ wyjściowy
14 Diagramy czynności Węzeł połączenia Węzeł połączenia (ang. merge node)– służy do utworzenia połączenia alternatywnych przebiegów - oznacza koniec alternatywnego zachowania rozpoczętego węźle decyzyjnym
15 Węzeł połączenia - właściwościDiagramy czynności Węzeł połączenia - właściwości Węzeł połączenia zawiera przynajmniej dwa przepływy wejściowe (alternatywne) i jeden przepływ wyjściowy Przepływ wyjściowy jest realizowany, gdy zrealizowany zostanie jeden z przepływów wejściowych W UML 2.0 i wyżej zaleca się stosowanie węzłów połączenia dla każdego węzła decyzyjnego Istnieje możliwość łączenia węzła decyzyjnego z węzłem połączenia. W efekcie otrzymujemy węzeł posiadający wiele przepływów wejściowych i wiele przepływów wyjściowych. Działanie węzła polega na połączeniu kilku istniejących przebiegów alternatywnych i rozdzieleniu ich na inne przebiegi alternatywne
16 Węzły decyzyjne i połączenia - przykładDiagramy czynności Węzły decyzyjne i połączenia - przykład Po wykonaniu czynności Oblicz dochód sprawdzany jest poziom dochodu. W zależności od jego poziomu wykonywana jest odpowiednia akcja obliczania podatku. Tylko jedna z tych akcji zostanie wykonana.
17 Diagramy czynności Węzeł rozwidlenia Węzeł rozwidlenia (ang. fork node)– służy do punktu w którym następuje rozdzielnie jednego przepływu wejściowego na dwa lub więcej przepływów, które mogą być wykonywane równolegle (współbieżnie)
18 Węzeł rozwidlenia - właściwościDiagramy czynności Węzeł rozwidlenia - właściwości Rozwidlenie cechuje się jednym przepływem wejściowym oraz co najmniej dwoma przepływami wyjściowymi Przepływy wyjściowe mogą (ale nie muszą) być realizowane równolegle Czynności (lub akcje) wykonywane w równoległych przepływach mogą się komunikować
19 Diagramy czynności Węzeł scalenia Węzeł scalenia (ang. join node)– służy do oznaczenia punktu, w którym następuje scalenie (synchronizacja) równoległych przepływów - dochodzi tu do przekazania sterowania z wielu współbieżnych przepływów wejściowych do jednego przypływu wyjściowego
20 Węzeł scalenia - właściwościDiagramy czynności Węzeł scalenia - właściwości W węźle scalenia następuje oczekiwanie na ukończenie wszystkich równoległych przepływów (synchronizacja przebiegów) Zachowanie węzła scalania można dowolnie modyfikować dodając specyfikację scalania, tj. dodatkowego warunku scalania Warunek scalania jest sprawdzany każdorazowo po dotarciu sterowania z każdego z przepływów równoległych Spełnienie warunku scalania skutkuje przekazaniem sterowania dalej poza węzeł scalania
21 Węzły rozwidlenia i scalenia przykładDiagramy czynności Węzły rozwidlenia i scalenia przykład Akcje Słuchaj wykładu i Rób notatki mogą (ale nie muszą) być wykonywane równolegle. Proces zakończy się dopiero wtedy, gdy zakończą się obydwie akcje
22 Partycje Partycja – mechanizm grupowania elementów diagramu czynnościDiagramy czynności Partycje Partycja – mechanizm grupowania elementów diagramu czynności Partycje dzielą diagram na wiersze i (lub) kolumny Partycje służą do oznaczenia akcji i (lub) czynności wykonywanych przez określonego aktora (rolę) lub w określonej lokalizacji Partycje znajdują zastosowanie głównie w biznesowych diagramach czynności (realizacja procesu biznesowego często wymaga współdziałania wielu aktorów) Alternatywnym rozwiązaniem w stosunku do partycji jest użycie adnotacji przy każdej akcji lub czynności
23 Diagramy czynności Partycje - przykład W procesie bierze udział trzech uczestników: Pracownik, Przełożony oraz Dział finansowy Każda z partycji zawiera akcje wykonywanego tylko przez jednego uczestnika
24 Diagramy czynności Węzeł obiektu Węzeł obiektu (ang. object node) – reprezentuje obiekt, który jest dostępny w określonym miejscu czynności W diagramach czynności występują dwa rodzaje przepływów: przepływ sterowania (ang. control flow) oraz przepływ danych (ang. data flow) Obiekty służą do oznaczenia przepływu danych Umieszczenie węzła obiektu pomiędzy dwiema akcjami lub czynnościami oznacza, że na danym etapie został utworzony, zmodyfikowany lub użyty pewien obiekt
25 Węzeł obiektu - przykładDiagramy czynności Węzeł obiektu - przykład Obiekt Zamówienie został utworzony w akcji „Pobierz zamówienie” i przesłany do czynności „Przetwarzaj zamówienie” Utworzenie i przesłanie obiektu Zamówienie można przedstawiać w postaci bloku umieszczonego pomiędzy akcjami i (lub) czynnościami (zob. diagram górny) lub w postaci tzw. przekaźników danych (zob. diagram dolny)
26 Diagramy czynności Zdarzenia czasowe Zdarzenia czasowe (ang. time event) – służą do modelowania zdarzeń zależnych od czasu
27 Zdarzenia czasowe - właściwościDiagramy czynności Zdarzenia czasowe - właściwości Zdarzeń czasowych używa się do modelowania okresu oczekiwania Okres oczekiwania podaje się w postaci określonej daty lub też w postaci względnej (liczba dni, godzin, minut, itp.) Zdarzenia czasowe służą również do modelowania przepływów cyklicznych, tj. przepływów rozpoczynających się w określonych momentach Zdarzenia czasowe mogą się pojawiać w dowolnym miejscu czynności, w tym również w miejsce węzła początkowego
28 Zdarzenia czasowe - przykładDiagramy czynności Zdarzenia czasowe - przykład Przykład 1: Po wykonaniu akcji „Dostarcz towar” następuje zatrzymanie procesu na trzy dni, po czym następuje wykonanie akcji „Wyślij rachunek” Przykład 2: Proces jest uruchamiany cyklicznie każdego dnia roboczego o godzinie 16. Zdarzenie czasowe występuje w miejsce węzła początkowego
29 Węzeł sygnału nadawanegoDiagramy czynności Węzeł sygnału nadawanego Węzeł sygnału nadawanego (ang. send signal node) – służy do modelowania asynchronicznego wysyłania komunikatów
30 Węzeł sygnału nadawanego - właściwościDiagramy czynności Węzeł sygnału nadawanego - właściwości Komunikaty mogą być wysyłane do innych procesów jak i do siebie samych Po wysłaniu komunikatu następuje automatycznie przejście do wykonywania kolejnej akcji lub czynności Po wysłaniu komunikatu proces nie czeka aż odbiorca odbierze komunikat
31 Węzeł sygnału odbieranegoDiagramy czynności Węzeł sygnału odbieranego Węzeł sygnału odbieranego (ang. receive signal node) – służy do modelowania asynchronicznego odbioru komunikatów
32 Węzeł sygnału odbieranego - właściwościDiagramy czynności Węzeł sygnału odbieranego - właściwości W węźle sygnału odbieranego proces oczekuje na pojawienie się pewnego, ściśle określonego komunikatu Po odebraniu komunikatu następuje przejście do kolejnych akcji lub czynności Węzeł sygnału odbieranego bez dochodzącego sterowania jest zawsze aktywny, tzn. cały czas może odbierać komunikaty Węzeł sygnału odbieranego z dochodzącym przepływem sterowania jest aktywny dopiero w chwili otrzymania sterowania
33 Sygnały nadawane i odbierane - przykładDiagramy czynności Sygnały nadawane i odbierane - przykład Przykład 1: Proces oczekuje na pojawienie się nowego zamówienia – węzeł sygnału odbieranego „Pobierz zamówienie”. Zamówienie może pojawić się w dowolnym momencie. Czynność „Przetwarzaj zamówienie” jest wykonywana po odebraniu sygnału o nowym zamówieniu. Przykład 2: Węzeł sygnału nadawanego „Wyślij żądanie autoryzacji” powoduje wysłanie żądania autoryzacji (np. karty kredytowej) i przekazanie sterowania do kolejnej akcji bez sprawdzania odpowiedzi. Ponieważ kolejna akcja („Odbierz odpowiedź”) jest węzłem sygnału odbieranego, nastąpi oczekiwanie na pojawienie się odpowiedzi, np. z systemu autoryzacji kart kredytowych
34 Diagramy czynności Obszary przerwań Obszar przerwań (ang. interruptable region) – służy do modelowania czynności które mogą być w każdej chwili przerwane Do efektywnego działania obszaru przerwań konieczne jest dodanie węzła sygnału odbiorczego wewnątrz obszaru przerwań Jego zadanie polega na oczekiwaniu na komunikat oznaczający przerwanie W chwili dotarcia tego komunikatu następuje przerwanie aktualnie wykonywanej czynności i przejście do wykonywania akcji następującej po węźle przerwania Jeśli komunikat o przerwaniu dotrze w trakcie wykonywania czynności spoza obszaru przerwań, wówczas nic się nie dzieje
35 Obszar przerwań - przykładDiagramy czynności Obszar przerwań - przykład Proces rozpoczyna się w chwili pobrania zamówienia – sygnał odbiorczy „Pobierz zamówienie”. Celem bloku przerwania jest dopuszczenie możliwości anulowania zlecenia w dowolnym momencie jego przetwarzania Pojawienie się sygnału „Anuluj zamówienie” przerywa przetwarzanie zamówienie po czy następuje przejście do akcji Usuń zamówienie Zamówienie może być anulowane tylko w czasie przetwarzania Po przejściu do akcji „Wyślij towar” anulowanie zamówienia nie jest możliwe
36 Diagramy czynności – zastosowanieDiagramy czynności stosuje się w modelowaniu: Procesów biznesowych Przypadków użycia Algorytmów i operacji
37 Zastosowania diagramów czynności - algorytmyDiagramy czynności Zastosowania diagramów czynności - algorytmy // algorytm szukanie // minimum w tablicy Czytaj(t); min := t[1]; for (i=2; i <5; i++) { if (t[i] < min) min = t[i]; } Wypisz(min)
38 Zastosowania diagramów czynności - przypadki użyciaDiagramy czynności Zastosowania diagramów czynności - przypadki użycia Przypadek użycia: Zakup napoju Aktor główny: Klient Główny scenariusz: Klient wrzuca bilon do automatu Klient wybiera rodzaj napoju Automat stwierdza, że wartość bilonu odpowiada cenie wybranego napoju Automat wydaje napój Klient odbiera napój Rozszerzenia: 3a. Automat stwierdza, że cena wybranego napoju jest większa niż wartość wrzuconego bilonu: 3a1. Automat prosi o wrzucenie dodatkowego bilonu 3a2. Klient wrzuca dodatkowy bilon 3b. Automat stwierdza, że cena wybranego napoju jest mniejsza niż wartości bilonu: 3b1. Automat zwraca resztę
39 Zastosowania diagramów czynności –modelowanie procesów biznesowychDiagramy czynności Zastosowania diagramów czynności –modelowanie procesów biznesowych Proces biznesowy: Obsługa wniosków o urlop Aktorzy: Pracownik, Przełożony, Dział finansowy Opis procesu: Podanie o urlop może złożyć każdy pracownik. Pracownik wypełnia formularz urlopu wpisując dane osobowe i planowany okres urlopu. Podanie jest wysyłane do jego bezpośrednio przełożonego. Przełożony może odrzucić całkowicie podanie – koniec procesu, może wysłać do poprawki lub zaakceptować w całości. Jeśli przełożony wyda decyzję pozytywną, wówczas wniosek jest wysyłany do działu finansowego celem zaksięgowania i wykonania niezbędnych kalkulacji.
40
41
42
43
44 Dobre rady 1/3 Zawsze rozpoczynaj diagram od lewego górnego rogu używając symbolu startu. Używaj torów do wskazania czynności wykonywanych przez aktorów. Lewy skrajny tor wskazuje czynność początkową. Używaj torów oszczędnie. W przypadku, gdy byłoby ich zbyt wiele podziel diagram na mniej złożone.
45 Dobre rady 2/3 Używaj prostych ale znaczących opisów akcji. Akcje nazywaj precyzyjnie unikając takich sformułowań jak „proces” czy „operacja”. Złożone operacje dziel na proste akcje. Upewnij się, że w opisie decyzji uwzględniono wszystkie możliwe wyjścia. Punkt decyzyjny modeluj tylko wtedy gdy wnosi coś do diagramu.
46 Dobre rady 3/3 Używaj wielokrotnie symboli zakończenia akcji w celu wskazania zdarzeń nietypowych. W każdym diagramie musi być punkt końcowy.
47 Modelowanie zachowania systemu w czasieNiezbędne w systemach czasu rzeczywistego, np.: systemy bankowe systemy sieciowe systemy śledzenia i nadzorowania Przydatne w systemach wielodostępnych Narzędzia uzupełniające modele funkcji
48 Diagram sieci przejść w analizie strukturalnej (State Transition Diagram)STAN 1 STAN 2 Warunek Akcja
49 Przykład - logowanie do systemuBRAK ZGŁOSZENIA Wybrano „login” Otwórz form. „login” Wybrano „EXIT” Zamknij form. „login” OCZEKIWANIE NA LOGIN Podano „login” Prawidłowe hasło Otwórz formularz OCZEKIWANIE NA HASŁO Błędne hasło Wyświetl „jeszcze raz?” OCZEKIWANIE NA DECYZJĘ
50 Diagram stanów - UML Jest to diagram dynamiczny zwany niekiedy diagramem sieci przejść lub diagramem przepływu sterowania Pokazuje stany w jakich może znaleźć się system oraz w uproszczonej formie akcje i warunki łączące stany
51 Podstawowe symbole
52 Diagram stanów – przykład 1.
53 Diagram stanów – przykład 2.
54 Diagram stanów – przykład 3.
55 Diagram stanów – przykład 4.
56
57 Literatura Russ Miles, Kim Hamilton: UML 2.0 WprowadzenieDiagramy czynności Literatura Russ Miles, Kim Hamilton: UML 2.0 Wprowadzenie Stanisław Wrycza: Język UML 2.0 w modelowaniu systemów informatycznych