Upload
aoife
View
70
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Diagramy interakcjiDiagramy interakcji
Kamil Kuliczkowski
Informacje ogólneInformacje ogólne
Diagramy interakcji są to diagramy ułatwiające Diagramy interakcji są to diagramy ułatwiające rozumienie zależności w przepływie sterowania.rozumienie zależności w przepływie sterowania.
Są dynamiczne. Opisują jak obiekty ze sobą Są dynamiczne. Opisują jak obiekty ze sobą współpracująwspółpracują
Pokazują interakcje pomiędzy instancjami występującymi Pokazują interakcje pomiędzy instancjami występującymi w modeluw modelu
W UML’u wyróżniamy dwa rodzaje diagramów interakcji:W UML’u wyróżniamy dwa rodzaje diagramów interakcji:
• diagramy sekwencjidiagramy sekwencji
• diagramy współpracy (kolaboracji)diagramy współpracy (kolaboracji)
Diagramy sekwencjiDiagramy sekwencjiSzczegółowo pokazują, w jaki sposób są wykonywane operacje - jakie komunikaty są wysyłane i kiedy
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
Używamy do:
• pokazania bezpośredniego uporządkowania komunikatów i bodźcówpokazania bezpośredniego uporządkowania komunikatów i bodźców
• modelowania w czasie rzeczywistymmodelowania w czasie rzeczywistym
Rodzaje interakcji
• sekwencyjnasekwencyjna• współbieżnawspółbieżna
Rodzaj interakcji Symbol Znaczenie
synchronicznaNadawca zawiesza działanie, dopóki odbiorca nie zwróci sterowania..
powrót(return)
Oznacza zakończenie komunikatu i przekazanie sterowania do nadawcy. Powrót nie jest komunikatem.
jednostronna(flat)
Nadawca komunikatu przekazuje sterowanie do odbiorcy oraz kończy własną działalność nie oczekując na odpowiedź.
asynchronicznaNadawca 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.
NotacjaNotacja
Rodzaj interakcji Symbol
komunikatwarunkowy
iteracja
NotacjaNotacja
[Pensja < 1000] zwiększ pensje(200)
* [i:= 1…5] operacja
* [pensja < 1200] zwiększ pencję(200)
* [istnieje pracownik] usuń pracownika
komunikacja zwrotna x:= pobierz dane
PrzykładPrzykład
:Personelbibl.
:Książka:Członek
bibl.:Egzemplarz Książki
Pożycz (tytuł)
1: CzyMożnaPożyczyć
2: CzyTytułDostępny
2.1: ZaznaczWypożyczenie
linia życia obiektu
czas
pasek aktywacji
obiekt inicjujący interakcję
komunikat
PrzykładPrzykład
: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.}
Rozmowa jest łączona poprzez sieć{d’ - d < 5 sec.}
(ograniczenia czasowe)
:Personelbibl.
:Członekbibl.
CzyPrzetrzymuje
[jeśli przetrzymuje] email
:Książka
:Egzemplarzksiążki
RejestrujNową
RejestrujNowy
PrzykładPrzykład(ze współbieżnością)
x
:Sekretariatds. nauczania
:Wykładowca
n := PobierzNazwisko
:Szef wykładowców
UtwórzNowegoSzefaWykładowców (n)
usuń
koniec życia obiektu
powstanie nowego obiektu
PrzykładPrzykład(usuwanie i tworzenie obiektu)
PrzykładPrzykład(iteracja)
:Magazynier:Magazyn
zamknij magazyn
:Towar
* [istnieje zapas] usuń towar
xx
Diagramy współpracyDiagramy współpracyDostarczają 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
Używamy:
• kiedy struktura jest bardzo istotnakiedy struktura jest bardzo istotna
• do skoncentrowania się na efektach wywieranych na instancjedo skoncentrowania się na efektach wywieranych na instancje
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
NotacjaNotacja
Wykładowca
Rodzaj interakcji Symbol
klasa
instancja klasy
obiekt
:Wykładowca
w:Wykładowca
x:= pobierz dane
komunikat
PrzykładPrzykład
:Sekretariatds. nauczania
:Szefwykładowców
{nowy}
:Wykładowca{usuwany}
2: UtwórzNowegoSzefaWykładowców (n)
1: n := PobierzNazwisko
3: usuń
własność
PrzykładPrzykład
okno:Interfejs uż.
s:Sieć hoteli
1.1: Zarezerwuj()
1.1.1: Zarezerwuj()
h:Hotel
1.1.1.1: *[na każdy dzień] jest_pokój := dostępność()
r:Rezerwacja
1.1.1.2: [jest_pokój]
1.1.1.2.1:
p:Potwierdzenie
Podczas opisywania diagramem kolaboracji bardziej złożonej i Podczas opisywania diagramem kolaboracji bardziej złożonej i rozbudowanej struktury, można posługiwać się mechanizmem rozbudowanej struktury, można posługiwać się mechanizmem wyróżniania subkolaboracji. Metoda ta polega na wyróżniania subkolaboracji. Metoda ta polega na wyodrębnieniu z modelu grupy elementów i zamienianie ją na wyodrębnieniu z modelu grupy elementów i zamienianie ją na pakiet.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.
SubkolaboracjaSubkolaboracja
PodsumowaniePodsumowanie
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 1Zadanie 1
Na podstawie diagramu współpracy stwórz diagram sekwencji.
okno:Interfejs uż.
s:Sieć hoteli
Zarezerwuj()
h:Hotel
*[na każdy dzień] jest_pokój := dostępność()
r:Rezerwacja
[jest_pokój]
p:Potwierdzenie
Zarezerwuj()
x
Zadanie 2Zadanie 2Stwó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.
k:Klient p:Portier
2.0: Wykwateruj_sie()
r:Rachunek{nowy} z:Zakwaterowanie
{nowy}
1.0: Zakwateruj_sie(rez) 1.1.0:[rez] p:= przydziel_pokoj()
1.1.1:zakwateruj(p)
1.3:stwórz_zakwaterowanie()
1.2.0:wolny:= czy_jest_wolny_pokoj()
1.2.1:[wolny] wp:= przydziel_wolny_pokoj()
1.2.2:zakwateruj(wp)3.0: stwórz_rach()
3.1: Wystaw_rach()
3.2: zapłać_rach()