- 1 -
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)
Katedra Informatyki i Automatyki
Politechnika Rzeszowska
- 2 -
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
- 3 -
•
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
- 4 -
•
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
- 5 -
•
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.
- 6 -
Magazyn monet
wrzuć(opłata)
wybierz(napój)
Lodówka
sprawdźDostępność(napój)
Panel przedni
wyślijWybór(opłata,napój)
[towarDostępny=True]:wydaj(napój)
[czyReszta = True]:policzResztę
wydajResztę(reszta)
[towarDostępny=False]:wydaj(oplata)
[opłata>cena]:ustawResztę
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.