E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 1/39 Wykład 7 Model dynamiczny (1) Diagramy aktywności dr inż. Ewa Stemposz.

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

Programowanie obiektowe
Związki w UML.
Projektowanie aplikacji równoległych Jarosław Kuchta.
Modelowanie aktywności
Diagramy stanów i diagramy aktywności
Modelowanie przypadków użycia
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Język ANSI C Funkcje Wykład: Programowanie komputerów
Tomasz Andrejczuk Łukasz Razmuk gr. 620
Projektowanie systemów informacyjnych
Modelowanie procesów biznesowych
Formalizacja i uwiarygodnianie Iteracyjny proces syntezy modeli
Maciej I Stanisław Jedlińscy
Projektowanie systemów informacyjnych
Zrównoleglanie programu sekwencyjnego
Projektowanie Aplikacji Komputerowych
Propozycja metodyki nauczania inżynierii oprogramowania
Co UML może zrobić dla Twojego projektu?
Tomasz Jabłoński Michał Ziach
Diagramy interakcji Jacek Górski gr
Unified Modeling Language Wykład 5 Diagram czynności
Diagramy klas w języku UML
Diagram czynności (Activity Diagrams)
Zadanie 1.
Projektowanie systemów informacyjnych
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Dr Anna Kwiatkowska Instytut Informatyki
Projektowanie - wprowadzenie
Diagramy czynności.
Projektowanie dynamiki - diagramy interakcji
Wykład 4 Analiza i projektowanie obiektowe
Oskar Ośko Mateusz Skoczewski Michał Sułek
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Elżbieta Fiedziukiewicz
Wybrane zagadnienia relacyjnych baz danych
Diagramy aktywności Diagramy implementacyjne i pakietów.
Modelowanie obiektowe Diagramy czynności
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Modelowanie obiektowe Diagramy sekwencji
Modelowanie obiektowe Diagramy klas
Zadanie 1.
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Podstawy Techniki Cyfrowej
Temat 7: Instrukcje warunkowe
ZAPIS BLOKOWY ALGORYTMÓW
Diagramy czynności/aktywności (Activity Diagrams)
Model obiektowy bazy danych
Diagram aktywności (czynności)
Diagram przypadków użycia
Diagram klas Kluczowymi elementami są: klasy (class)
Przykłady analiza i projektowanie
Modelowanie obiektowe - system zarządzania projektami.
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
Diagram obiektów Diagram obiektów ukazuje elementy i związki z diagramu klas w ustalonej chwili. Diagram obiektów jest grafem złożonym z wierzchołków i.
Diagram przypadków użycia
Diagramy przepływu danych
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Wstęp do interpretacji algorytmów
Wstęp do systemów informatycznych Model przypadków użycia.
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 1/24 Wykład 1 Wprowadzenie do UML dr inż. Ewa Stemposz
Studia Podyplomowe IT w Biznesie Analiza dynamiczna w UML
Wykład 8 Model dynamiczny (2)
E. Stemposz. UML, Diagramy komponentów i wdrożeniowe, Wykład 11, Slajd 1/24 Wykład 11 Diagramy komponentów i wdrożeniowe dr inż. Ewa Stemposz
Inżynieria systemów informacyjnych
Projektowanie wspomagane komputerem
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 1/39 Wykład 7 Model dynamiczny (1) Diagramy aktywności dr inż. Ewa Stemposz

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 2/39 Zagadnienia Diagramy aktywności  Podstawowe pojęcia; notacja  Aktywność a akcja  Przepływy decyzyjne  Przepływy współbieżne  Łącznik  Przepływ sterowania a przepływ obiektu  Wierzchołki typu obiekt  Akcje związane z sygnałami  Obszar rozszerzenia  Obszar przerwania  Obsługa wyjątków  Partycje  Podsumowanie diagramów aktywności

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 3/39 Diagramy aktywności (czynności)  Diagramy aktywności: nie posiadają wyraźnego pierwowzoru w poprzednich pracach Jacobsona, Boocha i Rumbaugha. Łącząc idee pochodzące z trzech źródeł: diagramów zdarzeń J. Odell’a, technik modelowania stanów i sieci Petriego są szczególnie użyteczne przy modelowaniu przepływów operacji.  Graf aktywności: − Wierzchołki grafu aktywności odpowiadają stanom wyróżnialnym w trakcie przetwarzania i noszą nazwę aktywności. Aktywność może być interpretowana różnie, w zależności od perspektywy: jako zadanie do wykonania i to zarówno przez człowieka, jak i przez komputer (z perspektywy pojęciowej) czy też np. jako pojedyncza metoda (z perspektywy projektowej). Przejścia między wierzchołkami (krawędzie grafu) są związane z zakończeniem przetwarzania wyspecyfikowanego dla danej aktywności. Diagramy aktywności mogą być wykorzystywane do modelowania: procesów biznesowych, scenariuszy przypadków użycia, przetwarzania współbieżnego, pojedynczych operacji, grup operacji, algorytmów.

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 4/39 Adaptacja notacji BNF =struktura danych po lewej stronie symbolu = składa się z elementów wyspecyfikowanych po stronie prawej +odpowiada słowu “i”; wykorzystywane do agregowania elementów [ … ]definiowana struktura zawiera tylko jeden spośród elementów zawartych w nawiasach [ ]; kolejne elementy są oddzielane przecinkami ( … )elementy zawarte w nawiasach ( ) są opcjonalne, co oznacza, że mają 0..1 wystąpień { … }definiowana struktura zawiera od 0..* wystąpień elementu zawartego w nawiasach { }; kolejne wystąpienia są oddzielane przecinkami * … *informacje zawarte między * * są traktowane jak komentarz, a więc nie stanowią elementów składowych definiowanej struktury SymbolZnaczenie

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 5/39 Prezentowanie diagramów aktywności ad Nazwa diagramu ad – activity diagram = ( ) + + { }

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 6/39 Podstawowe pojęcia; notacja Podstawowe pojęcia przyjęte w UML 2.* dla diagramów aktywności: aktywność; czynność (ang. acitivity) lub akcja (ang. action) przepływ sterowania: oznacza zakończenie jednej aktywności/akcji i przejście do drugiej; ten sam symbol jest używany dla oznaczenia przepływu obiektu blok decyzyjny: może rozdzielać jedno przejście na kilka alternatywnych (opatrzonych warunkami) lub łączyć kilka alternatywnych przejść w jedno przejście sztabka synchronizująca (ang. synchronization bar): może być typu rozwidlenie (rozdzielenie jednej operacji na kilka realizowanych współbieżnie) lub typu scalenie (złączenie kilku operacji współbieżnych w jedną) aktywność początkowa aktywność końcowa zakończenie przepływu nazwa aktywności/ akcji

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 7/39 Aktywność a akcja Akcja: operacja elementarna; nie może zostać przerwana; czas realizowania akcji zazwyczaj nie jest brany pod uwagę x := 100 Wylicz średnią Aktywność: operacja złożona z innych operacji (złożonych lub elementarnych) Złóż zamówienie Rejestruj klienta Rejestruj klienta Uwaga: Warunek zachowania spójności diagramów wymusza konieczność tożsamości nazw: aktywności nadrzędnej i diagramu uszczegóławiającego.

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 8/39 Przepływy decyzyjne [Warunek 1-szy] [Warunek 2-gi] [Warunek 3-ci] [Warunek 1-szy] [Warunek 2-gi] [else] [True] [False] Decyzja (ang. choice node) Złączenie (ang. merge node)Decyzja + Złączenie [...]

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 9/39 Alternatywna notacja dla wierzchołka typu decyzja [ x ≤ n ] [ x > n ] [ ≤ n ] [ > n ] x = Lewy operand wyrażenia może być umieszczony wewnątrz rombu decyzyjnego.

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 10/39 Przepływy współbieżne Rozwidlenie (ang. fork node) Scalenie (ang. join node)Rozwidlenie + Scalenie

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 11/39 Diagram aktywności; przykład ad Przygotowanie Napoju Znajdź Napój Nasyp kawy do filtru Dolej wody do zbiornika Włóż filtr do maszynki Włącz maszynkę Gotowanie kawy Nalej kawę Zrób herbatę Weź sobie wody [nie ma kawy] [kawa znaleziona] [nie ma herbaty] [herbata znaleziona] [światełko zgasło] Weź filiżanki Wypij *[dla 3 filiżanek]

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 12/39 Przykład wykorzystania zakończenia przepływu Buduj komponent Instaluj komponent [wszystkie komponenty zostały zbudowane] [nie wszystkie komponenty zostały zbudowane] ad Budowa i instalacja komponentów

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 13/39 Łącznik Łącznik (ang. activity edge connector): umożliwia przerwanie przepływu sterowania w jednym miejscu diagramu i wznowienie go w innym: kolejne łączniki są zwyczajowo oznaczane kolejnymi dużymi literami alfabetu łacińskiego, przepływ sterowania może zostać wznowiony na innym diagramie aktywności. ad Przykładowy diagram Aktywność 1 Aktywność 2 Aktywność 3 A A Aktywność 4 Aktywność 5

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 14/39 Wykorzystanie łącznika; przykład ad Przygotowanie Napoju Znajdź Napój Nasyp kawy do filtru Dolej wody do zbiornika Włóż filtr do maszynki Włącz maszynkę Gotowanie kawy Nalej kawę Zrób herbatę Weź sobie wody [nie ma kawy] [kawa znaleziona] [nie ma herbaty] [herbata znaleziona] [światełko zgasło] Weź filiżanki Wypij *[dla 3 filiżanek] A A

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 15/39 Przepływ sterowania a przepływ obiektu (1) Przepływ sterowania (ang. control flow edge) Przepływ obiektu (ang. object flow edge) Przepływ obiektu – jako kategoria modelowania – został wprowadzony w celu ilustrowania przepływu obiektów (lub danych innego rodzaju) pomiędzy aktywnościami/akcjami. wierzchołek typu obiekt (ang. object node) ang. object node pin nazwa danych nazwa danych ang. standalone object node pin nazwa danych

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 16/39 Przepływ sterowania a przepływ obiektu (2) nazwa danych {stream} nazwa danych [stan] {stream} nazwa danych [stan] {stream} {nonstream} jest domyślne nazwa danych nazwa danych [stan] nazwa danych [stan] Alternatywna notacja dla oznaczenia przepływu strumienia danych: zamiast ograniczenia {stream} zamalowano groty strzałek i wierzchołki we/we operacji

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 17/39 Przepływ sterowania a przepływ obiektu (3) symbol trójkąta jest wykorzystywany dla oznaczenia przepływu danych wykorzystywanych w obsłudze „nie rutynowych” sytuacji Opiniuj prośbę o pożyczkę Odrzuć prośbę Akcepuj opłatę Wyślij informację o braku akceptacji Opłata nie zaakceptowana Opłata zaakceptowana Wyślij informację o akceptacji sytuacja rutynowa sytuacja nierutynowa

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 18/39 Notacja dla wierzchołka typu obiekt (1) Wierzchołek typu obiekt: oznacza taki wierzchołek w grafie aktywności, w którym dostępne jest wystąpienie/wystąpienia określonego klasyfikatora; w czasie run-time’u wierzchołek typu obiekt może „zawierać” tylko takie dane, które są zgodne z typem danych określonych dla wierzchołka jeśli typ danych dla wierzchołka nie został określony, wierzchołek może „zawierać” dane dowolnego typu wystąpienie/wystąpienia mogą mieć wyspecyfikowane stany jest możliwe określenie maksymalnej liczby wystąpień, które może „zawierać” dany wierzchołek; ograniczenie {upperBound=2}; możliwe jest wykorzystanie * ograniczenie {ordering=LIFO} jest umieszczane dla uporządkowania wystąpień w wierzchołku innego, niż uporządkowanie domyślne FIFO nazwa danych zbiór nazw danych nazwa danych : typ nazwa danych [stan, stan,...] nazwa danych {upperBound=2} nazwa danych {ordering=LIFO}

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 19/39 Notacja dla wierzchołka typu obiekt (2) «selection»: zachowanie (ang. behaviour) wykorzystywane w celu umożliwienia wyboru danych związanych z wierzchołkiem typu obiekt; selection jest umieszczane w polu adnotacji nazwa wierzchołek „zawierający” sygnał/sygnały «datastore» nazwa [stan] wierzchołek z bazą danych nazwa «selection» specyfikacja selekcji «selection» specyfikacja selekcji określa sposób selekcjonowania danych dla przepływów wychodzących z wierzchołka typu obiekt wierzchołek z buforem centralnym służącym do kolejkowania przepływów danych pomiędzy różnymi miejscami źródłowymi i docelowymi «CentralBuffer» nazwa [stan] Specjalne rodzaje wierzchołków typu obiekt:

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 20/39 Przepływ obiektu; przykłady Skompletuj zamówione produkty Wyekspediuj zamówione produkty Zamówienie Skompletuj zamówione produkty Wyekspediuj zamówione produkty Zamówienie Skompletuj zamówione produkty Wyekspediuj zamówione produkty Uproszczenie przepływu obiektu (poprzez opuszczenie detali) Zamówienie Skompletuj zamówione produkty Wyekspediuj zamówione produkty Produkt

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 21/39 Specyfikacja selekcji; przykłady Skompletuj zamówione produkty Wyekspediuj zamówione produkty Zamówienie [skompletowane] Zamówienie [skompletowane] «selection» zgodnie z priorytetem zamówień; FIFO dla zamówień o tym samym priorytecie Zamknij zamówienie Wyślij informację do klienta Zamówienie [zamknięte] Klient «transformation» Zamówienie.klient zamówione produkty będą ekspediowane w oparciu o priorytety zamówień; zamówienia o tym samym priorytecie mają być obsługiwane zgodnie z porządkiem FIFO transformacja jest rodzajem selekcji; aktywność Zamknij zamówienie „produkuje” obiekty Zamówienie, podczas gdy aktywność Wyślij informację do klienta wymaga obiektów Klient; zostaną one uzyskane dzięki transformacji będącej efektem zapytania Zamówienie.klient

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 22/39 Zbiory parametrów Zbiory parametrów (ang. parameter sets): oznaczają alternatywne „podgrupy” danych we/wy dla operacji – oznaczane za pomocą obramowania wierzchołków; jeden wierzchołek typu obiekt może pojawić się w kilku podgrupach; Domyślnie – wewnątrz grupy wierzchołków typu obiekt (stanowiących parametry we/wy dla operacji) wierzchołki są traktowane na zasadzie logicznej koniunkcji, tzn. można rozpocząć przetwarzanie specyfikowane przez operację dopiero wtedy, gdy wszystkie dane, specyfikowane przez wierzchołki wejściowe, zostały skompletowane (to samo dotyczy wierzchołków wyjściowych). Jeśli wykorzystano oznaczanie zbiorów parametrów, to przetwarzanie może rozpocząć się, gdy któraś z podgrup danych została skompletowana.

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 23/39 Akcje związane z sygnałami; sygnał typu „czas” Akcja związana z akceptacją sygnału (ang. accept event action): Akcja związana z wysyłaniem sygnału (ang. sent event action): Żądanie anulowania zamówienia Anuluj zamówienie koniec miesiąca Generuj raport ze sprzedaży Przetwarzaj zmówienie Żądanie opłaty Opłata potwierdzona Wyekspediuj zamówienie sygnał typu „czas”

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 24/39 Wagi Waga (ang. weight): wskazuje minimalną liczbę obiektów, które muszą być przekazane z jednej aktywności do drugiej, aby ta druga mogła być uruchomiona. Wagę, będącą ograniczeniem, oznacza się w nawiasach klamrowych w pobliżu przepływu obiektu. Waga = 0 oznacza, że nie nałożono ograniczenia na liczbę przekazywanych obiektów. Rejestruj uczestnika kursu Utwórz grupę kursantów Student {weight = 15} Rejestruj studenta «datastore» Baza sudentów Dokonaj przeglądu ocen {weight = all} raz na semestr Przypisz studenta do grupy «selection» student.przynależność = null Przykład 1: Przykład 2:

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 25/39 Parametry złożonych aktywności Parametr aktywności: oznacza parametr wejściowy lub parametr wyjściowy dla złożonych aktywności. Do danej aktywności można przypisać więcej niż jeden parametr. Nazwa parametru Nazwa aktywności Przykład: Rejestruj studenta «datastore» Baza studentów Przypisz studenta do grupy «selection» student.przynależność = null Rejestruj studenta i przypisz do grupy Student

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 26/39 Parametry złożonych aktywności; przykład Rejestruj studenta i przypisz do grupy Student «datastore» Baza studentów Dokonaj przeglądu ocen {weight = all} raz na semestr

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 27/39 Obszar rozszerzenia (1) Obszar rozszerzenia (ang. expansion region): określa pewien zamknięty, zagnieżdżony fragment diagramu aktywności z wyspecyfikowanymi wejściami i wyjściami (w postaci wierzchołków rozszerzenia). Każde wejście jest kolekcją danych tego samego typu (co sugeruje notacja przyjęta dla wierzchołków – zbiór czterech segmentów). Operacje, zawarte wewnątrz obszaru rozszerzenia, są wykonywane raz dla każdego z wierzchołków wejściowych, zgodnie ze specyfikacją trybu przetwarzania (słowo kluczowe: stream, parallel (concurrent) lub iterative). «słowo kluczowe» stream: do obszaru rozszerzenia jest przekazywany strumień danych; operacje w rejonie są wykonywane jeden raz parallel: interakcje na elementach kolekcji są wzajemnie niezależne i mogą być realizowane współbieżnie dla wszystkich wierzchołków kolekcji iterative: kolejność interakcji jest zgodna z porządkiem elementów kolekcji wejściowej; każde wykonanie operacji wewnątrz obszaru rozszerzenia dotyczy jednego elementu kolekcji alternatywna notacja dla odróżnienia wierzchołków wejściowych od wyjściowych pojedynczy wierzchołek obszaru rozszerzenia

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 28/39 Obszar rozszerzenia (2) „Na zewnętrz” obszaru rozszerzenia, wierzchołki we/wy są traktowane jako kolekcje elementów, zaś „w jego wnętrzu” jako pojedyncze elementy. Jeśli obszar rozszerzenia posiada kolekcje wy, rodzaje kolekcji we/wy oraz typy korespondujących wierzchołków muszą być zgodne. W ogólnym przypadku, liczba kolekcji wejściowych nie musi być równa liczbie kolekcji wyjściowych, to samo dotyczy rozmiarów kolekcji. Jeśli wszystkie „egzekucje” dostarczą wyniki, kolekcja wy będzie miała taki sam rozmiar, jak kolekcja we. W przeciwnym wypadku, tzn. jeśli któraś z „egzekucji” nie dostarczy danych wynikowych, nic nie jest dodawane do kolekcji wy – kolekcja wy nie będzie miała takiego samego rozmiaru, jak kolekcja we; obszar rozszerzenia spełnia rolę filtru. Jeśli przepływ obiektu przecina granice obszaru, bez przechodzenia przez wierzchołki obszaru, oznacza to dostarczenie danych, które nie ulegają zmianie w trakcie wykonywanych „egzekucji”.

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 29/39 Obszar rozszerzenia; przykład 1 «słowo kluczowe» S:Array s:Integer T:Array t:Integer

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 30/39 Obszar rozszerzenia; przykład 2 «iterative» Obszar rozszerzenia z dwoma wejściami i jednym wyjściem: przetwarzanie nie zostanie rozpoczęte dopóki obie wejściowe kolekcje nie będą dostępne; obie kolekcje wejściowe muszą mieć tyle samo elementów; W danym momencie, przetwarzana jest para elementów, po jednym elemencie z każdej kolekcji; wyniki operacji na parach elementów są formowane w kolekcję wyjściową; kolekcja wyjściowa będzie dostępna „na zewnątrz” obszaru, kiedy zostanie zakończone przetwarzanie dla wszystkich elementów obu kolekcji wejściowych.

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 31/39 Obszar rozszerzenia z jedną operacją «słowo kluczowe» Nazwa aktywności «słowo kluczowe» Nazwa aktywności pełna forma notacja uproszczona

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 32/39 Obszar rozszerzenia z jedną operacją; przykład Uproszczona notacja dla obszarów rozszerzenia: wykorzystywana jest, dla regionów rozszerzeń z tylko jedną operacją; operacja musi być wykonana na wszystkich elementach kolekcji wejściowej. Oba zamieszczone poniżej diagramy są równoważne i opisują obszar rozszerzenia z trybem przetwarzania «parallel». Policz średnią studenta Twórz listę 10-ciu najlepszych studentów koniec roku akademickiego * Twórz listę 10-ciu najlepszych studentów Student koniec roku akademickiego Policz średnią studenta Student «parallel»

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 33/39 Obszar przerwania Obszar przerwania: określa zamknięty, zagnieżdżony fragment diagramu aktywności, wewnątrz którego w wyniku wystąpienia określonego zdarzenia, możliwe jest przerwanie „normalnego” przetwarzania. Skompletuj produkty dla zamówienia Wekspediuj produkty zamówienia Przyjmij zamówienie [zamówienie odrzucone] [zamówienie przyjęte] Żądanie anulowania zamówienia Anuluj zamówienie

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 34/39 Obsługa wyjątków Uwaga: Zarówno wierzchołek chroniony, jak i wierzchołek z obsługą wyjątku muszą być na tym samym poziomie zagnieżdżenia. Notacja alternatywna Nazwa wyjątku Wierzchołek chroniony Wierzchołek z obsługą wyjątku Nazwa wyjątku Wierzchołek chroniony Wierzchołek z obsługą wyjątku Ocena spoza zakresu Rejestruj ocenę Przeskaluj ocenę Notacja podstawowa Przykład

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 35/39 Partycje (1) Partycja (ang. activity partitions): kategoria modelowania, wykorzystywana do grupowania elementów diagramów aktywności. Bazę dla grupowania stanowi podział odpowiedzialności za realizację operacji zawartych w wyróżnionej grupie. Diagramy aktywności, w wersji podstawowej, specyfikują przepływy operacji bez określania, kto jest odpowiedzialny za ich realizację, np. którzy ludzie czy które komórki organizacyjne (z perspektywy pojęciowej) czy też które klasy (z perspektywy projektowej). Można opisywać każdą aktywność podając osobę, komórkę organizacyjną, organizację czy klasę odpowiedzialną za jej wykonanie, ale być może wygodniejszym sposobem przenoszenia informacji tego rodzaju jest grupowanie aktywności odpowiednio do odpowiedzialności i umieszczanie ich w oddzielnych partycjach rozdzielonych pionowymi (i/lub poziomymi) liniami. Nazwy partycji mogą odpowiadać nazwom osób, komórek organizacyjnych, organizacji czy klas odpowiedzialnych za wykonanie aktywności. Partycje mogą być dalej dzielone na podpartycje (ang. activity subpartition).

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 36/39 Partycje (2) ad Realizacja dostawy podzespołów KontrahentDział DostawMagazyn Skompletuj podzespoły Wyślij fakturę Dostarcz podzespoły Odbierz dostawę Umieść podzespoły w magazynie Dostawa [odebrana] Zaksięguj przychód Wyślij zapłatę

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 37/39 Przykład dla wymagań z biblioteką (1) Uproszczony scenariusz dla przypadku użycia: wypożyczenie egzemplarza książki Sprawdzenie, czy można wypożyczyć danemu czytelnikowi o ile można, to: Sprawdzenie, czy książka jest dostępna (czy jest wolny egzemplarz) o ile jest dostępny egzemplarz, to: Rejestracja wypożyczenia Wypożyczenie egzemplarza książki Sprawdzenie, czy można wypożyczyć danemu czytelnikowi Sprawdzenie dostępności książki Rejestracja wypożyczenia egzemplarza Personel biblioteczny «include» «extend»

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 38/39 Przykład dla wymagań z biblioteką (2) [True] [False] [dostępna] [else] Sprawdzenie, czy można wypożyczyć danemu czytelnikowi Sprawdzenie dostępności książki Rejestracja wypożyczenia egzemplarza książki

E. Stemposz. UML i Analiza dynamiczna, Diagramy aktywności, Wykład 7, Slajd 39/39 Podsumowanie diagramów aktywności Kiedy używać diagramów aktywności:  Do analizowania przypadków użycia − gdy interesują nas bardziej operacje niezbędne do realizacji danego przypadku (czy też wzajemne zależności między tymi operacjami), a nie to, kto jest odpowiedzialny za ich przeprowadzenie. Przypisanie operacji do obiektów może być wykonywane na etapie późniejszym, z wykorzystaniem diagramów interakcji.  Do zrozumienia interakcji zachodzących między przypadkami użycia (ważne zastosowanie).  Do modelowania przetwarzania wielowątkowego. Kiedy nie używać diagramów aktywności:  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.