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 -
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 -