Professional Documents
Culture Documents
Zrozumieć UML 2.0. Metody Modelowania Obiektowego
Zrozumieć UML 2.0. Metody Modelowania Obiektowego
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Rozdzia 1. Wstp .............................................................................................. 5
1.1. Czym jest ta ksika? ................................................................................................ 5
1.2. Dla kogo jest ta ksika? ........................................................................................... 6
1.3. Dlaczego modelowanie? ............................................................................................ 7
1.4. Dlaczego jzyk UML? ............................................................................................... 8
1.5. Co dalej w ksice? ................................................................................................... 9
1.6. Oznaczenia typograficzne ........................................................................................ 12
1.7. Podzikowania ........................................................................................................ 13
Rozdzia 3.
Podstawy modelowania
obiektowego
3.1. Jak modelowa wiat obiektowo?
Z poprzedniego rozdziau wiemy, e system oprogramowania powinien by jak najwierniejszym modelem otaczajcego wiata. Powstaje zatem pytanie, w jaki sposb
skonstruowa ten model, aby spenia to podstawowe wymaganie wiernoci? Mamy
bowiem do czynienia z dwoma rnymi punktami widzenia na oprogramowanie. Z jednej
strony stoj zamawiajcy, ktrzy maj pewne wymagania w stosunku do systemu. Z drugiej strony mamy programistw, ktrzy wiedz, jak konstruowa systemy. Zamawiajcy
znaj dziedzin problemu i potrafi o niej opowiada za pomoc specjalistycznego
sownictwa. Nie s to zazwyczaj osoby skonne do czytania, a tym bardziej tworzenia,
technicznych opisw systemu. Zamawiajcy chc opisa system w sposb jak najprostszy
i jak najbardziej zrozumiay w kontekcie swoich codziennych obowizkw. Wynika
to oczywicie z tego, e system powinien im pomaga w pracy, ktr wykonuj. Z drugiej
strony programici tworz system z bardzo precyzyjnych konstrukcji odpowiedniego
jzyka programowania. S oni najczciej dokadnie zorientowani w szczegach platformy sprztowej lub programowej, czy te w niuansach okrelonej biblioteki kodu.
Nie s natomiast zazwyczaj ekspertami w dziedzinie, dla ktrej tworz system. Ich
sownictwo jest zasadniczo rne od sownictwa zamawiajcych. Wymagaj zatem
bardzo dokadnego opisu sposobu konstrukcji systemu.
eby byo jeszcze trudniej, zarwno zamawiajcy, jak i programici musz panowa
nad systemem, ktry zwykle skada si z tysicy rnych wymaga, dziesitkw moduw czy setek tysicy wierszy kodu. Podkrelalimy to ju w poprzednim rozdziale.
Jak zatem pogodzi sprzeczne spojrzenia zamawiajcych i programistw? Jak zapanowa nad zoonoci problemu? Czy istnieje jaka moliwo porozumienia? Czytelnik
zapewne ju si domyla, e sposobem na wzajemne zrozumienie, ktry bdziemy chcieli
zaproponowa w tej ksice, jest modelowanie za pomoc technik obiektowych.
26
zamawiajcy
programista
Na bazie obiektw powstaj obiektowe modele (ang. model), czyli tak jak ju
mwilimy w poprzednim rozdziale kopie rzeczywistych systemw. Modelowanie
obiektowe (ang. object modeling) polega zatem na:
znajdowaniu obiektw w otoczeniu,
opisywaniu struktury i dynamiki dziaania obiektw,
klasyfikacji obiektw,
opisywaniu struktury powiza klas obiektw oraz
opisywaniu dynamiki wsppracy obiektw podczas funkcjonowania systemu.
27
3.2. Obiekty
Jak ju powiedzielimy, obiekty wystpuj w rodowisku, ale rwnie mog by elementami systemu oprogramowania. Obiekty mog zatem by przedmiotami (urzdzeniami technicznymi, budynkami, tworami przyrody), osobami, ale rwnie rnego
rodzaju jednostkami organizacyjnymi, zdarzeniami lub dokumentami. W systemie
oprogramowania, oprcz obiektw odpowiadajcych elementom rodowiska, mog
wystpowa np. ekrany, interfejsy, bazy danych, zarzdcy aplikacji czy komunikacji.
Zwrmy uwag, e obiekty zwizane z opisem systemu s zalene od wykorzystywanej
technologii, a nie od modelowanego rodowiska. Takie obiekty techniczne pojawiaj
si w momencie, kiedy zaczynamy projektowa system wraz z jego architektur.
Zastanwmy si teraz nad tym, w jaki sposb naley opisywa obiekty. Obiekt
(ang. object) w rozumieniu modelowania obiektowego moe by opisany za pomoc
trzech elementw: tosamoci, stanu i zachowania. Kady obiekt ma zatem indywidualn
tosamo odrniajc go od innych obiektw. Obiekty zawieraj rwnie elementarne
skadniki o zmieniajcych si wartociach, ktre okrelaj ich stan. Potrafi te zachowywa si w odpowiedni sposb w rnych sytuacjach w odpowiedzi na komunikaty
wykonuj okrelone usugi na rzecz innych obiektw.
UML2.0
Rysunek 3.2.
UML: Podstawowa
notacja obiektu
mj_samochd
samochd_kolegi
Zwrmy uwag, e bierzemy pod uwag nasz samochd, a nie oglnie jakikolwiek samochd.
28
Rysunek 3.3.
Tosamo, stan
i zachowanie
samochodu
y
564
597
zow
y
3
r
b
zon
BC
c
lor=
=A
wy
Ko
zia
=
o
ka
adw
ilni
nr n
ns
s ta
ss
iada
wcz silnik!
j
m
UML2.0
Stan obiektu okrelamy, podajc wartoci jego waciwoci (ang. property), ktre umieszczamy w przegrdce (ang. compartment) poniej nazwy
obiektu (rysunek 3.4). Po nazwie waciwoci umieszczamy znak =, a nastpnie
warto waciwoci. Oczywicie taka notacja jest moliwa dla waciwoci,
ktre przybieraj wartoci typw elementarnych (wartoci liczbowe, napisy itp.).
W przypadku gdy waciwo obiektu jest obiektem zoonym, wewntrz przegrdki waciwoci umieszczamy zazwyczaj jedynie nazw obiektu skadowego.
Stan waciwoci skadowej moemy pokaza, umieszczajc obok obiekt odpowiadajcy tej waciwoci i okrelajc wartoci waciwoci tego obiektu skadowego. Dodatkowo czymy obiekt gwny i obiekt skadowy cznikiem
(ang. link) wskazujcym na obiekt podrzdny. Na rysunku 3.4 obiektem gwnym jest mj_samochd. Jak widzimy, jedn z waciwoci tego obiektu jest
silnik. Aktualny stan silnika okrela obiekt o tej samej nazwie jak odpowiednia
waciwo mojego_samochodu.
mj_samochd
numer nadwozia="ABC-3597564"
silnik
kolor=brz
kierunek_skrtu=30
numer="HH22123"
silnik
pojemno=1200
status=wyczony
29
Tosamo (ang. identity) obiektu wyrnia obiekt wrd innych obiektw jako
osobn jednostk. Mona j okreli jako wyrnion cech obiektu, ktra pozostaje
niezmienna przez cay czas ycia tego obiektu. Co wicej, warto tej cechy powinna
by unikalna wrd wszystkich obiektw, ktre otaczaj nasz obiekt. W najprostszym
przypadku cech obiektu, ktra stanowi o jego tosamoci, jest umiejscowienie obiektu
(np. w pamici systemu). Moe si jednak okaza, e obiekt zmienia swoje pooenie
albo znajduje si w zbiorze nieuporzdkowanych obiektw o swobodnym dostpie
(np. w bazie danych). Wtedy tosamo obiektu powinnimy okreli poprzez dodanie
wyrnionej waciwoci (np. nadajc jej wyrnik identity). Naley tu podkreli,
e taka dodatkowa waciwo nie moe stanowi elementu stanu obiektu. Jako
taka powinna zatem przybiera wartoci cakowicie abstrakcyjne niezalene od
dziedziny problemu (ang. problem domain), czyli od otaczajcej rzeczywistoci.
Jeeli tosamo nie byaby cech abstrakcyjn obiektu, to mogaby ulec zmianie
w trakcie ycia obiektu w miar zmian dziedziny problemu. Warto te podkreli,
e oczywicie moliwe jest rozrnienie tosamoci obiektw za pomoc ich stanu
(np. stwierdzajc, jaki kolor ma samochd). Moe si jednak zdarzy, e w systemie
wystpi dwa rne obiekty o identycznym stanie. Wtedy jedyn moliwoci rozrnienia obiektw bdzie ich abstrakcyjna tosamo.
UML2.0
samochd_kolegi
<<identity>> num=sX000001
<<identity>> num=sX000002
numer_nadwozia="ABC-3597564"
numer_nadwozia="ABC-3597564"
kolor=brz
kolor=brz
kierunek_skrtu=30
kierunek_skrtu=30
30
UML2.0
Na rysunku 3.6 widzimy opis fragmentu zachowania si obiektu mj samochd. Jest to diagram sekwencji (ang. sequence diagram) pokazujcy
wymian komunikatw podczas jednego z wykona usugi uruchom si.
Komunikaty wymieniane s midzy kolumnami nazywanymi liniami ycia
(ang. lifeline). Kada kolumna odpowiada jednemu obiektowi. Kolejno wymienianych komunikatw jest liczona od gry do dou diagramu. Komunikat
wywoujcy usug jest zaznaczony poziom strzak o penym grocie, skierowan od obiektu klienta do obiektu wykonawcy. Na rysunku rozpoczcie
dziaania usugi uruchom si nastpuje poprzez skierowanie komunikatu
uruchom si do obiektu mj samochd. Zauwamy, e komunikat ten ma
parametr kod klucza. Nazwa parametru umieszczona jest w nawiasach
po nazwie komunikatu. Gdyby parametrw byo wicej, moglibymy je umieci rozdzielone przecinkami wewntrz nawiasu.
Po uruchomieniu usugi (przesaniu komunikatu) nastpuje wykonanie usugi
(ang. execution occurence). Zaznaczane jest jako wski prostokt umieszczony
na linii ycia. Z diagramu moemy wywnioskowa, e po wywoaniu usugi
samochd sprawdza, czy kod klucza jest odpowiedni. Prawdopodobnie sprawdzany jest rwnie stan paliwa w zbiorniku. W tym konkretnym przypadku
31
stan_paliwa=53%
ja
mj _samochd
silnik
stan_oleju=0%
uruchom_si(kod_klucza)
[kod klucza O.K.]: wcz_si
"zepsuty"
"zepsuty silnik"
zarwno stan paliwa, jak i kod klucza byy prawidowe. W zwizku z tym
samochd przesya do silnika komunikat wcz si. Zwrmy uwag, e
przesanie komunikatu nastpuje pod pewnym warunkiem (ang. condition).
Jest on umieszczony w nawiasach prostoktnych. Moemy si domyla, e
gdyby ten warunek nie by speniony (kod klucza nie byby O.K.), nastpiaby
jaka inna akcja (np. wysanie innego komunikatu).
Po otrzymaniu komunikatu wcz si silnik zapewne prbuje si uruchomi.
Z diagramu wynika, e mu si to nie udao. Wysya zatem komunikat zwrotny,
sygnalizujcy, e silnik jest zepsuty. Komunikat zwrotny zaznaczany jest przerywan lini. Przyczyn zepsucia silnika wyjania notatka (ang. note)
przyczepiona do obiektu brakuje oleju. Notatki umieszczone na rysunku 3.6
zawieraj w sobie opis aktualnych wartoci niektrych waciwoci poszczeglnych obiektw (czyli fragmenty stanw tych obiektw). Po otrzymaniu
komunikatu od silnika samochd wysya komunikat zwrotny sygnalizujcy
zepsucie silnika. Zwrmy uwag, e komunikat zwrotny koczy wykonanie
usugi. Wykonanie usugi zawarte jest zatem midzy komunikatem wywoujcym
usug a komunikatem zwrotnym.
Podsumowujc rozwaania na temat cech obiektw, naley stwierdzi, e bardzo
istotn wasnoci modelowania obiektowego jest to, e obiekty stanowi pewnego
rodzaju czarne skrzynki. Obiekt pokazuje na zewntrz tylko te swoje waciwoci
lub usugi, ktre s potrzebne innym obiektom. Inne szczegy s ukryte. Umoliwia
to realizacj zasady abstrakcji, o ktrej bya mowa w rozdziale 2. Moemy sobie zatem
wyobrazi obiekt jako czarn skrzynk z przyciskami (rysunek 3.7). Nacinicie
przycisku oznacza uruchomienie odpowiedniej usugi obiektu. Wynikiem wykonania
usugi jest rezultat, ktry otrzymuje ten, kto nacisn przycisk. Dla naciskajcego nie
jest natomiast wane, jak usuga jest w rodku wykonywana i kto jeszcze w jej wykonaniu
uczestniczy. Wane jest jednak, aby przyciski byy dobrze opisane, tak aby naciskajcy
wiedzia, co dostanie po naciniciu przycisku.
32
Rysunek 3.7.
Obiekt jako
czarna skrzynka
z przyciskami