LABORATORIUM 4. Po co mi to, przecież wiem, co system ma robić? - czyli o diagramach UML 1. Słownik pojęć DIAGRAM CZYNNOŚCI (Activity Diagram) Czynność specyfikacja sparametryzowanych zachowań (akcje, przepływy sterowania) Akcja elementarny krok czynności Przepływ sterowania przejście z jednej akcji do drugiej (zapłacenie rachunku -> wydruk paragonu) Ograniczenia akcji warunki przed i po akcją (PŁACENIE KARTĄ: warunek przed: wstukanie PIN, stan: akceptacja transakcji przez bank, warunek po: transakcja została przyjęta, wydruk paragonu) Przepływ obiektu (utworzenie, modyfikacja, użycie np. przesłanie faktury, celem dokonania zapłaty): 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. Przykład: podział czynności wykonywanej na obiekcie pomiędzy 2 inne obiekty (podmioty)
Zdarzenia czasowe (Time Event) - służy modelowaniu zdarzeń zależnych od czasu - okresu oczekiwania w postaci określonej daty lub względnej (liczba dni, godzin, minut, itp.). Służą również do modelowania przepływów cyklicznych, tj. przepływów rozpoczynających się w określonych momentach. Mogą się pojawiać w dowolnym miejscu czynności, w tym również w miejsce węzła początkowego Węzeł sygnału nadawanego (Send Signal Node)-służy modelowaniu asynchronicznego wysyłania komunikatów (do innych procesów lub do samego węzła). Po wysłaniu komunikatu następuje automatycznie przejście do wykonywania kolejnej akcji/czynności (proces nie czeka na odbiór komunikatu) Węzeł sygnału odbieranego (Receive Signal Node) służy modelowaniu asynchronicznego odbioru komunikatów przez proces oczekujący na pojawienie się ściśle określonego komunikatu. Po odebraniu komunikatu generowane jest przejście do kolejnych akcji/czynności. Bez dochodzącego sterowania jest zawsze aktywny (może odbierać komunikaty cały czas), z dochodzącym przepływem sterowania uaktywnia się dopiero w momencie otrzymania sterowania Obszar przerwań (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. Diagram czynności (aktywności) pozwala na zobrazowanie wewnętrznych stanów w jakim może znajdować się obiekt w trakcie jego użytkowania pozwala definiować zdarzenia, które doprowadzają do zmiany stanu modelowanego obiektu. służy do obrazowania czynności oraz zakresu odpowiedzialności użytkowników systemu (użytkownikiem systemu może być inny podsystem).
w odróżnieniu od diagramu stanów opisuje działania związane z wieloma, komunikującymi się wzajemnie obiektami. Definiuje odpowiedzi na pytania: jak pobierane są operacje? co operacje wykonują (zmiana stanu obiektu)? gdzie i kiedy operacje są wykonywane? Nazwa Notacja UML Stan początkowy akcji (węzeł początkowy, zawsze jeden) Stan końcowy akcji (węzeł końcowy, może być ich wiele) Stan końcowy pojedynczej akcji Czynność (aktywność) Decyzja rozdzielenie aktywności na kilka innych, służy wyborowi jednego przejścia przepływu sterowania każde wyjście opatrzone warunkiem koniecznym do realizacja danego przejścia zebranie różnych alternatywnych przejść (ścieżki alternatywne) Sztabka synchronizująca (Współbieżność) Przejście FORK (rozdzielenie jednej operacji na kilka przebiegających równolegle, po zajściu przejść przychodzących występują jednocześnie wszystkie przejścia wychodzące) JOIN (złączenie kilku operacji równoległych w jedną, aby nastąpiło przejście wychodzące, muszą wystąpić wszystkie przejścia przychodzące.) PRZEPŁYW STEROWANIA (Control Flow) (Zakończenie jednej czynności powoduje
rozpoczęcie drugiej) PRZEPŁYW OBIEKTU (Data Flow) (Obiekt występuje pomiędzy aktywnościami, co oznacza że jest otrzymywany na wyjściu pierwszej z nich, a pobierany na wejściu drugiej) Elementy rozproszone R Tory pływackie (określenie który element systemu wykonuje akcje) Zdarzenie czasowe Węzeł sygnału NADAWANEGO ODBIERANEGO Do jednego diagramu może należeć kilka przepływów (kilka obiektów zaangażowanych w wykonywanie czynności)
Przykład z życia codziennego: Podsumowanie: 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;
Wytyczne do tworzenia diagramów czynności: 1. Należy ustalić najważniejsze czynności - nie można przedstawić na jednym diagramie wszystkich czynności 2. Należy wybrać obiekty przedsiębiorstwa, które są zobowiązane do realizacji bardziej ogólnego przepływu. Mogą to być elementy rzeczywiste, istniejące w słownictwie systemu, lub elementy abstrakcyjne. W obu przypadkach należy utworzyć tor dla każdego wybranego obiektu. 3. Należy zidentyfikować stan początkowy i końcowy modelowanego przepływu. 4. Przechodząc od stanu początkowego do końcowego należy modelować kolejne stany czynności lub stany akcji. 5. W przypadku złożonych akcji lub często występujących zbiorów akcji należy je połączyć w stany czynności. Z każdym stanem skojarz oddzielny diagram czynności, który przedstawia zebrane nim akcje. 6. Należy zobrazować przepływy czynności między stanami akcji i stanami czynności. Pierwsze powinny być brane pod uwagę przepływy sekwencyjne, potem rozgałęzienia, na końcu rozwidlenia i scalenia. 7. Jeśli w modelowanym przepływie czynności biorą udział istotne obiekty, należy je umieścić na diagramie. Należy uwzględniać zmieniające się atrybuty i stany tych obiektów, jeśli jest to konieczne do zrozumienia przepływu tych obiektów. Diagram czynności a przypadek użycia
Przykład 1: Kosmonauta, aby polecieć w kosmos, przyjeżdża do ośrodka treningowego i melduje się. Jest odsyłany najpierw na badanie wzroku i jednocześnie zdjęcie miary, dalej pobierana jest od niego próbka krwi, która przechodzi analizę w laboratorium, a w tym czasie kosmonauta przechodzi szkolenie z obsługi skafandra i promu. Zdjęta miara trafia do techników, którzy przygotowują kombinezon, a następnie przeprowadzają przymiarkę przed szkoleniem z obsługi, i w razie czego dokonują poprawek. Jeśli kosmonauta nie odpadnie przy badaniach i ma gotowy skafander, zaczyna czekać na miejsce w rakiecie
Przykład 2: Samochód trafia do warsztatu w celu naprawy. Mechanik robi wstępny przegląd i jeśli okazuje się, że będzie potrzebować części, przesyła zamówienie na części do magazynu. Gdy zamówienie jest realizowane, mechanik w tym czasie wymontowuje zepsute części. Zbiór części w magazynie jest kompletowany, po czym są one wydawane mechanikowi. Jeśli brak części w magazynie, wysyłane jest zlecenie na zamówienie części do działu finansowego. Magazyn czeka na realizację zamówienia, po czym kończy kompletowanie części i odsyła je mechanikowi. Gdy mechanik dostanie części lub gdy naprawa ich nie wymagała, mechanik naprawia, po czym sprawdza samochód. Jeśli coś nadal nie działa, procedura powtarzana jest od początku, a jeśli samochód jest już sprawny, mechanik wysyła kosztorys naprawy do działu finansowego, który sporządza rachunek i powiadamia klienta o zakończeniu naprawy. W tym czasie mechanik sprząta i myje samochód, po czym oddaje go klientowi. Po wstępnym przeglądzie może okazać się również, że samochód nie nadaje się do naprawy. Wtedy mechanik zawiadamia dział finansowy, który dzwoni do klienta i pyta, czy samochód ma być ze złomowany, czy klient woli go odebrać. Jeśli klient chce odebrać samochód sam, zostaje mu wystawiony rachunek i mechanik wydaje klientowi samochód. Jeśli klient woli samochód ze złomować również otrzymuje rachunek, zaś mechanik przygotowuje samochód do złomowania wymontowując z niego wartościowe części i wysyłając je do magazynu. Gdy magazyn otrzyma już wszystkie cenne części, mechanik odstawia samochód na złom
Przykład 3: Kapitan piratów patrząc przez swoją lunetę może zauważyć 2 typy okrętów. Jeśli widzi okręt wojenny, wydaje załodze rozkaz przygotowania dział, zaś jeśli widzi okręt handlowy, rozkazuje załodze przygotować się do abordażu, a majtkowie w tym czasie wywieszają flagę piracką. W przypadku ostrzału z dział, jeśli jest skuteczny, czyli przeciwnik odnosi duże zniszczenia, również dochodzi do abordażu, w przeciwnym razie kapitan nakazuje załodze przygotowanie żagli i ucieczkę z wiatrem. Zakładamy, że kapitan jest błyskotliwy i dzięki jego
wybitnym umiejętnościom abordaż zawsze się udaje. Po abordażu załoga przeszukuje okręt i dzieli się łupami 20% doli oddając kapitanowi. W tym samym czasie majtkowie znoszą rannych pod pokład i oddają ich pod opiekę okrętowego łapiducha. Łapiduch po zajęciu się rannymi zdaje relację ze stanu załogi kapitanowi. Po podziale łupów martwym załogantom urządza się pogrzeb w morzu, a w tym czasie majtkowie zajmują się przeglądem sprawności dział, a kapitan ogląda znów horyzont przez lunetę. Jeśli zauważy nowy statek, cała procedura zaczyna się od nowa, zaś jeśli horyzont jest czysty, kapitan zleca majtkom wyniesienie spod pokładu 2 beczek rumu, a sam w tym czasie ustala kurs na Tortugę.