Diagramy interakcji Kamil Kuliczkowski Informacje oglne q Diagramy

  • Slides: 20
Download presentation
Diagramy interakcji Kamil Kuliczkowski

Diagramy interakcji Kamil Kuliczkowski

Informacje ogólne q Diagramy interakcji są to diagramy ułatwiające rozumienie zależności w przepływie sterowania.

Informacje ogólne q Diagramy interakcji są to diagramy ułatwiające rozumienie zależności w przepływie sterowania. q Są dynamiczne. Opisują jak obiekty ze sobą współpracują q Pokazują interakcje pomiędzy instancjami występującymi w modelu q W UML’u wyróżniamy dwa rodzaje diagramów interakcji: • diagramy sekwencji • diagramy współpracy (kolaboracji)

Diagramy sekwencji q Szczegółowo pokazują, w jaki sposób są wykonywane operacje - jakie komunikaty

Diagramy sekwencji q Szczegółowo pokazują, w jaki sposób są wykonywane operacje - jakie komunikaty są wysyłane i kiedy q Używamy do: • pokazania bezpośredniego uporządkowania komunikatów i bodźców • modelowania w czasie rzeczywistym q Rodzaje interakcji • sekwencyjna • współbieżna q Czas upływa w miarę poruszania się w dół strony. Obiekty zaangażowane w operację są wymienione od lewej do prawej według tego, kiedy biorą udział w sekwencji komunikatów

Notacja Rodzaj interakcji synchroniczna powrót (return) jednostronna (flat) asynchroniczna Symbol Znaczenie Nadawca zawiesza działanie,

Notacja Rodzaj interakcji synchroniczna powrót (return) jednostronna (flat) asynchroniczna Symbol Znaczenie Nadawca zawiesza działanie, dopóki odbiorca nie zwróci sterowania. . Oznacza zakończenie komunikatu i przekazanie sterowania do nadawcy. Powrót nie jest komunikatem. Nadawca komunikatu przekazuje sterowanie do odbiorcy oraz kończy własną działalność nie oczekując na odpowiedź. 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.

Notacja Rodzaj interakcji komunikat warunkowy Symbol [Pensja < 1000] zwiększ pensje(200) * [i: =

Notacja Rodzaj interakcji komunikat warunkowy Symbol [Pensja < 1000] zwiększ pensje(200) * [i: = 1… 5] operacja iteracja * [pensja < 1200] zwiększ pencję(200) * [istnieje pracownik] usuń pracownika komunikacja zwrotna x: = pobierz dane

obiekt inicjujący interakcję Przykład : Członek bibl. : Personel bibl. : Książka : Egzemplarz

obiekt inicjujący interakcję Przykład : Członek bibl. : Personel bibl. : Książka : Egzemplarz Książki linia życia obiektu Pożycz (tytuł) czas 1: Czy. Można. Pożyczyć komunikat pasek aktywacji 2: Czy. TytułDostępny 2. 1: Zaznacz. Wypożyczenie

Przykład (ograniczenia czasowe) : Dzwoniący {b - a < 1 sec. } : Sterowanie

Przykład (ograniczenia czasowe) : Dzwoniący {b - a < 1 sec. } : Sterowanie a podniesienie słuchawki b ton w słuchawce c wybór cyfry {c - b < 10 sec. } Rozmowa d jest łączona d’ poprzez sieć {d’ - d < 5 sec. } : Odbierający . . . łączenie ton dzwonka uruchomienie dzwonka podniesienie słuchawki koniec tonu koniec dzwonienia

Przykład (ze współbieżnością) : Personel bibl. : Członek bibl. Czy. Przetrzymuje [jeśli przetrzymuje] email

Przykład (ze współbieżnością) : Personel bibl. : Członek bibl. Czy. Przetrzymuje [jeśli przetrzymuje] email Rejestruj. Nową : Książka Rejestruj. Nowy : Egzemplarz książki

Przykład (usuwanie i tworzenie obiektu) : Wykładowca : Sekretariat ds. nauczania powstanie nowego obiektu

Przykład (usuwanie i tworzenie obiektu) : Wykładowca : Sekretariat ds. nauczania powstanie nowego obiektu n : = Pobierz. Nazwisko Utwórz. Nowego. Szefa. Wykładowców (n) usuń x koniec życia obiektu : Szef wykładowców

Przykład (iteracja) : Magazynier : Magazyn : Towar zamknij magazyn * [istnieje zapas] usuń

Przykład (iteracja) : Magazynier : Magazyn : Towar zamknij magazyn * [istnieje zapas] usuń towar x x

Diagramy współpracy q Dostarczają tych samych informacji co diagramy sekwencyjne, ale skupiają się na

Diagramy współpracy q Dostarczają tych samych informacji co diagramy sekwencyjne, ale skupiają się na rolach obiektów, a nie na czasach przesyłania komunikatów q Ich istotą jest przedstawienie przepływu komunikatów pomiędzy obiektami q Na diagramach kooperacji uwzględnia się ciąg komunikatów. Wskazanie kolejności komunikatu w czasie polega na poprzedzeniu go odpowiednim numerem w ciągu. Zagnieżdżenia obrazuje się za pomocą notacji Doweya q Używamy: • kiedy struktura jest bardzo istotna • do skoncentrowania się na efektach wywieranych na instancje

Notacja Rodzaj interakcji klasa instancja klasy obiekt komunikat Symbol Wykładowca : Wykładowca w: Wykładowca

Notacja Rodzaj interakcji klasa instancja klasy obiekt komunikat Symbol Wykładowca : Wykładowca w: Wykładowca x: = pobierz dane

Przykład 1: n : = Pobierz. Nazwisko : Sekretariat ds. nauczania : Wykładowca {usuwany}

Przykład 1: n : = Pobierz. Nazwisko : Sekretariat ds. nauczania : Wykładowca {usuwany} 3: usuń 2: Utwórz. Nowego. Szefa. Wykładowców (n) własność : Szef wykładowców {nowy}

Przykład okno: Interfejs uż. 1. 1: Zarezerwuj() p: Potwierdzenie s: Sieć hoteli 1. 1.

Przykład okno: Interfejs uż. 1. 1: Zarezerwuj() p: Potwierdzenie s: Sieć hoteli 1. 1. 1: Zarezerwuj() 1. 1. 1. 2. 1: 1. 1. 1. 2: [jest_pokój] h: Hotel 1. 1: *[na każdy dzień] jest_pokój : = dostępność() r: Rezerwacja

Subkolaboracja Podczas opisywania diagramem kolaboracji bardziej złożonej i rozbudowanej struktury, można posługiwać się mechanizmem

Subkolaboracja Podczas opisywania diagramem kolaboracji bardziej złożonej i rozbudowanej struktury, można posługiwać się mechanizmem wyróżniania subkolaboracji. Metoda ta polega na wyodrębnieniu z modelu grupy elementów i zamienianie ją na pakiet Wyodrębnienie ze złożonego modelu subkolaboracji Zastąpienie subkolaboracji pakietem Pakiet nie posiada własnego interfejsu, dlatego nie można połączyć wysyłanego do pakietu komunikatu z obiektem w jego wnętrzu.

Podsumowanie q Diagramy interakcji, czyli diagramy kolaboracji i sekwencji, jako główne zadanie mają wspomóc

Podsumowanie q Diagramy interakcji, czyli diagramy kolaboracji i sekwencji, jako główne zadanie mają wspomóc projektanta w procesie konstruowania modelu obiektowego. q Oba rodzaje diagramów przedstawiają bardzo podobną informację, w nieco inny sposób. q Diagramy kolaboracji 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. q Diagramy sekwencji lepiej przedstawiają zależności czasowe, bardziej niż diagramy kolaboracji nadają się do modelowania systemów czasu rzeczywistego i złożonych scenariuszy.

Zadanie 1 Na podstawie diagramu współpracy stwórz diagram sekwencji.

Zadanie 1 Na podstawie diagramu współpracy stwórz diagram sekwencji.

s: Sieć hoteli h: Hotel okno: Interfejs uż. Zarezerwuj() *[na każdy dzień] jest_pokój :

s: Sieć hoteli h: Hotel okno: Interfejs uż. Zarezerwuj() *[na każdy dzień] jest_pokój : = dostępność() [jest_pokój] r: Rezerwacja p: Potwierdzenie x

Zadanie 2 Stwórz diagram korelacji systemu zajmującego się obsługą hostelu. Klient zakwateruje się u

Zadanie 2 Stwórz diagram korelacji systemu zajmującego się obsługą hostelu. Klient zakwateruje się u Portiera, który musi sprawdzić, czy Klient ma rezerwację. Jeśli tak przyznaje mu pokój, jeśli nie, to sprawdza czy są jeszcze wolne pokoje. Jeśli są, to daje klientowi wolny pokój i tworzy zakwaterowanie dla Klienta. Klient ma możliwość wykwaterowania się. Wtedy Portier musi stworzyć Rachunek i wystawić go klientowi. Klient oczywiście płaci rachunek. Należy użyć jedynie obiekty klasy: Klient, Portier, Zakwaterowanie oraz Rachunek.

1. 2. 1: [wolny] wp: = przydziel_wolny_pokoj() 1. 2. 0: wolny: = czy_jest_wolny_pokoj() 1.

1. 2. 1: [wolny] wp: = przydziel_wolny_pokoj() 1. 2. 0: wolny: = czy_jest_wolny_pokoj() 1. 1. 0: [rez] p: = przydziel_pokoj() 1. 0: Zakwateruj_sie(rez) 2. 0: Wykwateruj_sie() k: Klient 3. 1: Wystaw_rach() p: Portier 1. 1. 1: zakwateruj(p) 3. 2: zapłać_rach() 1. 2. 2: zakwateruj(wp) 3. 0: stwórz_rach() 1. 3: stwórz_zakwaterowanie() r: Rachunek {nowy} z: Zakwaterowanie {nowy}