2007 11 UML – modelowanie dynamicznych aspektów oprogramowania [Inzynieria Oprogramowania]


Inżynieria
oprogramowania
UML  modelowanie dynamicznych
aspektów oprogramowania
Rafał Kasprzyk
ędąc świadomym wymagań stawianych systemowi in- Notacja UML 2.0 wprowadziła do diagramów sekwencji szereg
formatycznemu, kolejnym krokiem jest zaprojektowa- nowości, które bez wątpienia ułatwiają prezentację złożonych
Bnie sposobu realizacji tychże wymagań. W tym celu bu- scenariuszy wybranych przypadków użycia. Częstym proble-
duje się modele prezentujące statyczne i dynamiczne aspekty mem towarzyszącym diagramom sekwencji była trudność z
oprogramowania. Modele te budowane są w kontekście realizacji przedstawieniem zachowania warunkowego i pętli. Rozwią-
poszczególnych przypadków użycia. Modele dynamiki systemu zaniem okazało się wprowadzenie ramek interakcji, które słu-
przedstawiają wszelkie możliwe ścieżki realizacji każdego wy- żą do wyróżnienia fragmentu diagramu sekwencji. Każda taka
magania funkcjonalnego (przypadku użycia). Analiza diagramów ramka ma operator (stereotyp interakcji), a każdej wydzielonej
modelujących dynamikę uwzględniająca wymagania niefunkcjo- części ramki może towarzyszyć warunek, co pozwala na wizu-
nalne, prowadzi do zbudowania statycznego modelu oprogramo- alizowanie różnych wariantów złożonego scenariusza. Najczę-
wania. Tak więc pierwszym krokiem na etapie projektowaniu sys- ściej stosowane stereotypy interakcji:
temu informatycznego jest sprecyzowanie pożądanego sposo-
bu działania systemu, co pozwoli dalej na wyodrębnienie elemen- " alt (alternatywa)  zostaje wykonany tylko ta część ram-
tów strukturalnych. W artykule przedstawione zostaną diagramy ki, której warunek jest prawdziwy;
UML wykorzystywane do opisu dynamiki oprogramowania. " opt (opcja)  fragment zostaje wykonany tylko wówczas,
gdy zawarty w nim warunek jest prawdziwy, czyli odpo-
Diagramy sekwencji wiednik operatora alt z jednym wejściem;
Diagram sekwencji (przebiegu) jest jednym z diagramów inte- " par (współbieżność)  każda część ramki interakcji uru-
rakcji. Diagramy interakcji odnoszą się do modelowania dyna- chamiana jest równolegle;
micznych aspektów systemu i służą do opisu współpracy po- " loop (pętla)  ramka interakcji może być wykonana kilka
między grupami obiektów. Na diagramach sekwencji uwzględ- razy, a warunek określa podstawę interakcji;
nia się konkretne i prototypowe egzemplarze klas, interfej- " region (obszar krytyczny)  ramka interakcji może mieć
sów, komponentów i węzłów, a także komunikaty przekazy- tylko jeden wątek uruchomiony w danej chwili;
wane między nimi. Elementy te są rozpatrywane w kontekście " neg (negacja)  ramka przedstawia niepoprawną interakcję;
pewnego scenariusza ilustrującego zachowanie systemu. Dia- " ref (referencja)  ramka odwołuje się do interakcji zdefi-
gram sekwencji główny nacisk kładzie na uwypuklenie kolej- niowanej na innym diagramie. Ramka jest rysowana tak,
ność przesyłania komunikatów w czasie. Diagramy sekwencji aby przykrywać linie czasu obiektów biorących udział w
stosuje się, aby spojrzeć na zachowanie się kilku obiektów w interakcji. Można zdefiniować para metry wejściowe i war-
ramach jednego przypadku użycia systemu. Są użyteczne do tość zwracaną;
przedstawiania współpracy obiektów, ale nie umożliwiają ści- " sd (diagram sekwencji)  używany do otaczania ramką ca-
słej definicji zachowania. Reasumując, diagramy sekwencji: łego diagramu sekwencji, w miarę potrzeb.
" przedstawiają interakcje pomiędzy obiektami (w UML 2.0 Diagramy komunikacji
tzw. uczestnikami interakcji), przy czym największy na- Diagram komunikacji, tak jak diagram sekwencji, jest jednym z
cisk kładą na zależności czasowe; diagramów interakcji. Uwzględnia się na nich konkretne i proto-
" stosowane są, gdy kolejność wywołań oraz ograniczenia typowe egzemplarze klas, interfejsów, komponentów i węzłów,
czasowe są istotne; a także komunikaty przekazywane między nimi, w kontekście
" nadają się do modelowania: systemów czasu rzeczywiste- pewnego scenariusza ilustrującego zachowanie systemu.
go, przetwarzania współbieżnego i złożonych scenariuszy; Diagram komunikacji kładzie nacisk na związki struktural-
" nie prezentują związków strukturalnych miedzy współ- ne między obiektami (w UML 2.0 tzw. uczestnikami) biorącymi
działającymi obiektami; udział w interakcji oraz komunikaty przesyłane między nimi.
" pozwalają na zaprezentowanie synchronicznych i asyn- Jest wygodniejszy od diagramów sekwencji do przedstawienia
chronicznych interakcji. 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ę-
Autor jest absolwentem Wydziału Cybernetyki WAT, gdzie od 2 lat
dzy obiektami. Diagramy komunikacji uwzględniają jednak dwa
zajmuje stanowisko asystenta w Instytucie Systemów Informa-
aspekty: statyczną strukturę uczestniczących obiektów, włą-
tycznych. Pracuje w firmie ISOLUTION będąc odpowiedzialnym
czając związki, atrybuty i operacje (jest to nazywane  kontek-
za przygotowywanie, prowadzenie i audyt szkoleń obejmujących
stem współpracy ) oraz kolejność komunikatów wymienianych
analizę i projektowanie systemów informatycznych z użyciem no-
pomiędzy obiektami dla realizacji konkretnego zadania. Dia-
tacji UML.
Kontakt z autorem: rafal.kasprzyk@wat.edu.pl gram komunikacji może być rozrysowany dla pewnych typów
obiektów, dla pewnych operacji lub pewnych przypadków uży-
50
www.sdjournal.org
Software Developer s Journal 11/2007
UML  modelowanie dynamicznych aspektów oprogramowania
Student :TranscriptBuilder student :Student :Seminar
Printer
<>
new
studentPage:
StudentInfoPage
new(student)
getSeminars(void)
loop
getMark(void)
[for each seminar]
calculateMark(void)
print(studentPage)
Print
Rysunek 1. Przykładowy diagram sekwencji
cia. W odróżnieniu od diagramów sekwencji wymiar czasu nie jest bezpo- " określają sposób realizacji określonego działania opisując podstawo-
średnio odwzorowany i nie ma on takiego znaczenia. Natomiast odwzoro- we reguły porządkujące (szeregujące) czynności;
wane są powiązania pomiędzy obiektami (prezentujące pewną część po- " pozwalają na zobrazowanie współdziałania obiektów oraz określenie
wiązań z diagramu klas). Diagram sekwencji i komunikacji są semantycz- obiektów odpowiedzialnych za wykonanie danej aktywności na wyso-
nie równoważne  tzn. przekazują tę samą informację. Istnieje możliwość kim poziomie abstrakcji za pomocą tzw. torów pływackich (ang. swim-
przekształcenia diagramu sekwencji w diagram komunikacji i odwrotnie lines). W celu uszczegółowienia należy stosować diagramy interakcji;
bez utraty informacji. " mogą być stosowane do opisu algorytmów sekwencyjnych, równole-
głych i współbieżnych.
Diagramy aktywności
Diagramy aktywności (czynności) w zasadzie są schematami blokowy- Zmiany wprowadzone w notacji UML 2.0, a dotyczące diagramów aktyw-
mi, które przedstawiają przepływ sterowania z aktywności do aktyw- ności sięgają bardzo daleko. Pierwszą widoczną zmianą jest umożliwie-
ności. Obrazują one sekwencyjne bądz to równoległe/współbieżne kro- nie zastosowania torów zarówno pionowych jak i poziomych. Pozwala to
ki procesu. Stanowią uogólnioną wersję diagramów stanów, a ich podsta- prezentować nie tylko obiekty odpowiedzialne za wykonanie danej aktyw-
wowym zadaniem nie jest analiza stanów obiektu, ale modelowanie prze- ności, ale grupować aktywności w większe zbiory i przypisywać im zbior-
twarzania (przepływu zadań). Stany diagramu aktywności odpowiadają cze nazwy lub miejsca realizacji. Inną nowością jest wprowadzenie możli-
stanom wyróżnianym w trakcie przetwarzania, a nie stanom obiektów. wości zakończenia realizacji scenariusza, w dowolnym miejscu, jeżeli zaj-
Aktywność może być interpretowana jako zadanie do wykonania przez dzie określony warunek. Dopracowano również sposób przesyłania obiek-
człowieka lub komputer, ale również jako odpowiedzialność, operacja czy
metoda klasy. Przejścia pomiędzy stanami (czynnościami) nie są zwią-
1: seminarName:= getName()
zane z nadejściem zdarzenia, ale z zakończeniem przetwarzania specy-
2: getDescription()
1.1: String:= getName()
ficznego dla danej aktywności. Diagramy aktywności możemy wykorzy- 3: getLocation()
1.2: String:= getNumber()
4: getSeatsLeft
stać na bardzo wiele sposobów. Są szczególnie przydatne przy tworzeniu
2.1: String:= getDescription()
5: getStudentList()
SI i to nie tyko w podejściu obiektowym. Tak więc:
UI
:Seminar :Course
:Seminar Details
" umożliwiają zrozumienie procesów biznesowych;
5.1: *getInfo()
" doskonale nadają się do modelowania przepływu zdań i w opisie pro-
enrollment :
cesów z dużą liczbą równoległych czynności;
Enrollment
" wykorzystywane są, jako wygodny sposób analizy przypadków użycia;
5.2: getInfo()
" dają możliwość opisu czynności warunkowych i współbieżnych;
5.3: getFullName
" proces warunkowy jest przedstawiany za pomocą rozgałęzienia
Student : Student
(ang. branch) i scalenia (ang. marge);
" proces współbieżnych jest przedstawiany za pomocą rozwidlenia
(ang. fork) i złączenia (ang. join); Rysunek 2. Przykładowy diagram komunikacji
Software Developer s Journal 11/2007 www.sdjournal.org
51
Inżynieria
oprogramowania
<>
sort by zip:
Schedule
list.each;
Printed
Determine
Printing Mailing
Mailing List
Label
Mailing List
Address
April 1st
time signal
{joinSpec= The schedule is printed
and the date is on or after April 1st}
Attach Labels
Label
to Schedules
Schedules
Package
Ready For
Schedules For
Mail Pick-up
Mailing
Rysunek 3. Przykładowy diagram aktywności
tów pomiędzy czynnościami wprowadzając pojęcie żetonu (ang. token) i zane z przejściami i traktuje się je jako procesy szybkie i nieprzerywalne
wtyku (ang. pin) wykorzystywanych do przekazywania parametrów wej- (atomowe). Ze stanami związane są czynności, które mogą trwać dłużej i
ściowych i wyjściowych pomiędzy czynnościami. Idea ta pochodzi z sie- mogą zostać przerwane przez zdarzenie. Diagramy maszyny stanów po-
ci Petriego. Diagramy aktywności wykorzystywane są do dynamicznego zwalają również na wizualizowanie tzw. stanów złożonych. Stan złożony
modelowania systemów. W szczególności stosowane są do modelowania powstaje w efekcie zagnieżdżania stanów i w związku z tym może być do-
przepływu zadań i opisu algorytmów. Mocną stroną tych diagramów jest komponowany na stany bardziej proste. Dekompozycja jest rodzajem spe-
to, że zachęcają do stosowania procesów współbieżnych tam gdzie to tyl- cjalizacji. Każdy z podstanów musi dziedziczyć przejścia nadstanu. Tylko
ko możliwe. 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-
Diagramy maszyny stanów ry niezależnych zachowań czyli może znajdować się w kilku stanach rów-
Diagramy maszyny stanów, nazywane również diagramami stanów, są nocześnie (tzw. stany współbieżne). Jeśli jednak dla jednego obiektu jest
znaną techniką opisu zachowania się systemu. W technice obiektowej kilka skomplikowanych diagramów stanów współbieżnych, to dobrą prak-
diagramy te wykorzystuje się do zobrazowania możliwych stanów obiek- tyką jest próba rozbicia tego obiektu na kilka prostszych. Reasumując ele-
tu oraz przejść, które powodują zmianę stanu obiektu. Istotną zaletą dia- menty diagramów stanów to:
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-
sd DetermineEligibility
ref
Select Seminar
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.
:Seminar :Course :Student
Formalnie diagram maszyny stanów jest grafem skierowanym, którego
wierzchołki stanowią stany obiektu, a łuki opisują przejścia między stana-
isEligible(student)
getPrerequisites()
mi. Przejście jest odpowiedzią obiektu na jakieś zdarzenie. Akcje są zwią-
[Not Eligible]
term started
classes end
Being
Final
Enrollment
[seminar size > 0]
cd Determine SeatAvailability
Taught
Exams
1: numberEnrolled
student dropped
:Seminar :Enrollment
[Seat Available]
[No Seat]
ref
AddToWaitingList
[seminar size = 0]
ref
EnrollInSeminar
canceled
closed
Rysunek 4. Przykładowy diagram maszyny stanów Rysunek 5. Przykładowy diagram przeglądu interakcji
52
www.sdjournal.org
Software Developer s Journal 11/2007
UML  modelowanie dynamicznych aspektów oprogramowania
{Nov1...Dec31} {Dec16...Dec23}
{Sept1...Dec15}
{Jan1...July31}
{August}
Proposed Scheduled Enrolling Students Being Taught Fianl Exams
{Oct5...Oct10} Holiday {Nov25...Dec1}
Mark Student Work
Deliver Course Material
Need Next Lesson Need Detailes
Next Lesson
Update Next Lesson
Research Course Mateial
Update Course Material
Idle
Week:
1 2 3 4 5 6 7 8 9 10 11 12
Rysunek 6. Przykładowy diagram przebiegów czasowych
" stany  mogą mieć nazwy, a identyfikowane są na trzy sposoby: duje się w lewym górnym rogu diagramy sekwencji bądz komunikacji,
" wartości atrybutów obiektu; które mogą być bezpośrednio zagnieżdżane w diagramach przeglądu in-
" czas, gdy obiekt oczekuje na nadejście jakiegoś zdarzenia; terakcji. Ponieważ diagramy przeglądu interakcji są nowością, to trudno
" event zdarzenie(a:T)/[warunek]/akcja; stwierdzić, jak przydatne okażą się w praktyce.
" czas, w którym obiekt wykonuje jakieś czynności;
" do/czynność1/czynność2/& ; Diagramy przebiegów czasowych
" zdarzenia  bodzce, które mogą uruchomić przejścia pomiędzy stanami Diagram przebiegów czasowych jest nowym diagramem interakcji, w któ-
" wolanie  operacja (a:T), synchroniczne wywołanie żądania, gdzie rym nacisk kładzie się na ograniczenia czasowe  albo dla pojedynczego
obiekt wołający czeka na wynik; obiektu, albo, co bardziej pożyteczne, dla całej grupy obiektów. Na jego po-
" zmiana  when (wyrażenie), ciągłe czekania na spełnienie warunku; jawienie się czekali przede wszystkim projektanci systemów czasu rze-
" sygnał  sygnał (a:T), asynchroniczna komunikacja jednokierunkowa; czywistego i aplikacji, których działanie jest uzależnione od współpracy z
" czas  after(czas), uzależnienie od czasu określanego bezwzględ- urządzeniami wejścia/wyjścia. Diagram przebiegów czasowych obrazuje
nie lub względnie; zachowanie obiektu z naciskiem na dokładne określenie czasu, w którym
" przejścia  wskazują, że obiekt przejdzie z jednego stanu do drugie- obiekt jest poddawany jakimś zmianom lub sam wykonuje jakieś działanie.
go, o ile zajdzie określone zdarzenie i będą spełnione warunki; Diagramy czasowe przydają się do obrazowania ograniczeń czasowych
" zdarzenie(a:T)[warunek]/akcja  przejścia zewnętrzne i we- występujących między zmianami stanów różnych obiektów. Są szczegól-
wnętrzne; nie przyjazne dla inżynierów zajmujących się projektowaniem urządzeń.
" [warunek]/akcja  przejście automatyczne; Możliwe są dwa alternatywne sposoby przedstawienia ograniczeń
" entry/akcja1we/akcja2we/&  wykonanie akcji podczas wejścia do czasowych na diagramach przebiegów czasowych (Rysunek 6). Stany
stanu; można przedstawiać w postaci pól lub linii poziomych. Oba sposoby niosą
" exit/akcja1wy/akcja2wy/&  wykonanie akcji podczas wyjścia ze tą samą informację. Praktyka dowodzi natomiast, że pierwszy styl spraw-
stanu. dza się lepiej, gdy musimy się zajmować dużą liczbą stanów.
Diagramy przeglądu interakcji Podsumowanie
Diagramy przeglądu interakcji są krzyżówką diagramów aktywności i dia- Modelując dynamiczne aspekty rozwiązania budujemy modele, które pre-
gramów sekwencji i/lub komunikacji. Należy je traktować tak, jak diagra- zentują poszczególne ścieżki realizacji wymagań funkcjonalnych. Mode-
my aktywności, w których aktywności są zastąpione przez diagramy se- le budowane są w oparciu o diagramy sekwencji, komunikacji, aktywno-
kwencji. Istnieje możliwość stosowania dwóch rodzajów elementów inte- ści i stanów. W przypadku modelowania systemów specjalizowanych po-
rakcyjnych: prostokąty posiadające nazwę diagramu sekwencji i stano- mocne mogą się okazać nowe diagramy przeglądu interakcji i przebiegów
wiące jego referencję, zaznaczaną słowem kluczowym REF, które znaj- czasowych. n
Software Developer s Journal 11/2007 www.sdjournal.org
53
:Seminar
Instructor :Professor
Teaching Assistant: Student


Wyszukiwarka

Podobne podstrony:
2007 08 UML – modelowanie statycznych aspektów oprogramowania [Inzynieria Oprogramowania]
2007 06 UML – potrzeba standaryzacji notacji [Inzynieria Oprogramowania]
2007 11 Extreme Programming i CMMI [Inzynieria Oprogramowania]
Modelowanie statyczne skomplikowanych konstrukcji inżynierskich
2007 11 Testy Eft Security Testing with Nubuntu
11 Konstruowanie i modelowanie form podstawowych
Hanza KLCW 2007 11 03
Dz U 2007 210 1528 zmiana z dnia 2007 11 05
2007 11 Penguin Olympics Hiking and Hacking on Crete
2007 11 Amavis – system zabezpieczenia poczty [Bezpieczenstwo]
2007 11 Amavis – system zabezpieczenia poczty [Bezpieczenstwo]
Pinnacle Studio Plus 11 linki do pobrania z rapidshare oprogramowanie w polskiej wersji jezykowej

więcej podobnych podstron