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