Wyklad IO 2


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 7
Wyklad IO 4
Wyklad IO 1
Wyklad IO 3
wyklad io 1
io wyklad1
io wyklad4
io wyklad2
IO Wyklad 01a SSM i Rich Picture
io wyklad5
io wyklad5
IO Wyklad 01 Wprowadzenie
IO notatki z wykladow
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja
amd102 io pl09

więcej podobnych podstron