Inżynieria oprogramowania Wykład 8 Inżynieria wymagań: analiza przypadków użycia a diagram czynności Patrz: Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski, Język UML 2.0 w modelowaniu systemów informatycznych, wyd. Helion 2006
Diagram przypadków użycia, przegląd notacji
Diagram przypadków użycia, przegląd notacji, cd.
Przykład: system nauczania asynchronicznego
Przykład: księgarnia internetowa
Przykład: gra Real Time Battle
UML: Diagram czynności (Activity Diagram) Diagram czynności stanowi graficzną reprezentację przepływu kontroli. Diagram jest używany do: analizowania przypadków użycia; zrozumienia interakcji zachodzących między przypadkami użycia; do modelowania przetwarzania wielowątkowego; Diagram nie należy używać do: pokazywania współpracy między obiektami w trakcie realizacji przypadku użycia do tego bardziej nadają się diagramy interakcji; do pokazywania zachowań obiektów w trakcie ich życia, w tym celu powinno się wykorzystywać diagramy stanów;
Składnia nazwa aktywności aktywność aktywność początkowa aktywność końcowa przejście, rzadko opisywane, ponieważ z reguły oznacza zakończenie aktywności; może być opatrzone warunkiem, może też być oznaczone symbolem iteracji; akcje opisujące przejścia powinny być raczej dołączone do którejś z aktywności; kreska ciągła oznacza przepływ sterowania, a przerywana - przepływ obiektu romb, który może rozdzielać jedno przejście na kilka innych (opatrzonych warunkami) lub łączyć kilka alternatywnych przejść w jedno sztabka synchronizujaca (synchronization bar); może być typu fork (rozdzielenie jednej operacji na kilka przebiegających równolegle) lub typu join (złączenie kilku operacji równoległych w jedną)
Partycje (Swimlanes) Są to regiony przeznaczone do grupowania aktywności według odpowiedzialności. Regiony, z powodu swojego wyglądu, są traktowane jak tory dla przepływów (tory pływackie swimlanes). Nazwy regionów odpowiadają nazwom osób, komórek organizacyjnych czy klas odpowiedzialnych za wykonanie aktywności.
Partycje przykład Klient Dział Sprzedaży Magazyn Zamów towary Płać Zrealizuj zamówienie Skompletuj zamówienie Wyślij towary Odbierz zamówienie Zakończ zamówienie
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ływy sterowania (ang. control flow) oraz przepływy 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
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)
Zdarzenia czasowe Zdarzenia czasowe (ang. time event) służą do modelowania zdarzeń zależnych od czasu 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
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 Diagramy czynności 15
Węzeł sygnału Węzeł sygnału nadawanego (ang. send signal node) służy do modelowania asynchronicznego wysyłania komunikatów 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
Węzeł sygnału odbieranego - właściwości Węzeł sygnału odbieranego (ang. receive signal node) służy do modelowania asynchronicznego odbioru komunikatów 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
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
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
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
Zastosowania diagramów czynności do analizy przypadku użycia Przypadek użycia: Zakup napoju Aktor główny: Klient Główny scenariusz: 1. Klient wrzuca bilon do automatu 2. Klient wybiera rodzaj napoju 3. Automat stwierdza, że wartość bilonu odpowiada cenie wybranego napoju 4. Automat wydaje napój 5. 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ę
Diagram czynności a algorytmy // algorytm szukania // minimum w tablicy Czytaj(t); min := t[1]; for (i=2; i <5; i++) { if (t[i] < min) min = t[i]; } Wypisz(min)
Diagram czynności a procesy biznesowe 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.