background image

50

Inżynieria

oprogramowania

www.sdjournal.org

 Software Developer’s Journal   11/2007

UML – modelowanie dynamicznych 

aspektów oprogramowania

B

ędąc świadomym wymagań stawianych systemowi in-
formatycznemu,  kolejnym  krokiem  jest  zaprojektowa-
nie sposobu  realizacji tychże wymagań. W tym celu bu-

duje  się  modele  prezentujące  statyczne  i  dynamiczne  aspekty 
oprogramowania. Modele te budowane są w kontekście realizacji 
poszczególnych przypadków użycia. Modele dynamiki systemu 
przedstawiają  wszelkie  możliwe  ścieżki  realizacji  każdego  wy-
magania funkcjonalnego (przypadku użycia). Analiza diagramów 
modelujących dynamikę uwzględniająca wymagania niefunkcjo-
nalne, prowadzi do zbudowania statycznego modelu oprogramo-
wania. Tak więc pierwszym krokiem na etapie projektowaniu sys-
temu  informatycznego  jest  sprecyzowanie  pożądanego  sposo-
bu działania systemu, co pozwoli dalej na wyodrębnienie elemen-
tów strukturalnych. W artykule przedstawione zostaną diagramy 
UML wykorzystywane do opisu dynamiki oprogramowania.

Diagramy sekwencji

Diagram sekwencji (przebiegu) jest jednym z diagramów inte-
rakcji. Diagramy interakcji odnoszą się do modelowania dyna-
micznych aspektów systemu i służą do opisu współpracy po-
między grupami obiektów. Na diagramach sekwencji uwzględ-
nia  się  konkretne  i  prototypowe  egzemplarze  klas,  interfej-
sów,  komponentów  i  węzłów,  a  także  komunikaty  przekazy-
wane między nimi. Elementy te są rozpatrywane w kontekście 
pewnego scenariusza ilustrującego zachowanie systemu. Dia-
gram  sekwencji  główny  nacisk  kładzie  na  uwypuklenie  kolej-
ność przesyłania komunikatów w czasie. Diagramy sekwencji 
stosuje się, aby spojrzeć na zachowanie się kilku obiektów w 
ramach jednego przypadku użycia systemu. Są użyteczne do 
przedstawiania współpracy obiektów, ale nie umożliwiają ści-
słej definicji zachowania. Reasumując, diagramy sekwencji:

•   przedstawiają interakcje pomiędzy obiektami (w UML 2.0 

tzw.  uczestnikami  interakcji),  przy  czym  największy  na-
cisk kładą na zależności czasowe;

•   stosowane są, gdy kolejność wywołań oraz ograniczenia 

czasowe są istotne;

•   nadają się do modelowania: systemów czasu rzeczywiste-

go, przetwarzania współbieżnego i złożonych scenariuszy;

•   nie  prezentują  związków  strukturalnych  miedzy  współ-

działającymi obiektami;

•   pozwalają  na  zaprezentowanie  synchronicznych  i  asyn-

chronicznych interakcji.

Notacja UML 2.0 wprowadziła do diagramów sekwencji szereg 
nowości, które bez wątpienia ułatwiają prezentację złożonych 
scenariuszy wybranych przypadków użycia. Częstym proble-
mem  towarzyszącym  diagramom  sekwencji  była  trudność  z 
przedstawieniem  zachowania  warunkowego  i  pętli.  Rozwią-
zaniem okazało się wprowadzenie ramek interakcji, które słu-
żą do wyróżnienia fragmentu diagramu sekwencji. Każda taka 
ramka ma operator (stereotyp interakcji), a każdej wydzielonej 
części ramki może towarzyszyć warunek, co pozwala na wizu-
alizowanie różnych wariantów złożonego scenariusza. Najczę-
ściej stosowane stereotypy interakcji:

•  

alt

 (alternatywa) – zostaje wykonany tylko ta część ram-

ki, której warunek jest prawdziwy;

•  

opt

 (opcja) – fragment zostaje wykonany tylko wówczas, 

gdy  zawarty  w  nim  warunek  jest  prawdziwy,  czyli  odpo-
wiednik operatora 

alt 

z jednym wejściem;

•  

par

 (współbieżność) – każda część ramki interakcji uru-

chamiana jest równolegle;

•  

loop

 (pętla) – ramka interakcji może być wykonana kilka 

razy, a warunek określa podstawę interakcji;

•  

region

 (obszar krytyczny) – ramka interakcji może mieć 

tylko jeden wątek uruchomiony w danej chwili;

•  

neg

 (negacja) – ramka przedstawia niepoprawną interakcję;

•  

ref

 (referencja) – ramka odwołuje się do interakcji zdefi-

niowanej  na  innym  diagramie.  Ramka  jest  rysowana  tak, 
aby  przykrywać  linie  czasu  obiektów  biorących  udział  w 
interakcji. Można zdefiniować para metry wejściowe i war-
tość zwracaną;

•  

sd

 (diagram sekwencji) – używany do otaczania ramką ca-

łego diagramu sekwencji, w miarę potrzeb.

Diagramy komunikacji

Diagram komunikacji, tak jak diagram sekwencji, jest jednym z 
diagramów interakcji. Uwzględnia się na nich konkretne i proto-
typowe egzemplarze klas, interfejsów, komponentów i węzłów, 
a także komunikaty przekazywane między nimi, w kontekście 
pewnego scenariusza ilustrującego zachowanie systemu.

Diagram komunikacji kładzie nacisk na związki struktural-

ne między obiektami (w UML 2.0 tzw. uczestnikami) biorącymi 
udział  w  interakcji  oraz  komunikaty  przesyłane  między  nimi. 
Jest wygodniejszy od diagramów sekwencji do przedstawienia 
złożonych iteracji i rozgałęzień. W swojej idei diagramy komu-
nikacji są podobne do diagramów sekwencji. Ich głównym ce-
lem jest więc przedstawienie przepływu komunikatów pomię-
dzy obiektami. Diagramy komunikacji uwzględniają jednak dwa 
aspekty: statyczną strukturę uczestniczących obiektów, włą-
czając związki, atrybuty i operacje (jest to nazywane „kontek-
stem współpracy”) oraz kolejność komunikatów wymienianych 
pomiędzy  obiektami  dla  realizacji  konkretnego  zadania.  Dia-
gram komunikacji może być rozrysowany dla pewnych typów 
obiektów, dla pewnych operacji lub pewnych przypadków uży-

Rafał Kasprzyk

Autor jest absolwentem Wydziału Cybernetyki WAT, gdzie od 2 lat 
zajmuje  stanowisko  asystenta  w  Instytucie  Systemów  Informa-
tycznych.  Pracuje  w  firmie  ISOLUTION  będąc  odpowiedzialnym 
za przygotowywanie, prowadzenie i audyt szkoleń obejmujących 
analizę i projektowanie systemów informatycznych z użyciem no-
tacji UML.
Kontakt z autorem: 

rafal.kasprzyk@wat.edu.pl

background image

51

www.sdjournal.org

Software Developer’s Journal   11/2007

UML – modelowanie dynamicznych aspektów oprogramowania

cia. W odróżnieniu od diagramów sekwencji wymiar czasu nie jest bezpo-
średnio odwzorowany i nie ma on takiego znaczenia. Natomiast odwzoro-
wane są powiązania pomiędzy obiektami (prezentujące pewną część po-
wiązań z diagramu klas). Diagram sekwencji i komunikacji są semantycz-
nie równoważne – tzn. przekazują tę samą informację. Istnieje możliwość 
przekształcenia  diagramu  sekwencji  w  diagram  komunikacji  i  odwrotnie 
bez utraty informacji.

Diagramy aktywności

Diagramy aktywności (czynności) w zasadzie są schematami blokowy-
mi,  które  przedstawiają  przepływ  sterowania  z  aktywności  do  aktyw-
ności.  Obrazują  one  sekwencyjne  bądź  to  równoległe/współbieżne  kro-
ki procesu. Stanowią uogólnioną wersję diagramów stanów, a ich podsta-
wowym zadaniem nie jest analiza stanów obiektu, ale modelowanie prze-
twarzania (przepływu zadań). Stany diagramu aktywności odpowiadają 
stanom  wyróżnianym  w  trakcie  przetwarzania,  a  nie  stanom  obiektów. 
Aktywność  może  być  interpretowana  jako  zadanie  do  wykonania  przez 
człowieka lub komputer, ale również jako odpowiedzialność, operacja czy 
metoda klasy. Przejścia pomiędzy stanami (czynnościami) nie są zwią-
zane z nadejściem zdarzenia, ale z zakończeniem przetwarzania specy-
ficznego dla danej aktywności. Diagramy aktywności możemy wykorzy-
stać na bardzo wiele sposobów. Są szczególnie przydatne przy tworzeniu 
SI i to nie tyko w podejściu obiektowym. Tak więc:

•   umożliwiają zrozumienie procesów biznesowych; 
•   doskonale nadają się do modelowania przepływu zdań i w opisie pro-

cesów z dużą liczbą równoległych czynności;

•   wykorzystywane są, jako wygodny sposób analizy przypadków użycia;
•   dają możliwość opisu czynności warunkowych i współbieżnych;
•   proces  warunkowy  jest  przedstawiany  za  pomocą  rozgałęzienia 

(ang. 

branch) i scalenia (ang. marge);

•   proces  współbieżnych  jest  przedstawiany  za  pomocą  rozwidlenia 

(ang. 

fork) i złączenia (ang. join);

•   określają sposób realizacji określonego działania opisując podstawo-

we reguły porządkujące (szeregujące) czynności;

•   pozwalają na zobrazowanie współdziałania obiektów oraz określenie 

obiektów odpowiedzialnych za wykonanie danej aktywności na wyso-
kim poziomie abstrakcji za pomocą tzw. torów pływackich (ang. 

swim-

lines). W celu uszczegółowienia należy stosować diagramy interakcji;

•   mogą być stosowane do opisu algorytmów sekwencyjnych, równole-

głych i współbieżnych.

Zmiany wprowadzone w notacji UML 2.0, a dotyczące diagramów aktyw-
ności  sięgają  bardzo  daleko.  Pierwszą  widoczną  zmianą  jest  umożliwie-
nie zastosowania torów zarówno pionowych jak i poziomych. Pozwala to 
prezentować nie tylko obiekty odpowiedzialne za wykonanie danej aktyw-
ności, ale grupować aktywności w większe zbiory i przypisywać im zbior-
cze nazwy lub miejsca realizacji. Inną nowością jest wprowadzenie możli-
wości zakończenia realizacji scenariusza, w dowolnym miejscu, jeżeli zaj-
dzie określony warunek. Dopracowano również sposób przesyłania obiek-

Rysunek 2. 

Przykładowy diagram komunikacji

���������������

��������������

����������������

�������������������

��������������������������

�������������������������

�����������������������

����������������

�������������������

������������������������������

���������������

��

����������������

��������

�������

������������

����������

�����������������

�������

������������

���������������

������������

�����������������

�������������

�������������������

������������������

����������������

��������

�������

����������

������������������

�����

������������������

����

���

Rysunek 1. 

Przykładowy diagram sekwencji

background image

52

Inżynieria

oprogramowania

www.sdjournal.org

 Software Developer’s Journal   11/2007

tów pomiędzy czynnościami wprowadzając pojęcie żetonu (ang. 

token) i 

wtyku (ang. 

pin) wykorzystywanych do przekazywania parametrów wej-

ściowych i wyjściowych pomiędzy czynnościami. Idea ta pochodzi z sie-
ci Petriego.   Diagramy aktywności wykorzystywane są do dynamicznego 
modelowania systemów. W szczególności stosowane są do modelowania 
przepływu zadań i opisu algorytmów. Mocną stroną tych diagramów jest 
to, że zachęcają do stosowania procesów współbieżnych tam gdzie to tyl-
ko możliwe.

Diagramy maszyny stanów

Diagramy  maszyny  stanów,  nazywane  również  diagramami  stanów,  są 
znaną  techniką  opisu  zachowania  się  systemu.  W  technice  obiektowej 
diagramy te wykorzystuje się do zobrazowania możliwych stanów obiek-
tu oraz przejść, które powodują zmianę stanu obiektu. Istotną zaletą dia-
gramów maszyny stanów jest możliwość modelowania zachowania obiek-
tów danej klasy w oderwaniu od reszty systemu. Są szczególnie użytecz-
ne  do  modelowania  historii  życia  obiektu.  Przedstawiają  reakcje  obiek-
tów na otrzymane sygnały i zdarzenia. Nadaje się więc doskonale do opi-
su obiektów reaktywnych oraz projektowania systemów interakcyjnych. 
Formalnie  diagram  maszyny  stanów  jest  grafem  skierowanym,  którego 
wierzchołki stanowią stany obiektu, a łuki opisują przejścia między stana-
mi. Przejście jest odpowiedzią obiektu na jakieś zdarzenie. Akcje są zwią-

zane z przejściami i traktuje się je jako procesy szybkie i nieprzerywalne 
(atomowe). Ze stanami związane są czynności, które mogą trwać dłużej i 
mogą zostać przerwane przez zdarzenie. Diagramy maszyny stanów po-
zwalają również na wizualizowanie tzw. stanów złożonych. Stan złożony 
powstaje w efekcie zagnieżdżania stanów i w związku z tym może być do-
komponowany na stany bardziej proste. Dekompozycja jest rodzajem spe-
cjalizacji. Każdy z podstanów musi dziedziczyć przejścia nadstanu. Tylko 
jeden z podstanów może być aktywny w danym momencie. Diagramy ma-
szyny stanów radzą sobie również w wypadku, gdy obiekt ma pewne zbio-
ry niezależnych zachowań czyli może znajdować się w kilku stanach rów-
nocześnie (tzw. stany współbieżne). Jeśli jednak dla jednego obiektu jest 
kilka skomplikowanych diagramów stanów współbieżnych, to dobrą prak-
tyką jest próba rozbicia tego obiektu na kilka prostszych. Reasumując ele-
menty diagramów stanów to:

Rysunek 4. 

Przykładowy diagram maszyny stanów

������������

�����������

���������������

��������

������

������������������

������������������

����������

�����
������

�����
�����

��������

�������

�����������

���������

���������

������������

������������

�������

����������������

�����

������������������
������������
����������

�������������
������������

�����
���������

���������

������������

�������

�������������

�������

����������������������������������

���������������������������������������

Rysunek 3. 

Przykładowy diagram aktywności

Rysunek 5. 

Przykładowy diagram przeglądu interakcji

��������������

���

�����������������������

��������

��������

�������

��������

������������������

�������������������

��������������

�����������������������������

�����������������

�����������

����������������

���������

���

���

���������������

����������������

background image

53

www.sdjournal.org

Software Developer’s Journal   11/2007

UML – modelowanie dynamicznych aspektów oprogramowania

•   stany – mogą mieć nazwy, a identyfikowane są na trzy sposoby:
•   wartości atrybutów obiektu;
•   czas, gdy obiekt oczekuje na nadejście jakiegoś zdarzenia;
•  

event zdarzenie(a:T)/[warunek]/akcja;

•   czas, w którym obiekt wykonuje jakieś czynności;
•  

do/czynność1/czynność2/…;

•   zdarzenia – bodźce, które mogą uruchomić przejścia pomiędzy stanami
•   wolanie  –  operacja  (a:T),  synchroniczne  wywołanie  żądania,  gdzie 

obiekt wołający czeka na wynik;

•   zmiana – 

when 

(wyrażenie), ciągłe czekania na spełnienie warunku;

•   sygnał – sygnał (a:T), asynchroniczna komunikacja jednokierunkowa;
•   czas – 

after

(czas), uzależnienie od czasu określanego bezwzględ-

nie lub względnie;

•   przejścia – wskazują, że obiekt przejdzie z jednego stanu do drugie-

go, o ile zajdzie określone zdarzenie i będą spełnione warunki;

•  

zdarzenie(a:T)[warunek]/akcja

  –  przejścia  zewnętrzne  i  we-

wnętrzne;

• 

 

[warunek]/akcja

 – przejście automatyczne;

•  

entry/akcja1we/akcja2we/…

 – wykonanie akcji podczas wejścia do 

stanu;

•  

exit/akcja1wy/akcja2wy/…

 – wykonanie akcji podczas wyjścia ze 

stanu.

Diagramy przeglądu interakcji

Diagramy przeglądu interakcji są krzyżówką diagramów aktywności i dia-
gramów sekwencji i/lub komunikacji. Należy je traktować tak, jak diagra-
my aktywności, w których aktywności są zastąpione przez diagramy se-
kwencji. Istnieje możliwość stosowania dwóch rodzajów elementów inte-
rakcyjnych: prostokąty posiadające nazwę diagramu sekwencji i stano-
wiące  jego  referencję,  zaznaczaną  słowem  kluczowym 

REF

,  które  znaj-

duje  się  w  lewym  górnym  rogu  diagramy  sekwencji  bądź  komunikacji, 
które mogą być bezpośrednio zagnieżdżane w diagramach przeglądu in-
terakcji. Ponieważ diagramy przeglądu interakcji są nowością, to trudno 
stwierdzić, jak przydatne okażą się w praktyce.

Diagramy przebiegów czasowych

Diagram przebiegów czasowych jest nowym diagramem interakcji, w któ-
rym nacisk kładzie się na ograniczenia czasowe – albo dla pojedynczego 
obiektu, albo, co bardziej pożyteczne, dla całej grupy obiektów. Na jego po-
jawienie  się czekali przede wszystkim projektanci systemów czasu rze-
czywistego i aplikacji, których działanie jest uzależnione od współpracy z 
urządzeniami  wejścia/wyjścia.  Diagram  przebiegów  czasowych  obrazuje 
zachowanie obiektu z naciskiem na dokładne określenie czasu, w którym 
obiekt jest poddawany jakimś zmianom lub sam wykonuje jakieś działanie. 
Diagramy  czasowe  przydają  się  do  obrazowania  ograniczeń  czasowych 
występujących między zmianami stanów różnych obiektów. Są szczegól-
nie przyjazne dla inżynierów zajmujących się projektowaniem urządzeń. 

Możliwe  są  dwa  alternatywne  sposoby  przedstawienia  ograniczeń 

czasowych  na  diagramach  przebiegów  czasowych  (Rysunek  6).  Stany 
można przedstawiać w postaci pól lub linii poziomych. Oba sposoby niosą 
tą samą informację. Praktyka dowodzi natomiast, że pierwszy styl spraw-
dza się lepiej, gdy musimy się zajmować dużą liczbą stanów.

Podsumowanie

Modelując dynamiczne aspekty rozwiązania budujemy modele, które pre-
zentują poszczególne ścieżki realizacji wymagań funkcjonalnych. Mode-
le budowane są w oparciu o diagramy sekwencji, komunikacji, aktywno-
ści i stanów. W przypadku modelowania systemów specjalizowanych po-
mocne mogą się okazać nowe diagramy przeglądu interakcji i przebiegów 
czasowych. n

Rysunek 6. 

Przykładowy diagram przebiegów czasowych

��������������

���������������

���������������

���������������

��������

��������

��������

���������

������������������

������������

�����������

�����

��

��

��

��������������

����������������������

�����������������

���������������������

�����������������������

����������������

�������������

�����������

������

�����������

�������

������������������

�����

����������������������

�����������������������