Transcript komunikat
Projektowanie dynamiki diagramy interakcji
Projektowanie dynamiki - diagram interakcji
Modele statyczne i dynamiczne
2 •
Modele statyczne – klasy i zależności między klasami
▫ diagram klas ▫ diagram obiektów • ▫ ▫
Modele dynamiczne – interakcja między obiektami
diagramy sekwencji diagramy komunikacji
3 Projektowanie dynamiki - diagram interakcji
Diagram sekwencji
Diagram sekwencji przedstawia: • komunikaty przysyłane pomiędzy obiektami (i ich kolejność) • przepływ sterowania • szablon realizowanego algorytmu lub jedną z możliwych ścieżek algorytmu • czas życia i okresy aktywności obiektów (ról) biorących udział w interakcji
Diagram sekwencji
Obiekt (rola) biorący udział w interakcji Komunikat Linia życia 4 Projektowanie dynamiki - diagram interakcji Okres aktywności
5 Projektowanie dynamiki - diagram interakcji
Diagram komunikacji
Diagram komunikacji przedstawia: • komunikaty przysyłane pomiędzy obiektami (i ich kolejność) • przepływ sterowania • szablon realizowanego algorytmu lub jedną z możliwych ścieżek algorytmu • związki miedzy obiektami (rolami biorącymi udział w interakcji)
Diagram komunikacji
6 Projektowanie dynamiki - diagram interakcji związek obiekt komunikat
7 Projektowanie dynamiki - diagram interakcji
Elementy diagramu
• Obiekty (role) - są podstawowym elementem diagramu interakcji. Diagram może zawierać instancje innych klasyfikatorów, np. aktorów • Linia życia – reprezentuje czas życia obiektów (ról) biorących udział w interakcji. Jest to czas, kiedy obiekt jest w stanie przyjmować i obsługiwać komunikaty • Okres aktywności – reprezentuje okres, kiedy obiekt obsługuje komunikat
Projektowanie dynamiki - diagram interakcji
Elementy diagramu - komunikaty
8 • Komunikat – przesłanie informacji z jednego obiektu (instancji) do innego skutkujące wykonaniem pewnej akcji na obiekcie docelowym • Komunikaty są formą porozumiewania się obiektów (instancji) • Implementacja komunikatu może przybierać różne formy: ▫ ▫ wywołanie metody wygenerowanie zdarzenia • Na poziomie logicznym wywołanie metody i wygenerowanie zdarzenia nie różnią się między sobą - w jednym i drugim przypadku następuję przesłanie pewnej informacji od nadawcy do odbiorcy i w efekcie wykonanie pewnej akcji przez odbiorcę
Projektowanie dynamiki - diagram interakcji
Diagram sekwencji - interpretacja
1. Obiekt
o1
wysyła komunikat do obiektu
o2
. Komunikat ma postać wywołania operacji
OperationB1
2.
W trakcie obsługi komunikatu
OperationB1
obiekt
o2
wysyła komunikat do obiektu
o3
. Komunikat skutkuje wykonaniem operacji
OperationC1
na obiekcie
o3
3. Po wykonaniu operacji
OperationC1
obiekt
o2
wysyła komunikat do samego siebie. Komunikat ma postać wywołania operacji
OperationB2
4. Po wykonaniu operacji do obiektu
o1
obsługi komunikatu
OperationB2
następuję wysłanie komunikatu zwrotnego oznaczającego koniec
OperationB1
9
10 Projektowanie dynamiki - diagram interakcji
Rodzaje komunkatów
Komunikat synchroniczny Komunikat asynchroniczny Komunikat zwrotny
11 Projektowanie dynamiki - diagram interakcji
Komunikat synchroniczny
• Wysłanie komunikatu synchronicznego oznacza przekazanie sterowania do obiektu odbiorcy i rozpoczęcie wykonywania akcji na obiekcie docelowym • Przetwarzanie w obiekcie nadawcy ulega wstrzymaniu • Powrót sterowania i wznowienie przetwarzania w obiekcie nadawcy następuje po wykonaniu wszystkich akcji zainicjowanych przez wysłany komunikat
Komunikat asynchroniczny
12 Projektowanie dynamiki - diagram interakcji • Wysłanie komunikatu asynchronicznego nie powoduje przerwania aktualnego przepływu sterowania • Przetwarzanie w obiekcie nadawcy jest kontynuowane zaraz po wysłaniu komunikatu – obiekt nadawcy nie czeka aż obiekt odbiorcy skończy obsługę komunikatu • Po odebraniu komunikatu asynchronicznego w obiekcie odbiorcy pojawia się nowy przepływ sterowania niezależny od przepływu sterowania w obiekcie nadawcy
13 Projektowanie dynamiki - diagram interakcji
Komunikat zwrotny
• Komunikaty zwrotne służą do oznaczenia powrotu sterowania do obiektu nadawcy po wykonaniu akcji związanych z wysłaniem komunikatu synchronicznego • Komunikaty zwrotne są opcjonalne – zazwyczaj używa się ich w sytuacji, gdy operacja zwraca istotną wartość lub też dla lepszego zrozumienia przepływu sterowania
14 Projektowanie dynamiki - diagram interakcji
Rodzaje komunikatów - przykład
1. GetFileList() 2. PrepareFileList() 3. fileList 4. StartDownload() 5. SendFile
()
6. ReportProgress()
– synchroniczny – synchroniczny – zwrotny – asynchroniczny – asynchroniczny – asynchroniczny
Tworzenie obiektu
15 Projektowanie dynamiki - diagram interakcji •
Tworzenie obiektu
– wysłanie komunikatu ze stereotypem
<
• Komunikat może zawierać parametry konstruktora obiektu
Usuwanie obiektu
16 Projektowanie dynamiki - diagram interakcji •
Usuwanie obiektu
– wysłanie komunikatu ze stereotypem
<
• Usunięcie obiektu oznacza się znakiem X na linii życia
17 Projektowanie dynamiki - diagram interakcji
Składnia komunikatu (1)
numer-komunikatu [własności] zmienna-zwracana := komunikat (lista-parametrów): zwracany-typ
•
numer-komunikatu
– numer komunikatu w sekwencji. Stosuje się numeracje prostą (komunikaty dostają kolejne numery 1 , 2 , 3 , ...) lub zagnieżdżoną (jeśli obiekt otrzymuje komunikat o numerze 2.1
, to każdy komunikat wysłany w trakcie realizacji tego komunikatu będzie miał prefiks 2.1
, np . 2.1.1
, 2.1.2
, …) •
lista-parametrów
– lista parametrów komunikatu. W wersji najbardziej rozszerzonej ma postać: stosownie tylko typów, tylko zmiennych, można też pominąć całkowicie wszystkie parametry
zmienna:typ
. Dopuszcza się
18 Projektowanie dynamiki - diagram interakcji
Składnia komunikatu (2)
numer-komunikatu [własności] zmienna-zwracana := komunikat (lista-parametrów): zwracany-typ
•
zmienna-zwracana
– nazwa zmiennej zwracanej przez komunikat. Można opuścić, jeśli komunikat nic nie zwraca •
zwracany-typ
– typ zmiennej zwracanej przez komunikat. Można opuścić, jeśli komunikat nic nie zwraca •
własności
– określa własności komunikatu odnośnie warunków jego wysłania. Może mieć postać warunku logicznego, np. – komunikat będzie wysłany jeśli warunek będzie prawdziwy. Może też mieć postać iteracji, np.
*[1..5] [x > 0]
– komunikat będzie wysłany 5 razy
Komunikaty z warunkiem
19 Projektowanie dynamiki - diagram interakcji Komunikat
Update()
zmienna
find
zostanie wysłany tylko wtedy, gdy przyjmie wartość
true
Komunikaty z iteracją
20 Projektowanie dynamiki - diagram interakcji Komunikat
ObliczPodateKPozycjiKoszyka()
będzie wysyłany
liczbaPozycji
razy
21 Projektowanie dynamiki - diagram interakcji
Bloki komunikatów
Blok (fragment wyodrębniony) – grupa komunikatów posiadających wspólną cechę Najczęściej spotykane bloki komunikatów: ▫ ▫ ▫ ▫ ▫ ▫
alt opt par loop critical ref
- alternatywa - opcja - współbieżność - iteracja - obszar krytyczny - odwołanie do innego bloku
22 Projektowanie dynamiki - diagram interakcji
alt
alt
– wybierany jest jeden z alternatywnych bloków komunikatów odpowiada instrukcji
if…else
Operacje
msg3
i
msg4
będą wykonane, jeśli
warunek
będzie prawdziwy. W przeciwnym przypadku wykona się operacja
msg5
23 Projektowanie dynamiki - diagram interakcji
opt
opt
– grupuje komunikaty wysyłane, jeśli spełniony jest pewien warunek - odpowiada instrukcji
if
(bez
else
) Operacje
msg3
i
msg4
będą wykonane, jeśli
warunek
będzie prawdziwy
24 Projektowanie dynamiki - diagram interakcji
loop
loop
– grupuje komunikaty wykonywane iteracyjne (w pętli). Pętla może mieć z góry zadaną liczbę iteracji (pętla
for
). Liczba iteracji może też być określona przy pomocy warunku (pętla
while
) Operacje
msg3
i
msg4
będą powtarzane 5 razy
par
par
– grupuje komunikaty wykonywane równolegle 25 Projektowanie dynamiki - diagram interakcji Operacje
msg3
i
msg4
mogą być wykonywane równolegle
26 Projektowanie dynamiki - diagram interakcji
Rodzaje diagramów
• Diagramy egzemplarzowy (instancyjny) – przedstawia tylko jedną z możliwych ścieżek interakcji (algorytmu). Diagramy egzemplarzowe nie zawierają alternatyw, opcji ani iteracji • Diagramy ogólny (generyczny) – przedstawia wszystkie możliwe ścieżki interakcji (algorytmu) . Na diagramach ogólnych często pojawiają się elementy opcjonalne, alternatywne oraz iteracje
27 Projektowanie dynamiki - diagram interakcji
Diagramy ogólne i egzemplarzowe
Diagram ogólny (generyczny) Diagram egzemplarzowy (instancyjny)
Diagram przedstawia wszystkie możliwe scenariusze interakcji (blok
alt
) Diagram przedstawia jeden scenariusz interakcji (dla zmiennej
ilość
jest większej od
0
)
28 Projektowanie dynamiki - diagram interakcji
Diagram sekwencji versus diagram komunikacji
Cecha
związki pomiędzy obiektami kolejność przepływu komunikatów organizacja przestrzeni
Diagram sekwencji
związki pomiędzy obiektami słabo widoczne
Diagram komunikacji
związki pomiędzy obiektami bardzo dobrze widoczne kolejność komunikatów bardzo dobrze widoczna diagramy sekwencji zajmują więcej miejsca kolejność komunikatów możliwa do ustalenia jedynie na podstawie numeracji przestrzeń w diagramach komunikacji lepiej wykorzystana rodzaje, własności i bloki komunikatów rodzaje komunikatów lepiej widoczne, możliwość zastosowania bloków komunikatów rodzaje komunikatów słabo widoczne, brak możliwości stosowania bloków komunikatów
29 Projektowanie dynamiki - diagram interakcji
Diagram sekwencji versus diagram komunikacji
diagram sekwencji diagram komunikacji
30 Projektowanie dynamiki - diagram interakcji
Literatura
•
Russ Miles, Kim Hamilton, UML 2.0
Wprowadzenie
•
Grady Booch, James Rumbaugh, Ivar Jacobson:
UML Reference Manual
•
Kazimierz Subieta: Projektowanie systemów
informatycznych – wykłady