Katedra Informatyki i Automatyki

Politechnika Rzeszowska

InŜynieria Systemów Informatycznych (UML)

Ćwiczenie 5. Diagramy sekwencji

Wstęp

Diagramy sekwencji (ang. Sequence diagrams) naleŜą do diagramów interakcji, które opisują współpracę pomiędzy obiektami (instancjami klasyfikatora) systemu i są ściśle powiązane ze scenariuszami przypadków uŜycia. Na diagramach tych obrazowane są przepływy sterowania w systemie. Diagramy sekwencji szczegółowo przedstawiają wykonywane operacje – kolejność wywoływania komunikatów oraz ich nadawców i odbiorców. Interakcja na tych

diagramach przedstawiana jest w dwóch wymiarach:

1. Pionowym (dynamiczny) – oś czasu, opisująca chronologię wywoływania

komunikatów

2. Poziomym (statyczny) – oś instancji obiektów biorących udział w interakcji.

Na diagramach sekwencji, istotna jest kolejność pewnych zdarzeń, natomiast nie jest istotna rzeczywista miara czasu. Niekiedy (dla systemów uwarunkowanych czasowo) czas moŜe być przedstawiony w pewnej mierzalnej skali.

1. Podstawowe elementy i operacje diagramu sekwencji

• Obiekt – kolekcja instancji o tych samych cechach występująca w systemie Rys. 1 Obiekt

Jako obiekty mogą wystąpić równieŜ elementy z innych typów diagramów np.

aktorzy, przypadki uŜycia, interfejsy itp.

• Linia Ŝycia – wskazuje okres istnienia obiektu (rys. 2)

- 1 -

Rys. 2 Linia Ŝycia

• Aktywność obiektu – wykonanie operacji przez obiekt (rys.3)

Rys. 3 Aktywność obiektu

• Komunikat – słuŜy do wymiany informacji pomiędzy obiektami, rodzaje komunikatów zostały przedstawione w tabeli 1.

Tab. 1 Rodzaje komunikatów

Komunikat

Symbol

Komunikat synchroniczny – po wysłaniu komunikatu

przekazuje sterowanie do odbiorcy i komunikacja

zostaje przerwana, aŜ do wznowienia jej przez odbiorcę

– jest to jeden z najczęstszych komunikatów

występujących na diagramach sekwencji

Komunikat asynchroniczny – po wysłaniu komunikatu

połączenie pomiędzy obiektami jest podtrzymywane, co

umoŜliwia

dalsze

przetwarzanie

i

wysyłanie

komunikatów przez nadawcę

Komunikat zwrotny – wskazuje na powrót sterowania

do nadawcy komunikatu synchronicznego po jego

wykonaniu

Komunikat utracony – stosowany jest w przypadku,

gdy w momencie tworzenia danego fragmentu systemu

nie jest znany odbiorca, a tylko nadawca komunikatu

Komunikat znaleziony – stosowany jest w przypadku,

gdy w momencie tworzenia danego fragmentu systemu

nie jest znany nadawca, a jedynie odbiorca komunikatu

- 2 -

• Tworzenie obiektu

Tworzenie obiektów wykonuje się poprzez nadanie komunikatu z stereotypem

<<create>> oraz (opcjonalnie) nazwą operacji tworzącej dany obiekt (rys. 4).

Rys. 4 Przykład tworzenia obiektu

• Niszczenie obiektu

Niszczenie obiektów wykonuje się poprzez nadanie komunikatu z stereotypem

<<destroy>>, dodatkowo na linii Ŝycia obiektu usuwanego sygnalizuje się zdarzenie niszczące w postaci znaku i opcjonalnej nazwy operacji (rys. 5).

Rys. 5 Przykład niszczenia obiektu

- 3 -

• Warunki

Wywołanie komunikatów moŜe być uzaleŜnione od spełnienia pewnych

określonych warunków (rys. 6). Warunki te najczęściej zapisuje się przy pomocy tekstu lub pseudokodu w nawiasach kwadratowych przed

komunikatem.

Rys. 6 Przykład zastosowania warunku

• Rozgałęzienia

W przypadku, gdy komunikat dotyczy dwóch lub więcej warunków lub

odbiorców (obiektów) komunikatów stosuje się tzw. rozgałęzienia (rys. 7).

Rys. 7 Zastosowanie rozgałęzienia

- 4 -

• Samowywołanie

Samowywołanie występuje w przypadku, gdy dany obiekt wykonuje operację własną i jest traktowane jako szczególny przypadek iteracji.

Formularz Dodaj KsiąŜkę

sprawdźKompletnośćFormularza

Rys. 8 Samowywołanie procedury

2. Przykład

Rozpatrzmy przykład automatu do sprzedaŜy napojów. Klient obsługuje

maszynę poprzez Panel przedni. Monety przechowywane są w obiekcie

Magazyn monet, a napoje w obiekcie Lodówka. Po wrzuceniu monet (opłaty) i

wyborze napoju wywoływana jest procedura wyślijWybór, informująca

Magazyn monet o wrzuconej opłacie i wybranym napoju. Następnie w

przypadku, gdy cena napoju jest mniejsza od wrzuconej opłaty, obiekt Magazyn napojów wywołuje wewnętrzną procedurę ustawResztę, a następnie procedurę sprawdźDostępność obiektu Lodówka. Gdy wybrany towar jest dostępny, jest on wydawany przez Panel przedni, obliczana jest ewentualna reszta przez obiekt Magazyn monet oraz następuje jej wydanie poprzez Panel przedni. W

przypadku braku dostępności towaru Panel przedni zwraca wrzuconą opłatę.

Diagram sekwencji realizujący podane działania pokazany jest na rysunku 9.

- 5 -

Panel przedni

Magazyn monet

Lodówka

wrzuć(opłata)

wybierz(napój)

wyślijWybór(opłata,napój)

[opłata>cena]:ustawResztę

sprawdźDostępność(napój)

[towarDostępny=True]:wydaj(napój)

[czyReszta = True]:policzResztę

wydajResztę(reszta)

[towarDostępny=False]:wydaj(oplata)

Rys. 9 Przykład diagramu sekwencji automatu do sprzedaŜy napojów

3. Proces tworzenia diagramu sekwencji

1. Analiza adekwatnego przypadku uŜycia oraz scenariuszy tego przypadku;

2. Identyfikacja obiektów (klasyfikatorów), których instancje uczestniczą w interakcji;

3. Opracowanie diagramu konceptualnego, zawierającego: zidentyfikowane instancje klasyfikatorów, komunikaty, aktywności;

4. Opracowanie

implementacyjnego

diagramu

sekwencji

poprzez

wprowadzenie zaawansowanych kategorii pojęciowych, takich jak:

rodzaje komunikatów, tworzenie i niszczenie obiektów, warunki itd.

4. Przebieg ćwiczenia

Celem ćwiczenia jest utworzenie diagramu sekwencji dla wybranych i

opisanych przy pomocy scenariusza, dwóch przypadków uŜycia z ćwiczenia pierwszego.

- 6 -