background image

- 1 - 

 

InŜynieria Systemów Informatycznych (UML) 

 

Ćwiczenie 5. Diagramy sekwencji 

 

Wstę

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 

background image

- 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 

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 

 

background image

- 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 

  

background image

- 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

 

  

background image

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

background image

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