Diagramy interakcji

20
[email protected] [email protected] Diagramy Diagramy interakcji interakcji Jarosław Kuchta Jarosław Kuchta Dokumentacja i Jakość Dokumentacja i Jakość Oprogramowania Oprogramowania

description

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Diagramy interakcji. Podstawowe pojęcia. Interakcja ( interaction ) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji. Kolaboracja ( collaboration ) - PowerPoint PPT Presentation

Transcript of Diagramy interakcji

Page 1: Diagramy interakcji

[email protected]

[email protected]

Diagramy Diagramy interakcjiinterakcji

Jarosław KuchtaJarosław Kuchta

Dokumentacja i Jakość Dokumentacja i Jakość OprogramowaniaOprogramowania

Page 2: Diagramy interakcji

DiagramyInterakcji 2/20Diagramy interakcji

Podstawowe pojęciaPodstawowe pojęcia Interakcja Interakcja ((interactioninteraction))

Przepływ komunikatów pomiędzy obiektami konieczny Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji.występuje w kontekście kolaboracji.

KolaboracjaKolaboracja ( (collaborationcollaboration)) Zespół powiązań między obiektami umożliwiający ich Zespół powiązań między obiektami umożliwiający ich

interakcję dla wykonania określonego zadania.interakcję dla wykonania określonego zadania. KomunikatKomunikat ( (messagemessage))

Przepływ informacji między obiektami pojawiający się w Przepływ informacji między obiektami pojawiający się w konsekwencji wystąpienia określonego zdarzenia.konsekwencji wystąpienia określonego zdarzenia.

Zdarzenie Zdarzenie ((eventevent)) Wystąpienie sytuacji istotnej z punktu widzenia systemu. Wystąpienie sytuacji istotnej z punktu widzenia systemu.

Zdarzenie zachodzi w pewnym niepodzielnym momencie Zdarzenie zachodzi w pewnym niepodzielnym momencie czasu. Konsekwencją zdarzenia jest komunikat. czasu. Konsekwencją zdarzenia jest komunikat.

Page 3: Diagramy interakcji

DiagramyInterakcji 3/20Diagramy interakcji

Rodzaje diagramów Rodzaje diagramów interakcjiinterakcji

Diagramy kolaboracji (kooperacji, Diagramy kolaboracji (kooperacji, współpracy)współpracy) powiązania między obiektamipowiązania między obiektami przepływ komunikatów wzdłuż przepływ komunikatów wzdłuż

powiązańpowiązań Diagramy sekwencji (przebiegu)Diagramy sekwencji (przebiegu)

linie życia obiektówlinie życia obiektów przepływ komunikatów uporządkowany przepływ komunikatów uporządkowany

w czasiew czasie

Page 4: Diagramy interakcji

DiagramyInterakcji 4/20Diagramy interakcji

Zastosowanie Zastosowanie diagramów interakcjidiagramów interakcji

Opis działania systemuOpis działania systemu Opis przypadków użyciaOpis przypadków użycia Opis scenariusza przypadku użyciaOpis scenariusza przypadku użycia Opis operacji klasyOpis operacji klasy

Page 5: Diagramy interakcji

DiagramyInterakcji 5/20Diagramy interakcji

Elementy diagramu Elementy diagramu kolaboracjikolaboracji

Klient

aktor

anObject:aClass

obiekt

powiązanie

1: DoSomething()

komunikat

znacznikkierunku

numerporządkowy

Page 6: Diagramy interakcji

DiagramyInterakcji 6/20Diagramy interakcji

Uwagi do diagramu Uwagi do diagramu kolaboracji (1/2)kolaboracji (1/2)

Występujący aktorzy muszą być powiązani z danym Występujący aktorzy muszą być powiązani z danym przypadkiem użyciaprzypadkiem użycia

Obiekty reprezentują obiekty globalne (dla całego Obiekty reprezentują obiekty globalne (dla całego systemu) lub lokalne (np. parametry operacji, zmienne systemu) lub lokalne (np. parametry operacji, zmienne lokalne)lokalne)

Powiązania reprezentują drogi przepływu komunikatów.Powiązania reprezentują drogi przepływu komunikatów. Komunikaty mogą być przesyłane pomiędzy dwoma Komunikaty mogą być przesyłane pomiędzy dwoma

aktorami, aktorem a obiektem lub pomiędzy dwoma aktorami, aktorem a obiektem lub pomiędzy dwoma obiektami.obiektami.

Komunikat reprezentuje przekazanie informacji (w Komunikat reprezentuje przekazanie informacji (w przypadku aktora jako odbiorcy) lub wywołanie operacji przypadku aktora jako odbiorcy) lub wywołanie operacji (w przypadku obiektu jako odbiorcy). W tym drugim (w przypadku obiektu jako odbiorcy). W tym drugim przypadku operacja musi być zdefiniowana w klasie przypadku operacja musi być zdefiniowana w klasie odbiorcy.odbiorcy.

Page 7: Diagramy interakcji

DiagramyInterakcji 7/20Diagramy interakcji

Uwagi do diagramu Uwagi do diagramu kolaboracji (2/2)kolaboracji (2/2)

Przez jedno powiązanie może być Przez jedno powiązanie może być przekazywanych wiele komunikatów w różne przekazywanych wiele komunikatów w różne strony i w różnym czasie. Kierunek przepływu strony i w różnym czasie. Kierunek przepływu komunikatu określa strzałka. Kolejność komunikatu określa strzałka. Kolejność przepływu komunikatu określają numery przepływu komunikatu określają numery porządkowe.porządkowe.

Zamiast numeru porządkowego można podać Zamiast numeru porządkowego można podać zaawansowaną specyfikację przesłania zaawansowaną specyfikację przesłania komunikatukomunikatu

W przypadku, gdy aspekt czasowy jest bardziej W przypadku, gdy aspekt czasowy jest bardziej istotny, korzystniej jest użyć diagramu sekwencji.istotny, korzystniej jest użyć diagramu sekwencji.

Page 8: Diagramy interakcji

DiagramyInterakcji 8/20Diagramy interakcji

Opis komunikatu (1/3)Opis komunikatu (1/3) Numer porządkowyNumer porządkowy

może składać się z kilku segmentów, każdy segment jest może składać się z kilku segmentów, każdy segment jest liczbą całkowitą określającą kolejność na danym poziomie liczbą całkowitą określającą kolejność na danym poziomie zagłębienia, np.: 1.2.1 poprzedza 1.2.2 oraz poprzedza 1.3zagłębienia, np.: 1.2.1 poprzedza 1.2.2 oraz poprzedza 1.3

komunikaty współbieżne określane są przez dodanie litery komunikaty współbieżne określane są przez dodanie litery za numerem porządkowym, np.. 1.2a i 1.2b są współbieżneza numerem porządkowym, np.. 1.2a i 1.2b są współbieżne

Określenie komunikatu poprzedzającegoOkreślenie komunikatu poprzedzającego Zamiast numeru porządkowego danego komunikatu można Zamiast numeru porządkowego danego komunikatu można

podać numery porządkowe komunikatów poprzedzających podać numery porządkowe komunikatów poprzedzających (lista numerów oddzielonych przecinkami i zakończona (lista numerów oddzielonych przecinkami i zakończona znakiem „/”).znakiem „/”).

Dany komunikat zostanie przesłany tylko wówczas, gdy Dany komunikat zostanie przesłany tylko wówczas, gdy wszystkie poprzedzające go komunikaty zostaną przesłane wszystkie poprzedzające go komunikaty zostaną przesłane (synchronizacja)(synchronizacja)

Page 9: Diagramy interakcji

DiagramyInterakcji 9/20Diagramy interakcji

Opis komunikatu (2/3)Opis komunikatu (2/3) Warunek strzegący, dozoru (Warunek strzegący, dozoru (guard conditionguard condition))

Warunek strzegący to warunek, który musi być Warunek strzegący to warunek, który musi być spełniony dla przesłania komunikatu.spełniony dla przesłania komunikatu.

Warunek strzegący podaje się w nawiasach Warunek strzegący podaje się w nawiasach kwadratowych, np. [n<10]kwadratowych, np. [n<10]

Określenie iteracjiOkreślenie iteracji Podanie klauzuli iteracji w nawiasach Podanie klauzuli iteracji w nawiasach

kwadratowych poprzedzonych znakiem „*” kwadratowych poprzedzonych znakiem „*” oznacza wielokrotne przesłanie komunikatu.oznacza wielokrotne przesłanie komunikatu.

Klauzulę iteracji podaje się w określonym języku Klauzulę iteracji podaje się w określonym języku programowania lub w pseudokodzie, np.: programowania lub w pseudokodzie, np.: *[i:=1..10]*[i:=1..10]

Page 10: Diagramy interakcji

DiagramyInterakcji 10/20Diagramy interakcji

Opis komunikatu (3/3)Opis komunikatu (3/3)

Zwracany wynikZwracany wynikwynik := nazwa operacji (lista argumentów)wynik := nazwa operacji (lista argumentów)

Lista argumentów Lista argumentów Jest listą wartości oddzielonych Jest listą wartości oddzielonych

przecinkami, które są po kolei przypisywane przecinkami, które są po kolei przypisywane do parametrów operacji. do parametrów operacji.

Wartości są wyrażeniami w określonym Wartości są wyrażeniami w określonym języku programowania lub w pseudokodzie.języku programowania lub w pseudokodzie.

W wyrażeniach mogą występować wartości W wyrażeniach mogą występować wartości zwrotne z poprzedzających komunikatówzwrotne z poprzedzających komunikatów

Page 11: Diagramy interakcji

DiagramyInterakcji 11/20Diagramy interakcji

Przykłady komunikatówPrzykłady komunikatów

1.2a: DoSomething() 3, 5/7: DoSomething() 4: [action=new]

NewDocument(SelectType())

Page 12: Diagramy interakcji

DiagramyInterakcji 12/20Diagramy interakcji

Elementy diagramu Elementy diagramu sekwencjisekwencji

Klient

aktor

anObject:aClass

obiekt

skupienie sterowania

DoSomething()

linia życia

komunikat

odpowiedź

wektor przepływu komunikatu

Page 13: Diagramy interakcji

DiagramyInterakcji 13/20Diagramy interakcji

Uwagi do diagramu Uwagi do diagramu sekwencjisekwencji

Diagram sekwencji i diagram kolaboracji są semantycznie Diagram sekwencji i diagram kolaboracji są semantycznie równoważne.równoważne.

Kierunek przepływu komunikatu określa zwrot wektora przepływu – Kierunek przepływu komunikatu określa zwrot wektora przepływu – przy jednym wektorze może wystąpić tylko jeden komunikat.przy jednym wektorze może wystąpić tylko jeden komunikat.

Numery porządkowe są zbędne – kolejność przepływu komunikatów Numery porządkowe są zbędne – kolejność przepływu komunikatów określa uporządkowanie wektorów przepływu komunikatów w pionie określa uporządkowanie wektorów przepływu komunikatów w pionie – wzdłuż linii życia.– wzdłuż linii życia.

Można stosować warunki strzegące i specyfikacje iteracji.Można stosować warunki strzegące i specyfikacje iteracji. Wektor odpowiedzi nie opisuje się – jeśli istotna jest wartość Wektor odpowiedzi nie opisuje się – jeśli istotna jest wartość

zwrotna, to przy wektorze zapytania podaje się zaawansowaną zwrotna, to przy wektorze zapytania podaje się zaawansowaną sygnaturę komunikatu.sygnaturę komunikatu.

Zamiast wektora odpowiedzi można zastosować zwykły wektor Zamiast wektora odpowiedzi można zastosować zwykły wektor przepływu komunikatu.przepływu komunikatu.

Skupienie sterowania (Skupienie sterowania (focus of controlfocus of control) reprezentuje czas, w którym ) reprezentuje czas, w którym obiekt jest w stanie przyjmować i nadawać komunikaty (czas obiekt jest w stanie przyjmować i nadawać komunikaty (czas aktywności).aktywności).

Page 14: Diagramy interakcji

DiagramyInterakcji 14/20Diagramy interakcji

Tworzenie i niszczenie Tworzenie i niszczenie obiektuobiektu

anObject:aClassCreate()

Page 15: Diagramy interakcji

DiagramyInterakcji 15/20Diagramy interakcji

Równoległe wątki Równoległe wątki sterowaniasterowania

anObject:aClass

Page 16: Diagramy interakcji

DiagramyInterakcji 16/20Diagramy interakcji

RekurencjaRekurencja

anObject:aClass

Page 17: Diagramy interakcji

DiagramyInterakcji 17/20Diagramy interakcji

Dokładne określenie Dokładne określenie czasuczasu

t1

t2

{t2-t1<1 min}

t3

t3’{t3’-t3<10 ms}

Page 18: Diagramy interakcji

DiagramyInterakcji 18/20Diagramy interakcji

Przykład diagramu Przykład diagramu sekwencjisekwencji

Klient

Lista klientów: Lista

Sprzedawca

Rachunki niezapłacone: Lista

1: Zgłoszenie()2: jest :=

Wyszukanie()

5: [jest] nzap:=Wyszukanie()

Zamówienie: Zamówienia

7a:[akcja=nowy] Create()

6: akcja := Potwierdzenie

zgłoszenia(nzap)

3:[nie jest] Podaj dane()

4: 3/ jest := Nowy klient()

Page 19: Diagramy interakcji

DiagramyInterakcji 19/20Diagramy interakcji

Przykład diagramu Przykład diagramu kolaboracjikolaboracji

Klient

Lista klientów: Lista

Sprzedawca

Rachunki niezapłacone: Lista

1: Zgłoszenie()

2: jest := Wyszukanie()

5: [jest] nzap:=Wyszukanie()

Zamówienie: Zamówienia

7a:[akcja=nowy] Create()

6: akcja := Potwierdzenie zgłoszenia

(nzap)

3:[nie jest] Podaj dane()

4: 3/ jest := Nowy klient()

Page 20: Diagramy interakcji

DiagramyInterakcji 20/20Diagramy interakcji

LiteraturaLiteratura

Booch G, Rumbaugh J, Jacobson I: Booch G, Rumbaugh J, Jacobson I: UML. Przewodnik użytkownikaUML. Przewodnik użytkownika, , WNT, Warszawa 2002WNT, Warszawa 2002

Dennis A., Haley Wixom B., Dennis A., Haley Wixom B., Tegarden D.: Tegarden D.: System Analysis & System Analysis & Design. An Object-Oriented Design. An Object-Oriented Approach with UMLApproach with UML, John Wiley & , John Wiley & Sons, Inc., USA 2001Sons, Inc., USA 2001