E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 1/68 Wykład 9 Model dynamiczny (3) Diagramy interakcji dr inż. Ewa Stemposz.

Slides:



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

Język C/C++ Funkcje.
Programowanie obiektowe
Związki w UML.
Projektowanie aplikacji równoległych Jarosław Kuchta.
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Projektowanie systemów informacyjnych
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
Maciej I Stanisław Jedlińscy
Projektowanie systemów informacyjnych
UML rozszerzenie Seminarium magisterskie
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Tomasz Jabłoński Michał Ziach
Diagramy interakcji Jacek Górski gr
Diagramy klas w języku UML
Diagram czynności (Activity Diagrams)
K.Subieta, E. Stemposz. Projektowanie systemów informacyjnych, Wykład 9, Folia 1 Projektowanie systemów informacyjnych Kazimierz Subieta, Ewa Stemposz.
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Semafory według normy POSIX
Projektowanie - wprowadzenie
Diagramy czynności.
Projektowanie dynamiki - diagramy interakcji
Wykład 4 Analiza i projektowanie obiektowe
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Oskar Ośko Mateusz Skoczewski Michał Sułek
Podstawy programowania
Podstawy programowania II
Podstawy układów logicznych
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Inicjalizacja i sprzątanie
Elżbieta Fiedziukiewicz
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Programowanie obiektowe 2013/2014
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
Model dynamiczny (1) Diagramy interakcji.
Modelowanie obiektowe Diagramy klas
W ą t e k (lekki proces) thread.
Projektowanie stron WWW
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Diagramy czynności/aktywności (Activity Diagrams)
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Diagram aktywności (czynności)
Modelowanie obiektowe - system zarządzania projektami.
Diagram komunikacji (communication diagram)
Projektowanie relacyjnych baz danych – diagramy związków encji
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Projekt modułu Nazwa całego projektu Nazwa modułu Imię i Nazwisko Inżynieria Oprogramowania II dzień, godzina rok akademicki W szablonie na niebiesko zamieszczone.
Diagramy przepływu danych
Wstęp do interpretacji algorytmów
Model warstwowy ISO-OSI
Pętle – instrukcje powtórzeń
Tryby adresowania i formaty rozkazów mikroprocesora
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
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
Programowanie Obiektowe – Wykład 2
Diagramy interakcji Kamil Kuliczkowski.
Haskell Składnia funkcji.
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 1/68 Wykład 9 Model dynamiczny (3) Diagramy interakcji dr inż. Ewa Stemposz

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 2/68 Zagadnienia Diagramy interakcji:  Rodzaje diagramów interakcji  Komunikaty: składnia, rodzaje  Diagramy komunikacji  Diagramy sekwencji Generyczne diagramy interakcji: Współbieżność na diagramach interakcji Fragmenty wyodrębnione Wystąpienia interakcji Przywoływanie wystąpień interakcji Diagramy sterowania interakcją Diagramy następstwa stanów  Wyrażanie warunków  Wyrażanie iteracji

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 3/68 Diagramy interakcji Diagramy interakcji: jeden z rodzajów diagramów dynamicznych; wykorzystywane do tworzenia opisów współdziałania elementów strukturalnych systemu (wystąpień klasyfikatorów) w trakcie realizacji zadania (np. przypadku użycia czy też jednego konkretnego scenariusza danego przypadku użycia). Interakcja oparta jest o przesyłanie komunikatów. Narzędzia CASE potrafią wykorzystać diagramy interakcji do generowania kodu. UML 2.* posiada cztery rodzaje diagramów interakcji: diagramy komunikacji (ang. communication diagrams); diagramy sekwencji (ang. sequence diagrams) – izomorficzne z diagramami komunikacji; diagramy sterowania interakcją (inna nazwa: diagramy przeglądu interakcji) (ang. interaction overview diagrams) – wykorzystywane do budowy opisu (naszkicowania zarysu) przepływu sterowania wewnątrz grupy logicznie powiązanych diagramów; diagramy następstwa stanów (inna nazwa: diagramy harmonogramowania) (ang. timing diagrams) – wykorzystywane do prezentowania na osi czasu następstwa stanów instancji klasyfikatora/ów biorącego/ych udział w interakcji.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 4/68 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 interakcji, Wykład 9, Slajd 5/68 Prezentowanie diagramów interakcji = ( ) + + { } sd – wyróżnik diagramu sekwencji (sequence diagram) cd – wyróżnik diagramu komunikacji (communication diagram) td – wyróżnik diagramu następstwa stanów (timing diagram) iod – wyróżnik diagramu przeglądu interakcji (interaction overview diagram) iod Nazwa diagramu td Nazwa diagramu cd Nazwa diagramu sd Nazwa diagramu

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 6/68 Składnia komunikatu (1) = ( ) + ( ) + = { } + ”/” Przykłady: 2.1/ 1.3, 1.4, 1.7/ = ([, ] + ”:”) + ( ) = [, ] = ”[” { } ”]” Przykłady: [ocena > 4] [ocena_zaliczeniowa >3, ocena_egzaminacyjna > 4]

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 7/68 Składnia komunikatu (2) = [”*”, ”* [” ”]”] Przykłady: * * [i = 1..10] = ( ”=”) + + (”(” { } ”)”) + (”:” ) Atrybuty i wartości zwracane są wykorzystywane tylko dla komunikatów zwrotnych. Wartość zwracana jest wykorzystywana wyłącznie ze specyfikacją atrybutu. Ani atrybut ani wartość zwracana nie muszą być wartościami prostymi. Przykłady komunikatów: komunikatx (1, _, 17.5, „hello world”) // drugi argument jest niezdefiniowany x=komunikat1 (25, y) : 257 // komunikat zwrotny, wartość 257 zostanie przypisana do zmiennej x komunikat3 (x=27)

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 8/68 Rodzaje komunikatów (1) Rodzaj komunikatuNotacja Znaczenie komunikat synchroniczny (ang. synchronous message) “Normalna” proceduralna sytuacja. Nadawca zawiesza działanie, dopóki odbiorca nie zwróci sterowania. komunikat asynchroniczny (ang. asynchronous message) Nadawca komunikatu nie oczekuje na odpowiedź odbiorcy, ale też i nie kończy własnej aktywności, co oznacza, że nadal przetwarza i może wysyłać komunikaty. komunikat zwrotny (ang. reply message) Powrót oznacza zakończenie komunikatu synchronicznego i zwrot sterowania do nadawcy ale może być też związany z przekazaniem wartości zwracanej czy wartości dla argumentu in/out Oznaczanie powrotu nie jest obligatoryjne.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 9/68 Rodzaje komunikatów (2) Rodzaj komunikatuNotacja Znaczenie komunikat utracony (ang. lost message) Wykorzystywany w modelowaniu złożonych interakcji, gdy na etapie początkowych prac znany jest nadawca komunikatu, natomiast nie jest znany jego odbiorca. Odbiorca zostanie zidentyfikowany na etapie późniejszym. komunikat znaleziony (ang. found message) Sytuacja podobna, jak powyżej, ale tu znany jest odbiorca komunikatu a nieznany nadawca. komunikat udaremniony (opcjonalny?) (ang. balking message) Nadawca oczekuje bezzwłocznego wykonania komunikatu. Jeśli odbiorca nie jest gotowy, wtedy komunikat nie jest realizowany, a nadawca nie podejmuje ponownych prób jego przesłania.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 10/68 Rodzaje komunikatów (3) Rodzaj komunikatuNotacja Znaczenie komunikat oczekujący (ang. timeout message) Nadawca jest w stanie czekać przez pewien okres czasu na zrealizowanie komunikatu przez odbiorcę. Po upłynięciu tego czasu, o ile komunikat nie został zrealizowany, nadawca rezygnuje z interakcji. komunikat tworzący nowy obiekt (ang. object creation message) Komunikat należy poprzedzić stereotypem «create». Komunikaty: synchroniczny, asynchroniczny i zwrotny należą do tzw. komunikatów kompletnych (ang. complete messages).

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 11/68 Komunikat zwrotny; interakcje nierozłączne :K k :K1:K2 m1(p1) m2(p2) p2=m2(_) : 17 m3(p) x=m3(_) :K k :K1 m1(p1) m2(p2) interakcje nierozłączne (ang. overlapping execution occurrences) przykłady komunikatów zwrotnych UML 2.*

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 12/68 Potencjalni odbiorcy komunikatów Do jakich obiektów mógłby ewentualnie wysłać komunikat obiekt o w trakcie realizacji otrzymanego komunikatu m:  do siebie samego,  do obiektów stanowiących argumenty metody m,  do obiektów, które tworzy w trakcie realizacji komunikatu m,  do obiektów, z którymi jest bezpośrednio powiązany.  Ponadto, obiekt mógłby wysłać komunikat, realizujący operację klasową. Przykład złego projektowania, które nie stosuje się do np. przedostatniej z w.w. zasad. KontrolerPracy Praca KontrolerWszystkiego getKP(p:Praca) : KontrolerPracy * 1 1 * 1 *

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 13/68 Diagramy komunikacji; przykład Prosty diagram komunikacji, bez uwidaczniania interakcji między obiektami, stanowi coś w rodzaju “wystąpienia fragmentu diagramu klas”; pokazuje aktora, relewantne obiekty i powiązania między nimi. Możliwe jest pokazanie więcej niż jednego obiektu danej klasy. Diagram komunikacji pokazuje w jaki sposób system realizuje dany przypadek użycia. Współpracujące obiekty są połączone liniami nazywanymi “powiązaniami”. Powiązania odpowiadają wystąpieniom asocjacji z diagramu klas, a to oznacza, że odpowiednia asocjacja musi (?) istnieć na diagramie klas. :Personel bibl. :Członek bibl. :Książka :Egzemplarz książki Można tu pokazywać też informacje w rodzaju:  nazwy powiązań,  kierunki nawigowania,  itd., jak na diagramie klas pod warunkiem, że zwiększą, a nie zmniejszą czytelność diagramu.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 14/68 Interakcja na diagramach komunikacji (1) Komunikaty przedstawiane są tu w postaci etykiet strzałek rysowanych wzdłuż powiązań pomiędzy współpracującymi obiektami. Diagramy komunikacji mogą dodatkowo pokazywać interakcje zachodzące między obiektami zaangażowanymi w realizację danego przypadku użycia. Sekwencja interakcji oznacza tu sekwencję komunikatów przesyłanych między współpracującymi obiektami. :Członek bibl. :Książka :Egzemplarz książki Pożycz (tytuł) 1: Czy można pożyczyć 2: Czy tytuł dostępny Możliwe scenariusze: 1) nie można pożyczyć danemu członkowi bibl. 2) można pożyczyć ale książka jest niedostępna 3) można pożyczyć, książka jest, trzeba zarejestrować wypożyczenie 4: Zaznacz wypożyczenie 3: Czy wolny :Personel bibl. linia życia (ang. life line) komunikat wysyłany od aktora do obiektu klasy Członek bibl.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 15/68 Interakcja na diagramach komunikacji (2) Komunikaty mogą być numerowane, albo kolejnymi liczbami naturalnymi (jak na poprzednim diagramie), albo stosując tzw. numerację zagnieżdżoną. W obu przypadkach, z reguły nie bierze się pod uwagę komunikatu wysyłanego od aktora. :Członek bibl. :Książka :Egzemplarz książki Pożycz (tytuł) 1: Czy można pożyczyć 2: Czy tytuł dostępny 2.2: Zaznacz wypożyczenie 2.1: Czy wolny Numeracja zagnieżdżona oznacza, że jeśli obiekt o otrzyma komunikat m o numerze np. 7.3 to ten numer będzie dołączany jako prefix do każdego komunikatu wysyłanego w trakcie realizacji komunikatu m przez obiekt o. agregowanie operacji z uwzględnieniem kierunku interakcji i rodzaju komunikatów :Personel bibl.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 16/68 Linia życia; składnia Linia życia definiowana jest jak poniżej: = [(( (”[” ”] ”)) ”:” { } ( )), ”self”] gdzie: = = ”ref” Linia życia, mimo że składnia pozwala na to, nie może być pusta (tzn. nie może nie zawierać ani jednego z elementów wymienionych powyżej). Przykłady: :K, o:K, o[i]:K, o:U, V

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 17/68 Obiekty wielokrotne na diagramach komunikacji 1: Podaj ilość wypożyczeń :Personel bibl. :Członek bibl. Obiekty wielokrotne (ang. multiple objects): Pojedyncza instancja klasyfikatora może przesłać komunikat do wszystkich obiektów danej klasy. Oznaczenie komunikatu symbolem iteracji (*) byłoby w tym przypadku nadmiarowe. 1: * [dla wszystkich członków] Podaj ilość wypożyczeń :Personel bibl. :Członek bibl.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 18/68 Klasyfikatory aktywne Klasyfikatory aktywne: instancje klasyfikatora są zdolne do inicjowania wątku – poprzez wysłanie pierwszego komunikatu w ciągu komunikatów zagnieżdżonych, instancje klasyfikatora są zdolne do samodzielnego inicjowania wysyłania komunikatów w określonych odcinkach czasu, instancje klasyfikatora mogą prowadzić obliczenia na podstawie danych przechowywanych w instancjach innych klasyfikatorów. Przykład instancji klasyfikatora aktywnego: :NazwaKlasy

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 19/68 Interakcja komunikatów; przykład w Javie (1) :Personel bibl. : EgzemplarzKsiążki 1.1: czyMożnaPożyczyć () 1.2: pożycz (tytuł, członekBibl) 1.2.2: zaznaczWypożyczenie (członekBibl) 1.2.1: czyWolny () 1.3: zaznaczWypożyczenie (egzemplarzKsiążki) Dla implementacji w języku obiektowym (np. w Javie), przypadek użycia “pożycz egzemplarz książki” mógłby być zrealizowany poprzez sekwencję komunikatów, jak na poniższym diagramie (bez usuwania polskich znaków diakrytycznych). W Javie, metody klasowe mogłyby być implementowane za pośrednictwem np. metod statycznych. :CzłonekBibl ? 1: pożycz (daneOsobowe, tytuł) : Książka

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 20/68 Interakcja komunikatów; przykład w Javie (2) Diagram klas, zgodny z diagramem komunikacji jak na poprzedniej folii, wyglądałby jak poniżej. CzłonekBibl pożycz (daneOsobowe, tytuł) czyMożnaPożyczyć () zaznaczWypożyczenie (egzemplarzKsiążki) Książka pożycz (tytuł, członekBibl) pożyczył * 0..1 EgzemplarzKsiążki czyWolny () zaznaczWypożyczenie (członekBibl) 1..*

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 21/68 Diagramy sekwencji; notacja podstawowa (1) Diagramy sekwencji nie pokazują powiązań pomiędzy współpracującymi instancjami, ale można ich istnienie wydedukować w oparciu o przesyłane komunikaty. Kolejność obiektów nie ma tu znaczenia, ale warto zadbać o czytelność diagramu. :Personel bibl. :Książka :Członek bibl. :Egzemplarz książki Pożycz (tytuł) 1: Czy można pożyczyć 2: Czy tytuł dostępny upływ czasu 2.1: Zaznacz wypożyczenie głowa linii życia (ang. head of life line) linia życia obiektu (ang. life line) czas życia obiektu (ang. life time)

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 22/68 Diagramy sekwencji; notacja podstawowa (2) :Personel bibl. :Książka :Członek bibl. :Egzemplarz książki Pożycz (tytuł) 1: Czy można pożyczyć 2: Czy tytuł dostępny 2.1: Zaznacz wypożyczenie aktywne życie obiektu

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 23/68 Ilustracja przekazywania sterowania :Personel bibl. :Książka :Członek bibl. :Egzemplarz książki Pożycz (tytuł) 1: Czy można pożyczyć 2: Czy tytuł dostępny 2.1: Zaznacz wypożyczenie Na diagramach sekwencji, wyraźniej niż na diagramach komunikacji, można pokazać przekazywanie sterowania.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 24/68 Nakładanie ograniczeń czasowych (1) :Sterowanie:Dzwoniący:Odbierający podniesienie słuchawki ton w słuchawce wybór cyfry łączenie ton dzwonka uruchomienie dzwonka podniesienie słuchawki koniec tonu koniec dzwonienia a b c d d’ {b - a < 1 sec.} {c - b < 10 sec.} Główna przewaga diagramów sekwencji nad diagramami komunikacji przejawia się w ich zdolności do graficznego prezentowania upływu czasu, a nawet do podawania ograniczeń czasowych, czy też – co może być kontrowersyjne – skali czasowej. Taka możliwość może mieć duże znaczenie dla opisu systemów czasu rzeczywistego. ograniczenie na czas trwania (ang. duration constraint) Rozmowa jest łączona poprzez sieć {d’ - d < 5 sec.}

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 25/68 Nakładanie ograniczeń czasowych (2) :Personel bibl. :Książka :Członek bibl. :Egzemplarz książki Pożycz (tytuł) 1: Czy można pożyczyć 2: Czy tytuł dostępny 2.1: Zaznacz wypożyczenie A C {C=A.. 3 * d} { Zaznacz wypożyczenie - Czy tytuł dostępny < 1 sek.} gdy interesuje nas czas przesłania komunikatu ograniczenie na moment w czasie (ang. time constraint)

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 26/68 Wartości zwracane; tworzenie, usuwanie obiektów Czasami przydaje się uwidocznienie wartości zwracanej przez komunikat, poprzez instrukcję przypisania. Umożliwia to późniejsze wykorzystanie tej wartości, np. jako argumentu dla innego komunikatu. Wartość zwracana może też być wykorzystana do specyfikowania warunku czy iteracji. :Sekretariat ds. nauczania :Wykładowca n = pobierzNazwisko :Szef wykładowców «create» utwórzSzefaWykładowców (n) «destroy» usuńWykładowcę X Wykładowca Szef wykładowców diagram sekwencji wykorzystujący notację UML 1.* nowa instancja pojawia się na diagramie w miejscu korespondującym z czasem jej utworzenia koniec życia obiektu

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 27/68 Wartości zwracane; tworzenie, usuwanie obiektów Projekt musi specyfikować, kto jest odpowiedzialny za usuwanie obiektów, aby zapobiec tzw. “wyciekaniu pamięci”. Niektóre języki, takie jak np.Java czy SmallTalk, posiadają wbudowane mechanizmy zbierania nieużytków (ang. garbage collectors). Z grubsza, polega to na usuwaniu (w jakimś czasie) wszystkich obiektów, do których nie ma żadnych referencji w systemie. :Sekretariat ds. nauczania :Szef wykładowców [nowy] :Wykładowca [usuwany] «create» 2: utwórzSzefaWykładowców (n) 1: n = pobierzNazwisko «destroy» 3: usuńWykładowcę Komunikaty wysyłane od aktora są tu numerowane, aby można było ustalić ich kolejność. diagram komunikacji instancja klasyfikatora z oznaczonym stanem

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 28/68 Generyczne diagramy interakcji (1) W UML, generyczny diagram interakcji powinien specyfikować wszystkie możliwe sekwencje interakcji dla danego przypadku użycia, a nie tylko dla jednego ze scenariuszy. Diagram dla pojedynczego scenariusza jest tu nazywany wystąpieniem generycznego diagramu interakcji. Ponieważ diagramy generyczne mogą w niektórych przypadkach okazać się zbyt złożone, dopuszcza się rozwiązania połowiczne. Przedstawianie zachowań warunkowych UML 1.* Wysłanie komunikatu może być uzależnione od spełnienia wyspecyfikowanego warunku. :K [i = 0] x [i = 1] y :K [i = 0] x [i = 1] y Możliwe są wszystkie kombinacje. Może być wysłany albo komunikat x albo y. Może też nie być wysłany żaden z nich. {dla interakcji synchronicznej i przetwarzania jednowątkowego warunki muszą się wykluczać} k k dwa różne punkty w czasie ten sam punkt w czasie

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 29/68 Generyczne diagramy interakcji (2) Warunek, zapisany wewnątrz nawiasów [ ], stanowi wyrażenie typu Boolean i może być wyrażony w języku naturalnym, w języku ustrukturalizowanym (np. OCL), w języku programowania, pseudokodzie czy innej notacji. :K1 7.1: [i = 0] x 7.2: [i = 1] y :K2 Budzi wątpliwości numeracja komunikatów, bo może wykonać się tylko jeden z nich. Być może oba powinny być oznaczone przez 7.1. Linia życia dla wystąpienia klasy K2 uległa rozgałęzieniu, aby podkreślić fakt, że stan obiektu może wyglądać inaczej w zależności od tego, który z komunikatów (x czy y) zostanie wysłany.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 30/68 Generyczne diagramy interakcji (3) Przedstawianie iteracji UML umożliwia oznaczenie komunikatu, który ma być wysłany wiele razy, poprzez poprzedzenie go symbolem *. W wersjach UML 2.* do wyrażania warunków i iteracji wykorzystywane są tzw. wyodrębnione fragmenty interakcji. Przykłady iteracji: *[i = 1..10] – komunikat będzie wysłany 10 razy, *[x < 10] – komunikat będzie wysyłany dopóki x będzie < 10, *[pozycja nie znaleziona] – komunikat będzie wysyłany dopóty, dopóki pozycja nie zostanie znaleziona, czyli do momentu, gdy warunek przyjmie wartość FALSE. Jeśli w trakcie wielokrotnego wysyłania komunikatu x, będzie wysyłany także komunikat y, to zostanie on wysłany tyle razy, ile razy wysyłane jest x. W takim wypadku, dla zachowania spójności diagramów nie należy powtarzać symbolu iteracji przed komunikatem y. Wyrażanie warunków na diagramach komunikacji jest także możliwe. Nie da się tu jednak pokazać rozgałęzienia linii życia obiektu. Wydaje się, że poza najprostszymi sytuacjami, diagramy sekwencyjne lepiej modelują realizację bardziej złożonych (z opcjonalnymi scenariuszami) przypadków użycia.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 31/68 Generyczne diagramy interakcji (4) :K2:K3 3.1: *[i = 1..2] x 3.1.1: y :K2:K3 :K1 3.1: *[i = 1..2] x 3.1.1: *[j = 1..3] y xyxy xyyyxyyy sekwencja komunikatów

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 32/68 Generyczny diagram interakcji; przykład w Javie (1) :Personel bibl. : Książka : EgzemplarzKsiążki 1.1: można = czyMożnaPożyczyć () 1.2: [można] egzemplarzKsiążki = pożycz (tytuł, członekBibl) 1.2.2: [wolny] zaznaczWypożyczenie (członekBibl) 1.2.1: *[poprz. egz. zajęty i nie koniec przeglądania] wolny = czyWolny () :CzłonekBibl. ? Dla implementacji w Javie przypadku użycia “pożycz egzemplarz książki”, generyczny diagram interakcji mógłby wyglądać następująco: 1: pożycz (daneOsobowe, tytuł) 1.3: [znaleziono wolny egzemplarz] zaznaczWypożyczenie (egzemplarzKsiążki)

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 33/68 Generyczny diagram interakcji; przykład w Javie (2) CzłonekBibl pożycz (daneOsobowe, tytuł) czyMożnaPożyczyć : Boolean zaznaczWypożyczenie (egzemplarzKsiążki) Książka pożycz (tytuł, członekBibl) : EgzemplarzKsiążki pożyczył * 0..1 EgzemplarzKsiążki czyWolny : Boolean zaznaczWypożyczenie (członekBibl) 1..* Diagram klas, zgodny z diagramem komunikacji przedstawionym na poprzednim slajdzie, wyglądałby jak poniżej.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 34/68 Podstawowe rodzaje interakcji Obiekt, adresat komunikatu, musi go rozumieć, co oznacza, że klasa której jest wystąpieniem, musi dostarczyć tę operację. Konstruowanie diagramów interakcji może pomóc w identyfikowaniu zarówno metod w klasach, jak i asocjacji między klasami, a przez to może prowadzić do korekty diagramu klas, i temu celowi zresztą głównie służy. Jest oczywistym, że oba modele: obiektowy i dynamiczny muszą być spójne. Rodzaje interakcji:  Sekwencyjna (synchroniczna) – tylko jeden aktor może zainicjować sekwencję komunikatów i w danym momencie tylko jeden obiekt może “działać”. Obiekt rozpoczyna tzw. “aktywne życie” (staje się aktywny) w momencie otrzymania komunikatu. Zanim wyśle odpowiedź do nadawcy komunikatu, może prowadzić obliczenia czy też wysyłać komunikaty do innych obiektów. Wysyłając komunikat do innego obiektu nadal pozostaje aktywny, ale jego własna działalność zostaje zawieszona do czasu otrzymania odpowiedzi na wysłany komunikat, wysyłanie komunikatu zwiazane jest tu z przekazywaniem sterowania do odbiorcy komunikatu. W każdym momencie istnieje w systemie stos aktywnych obiektów; na szczycie stosu znajduje się ten obiekt, który aktualnie “działa”. Wysłanie odpowiedzi na komunikat powoduje zdjęcie obiektu ze stosu.  Współbieżna.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 35/68 Współbieżność na diagramach interakcji Dla interakcji sekwencyjnych nadawca komunikatu oczekuje na odpowiedź odbiorcy zawieszając własną działalność w trakcie oczekiwania. W danym momencie czasu działa tylko jeden obiekt i wysyłany może być tylko jeden komunikat. Takie systemy nazywane są też czasami proceduralnymi lub jednowątkowymi. Prosta definicja systemu współbieżnego mówi: wiele obiektów może działać w tym samym czasie, wiele komunikatów może być wysyłanych jednocześnie. Do systemów współbieżnych możemy zaliczyć, np.:  systemy rozproszone – przetwarzanie zachodzi równocześnie na wielu procesorach w różnych miejscach,  wielowątkowe aplikacje – przetwarzanie równoległe na wielu procesorach lub na jednym procesorze z podziałem czasu. Przetwarzanie współbieżne jest często mylone z przetwarzaniem w czasie rzeczywistym, ponieważ systemy czasu rzeczywistego są często współbieżne i vice versa. Jednakże idee leżące u podłoża obu rodzajów systemów są różne: system jednowątkowy może być systemem czasu rzeczywistego, podczas gdy współbieżny może takim systemem nie być. Dla systemu czasu rzeczywistego istotne jest wypełnianie ograniczeń czasowych.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 36/68 Modelowanie wielu wątków sterowania Rozpoczęcie nowego wątku sterowania jest możliwe np. poprzez: Rozdzielenie istniejącego wątku na kilka innych: Obiekt, który działa (bo otrzymał komunikat) może wysłać jednocześnie kilka synchronicznych komunikatów. Synchroniczność oznacza tu, że będzie oczekiwał na zakończenie wszystkich. Na diagramie sekwencji byłoby to uwidocznione przez pokazanie komunikatów wysyłanych w tym samym punkcie czasowym, jak już było prezentowane wcześniej, ale tym razem bez ograniczenia, że warunki muszą się wzajemnie wykluczać. Można używać nazw (pojedynczego znaku lub łańcucha znaków) na oznaczenie współbieżności komunikatów: np A jest współbieżne z 2.10.B dla aktywności spowodowanej wysłaniem komunikatu 2.10, w przeciwieństwie do i , które oznaczają komunikaty nie współbieżne. Aktor, może wysłać nowy komunikat w trakcie przetwarzania systemu. Obiekt może wysłać asynchroniczny komunikat do innego obiektu. Oznacza to, że może uaktywnić inny obiekt nie zawieszając swojej własnej aktywności.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 37/68 Przykład diagramu ze współbieżnością w UML 1.* :Personel bibl. :Członek bibl. Czy przetrzymuje [przetrzymuje] Książka :Egzemplarz książki «create» Rejestruj nową «create» Rejestruj nowy

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 38/68 Invarianty stanu; wystąpienie interakcji Invarianty stanu (ang. state invariants): ograniczenia dotyczące uczestnika/ów interakcji, ewaluowane w czasie run-time’u przed wykonaniem interakcji następującej po specyfikacji ograniczenia. Wszystkie przebiegi, dla których takie ograniczenie ma wartość false są uznawane za nieważne/niedozwolone (ang. invalid traces). Notacja: Invarianty stanu są specyfikowane w nawiasach klamrowych i umieszczane na linii życia tego uczestnika interakcji, którego dotyczą. Alternatywna prezentacja – umieszczenie ograniczenia wewnątrz symbolu stanu lub umieszczenie notatki skojarzonej ze specyfikacją wystąpienia interakcji (ang. interaction occurence specification). :KK sd specyfikacja wystąpienia interakcji specyfikacja wystąpienia interakcji sd specyfikacja wystąpienia interakcji :KK

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 39/68 Invarianty stanu; przykład :K k : K2:K1 v x sd State invariant  przykład q s {k.aa == 13} Invariant stanu, umieszczony na linii życia dla obiektu klasy K1, będzie ewaluowany przed następującym za nim wystąpieniem interakcji na tej linii życia. K1.b == 777

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 40/68 Fragmenty wyodrębnione Fragment wyodrębniony (ang. combined fragment): spójny fragment diagramu sekwencji, którego semantyka jest określona poprzez powiązany z tym fragmentem operator interakcji. Fragmenty wyodrębnione zostały wprowadzone w UML 2.0 i mogą być wykorzystywane wspólnie z tzw. wystąpieniami interakcji (ang. interaction occurences). Notacja: nagłówek = + {<parametr} W nagłówku fragmentu, może pojawić się więcej niż jeden operator, np.: sd alt czy assert consider. operandy fragmentu interakcji (1 lub więcej) separator operandów

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 41/68 Rodzaje operatorów interakcji (1) OperatorNotacjaZnaczenie alternatywa (ang. alternatives) altFragment wyodrębniony zawiera więcej niż jeden operand; tylko jeden operand może być wybrany do realizacji; wybór jest dokonywany w oparciu o warunki wyspecyfikowane dla każdego z operandów. opcja (ang. option) optFragment wyodrębniony zawiera jeden operand; jeżeli wyspecyfikowany warunek jest spełniony, operacje zdefiniowane dla fragmentu będą realizowane – w przeciwnym wypadku zostaną pominięte. przerwanie (ang. break) breakRodzaj operatora alt z dwoma operandami, gdzie fragment wyodrębniony stanowi jeden operand a otoczenie fragmentu drugi; jeżeli warunek wyspecyfikowany w obszarze fragmentu jest spełniony, zdefiniowane w nim operacje będą realizowane – natomiast operacje z otoczenia fragmentu zostaną zignorowane; warunek może nie być określony explicite, wtedy wybór między operandem break a jego otoczeniem jest dokonywany niedeterministycznie.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 42/68 Rodzaje operatorów interakcji (2) OperatorNotacjaZnaczenie iteracja (ang. loop) loopFragment wyodrębniony zawiera jeden operand; minimalna i maksymalna liczba iteracji może być określona za pomocą parametrów: loop (”(” (”,” ) ”)”), gdzie min i max oznaczają nieujemne liczby całkowite; wyspecyfikowanie tylko jednego parametru oznacza wykonanie pętli określoną przez podany parametr ilość razy; warunek może być określony z wykorzystaniem wyrażenia typu Boolean; brak parametrów oznacza 0 dla minimalnej liczby powtórzeń i nieskończoność dla maksymalnej. współbieżność (ang. parallel) parFragment wyodrębniony zawiera więcej niż jeden operand; w ramach fragmentu, wszystkie operandy są współbieżnie realizowane. obszar krytyczny (ang. critical region) criticalOperacje, objęte przez obszar krytyczny mają najwyższy priorytet w ramach diagramu; interakcje realizowane w otoczeniu obszaru krytycznego i nie mające wpływu na jego wykonanie, mogą przebiegać równocześnie z nim.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 43/68 Rodzaje operatorów interakcji (3) OperatorNotacjaZnaczenie asercja (ang. assertion) assertSekwencja operacji, wyspecyfikowanych we fragmencie wyodrębnionym, stanowi jedyną dozwoloną (ang. valid) realizację; fragmenty z operatorem assert są często łączone z fragmentami typu consider i ignore. istotność (ang. consider) considerParametr nagłówka fragmentu wyodrębnionego wskazuje na operację/operacje, której/których wykonanie jest istotne w ramach fragmentu; consider {m, s} – wskazuje, że tylko komunikaty m i s są uważane za istotne; jeśli interakcje zawarte wewnątrz obszaru consider zostaną wykorzystane do testowania pracy systemu, to operacje inne, niż wymienione w nagłówku, będą zignorowane – co oznacza, że powinny być jakoś obsłużone ale ich realizacja nie ma znaczenia dla realizacji całości fragmentu. nieistotność (ang. ignore) ignoreParametr nagłówka fragmentu wyodrębnionego wskazuje na operację/operacje, którą/które można pominąć w trakcie realizacji fragmentu; ignore {m, s} – wskazuje, że komunikaty m i s są uważane za nieistotne dla wykonania fragmentu jako całości.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 44/68 Rodzaje operatorów interakcji (4) OperatorNotacjaZnaczenie ścisłe uporządkowanie (ang. strict sequencing) strictOperacje, zawarte wewnątrz fragmentu strict sequencing, muszą być realizowane ściśle wg kolejności operandów zdefiniowanej dla danego diagramu. słabe uporządkowanie (ang. week sequencing) seqKolejność realizacji interakcji, zdefiniowanych wewnątrz fragmentu week sequencing, podlega poniższym regułom: 1. wystąpienia interakcji, wewnątrz różnych operandów i dla różnych linii życia, mogą występować w dowolnej kolejności, 2. wystąpienia interakcji, wewnątrz różnych operandów i dla tych samych linii życia, są uporządkowane zgodnie z kolejnością operandów, tzn. realizacja interakcji wyspecyfikowanej w danym operandzie będzie poprzedzała tę z kolejnego operandu. Week sequencing można sprowadzić do realizacji współbieżnej w przypadku, gdy wewnątrz różnych operandów nie występują interakcje dla tych samych linii życia.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 45/68 Rodzaje operatorów interakcji (5) OperatorNotacjaZnaczenie Week sequencing można sprowadzić do realizacji typu strict sequencing, gdy wewnątrz wszystkich operandów, zdefiniowanych dla danego fragmentu, interakcje dotyczą tylko jednej linii życia. negacja (ang. negative) negFragment wyodrębniony zawiera jeden operand; interakcje, zdefiniowane wewnątrz fragmentu z operatorem neg, określają przebiegi nieważne/niedozwolone (ang. invalid traces); wszystkie inne fragmenty, o zawartości różnej od tej, jaką zdefiniowano dla danego fragmentu neg, są uważane za możliwe/dozwolone (ang. valid traces).

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 46/68 Operator alt :K k alt [i = 0] [else] :K1:K2 x y W trakcie realizowania komunikatu k przysłanego do instancji klasyfikatora K, w zależności od wartości zmiennej i, zostanie wysłany albo komunikat x do instancji klasyfikatora K1 (i=0) albo komunikat y do instancji klasyfikatora K2 (i≠0).

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 47/68 Operator opt :K k opt [i = 0] :K1 x W trakcie realizowania komunikatu k przysłanego do instancji klasyfikatora K, w zależności od wartości zmiennej i, komunikat x do instancji klasyfikatora K1 będzie (i=0) lub nie będzie wysłany (i≠0).

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 48/68 Operator break (1) :K k break [i = 0] :K2:K1 x y sd Nazwa_diagramu W trakcie realizowania komunikatu k przysłanego do instancji klasyfikatora K, jeżeli spełniony zostanie warunek i=0, to będzie wysłany komunikat x do instancji klasyfikatora K2, a otoczenie fragmentu break zostanie zignorowane, tzn. zostaną zignorowane wystąpienia interakcji dla wszystkich linii życia objętych przez obszar fragmentu break. W tym przypadku zostanie zignorowany komunikat y. :A:A

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 49/68 Operator break (2) :K k break [i = 0] :K2:K1 x y sd Nazwa_diagramu Jeżeli spełniony zostanie warunek i=0, będzie wysłany komunikat x; komunikat y zostanie zignorowany. :A:A

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 50/68 Operator break (3) :K k break [i = 0] :K2:K1 x y sd Nazwa_diagramu Jeżeli spełniony zostanie warunek i=0, będzie wysłany komunikat x; komunikat y nie zostanie zignorowany. :A:A

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 51/68 Operator loop :K k loop (1,*) :K1 x W trakcie realizowania komunikatu k przysłanego do instancji klasyfikatora K, komunikat x będzie wysłany 1..* razy do (różnych) instancji klasyfikatora K1.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 52/68 Operator par :Członek bibl. Czy przetrzymuje [przetrzymuje] Książka :Egzemplarz książki «create» Rejestruj nową «create» Rejestruj nowy :Personel bibl. par sd Biblioteka

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 53/68 Coregion W sytuacji, gdy nie jest istotny porządek interakcji (czy też innych zagnieżdżonych fragmentów interakcji) dla jednej linii życia, dla oznaczenia równoległości realizacji operacji, dozwolona jest uproszczona notacja z wykorzystaniem pojęcia coregion. kk:K m1 m2 kk:K m1 m2 par coregion mm

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 54/68 Współbieżność; wykorzystanie coregion’u :Członek bibl. Czy przetrzymuje [przetrzymuje] Książka :Egzemplarz książki «create» Rejestruj nową «create» Rejestruj nowy :Personel bibl. sd Biblioteka

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 55/68 Operator critical :Ratownictwo :Operator :Dzwoniący par pomoc (p1) dzwoń () pomoc (p2) dzwoń () critical sd Ratownictwo

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 56/68 Operatory: consider, ignore, assert :K :K2:K1 v r sd DD ingnore {t,r} consider {q,v,w} assert q t Zagnieżdżenie fragmentu assert we fragmencie consider wskazuje na to, że oczekujemy realizacji komunikatu q po wykonaniu komunikatu v. Dla fragmentu consider: każdy komunikat, inny niż q, v, w zostanie zignorowany, wystąpienie komunikatu w po komunikacie v jest uważane za przebieg nieważny/niedozwolony (ang. invalid trace). w

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 57/68 Przywołania wystąpień interakcji (1) Wystąpienie interakcji (ang. interaction occurence) może być przywoływane za pośrednictwem operatora ref. Diagramy zamieszczone na następnym slajdzie są równoważne z diagramem zamieszczonym poniżej. :K k alt [i = 0] [else] :K1:K2 x y sd D1

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 58/68 Przywołania wystąpień interakcji (2) alt [i = 0] [else] x y sd D2 :K :K1:K2 :K k :K1:K2 sd D1 D2 ref k D2 ref sd D1

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 59/68 Bramy w diagramach sekwencji (1) Wyróżniane są następujące rodzaje bram do komunikowania się z otoczeniem: bramy formalne (ang. formal gates) – dotyczą diagramów sekwencji traktowanych jako całość, bramy rzeczywiste (ang. actual gates) – dotyczą przywołanych wystąpień interakcji, bramy wyrażeniowe (ang. expression gates) – dotyczą operandów fragmentów wyodrębnionych. sd Bramy opt B ref brama formalna brama rzeczywista brama wyrażeniowa uczestnicy interakcji

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 60/68 Bramy w diagramach sekwencji (2) Bramy mogą być nazywane na dwa sposoby: poprzez umieszczenie nazwy bramy bezpośrednio przy symbolu bramy; nazwa bramy powinna być zbieżna z nazwą komunikatu przechodzącego przez bramę, generujRaport Raport sd Nazwy bram (1) poprzez dodanie do nazwy komunikatu przedrostka określającego kierunek przepływu komunikatu: (”out_”) czy (”in_”) out_generujRaport sd Nazwy bram (2) in_podajDaneSprzedaży

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 61/68 Diagramy sterowania interakcją Diagram sterowania interakcją (ang. interaction overview diagram): rodzaj diagramu interakcji – umożliwia specyfikowanie przepływu sterowania pomiędzy logicznie powiązanymi fragmentami interakcji z wykorzystaniem kategorii modelowania diagramów aktywności. Diagramy iod są przeznaczone głównie do modelowania złożonych interakcji, np. złożonych procesów biznesowych czy złożonych przypadków użycia. Poniższa tabela przedstawia podstawowe kategorie modelowania wykorzystywane przy konstruowaniu diagramów iod. Kategoria modelowania NotacjaZnaczenie Przepływ sterowania pomiędzy fragmentami diagramu diagramu sterowania interakcją. przepływ sterowania punkt początkowy diagramu; start przepływu sterowania Punkt początkowy diagramu sterowania interakcją

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 62/68 Kategorie modelowania iod, cd. (1) Kategoria modelowania NotacjaZnaczenie koniec przepływuZakończenie przepływu. punkt końcowy diagramu; koniec przepływu sterowania Punkt końcowy diagramu sterowania interakcją. fragment interakcji sd... cd... td... Specyfikacja interakcji, będącej elementem składowym diagramów iod, z wykorzystaniem notacji diagramów sekwencji, komunikacji i następstwa stanów.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 63/68 Kategorie modelowania iod, cd. (2) Kategoria modelowania NotacjaZnaczenie decycja, złączenie, rozwidlenie, scalenie Kategorie modelowania wykorzystywane dla diagramów aktywności przywołanie wystąpienia interakcji ref Odwołanie do fragmentu interakcji.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 64/68 Diagram iod; przykład iod Nazwa_diagramu ref sd... D1 ref D2 [war_1] [war_2]

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 65/68 Diagramy następstwa stanów; notacja (1) Diagramy następstwa stanów (ang. timing diagrams): służą do ilustrowania zmian w czasie dla wartości zmiennych, warunków, atrybutów obiektów a także stanów obiektów (najbardziej typowe zastosowanie). Notacja podstawowa: Linia życia (ang. general value life line, value life line, state life line) Ograniczenie na czas trwania (ang. duration constraint) Ograniczenie na moment wystąpienia zmiany na linii czasu (ang. time constraint) td Nazwa diagramu Linia życia Stan1 Stan2 Stan jednostka czasu może nie być explicite określona Minuta Zdarzenie {ograniczenie na czas trwania} {ograniczenie na moment wystąpienia zmiany na linii czasu}

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 66/68 Diagramy następstwa stanów; notacja (2) Notacja alternatywna, tzw. zwięzła (ang. concise): td Nazwa diagramu Linia życia Minuta Zdarzenie {ograniczenie na czas trwania} {ograniczenie na moment zmiany} Stan1Stan2Stan3 Jeśli diagram ilustruje zmiany wartości pewnej zmiennej na przestrzeni czasu, to kolejne przedziały zawierają wartości zgodne z typem zmiennej, np. 1, 7, 5 dla zmiennej typu Integer czy ” a, b, c, d” dla zmiennej typu String.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 67/68 Diagram następstwa stanów; przykład td Drukowanie :Pc jałowy przetwarzanie raportowanie :Drukarka jałowy pobieranie danych drukowanie drukuj koniec drukowania komunikat Diagramy następstwa stanów są użyteczne dla śledzenia zmian stanów jednego lub więcej obiektów, podczas gdy diagramy stanów pozwalają na szczegółową specyfikację przejść będących efektem zdarzeń.

E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 68/68 Podsumowanie podstawowych diagramów interakcji Dwa podstawowe diagramy interakcji, czyli diagramy komunikacji i sekwencji, jako główne zadanie mają wspomożenie projektanta w procesie konstruowania modelu obiektowego. Pomoc polega na analizie zachowania systemu w trakcie realizacji jego zadań i identyfikowaniu nowych czy też korekcie już istniejących elementów modelu, np.: klas, ich atrybutów, metod oraz asocjacji między klasami. Struktura, opisywana przez model obiektowy, musi zapewnić możliwość realizacji zadań postawionych przed systemem.  Diagramy komunikacji, stanowiące w pewnym sensie wystąpienia fragmentu diagramu klas, lepiej przedstawiają związki między obiektami biorącymi udział w realizacji danego przypadku użycia. Łatwiej też można tu odwzorować efekty oddziaływania na pojedynczy obiekt.  Diagramy sekwencji lepiej przedstawiają zależności czasowe, bardziej niż diagramy komunikacji nadają się do modelowania systemów czasu rzeczywistego i złożonych scenariuszy.  Oba rodzaje diagramów przedstawiają bardzo podobną informację, w nieco inny sposób.