Diagram interakcji

Download Report

Transcript Diagram interakcji

Diagramy interakcji
Kamil
Kuliczkowski
Informacje ogólne
 Diagramy interakcji są to diagramy ułatwiające
rozumienie zależności w przepływie sterowania.
 Są dynamiczne. Opisują jak obiekty ze sobą
współpracują
 Pokazują interakcje pomiędzy instancjami występującymi
w modelu
 W UML’u wyróżniamy dwa rodzaje diagramów interakcji:
• diagramy sekwencji
• diagramy współpracy (kolaboracji)
Diagramy sekwencji
 Szczegółowo pokazują, w jaki sposób są wykonywane
operacje - jakie komunikaty są wysyłane i kiedy
 Używamy do:
• pokazania bezpośredniego uporządkowania komunikatów i bodźców
• modelowania w czasie rzeczywistym
 Rodzaje interakcji
• sekwencyjna
• współbieżna
 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, 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:= 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.
:Książka
:Egzemplarz Książki
:Personel
bibl.
linia życia obiektu
Pożycz (tytuł)
czas
1: CzyMożnaPożyczyć
komunikat
pasek aktywacji
2: CzyTytułDostępny
2.1: ZaznaczWypożyczenie
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.
CzyPrzetrzymuje
[jeśli przetrzymuje] email
RejestrujNową
:Książka
RejestrujNowy
:Egzemplarz
książki
Przykład
(usuwanie i tworzenie obiektu)
:Wykładowca
:Sekretariat
ds. nauczania
powstanie nowego obiektu
n := PobierzNazwisko
UtwórzNowegoSzefaWykładowców (n)
usuń
x
koniec życia obiektu
:Szef
wykładowców
Przykład
(iteracja)
:Magazynier
:Magazyn
:Towar
zamknij magazyn
* [istnieje zapas] usuń towar
x
x
Diagramy współpracy
 Dostarczają tych samych informacji co diagramy
sekwencyjne, ale skupiają się na rolach obiektów, a nie na
czasach przesyłania komunikatów
 Ich istotą jest przedstawienie przepływu komunikatów pomiędzy
obiektami
 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
 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
x:= pobierz dane
Przykład
1: n := PobierzNazwisko
:Wykładowca
{usuwany}
:Sekretariat
ds. nauczania
3: usuń
2: UtwórzNowegoSzefaWykł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.1.2.1:
1.1.1: Zarezerwuj()
1.1.1.2: [jest_pokój]
h:Hotel
1.1.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
wyróżniania subkolaboracji. Metoda ta polega na wyodrębnieniu z
modelu grupy elementów i zamienianie ją na pakiet.
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
 Diagramy interakcji, czyli diagramy kolaboracji i sekwencji, jako
główne zadanie mają wspomóc projektanta w procesie
konstruowania modelu obiektowego.
 Oba rodzaje diagramów przedstawiają bardzo podobną
informację, w nieco inny sposób.
 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.
 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.
s:Sieć hoteli
h:Hotel
okno:Interfejs uż.
Zarezerwuj()
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 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.0:[rez] p:= przydziel_pokoj()
1.0: Zakwateruj_sie(rez)
2.0: Wykwateruj_sie()
3.1: Wystaw_rach()
k:Klient
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}