Inżynieria oprogramowania
Projektowanie systemów informatycznych
Dr inż. Lucjan Miękina
upel.agh.edu.pl/wimir/login/
Katedra Robotyki i Mechatroniki
March 16, 2014
1/1
Inżynieria Oprogramowania
Diagramy sekwencji
Diagram sekwencji (sequence diagram) jest jedną z form diagramu interakcji i ukazuje
obiekty łącznie z ich liniami życia (lifeline)
biegnącymi w dół równolegle do osi czasu, co pozwala uwypuklić kolejność komunikatów.
Linia życia reprezentuje aktywność pojedynczego uczestnika diagramu sekwencji. Linia
życia zaczyna się od symbolu obiektu, który zwykle jest prostokątem zawierającym
nazwę obiektu, opcjonalnie uzupełnioną jego typem. Jeśli nazwą obiektu jest self",
oznacza to że linia życia reprezentuje klasyfikator, który posiada diagram sekwencji.
Gdy diagram sekwencji jest ilustracją przypadku użycia i znajduje się w jego gałęzi w
drzewie modelu, linia życia może zaczynać się od symbolu aktora. Ponadto jako
symbole obiektów stosuje się elementy typu klasa graniczna (boundary), klasa
sterująca (control) i klasa przechowująca (entity).
2/1
Inżynieria Oprogramowania
Diagramy sekwencji
Ośrodek sterowania (execution occurrence, focus of control) jest prostokątem
leżącym na linii życia, symbolizującym czas, w którym sterowanie należy do obiektu w
związku z obsługą odebranego przez obiekt komunikatu. Górna krawędz tego
prostokąta leży na tej samej wysokości co początek akcji obsługującej komunikat, a
dolna na wysokości odpowiadającej zakończeniu akcji. Można stosować
zagnieżdżenie sterowania, by zobrazować rekurencję, wywołanie własnej operacji lub
wywołanie zwrotne z innego obiektu. Wtedy umieszcza się nowy ośrodek sterowania
na istniejącym, nieco przesunięty na prawo.
Komunikaty reprezentują oddziaływania między obiektami znajdującymi się na
diagramie. Mają one postać linii zakończonych grotem i skierowanych od linii życia
obiektu zródłowego do linii życia obiektu docelowego.
Komunikaty mogą być:
synchroniczne (synchronous) - po nadejściu komunikatu do odbiorcy następuje
przekazanie mu sterowania, natomiast przepływ sterowania nadawcy zostaje
przerwany do czasu zakończenia przez odbiorcę operacji inicjowanej
komunikatem;
asynchroniczne (asynchronous) - nie powodują przerwania przepływu sterowania
nadawcy (może on kontynuować przetwarzanie w tym wysyłanie innych
komunikatów), ponieważ nie oczekuje on odpowiedzi;
3/1
Inżynieria Oprogramowania
Diagramy sekwencji
Komunikaty mogą być również:
zwrotne (return) - wskazują na powrót sterowania do nadawcy komunikatu
synchronicznego, z ewentualnym zainicjowaniem pewnej operacji. Nie jest
wymagane używanie komunikatu zwrotnego po komunikacie synchronicznym, ale
poprawia to czytelność modelu i pozwala zainicjować operację, która ma być
wykonana po zwróceniu sterowania do nadawcy komunikatu synchronicznego;
utracone albo znalezione należą do kategorii niekompletnych, tzn. takich dla
których odbiorca lub nadawca nie są znani. Komunikat utracony (lost) stosuje
się, gdy na pewnym etapie szczegółowości lub rozwoju projektu nie jest możliwe
określenie klasyfikatora odbiorcy, ale jest to konieczne w wersji docelowej.
Komunikat znaleziony (found) reprezentuje komunikat wysłany spoza diagramu
sekwencji, np. w celu ujęciu w modelu zjawisk zewnętrznych;
opcjonalne (balking) wysyłane w celu niezwłocznej obsługi przez odbiorcę. Jeśli
taka obsługa nie jest możliwa, nadawca nie ponawia wysyłania tego komunikatu;
oczekujące (time-out) są podobne do opcjonalnych, z tym że nadawca jest
gotowy czekać przez określony czas na obsłużenie. Jeśli odbiorca nie może
przyjąć komunikatu w tym czasie, nadawca rezygnuje z interakcji;
samowywołania (self message) mogą reprezentować wywołanie rekursywne tej
samej metody lub wywołanie pewnej metody obiektu przez inną metodę tego
samego obiektu. Jest to uwidocznione na diagramie przez wprowadzenie
zagnieżdżonego ośrodka sterowania na linii życia obiektu.
4/1
Inżynieria Oprogramowania
Diagramy sekwencji
Przykład przedstawia następujące komunikaty:
pierwszy synchroniczny, w związku z tym jest narysowany linią ciągłą z
wypełnionym grotem. Komunikat ten implikuje domyślny komunikat zwrotny,
który nie jest uwidoczniony, choć należy być tego świadomym;
drugi asynchroniczny (linia ciągła
ze strzałką);
trzeci asynchroniczny komunikat
zwrotny (linia przerywana ze
strzałką), przekazujący do obiektu
Nadawca informacje związane z
rezultatami wykonania operacji
inicjowanej poprzednim
komunikatem asynchronicznym w
obiekcie Odbiorca;
czwarty typu utraconego;
piąty typu znalezionego;
ostatnie dwa odmiany komunikatu
samowywołania, odpowiednio innej
operacji tego samego obiektu i tej
samej operacji.
5/1
Inżynieria Oprogramowania
Diagramy sekwencji - jawne tworzenie i usuwanie obiektów
Początek i koniec linii życia może być jawnie określony przez projektanta, jeśli obiekt
powinien istnieć tylko przez część czasu reprezentowanego na diagramie.
Początek linii życia odpowiada momentowi utworzenia obiektu; utworzenie jest
rezultatem wysłania komunikatu opatrzonego stereotypem create (tu - tworz).
Utworzony obiekt jest umieszczony na diagramie poniżej pierwotnie istniejących
obiektów, na wysokości komunikatu odpowiedzialnego za utworzenie.
Obiekt przestaje istnieć wraz z odebraniem komunikatu opatrzonego stereotypem
destroy (tu - niszcz), przy czym jego linia życia zostaje zakończona symbolem X .
6/1
Inżynieria Oprogramowania
Diagramy sekwencji - specyfikowanie parametrów czasowych komunikatów
Domyślnie nie uwzględnia się czasu przekazywania komunikatów. Jednak czas ten
może być istotnym parametrem w przypadku systemów czasu rzeczywistego lub
czasowo zależnych. Wtedy można określić dla komunikatu ograniczenia czasowe (czas
trwania, opóznienia). Linia reprezentująca taki komunikat jest rysowana ukośnie, a
obok nazwy komunikatu w nawiasach klamrowych wyświetlana jest informacja o
ograniczeniach czasowych.
Przykład pokazuje komunikat zapytanie z czasem przekazywania równym 10 ms i
komunikat odpowiedz z czasem przekazywania równym 5 ms.
7/1
Inżynieria Oprogramowania
Diagramy sekwencji - fragmenty wyodrębnione
Jak wcześniej zaznaczono, diagramy sekwencji nie są przeznaczone do opisu złożonych
procedur przetwarzania. Jeśli jednak jest to niezbędne, istnieją konstrukcje związane z
diagramami sekwencji, które pozwalają zapisać pewien zakres wymaganej logiki
programu.
Te konstrukcje są nazywane fragmen-
tami wyodrębnionymi (combined frag-
ments). Stosowanie fragmentów wyo-
drębnionych umożliwia bardziej pre-
cyzyjne zobrazowanie istoty mode-
lowanej interakcji, co jest ważne w
systemach odpowiedzialnych (czasu
rzeczywistego, transakcyjnych).
Fragment wyodrębniony zawiera jedną
lub więcej sekwencji przetwarzania,
otoczone ramką i opatrzone opera-
torem interakcji, który określa specy-
fikę fragmentu. Operator interakcji
składa się ze specyfikacji rodzaju frag-
mentu i opcjonalnych parametrów.
8/1
Inżynieria Oprogramowania
Diagramy sekwencji - rodzaje fragmentów wyodrębnionych
Istnieją następujące rodzaje fragmentów, powiązane z operatorami interakcji:
loop (oznaczony loop ) , który reprezentuje ciąg komunikatów, które muszą być
powtarzane w pętli;
alternative (oznaczony alt ), który reprezentuje konstrukcję typu
if. . . then. . . else;
option (oznaczony opt ) , który reprezentuje konstrukcję typu switch;
break (oznaczony break ), który reprezentuje alternatywną sekwencję, która jest
realizowana zamiast reszty diagramu;
parallel (oznaczony par ), który reprezentuje przetwarzanie równoległe;
critical który reprezentuje sekcję krytyczną (critical section);
assertion (oznaczony assert ), który reprezentuje warunek konieczny dla
algorytmu;
weak sequencing (oznaczony seq ), który reprezentuje ciąg komunikatów, które
muszą być przetwarzane w słabo uporządkowanej kolejności;
strict sequencing (oznaczony strict ), który reprezentuje ciąg komunikatów,
które muszą być przetwarzane w ściśle uporządkowanej kolejności;
negative (oznaczony neg ), który reprezentuje nieprawidłowy ciąg komunikatów.
Wskazują one na wyjątki, które muszą być obsłużone;
ignore (oznaczony ignore ), który reprezentuje fragment nieistotny w aktualnym
kontekście
consider (oznaczony consider ), który reprezentuje fragment istotny:
komunikaty nie zawarte w takim fragmencie są ignorowane.
9/1
Inżynieria Oprogramowania
Diagramy sekwencji - rozgałęzienia
W ramach pełnej specyfikacji komunikatu mieści się również warunek jego
aktywności. Ewaluacja tego warunku może skutkować wysłaniem lub nie komunikatu.
Jeśli mamy do czynienia z dwoma lub więcej wykluczającymi się warunkami, to
występuje rozgałęzienie (branch). Polega ono na przekazaniu sterowania z linii życia
obiektu nadawcy do:
tego z obiektów, który odbiera komunikat opatrzony spełnionym warunkiem,
jednej z rozszczepionych linii życia tego samego obiektu.
Notacja rozgałęzień może być stosowana zamiennie z wyodrębnionymi fragmentami
typu alt, z tym że rozgałęzienie dotyczy pojedynczego komunikatu, a fragment
wyodrębniony może zawierać ciąg komunikatów.
Przykład pokazuje rozgałęzienie typu
pierwszego, oparte o dwa wyklucza-
jące się warunki zawarte w nawiasach
kwadratowych. Ewaluacja tych warunków
powoduje przekazanie komunikatu wyswietl
do obiektu Tabela lub obiektu Wykres.
Obiekty te zapewnią specyficzną obsługę
komunikatu za pomocą odpowiedniej
metody, która powinna zostać zdefin-
iowana w klasach, których instancjami są
wymienione obiekty.
10/1
Inżynieria Oprogramowania
Diagramy sekwencji - iteracje
Jeśli potrzebne jest wielokrotne wykonywanie pojedynczego komunikatu, można się
posłużyć specyfikacją iteracji.
Specyfikacja ta zaczyna się od symbolu *, który poprzedza warunek określający liczbę
i sposób powtórzeń zawarty w nawiasach [], za którymi występuje normalna
specyfikacja komunikatu.
Przykład pokazuje zastosowanie specyfikacji iteracji w odniesieniu do komunikatu
pobierzElement, który będzie wykonany dla wartości zmiennej el z przedziału 1..n.
11/1
Inżynieria Oprogramowania
Diagramy sekwencji - zagnieżdżanie diagramów sekwencji
W celu budowy diagramów hierarchicznych można skorzystać z zagnieżdżania i
symbolu bramy (gate).
Bramy służą do wymieniania komunikatów z otoczeniem danego diagramu sekwencji
lub wyodrębnionego fragmentu.
Zagnieżdżanie stosuje się gdy:
nie można przedstawić interakcji na jednym diagramie ze względu na jej
złożoność,
istnieją fragmenty interakcji stanowiące samodzielną funkcjonalnie część,
na diagramie nadrzędnym nie ma powodu do pokazywania szczegółów
związanych z diagramem wewnętrznym.
12/1
Wyszukiwarka
Podobne podstrony:
Wyklad IO 7Wyklad IO 4Wyklad IO 1Wyklad IO 3wyklad io 1io wyklad1io wyklad4io wyklad2IO Wyklad 01a SSM i Rich Pictureio wyklad5io wyklad5IO Wyklad 01 WprowadzenieIO notatki z wykladowSieci komputerowe wyklady dr FurtakWykład 05 Opadanie i fluidyzacjaamd102 io pl09więcej podobnych podstron