Diagramy czynności
Jolanta Sala Halina Tańska
2018/2019
Diagram aktywności (czynności)
• Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu.
• Diagram czynności przedstawia
sekwencyjne lub współbieżne kroki procesu obliczeniowego.
• Diagram czynności jest pewną mutacją
diagramu stanów.
Diagram aktywności (czynności)
• Diagramy czynności (activity diagram) służą do modelowania przepływów operacji
wykonywanych w celu realizacji zadań zlecanych systemowi przez jego aktorów.
• Diagramy czynności łączą idee pochodzące z trzech źródeł: diagramów zdarzeń J. Odella, technik modelowania stanów oraz sieci
Petriego.
Diagram czynności a diagram stanów
• Diagram czynności (aktywności) skupia się na opisaniu jakiegoś procesu, w którym
uczestniczy wiele obiektów.
• Diagram stanów pokazuje jakie są możliwe stany konkretnego obiektu.
• Diagram aktywności jest dobrym
narzędziem, gdy chcemy przedstawić
odpowiedzialność obiektów w ramach
jakiegoś procesu .
Graf aktywności
• Diagram aktywności jest grafem skierowanym, którego wierzchołki stanowią aktywności odpowiadające
operacjom wyróżnianym w trakcie przetwarzania, a łuki opisują przejścia pomiędzy aktywnościami. Można
powiedzieć, że graf aktywności to maszyna stanów, której podstawowym zadaniem nie jest przedstawianie stanów obiektu, jak ma to miejsce w przypadku diagramów
stanów, ale modelowanie przepływów operacji.
• Pojedynczy stan grafu aktywności może być interpretowany:
– Z perspektywy pojęciowej jako zadanie do wykonania przez człowieka i przez komputer.
– Z perspektywy projektowej jako grupa metod, pojedyncza metoda czy też nawet fragment metody.
Diagram czynności
Diagram czynności jest schematem
blokowym, który przedstawia przepływ sterowania od czynności do czynności.
Diagram czynności nie obrazuje stanów
obiektu podczas życia obiektu, ukazuje
cały system z punktu widzenia czynności
w systemie.
Diagram czynności
• Mogą być tworzone na różnych poziomach szczegółowości.
• Można je też stopniowo uszczegóławiać.
• W perspektywie zewnętrznej diagramy te reprezentują procesy biznesowe w ujęciu postrzeganym przez uczestników
zewnętrznych.
Diagram czynności
Diagram czynności składa się z:
• początek (initial)
• koniec (final)
• akcji i czynności (activity)
• przejść (flow)
• rozwidlenie/złączenie (fork/join)
• punkt synchronizacji (synch)
• rozgałęzienie decyzyjne (decision)
• wysłanie (send)/odebranie (receive)
Diagram czynności
Przepływ sterowania modelowany za pomocą diagramu czynności składa się z wielu zdarzeń.
Zdarzenia (wykonywalne, niepodzielne
obliczenia) to stany akcji.
Początek i koniec
Początek jest rozpoczęciem diagramu czynności. Od niego rozpoczyna się wędrówka zdarzeń i stanów.
Koniec jest zakończeniem działań systemu w
diagramie czynności.
Akcja
Stany akcji to niepodzielne zdarzenia jak:
• obliczenie
• wywołanie operacji obiektu
• wysłanie sygnału do obiektu
• utworzenie/zniszczenie obiektu
Stany akcji nie mogą być dekomponowane
Czynność
Czynności są bardzo podobne do akcji.
Różnica polega na tym, że stany czynności mogą być dekomponowane.
Czynność może mieć dodatkowo
akcje wejściowe i akcje wyjściowe
Czynność - akcja
• Czynności na diagramie mogą charakteryzować się złożoną, rozbudowaną funkcjonalnością.
• Czynność to określone zachowanie złożone z logicznie uporządkowanych ciągów
podczynności, akcji oraz obiektów w celu wykonania pewnego procesu.
• Akcja to elementarna jednostka specyfikacji
zachowania, która reprezentuje transformację
lub przetwarzanie w modelowanym systemie.
Dekompozycja czynności
• czynności
• podczynności
• akcje
Czynności można dekomponować
stosując następującą regułę:
Diagram czynności
Diagram czynności składa się z:
• początek (initial)
• koniec (final)
• akcji i czynności (activity)
• przejść (flow)
• rozwidlenie/złączenie (fork/join)
• punkt synchronizacji (synch)
• rozgałęzienie decyzyjne (decision)
• wysłanie (send)/odebranie (receive)
Przejścia (przepływy sterowania)
Przejście to przekazanie sterowania od jednej akcji/czynności do innej.
Gdy tylko skończy się akcja danego stanu źródłowego, zostaje wykonana akcja
wyjściowa (o ile istnieje).
Następnie sterowanie bezzwłocznie podąża wzdłuż przejścia i trafia do następnego stanu akcji lub stanu czynności.
1/5
Przepływ sterowania
• Przepływ sterowania zachodzi między kolejnymi
logicznie uporządkowanymi czynnościami lub akcjami.
• W szczególnych przypadkach można przypisać mu nazwę.
• Przepływ sterowania charakteryzuje się zdolnością przesyłania znaczników sterowania (tokens).
• Znaczniki sterowania to abstrakcyjne kategorie
pojęciowe, użyteczne w monitorowaniu i realizacji procesu sterowania na diagramie.
2/5
Przepływy decyzyjne
• Diagramy czynności w których czynności bądź akcje są uporządkowane w sposób sekwencyjny należą do
rzadkości.
• Specyfikacja procesu za pomocą tego diagramu oznacza konieczność rozważenia wielu przepływów
alternatywnych, uzależnionych od spełnienia warunków czy wykonania iteracji.
• Sytuacje te można definiować za pomocą bloków
decyzyjnych, które mają charakter decyzji lub złączenia.
3/5
Przepływy współbieżne
Przybierają postać rozwidlenia lub scalania:
• Rozwidlenie (fork node) cechuje się
występowaniem jednego wejściowego przepływu sterowania oraz co najmniej dwoma przepływami wynikowymi. Przepływ wejściowy inicjuje
skopiowanie znacznika sterowania i przekazanie poszczególnych kopii do wszystkich
współbieżnych przepływów.
• Scalenie (join node) oznacza przekazanie
sterowania z wielu współbieżnych wejściowych przepływów sterowania do jednego wynikowego.
4/5
Rozwidlenie / Złączenie
Rozwidlenie rozpoczyna współbieżne wykonywane czynności w systemie
5/5
Rozwidlenia i złączenia równoległych przepływów sterowania obrazuje się
w UML za pomocą pasków synchronizacyjnych.
Złączenie kończy współbieżne
wykonywane czynności w systemie
Diagram czynności
Diagram czynności składa się z:
• początek (initial)
• koniec (final)
• akcji i czynności (activity)
• przejść (flow)
• rozwidlenie/złączenie (fork/join)
• punkt synchronizacji (synch)
• rozgałęzienie decyzyjne (decision)
• wysłanie (send)/odebranie (receive)
Punkt synchronizacji
Punkt synchronizacji
wskazuje miejsce w
którym współbieżne
strumienie zostaną
zsynchronizowane.
Diagram czynności
Diagram czynności składa się z:
• początek (initial)
• koniec (final)
• akcji i czynności (activity)
• przejść (flow)
• rozwidlenie/złączenie (fork/join)
• punkt synchronizacji (synch)
• rozgałęzienie decyzyjne (decision)
• wysłanie (send)/odebranie (receive)
Rozgałęzienie decyzyjne
Na diagramach czynności mogą pojawić się rozgałęzienia opisujące alternatywne ścieżki postępowania.
W konkretnym przypadku do wyboru jednej z nich dochodzi na podstawie wartości pewnego wyrażenie logicznego.
Rozgałęzienie decyzyjne ma przejście
wejściowe i co najmniej 2 przejścia wyjściowe.
1/5
Węzeł decyzyjny
• Każde wyjście z węzła ma zdefiniowany warunek zapisany w nawiasach
kwadratowych.
• Jeżeli jest on spełniony, przepływ jest kontynuowany przez związane z nim wyjście.
• Wyjście typu [else] definiuje przepływ wykonywany w przypadku niespełnienia żadnego z warunków.
2/5
Rozgałęzienie decyzyjne
3/5
Węzeł łączący
• Reprezentuje takie miejsce w przepływie, w którym łączy się kilka krawędzi.
• Węzeł łączący posiada kilka wejść i jedno wyjście.
• Zadaniem węzła łączącego jest łączenie kilka przepływów.
• Wejścia nie są zsynchronizowane – jeśli jeden przepływ dotrze do węzła, przechodzi do wyjścia niezależnie od tego, czy do pozostałych wejść
dotarły inne przepływy.
4/5
Rozgałęzienie decyzyjne
5/5
Diagram czynności
Diagram czynności składa się z:
• początek (initial)
• koniec (final)
• akcji i czynności (activity)
• przejść (flow)
• rozwidlenie/złączenie (fork/join)
• punkt synchronizacji (synch)
• rozgałęzienie decyzyjne (decision)
• wysłanie (send)/odebranie (receive)
Wysłanie
Wysłanie ukazuje akcję wysłania komunikatu do miejsca przeznaczenia, gdzie może
spowodować uruchomienie przejścia lub
wykonania akcji.
Odebranie
Odebranie to element czekający na wystąpienie komunikatu.
Odebranie występuje w 2 wersjach:
• odebranie zdarzenia
• odebranie zdarzenia czasowego
Odebranie
Odebranie i wysłanie
Diagram czynności
Diagram czynności składa się z:
• początek (initial)
• koniec (final)
• akcji i czynności (activity)
• przejść (flow)
• rozwidlenie/złączenie (fork/join)
• punkt synchronizacji (synch)
• rozgałęzienie decyzyjne (decision)
• wysłanie (send)/odebranie (receive)
Diagram czynności
Dodatkowymi elementami diagramu czynności są:
• tory (swimlanes)
• przepływy obiektów (objects flows)
Tory
Tory pozwalają na podzielenie stanów czynności na grupy
Każda grupa czynności reprezentuje część
systemu odpowiedzialną za konkretne czynności.
Tory
Przepływ obiektów
Przepływ obiektów pozwala na
powiązanie obiektu z akcją lub
czynnością.
Obiekty:
z
należące do klasy Zamówienie
r
należące do klasy Rachunek
Diagram czynności
• Diagram czynności służy do obrazowania dynamicznych aspektów systemu.
• Diagram czynności można kojarzyć z przypadkami użycia i z kooperacjami.
• Istotą diagramu są czynności i akcje oraz przepływ sterowania między nimi.
• Na diagramie czynności można ukazać
części systemu, które odpowiedzialne są za
różne zadania.
Przykład 1 Biblioteka
Diagram przypadków użycia Scenariusz
Diagram aktywności/czynności
uc Biblioteka
Personel biblioteczny
w ypożycz książkę
spraw dź czy można w ypożyczyć danemu
czytelnikow i
spraw dź dostępność książki
rej estracj a w ypożyczenia
«include»
«extend»
«extend»
Diagram przypadków użycia
Scenariusz „wypożycz książkę”
• Pobranie danych czytelnika i książki
• Sprawdzenie, czy można wypożyczyć danemu czytelnikowi
• jeżeli nie można wypożyczyć, to
– Koniec przypadku użycia
• jeżeli można wypożyczyć, to:
– Sprawdzenie, czy książka jest dostępna, tzn. czy jest wolny egzemplarz
– jeżeli żaden egzemplarz książki nie jest dostępny, to
• Koniec przypadku użycia
– jeżeli egzemplarz książki jest dostępny, to:
• Rejestracja wypożyczenia
• Koniec przypadku użycia
act w ypożycz książkę
ActivityInitial
pobranie danych czytelnika i ksiazki
spraw dzenie, czy można w ypożyczyć danemu
czytelnikow i
spraw dzenie dostępności książki
rej estracj a w ypożyczenia książki
ActivityFinal
[można]
[nie można]
[dostępna]
[niedostępna]
Członek biblioteki może mieć jednocześnie
wypożyczonych sześć pozycji, podczas gdy osoba pracująca w bibliotece może mieć ich
wypożyczonych dwanaście.
Diagram aktywności/czynności
Biblioteka posiada książki i czasopisma.
Tylko personel może wypożyczać czasopisma.
System ma rejestrować wypożyczenia i zwroty
oraz pilnować, by przestrzegano wymienionych wyżej reguł (ograniczeń).
Może być kilka egzemplarzy tej samej książki.
Przykład 2
Kancelaria prawnicza
Diagram przypadków użycia Scenariusz
Diagram aktywności/czynności
Szef Kancelarii
przydziel prawnika do sprawy
wprowadź dane
Sprawdź czy można przydzielić sprawę
przydziel prawnika do sprawy
include
extend
extend
Diagram przypadków użycia – przydziel prawnika do sprawy
Scenariusz
• Przypadek użycia rozpoczyna aktor Szef kancelarii
• System pyta o dane prawnika i dane sprawy
• Szef kancelarii wprowadza potrzebne dane
• System sprawdza, czy prawnik nie jest zleceniodawcą sprawy
• Jeżeli prawnik nie jest zleceniodawcą sprawy, system
sprawdza czy prawnik nie zajmuje się aktualnie inną sprawą
• Jeżeli prawnik w danym momencie jest już przydzielony do innej sprawy, system informuje o zajętości prawnika i kończy
• Jeżeli prawnik jest aktualnie wolny, system rejestruje przydzielenie prawnika do sprawy i kończy PU
act model kancelaria
ActivityInitial
pobierz dane praw nika i
spraw y spraw dź czy praw nik nie
j est zleceniodaw cą spraw y
ActivityFinal
spraw dź czy praw nik j est aktualnie w olny rej estruj przydział
ActivityFinal
[nie jest zleceniodawcą]
[jest zleceniodawcą]
[jest zajęty]
Diagram aktywności/czynności – przydziel prawnika do sprawy
Przykład 3
Składanie zamówienia
Diagram przypadków użycia Scenariusz
Diagram aktywności/czynności
Klient
złóż zamówienie
wprowadź dane
Sprawdź podane informacje
przydziel numer zamówienia
include
extend
extend
Diagram przypadków użycia – złóż zamówienie
Scenariusz główny (przebieg zdarzeń)
1. Przypadek użycia rozpoczyna się, gdy klient wybierze Złóż zamówienie.
2. System wyświetla formularz Składania zamówienia.
3. Klient wprowadza swoje imię i nazwisko oraz adres.
4. Klient wprowadza kod towarów, które chce zamówić.
5. Dla każdego wpisanego kodu towaru pobiera informacje o towarze, natomiast system dodaje cenę towaru do sumy.
6. Klient wprowadza informacje o karcie płatniczej.
7. System sprawdza podane informacje.
8. System zapisuje zamówienie jako oczekujące – Include Zapisz zamówienie.
9. Include analizuj stan konta
10. System oznacza zamówienie jako potwierdzone.
11. Include Aktualizuj stan zamówienia.
12. System zwraca klientowi numer zamówienia, a przypadek użycia się kończy.
Scenariusz alternatywny (nadzwyczajne przebiegi) 3A. Adres klienta jest niepełny.
4A. Podany kod towaru nie pasuje do żadnego towaru.
4B. Towar już nie jest sprzedawany.
6A. Złe informacje o płatności 6B. Klient płaci czekiem
1A. Klient przesyła zamówienie pocztą
1B. Klient przekazuje zamówienie przez telefon
Scenariusz alternatywny (nadzwyczajne przebiegi): Anuluj składanie zamówienia Warunek wstępny: Klient nie wybrał jeszcze Zatwierdź
1. Nadzwyczajny ciąg zdarzeń rozpoczyna się, gdy użytkownik wybierze Anuluj.
2. System pomija wszystkie wprowadzone informacje.
3. System wraca do wcześniejszego formularza.
4. Przypadek użycia się kończy
Scenariusz – złóż zamówienie
Diagram czynności – Główny scenariusz przypadku użycia Złóż zamówienie
Obciąż konto Zatwierdź
Zamówienie zaznaczone jako oczekujące
Zamówienie zaznaczone jako potwierdzone Wyświetlono numer
zamówienia Wyświetlono formularz
zamówienia
Wprowadź nazwisko i adres
Podaj informacje o towarze
Oblicz nową cenę
Wyświetlono formularz zamówienia
[nie ma więcej kodów towarów]
[wprowadzono kod towaru]
[wprowadzono kod towaru]
[wybrano złóż zamówienie]
Czynności odwoływalne
[informacje pełne]
[opłata potwierdzona]
Podsumowanie
• Modelowanie
procesów/funkcji/czynności
• Modelowanie obiektów
• Modelowanie
procesów/funkcji/czynności
• Diagram czynności
• Modelowanie obiektów
• Diagram stanów
Diagram stanów obiektu f: Faktura
Uwarunkowania
• Sekwencję aktywności specyfikowanych w scenariuszu można i należy opisywać
wykorzystując diagramy aktywności
• Diagramy aktywności z natury rzeczy lepiej niż język naturalny nadają się do opisu złożonych przebiegów (z warunkami i/lub iteracjami)
• Diagramy aktywności są użytecznym narzędziem w procesie modelowania zachowań, zwłaszcza w
początkowych etapach analizy.
Uwarunkowania
• Diagramy aktywności obrazują przetwarzanie na wysokim poziomie abstrakcji
• Diagramy aktywności są używane jako punkt startowy dla procesu modelowania zachowań
• Podczas modelowania zachowań każda aktywność jest rozpisywana na szereg operacji
• Diagramy aktywności znajdują zastosowanie przede wszystkim w następujących obszarach:
– Do analizowania PU – gdy bardziej interesują nas operacje niezbędne do realizacji danego przypadku czy też wzajemne zależności między tymi operacjami
– Do zrozumienia interakcji zachodzących między PU – Do modelowania przetwarzania wielowątkowego
Przykład 4 do rozwiązania do rozwiązania Lotnisko – odprawa pasażerów
Diagram przypadków użycia Scenariusz
Diagram aktywności/czynności
Klient
wydaj kartę pokładową
wprowadź dane
Sprawdź podane informacje
przydziel numer miejsca
include
extend
extend
Diagram przypadków użycia – wydaj kartę pokładową
Scenariusz
act Pasażer poddaj e się odpraw ie
Obsługa pasażerów Pasażer
ActivityInitial
okazanie biletu w
punkcie odpraw y w eryfikacj a biletu
skierow anie pasażera do obsługi klientów odprawa bagaży
przyj ęcie bagażu
ActivityFinal
opłacenie dopłaty
w ydanie karty pokładow ej
ActivityFinal [else]
[bilet prawidłowy]
[else]
[bagaż kwalifikuje się do dopłaty]
Przykład 5 do rozwiązania do rozwiązania Biuro obsługi klienta
Diagram przypadków użycia Scenariusz
Diagram aktywności/czynności
Klient
złóż zamówienie
wprowadź dane
Sprawdź podane informacje
przydziel numer zamówienia
include
extend
extend
Diagram przypadków użycia – złóż zamówienie
Scenariusz
Diagram czynności
Przykład 6 do rozwiązania do rozwiązania Przydzielanie serwisantów
Diagram przypadków użycia Scenariusz
Diagram aktywności/czynności
Diagram przypadków użycia
Szef Serwisu
przydziel serwisanta
wprowadź uszkodzenie
Sprawdź tygodniowe
obciążenie
przydziel serwisantowi
naprawę
include
extend
extend
Scenariusz
act model aktyw ności
ActivityInitial
znaj dź serw isantów , którzy potrafią napraw ić
dane uszkodzenie
spraw dź, czy serw isant może w ykonać napraw ę w ciągu naj bliższego
tygodnia
anuluj zgłoszenie
przydziel serw isantow i napraw ę
ActivityFinal [sprawdzono wszystkich serwisantów]
[może]
[nie może]