Diagramy interakcji

Download Report

Transcript Diagramy interakcji

Jarosław Kuchta
Dokumentacja i Jakość Oprogramowania
Diagramy interakcji
[email protected]
[email protected]
Podstawowe pojęcia

Interakcja (interaction)


Kolaboracja (collaboration)


Zespół powiązań między obiektami umożliwiający ich interakcję dla
wykonania określonego zadania.
Komunikat (message)


Przepływ komunikatów pomiędzy obiektami konieczny dla
wykonania określonego zadania. Interakcja występuje w kontekście
kolaboracji.
Przepływ informacji między obiektami pojawiający
konsekwencji wystąpienia określonego zdarzenia.
się
w
Zdarzenie (event)

Wystąpienie sytuacji istotnej z punktu widzenia systemu. Zdarzenie
zachodzi w pewnym niepodzielnym momencie czasu. Konsekwencją
zdarzenia jest komunikat.
DiagramyInterakcji
Diagramy interakcji
2/20
Rodzaje diagramów interakcji

Diagramy kolaboracji (kooperacji, współpracy)
powiązania między obiektami
 przepływ komunikatów wzdłuż powiązań


Diagramy sekwencji (przebiegu)
linie życia obiektów
 przepływ komunikatów uporządkowany w czasie

DiagramyInterakcji
Diagramy interakcji
3/20
Zastosowanie diagramów
interakcji




Opis działania systemu
Opis przypadków użycia
Opis scenariusza przypadku użycia
Opis operacji klasy
DiagramyInterakcji
Diagramy interakcji
4/20
Elementy diagramu
kolaboracji
numer
porządkowy
komunikat
aktor
znacznik
kierunku
obiekt
1: DoSomething()
anObject:aClass
Klient
DiagramyInterakcji
powiązanie
Diagramy interakcji
5/20
Uwagi do diagramu kolaboracji (1/2)





Występujący aktorzy muszą być powiązani z danym przypadkiem
użycia
Obiekty reprezentują obiekty globalne (dla całego systemu) lub
lokalne (np. parametry operacji, zmienne lokalne)
Powiązania reprezentują drogi przepływu komunikatów.
Komunikaty mogą być przesyłane pomiędzy dwoma aktorami,
aktorem a obiektem lub pomiędzy dwoma obiektami.
Komunikat reprezentuje przekazanie informacji (w przypadku
aktora jako odbiorcy) lub wywołanie operacji (w przypadku
obiektu jako odbiorcy). W tym drugim przypadku operacja musi
być zdefiniowana w klasie odbiorcy.
DiagramyInterakcji
Diagramy interakcji
6/20
Uwagi do diagramu kolaboracji (2/2)



Przez jedno powiązanie może być przekazywanych
wiele komunikatów w różne strony i w różnym czasie.
Kierunek przepływu komunikatu określa strzałka.
Kolejność przepływu komunikatu określają numery
porządkowe.
Zamiast numeru porządkowego można podać
zaawansowaną specyfikację przesłania komunikatu
W przypadku, gdy aspekt czasowy jest bardziej istotny,
korzystniej jest użyć diagramu sekwencji.
DiagramyInterakcji
Diagramy interakcji
7/20
Opis komunikatu (1/3)

Numer porządkowy



może składać się z kilku segmentów, każdy segment jest liczbą całkowitą
określającą kolejność na danym poziomie zagłębienia, np.: 1.2.1
poprzedza 1.2.2 oraz poprzedza 1.3
komunikaty współbieżne określane są przez dodanie litery za numerem
porządkowym, np.. 1.2a i 1.2b są współbieżne
Określenie komunikatu poprzedzającego


Zamiast numeru porządkowego danego komunikatu można podać
numery porządkowe komunikatów poprzedzających (lista numerów
oddzielonych przecinkami i zakończona znakiem „/”).
Dany komunikat zostanie przesłany tylko wówczas, gdy wszystkie
poprzedzające go komunikaty zostaną przesłane (synchronizacja)
DiagramyInterakcji
Diagramy interakcji
8/20
Opis komunikatu (2/3)

Warunek strzegący, dozoru (guard condition)



Warunek strzegący to warunek, który musi być spełniony dla
przesłania komunikatu.
Warunek strzegący podaje się w nawiasach kwadratowych, np.
[n<10]
Określenie iteracji


Podanie klauzuli iteracji w nawiasach kwadratowych
poprzedzonych znakiem „*” oznacza wielokrotne przesłanie
komunikatu.
Klauzulę iteracji podaje się w określonym języku
programowania lub w pseudokodzie, np.: *[i:=1..10]
DiagramyInterakcji
Diagramy interakcji
9/20
Opis komunikatu (3/3)

Zwracany wynik
wynik := nazwa operacji (lista argumentów)

Lista argumentów
Jest listą wartości oddzielonych przecinkami, które są
po kolei przypisywane do parametrów operacji.
 Wartości są wyrażeniami w określonym języku
programowania lub w pseudokodzie.
 W wyrażeniach mogą występować wartości zwrotne
z poprzedzających komunikatów

DiagramyInterakcji
Diagramy interakcji
10/20
Przykłady komunikatów



1.2a: DoSomething()
3, 5/7: DoSomething()
4: [action=new] NewDocument(SelectType())
DiagramyInterakcji
Diagramy interakcji
11/20
Elementy diagramu
sekwencji
obiekt
aktor
anObject:aClass
linia życia
Klient
komunikat
DoSomething()
wektor przepływu komunikatu
skupienie sterowania
odpowiedź
DiagramyInterakcji
Diagramy interakcji
12/20
Uwagi do diagramu
sekwencji







Diagram sekwencji i diagram kolaboracji są semantycznie równoważne.
Kierunek przepływu komunikatu określa zwrot wektora przepływu – przy
jednym wektorze może wystąpić tylko jeden komunikat.
Numery porządkowe są zbędne – kolejność przepływu komunikatów określa
uporządkowanie wektorów przepływu komunikatów w pionie – wzdłuż linii
życia.
Można stosować warunki strzegące i specyfikacje iteracji.
Wektor odpowiedzi nie opisuje się – jeśli istotna jest wartość zwrotna, to przy
wektorze zapytania podaje się zaawansowaną sygnaturę komunikatu.
Zamiast wektora odpowiedzi można zastosować zwykły wektor przepływu
komunikatu.
Skupienie sterowania (focus of control) reprezentuje czas, w którym obiekt jest w
stanie przyjmować i nadawać komunikaty (czas aktywności).
DiagramyInterakcji
Diagramy interakcji
13/20
Tworzenie i niszczenie
obiektu
Create()
DiagramyInterakcji
anObject:aClass
Diagramy interakcji
14/20
Równoległe wątki sterowania
anObject:aClass
DiagramyInterakcji
Diagramy interakcji
15/20
Rekurencja
anObject:aClass
DiagramyInterakcji
Diagramy interakcji
16/20
Dokładne określenie czasu
t1
{t2-t1<1 min}
t2
t3
{t3’-t3<10 ms}
DiagramyInterakcji
t3’
Diagramy interakcji
17/20
Przykład diagramu sekwencji
Lista klientów:
Lista
Klient
Rachunki
niezapłacone: Lista
Sprzedawca
1: Zgłoszenie()
2: jest :=
Wyszukanie()
3:[nie jest] Podaj
dane()
4: 3/ jest :=
Nowy klient()
5: [jest] nzap:=Wyszukanie()
6: akcja :=
Potwierdzenie
zgłoszenia(nzap)
7a:[akcja=nowy] Create()
DiagramyInterakcji
Diagramy interakcji
Zamówienie:
Zamówienia
18/20
Przykład diagramu kolaboracji
2: jest := Wyszukanie() 
4: 3/ jest := Nowy klient() 
1: Zgłoszenie() 
 3:[nie jest] Podaj dane()
Klient
5: [jest] nzap:=Wyszukanie() 
 6: akcja :=
Potwierdzenie zgłoszenia Sprzedawca
(nzap)
Lista klientów:
Lista
Rachunki
niezapłacone: Lista
7a:[akcja=nowy] Create() 
Zamówienie:
Zamówienia
DiagramyInterakcji
Diagramy interakcji
19/20
Literatura


Booch G, Rumbaugh J, Jacobson I: UML.
Przewodnik użytkownika, WNT, Warszawa 2002
Dennis A., Haley Wixom B., Tegarden D.: System
Analysis & Design. An Object-Oriented Approach
with UML, John Wiley & Sons, Inc., USA 2001
DiagramyInterakcji
Diagramy interakcji
20/20