20
Diagramy Diagramy interakcji interakcji Kamil Kuliczkowski

Diagramy interakcji

  • 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

Page 1: Diagramy interakcji

Diagramy interakcjiDiagramy interakcji

Kamil Kuliczkowski

Page 2: Diagramy interakcji

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)

Page 3: Diagramy interakcji

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

Page 4: Diagramy interakcji

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

Page 5: Diagramy interakcji

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

Page 6: Diagramy interakcji

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

Page 7: Diagramy interakcji

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)

Page 8: Diagramy interakcji

:Personelbibl.

:Członekbibl.

CzyPrzetrzymuje

[jeśli przetrzymuje] email

:Książka

:Egzemplarzksiążki

RejestrujNową

RejestrujNowy

PrzykładPrzykład(ze współbieżnością)

Page 9: Diagramy interakcji

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)

Page 10: Diagramy interakcji

PrzykładPrzykład(iteracja)

:Magazynier:Magazyn

zamknij magazyn

:Towar

* [istnieje zapas] usuń towar

xx

Page 11: Diagramy interakcji

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

Page 12: Diagramy interakcji

NotacjaNotacja

Wykładowca

Rodzaj interakcji Symbol

klasa

instancja klasy

obiekt

:Wykładowca

w:Wykładowca

x:= pobierz dane

komunikat

Page 13: Diagramy interakcji

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ść

Page 14: Diagramy interakcji

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

Page 15: Diagramy interakcji

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

Page 16: Diagramy interakcji

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.

Page 17: Diagramy interakcji

Zadanie 1Zadanie 1

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

Page 18: Diagramy interakcji

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

Page 19: Diagramy interakcji

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.

Page 20: Diagramy interakcji

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()