UML_2_0__Almanach.pdf

(1149 KB) Pobierz
(UML 2.0. Almanach)
4. Struktury zoone .........................................................................................................65
Struktury zoone
65
Spis treci
Kolaboracje
73
Przypadki kolaboracji
75
5. Diagramy komponentów ..............................................................................................77
Komponenty
77
Widoki komponentów
78
6. Diagramy wdroenia ....................................................................................................87
Artefakty
87
Wzy
89
Wstp ...............................................................................................................................9
Wdraanie
93
Nietypowe diagramy wdroenia
96
1. Podstawy UML-a ..........................................................................................................15
Zaczynamy
15
7. Diagramy przypadków uycia ......................................................................................99
Przypadki uycia
99
Historia
15
Aktorzy
100
Podstawy UML-a
16
Zaawansowane modelowanie przypadków uycia
103
Specyfikacje UML-a
17
Zasig przypadków uycia
108
Uywanie UML-a
18
Modelowanie
19
8. Diagramy stanów .........................................................................................................111
Maszyny stanowe zachowa
Praktyczne zasady UML-a
23
111
2. Diagramy klas ................................................................................................................25
Klasy
Stany
113
25
Rozszerzanie maszyny stanów
123
Protokoowe maszyny stanów
123
Atrybuty
26
Operacje
33
Pseudostany
125
Metody
38
Przetwarzanie zdarze
126
Nietypowe diagramy stanów
127
Klasy abstrakcyjne
38
Powizania
39
9. Diagramy aktywnoci .................................................................................................129
Aktywnoci i akcje
Interfejsy
44
129
Szablony
46
Znaczniki sterowania
136
Róne wersje diagramów klas
48
Aktywnoci
137
3. Diagramy pakietów ......................................................................................................53
Reprezentacja
Zaawansowane modelowanie aktywnoci
144
53
10. Diagramy interakcji .....................................................................................................155
Co to s interakcje
Widoczno
54
155
Import pakietów i dostp do nich
55
Uczestnicy interakcji
156
czenie pakietów
56
Komunikaty
158
Róne wersje diagramów pakietów
57
Wykonywanie interakcji
163
Stany niezmienne
164
5
6 Spis treci
253121186.014.png
Zdarzenia
166
lady
166
Fragmenty wyodrbnione
167
Wystpienia interakcji
178
Dekompozycja
179
Kontynuacje
182
Przepywy czasowe sekwencji
183
Alternatywne notacje interakcji
184
11. Metki, stereotypy i profile UML .................................................................................193
Modelowanie i UML w kontekcie
194
Stereotypy
196
Metki
198
Ograniczenia
199
Profile UML
199
Narzdzia a profile
201
12. Tworzenie efektywnych diagramów ........................................................................203
Diagramy tapetowe
203
Zbyt duy zakres
208
Jeden diagram jedna abstrakcja
209
Poza UML-em
211
A MDA Model-Driven Architecture .........................................................................215
Co to jest MDA
215
Modele MDA
216
Decyzje projektowe
219
czenie modeli w jedn cao
221
Transformacja modeli
222
Jzyki formalnego opisu MDA
223
B Object Constraint Language .......................................................................................225
Podstawy OCL-a
225
Skadnia OCL-a
226
Zaawansowane modelowanie OCL-a
229
Skorowidz ....................................................................................................................233
Spis treci 7
8 Spis treci
253121186.015.png
ROZDZIA 2.
Diagramy klas
Na rysunku 2.1 przedstawiono prost klas.
Rysunek 2.1. Prosta klasa
Obiekty
Diagramy klas nale do najbardziej podstawowych typów diagramów UML-a. Stosuje si je
do przedstawiania statycznych powiza w programach mówic inaczej: jak wszystko czy
si w jedn cao.
Piszc program, cay czas trzeba podejmowa decyzje: jakie klasy przechowuj odniesienia
do innych klas, która klasa posiada inn klas itd. Diagramy klas pozwalaj na przedsta-
wienie fizycznej struktury systemu.
Obiekt jest egzemplarzem klasy. Na przykad klasa o nazwie Samochód moe mie kilka eg-
zemplarzy: jeden czerwony dwudrzwiowy samochód, jeden niebieski czterodrzwiowy samochód
i jeden zielony samochód typu hatchback. Kady egzemplarz klasy Samochód jest obiektem
i moe mie wasn nazw, aczkolwiek w diagramach obiektów czsto uywa si obiektów
anonimowych, czyli bez nazw. Zazwyczaj po nazwie obiektu stawia si dwukropek, a po
nim nazw typu obiektu (tzn. klasy). Aby pokaza, e dany obiekt jest egzemplarzem klasy,
naley podkreli jego nazw i typ. Na rysunku 2.2 pokazano egzemplarz klasy Samochód
o nazwie Toyota . Warto zwróci uwag, e na tym rysunku puste komórki zostay ukryte.
Klasy
Klasa reprezentuje grup obiektów o wspólnym stanie i zachowaniu. Klas mona traktowa
jako plan obiektu w systemie zorientowanym obiektowo. W UML-u klasa jest rodzajem kla-
syfikatora. Na przykad Volkswagen, Toyota i Ford to marki samochodów, a zatem mona je
zaprezentowa za pomoc klasy o nazwie Samochód . Kady konkretny samochód jest egzem-
plarzem tej klasy, czyli obiektem. Klasa moe reprezentowa konkretne namacalne obiekty, takie
jak na przykad faktura. Moe by abstrakcyjna, np. dokument lub pojazd (w odrónieniu np.
od faktury i motocykla o pojemnoci powyej 1000 cm 3 ). Moe take reprezentowa obiekty nie-
materialne, takie jak np. strategia inwestycji wysokiego ryzyka.
Klasa ma posta prostokta podzielonego na komórki. Komórka to wydzielony obszar prosto-
kta, do którego mona wpisywa pewne informacje. Pierwsza komórka zawiera nazw klasy,
druga atrybuty (patrz Atrybuty), a trzecia operacje (patrz Operacje). W celu zwikszenia
czytelnoci diagramu mona ukry wybrane komórki. Czytajc diagram, nie mona domy-
la si treci brakujcych komórek to, e s ukryte, wcale nie oznacza, e s puste. Do
klas mona wstawia komórki z dodatkowymi informacjami, takimi jak wyjtki lub zdarzenia,
ale dziaania te wykraczaj ju poza typow notacj.
UML proponuje nastpujce zasady dotyczce nazw klas:
powinny by pisane z wielkiej litery,
powinny by wyrodkowane w górnej komórce,
powinny by pisane tustym drukiem,
nazwy klas abstrakcyjnych powinny by pisane kursyw (patrz Klasy abstrakcyjne).
Rysunek 2.2. Egzemplarz klasy Samochód
Atrybuty
Szczegóy klasy (kolor samochodu, liczba boków figury itd.) przedstawiane s jako atrybuty.
Atrybuty mog by prostymi typami podstawowymi (liczby cakowite, liczby zmiennopozycyjne
itd.) lub powizaniami do innych, bardziej skomplikowanych obiektów (patrz Powizania).
Atrybut mona przedstawi przy uyciu jednej z dwóch dostpnych notacji: wewntrznej
(ang. inlined) lub powiza z innymi klasami. Ponadto dostpna jest notacja, za pomoc któ-
rej mona pokazywa liczno, unikalno oraz uporzdkowanie. W tej czci rozdziau opi-
sujemy oba rodzaje notacji, a nastpnie przedstawiamy szczegóy specyfikacji atrybutów.
Atrybuty wpisane
Atrybuty klasy mona wymieni bezporednio w prostokcie. Nazywaj si wtedy atrybutami
wpisanymi (ang. inlined attributes). Pomidzy atrybutami wpisanymi a przedstawianymi za
pomoc powiza nie ma adnych rónic semantycznych ich wybór zaley tylko od tego,
jak duo szczegóów chcemy zaprezentowa (lub, w przypadku typów fundamentalnych
takich jak liczby cakowite, ile szczegóów zdoamy przekaza).
25
26 Rozdzia 2. Diagramy klas
253121186.016.png 253121186.017.png 253121186.001.png 253121186.002.png 253121186.003.png
W celu zaprezentowania atrybutu wewntrz klasy naley umieci go w jej drugiej komórce.
Atrybuty wpisane w UML-u nazywaj si notacj atrybutów. Korzystaj one z nastpujcej
notacji:
widoczno / nazwa : typ liczno = domylna
{acuchy waciwoci i ograniczenia}
acuchy waciwoci
Zbiór waciwoci lub znaczników, które mona doczy do atrybutów. S one zazwy-
czaj zalene od kontekstu i oznaczaj takie cechy jak porzdek lub unikalno. Wystpuj
pomidzy nawiasami klamrowymi {} , a znakiem rozdzielajcym jest przecinek. Patrz
Waciwoci atrybutów.
ograniczenia
Jedno lub wicej ogranicze zdefiniowanych dla atrybutu. Mog uywa jzyka naturalnego
lub jakiej gramatyki formalnej, np. OCL. Patrz Ograniczenia.
widoczno ::= {+|-|#|~}
liczno ::= [górna..dolna]
Na rysunku 2.3 zademonstrowano róne aspekty notacji atrybutów na przykadzie listy kilku
atrybutów.
Atrybuty w postaci powiza
Rysunek 2.3. Przykadowe atrybuty
Elementy skadni s nastpujce:
widoczno
Informuje o widocznoci atrybutu. Do wyboru s nastpujce symbole: + , - , # i ~ , ozna-
czaj one odpowiednio: public , private , protected i package (patrz Widoczno
w rozdziale 3.).
Atrybuty mona równie prezentowa za pomoc notacji powiza. Jej zastosowanie wie
si z powstawaniem wikszych diagramów, ale zapewnia wiksz szczegóowo w przy-
padku zoonych typów atrybutów. Notacja powiza przekazuje równie dokadne infor-
macje na temat tego, jak atrybut zawarty jest wewntrz klasy (wicej informacji na temat
typów powiza znajduje si w podrozdziale Powizania). Modelujc na przykad Samochód ,
mona za pomoc powiza o wiele janiej pokaza, e zawiera on Silnik , ni tylko wpisujc
ten silnik na list atrybutów w prostokcie samochodu. Niemniej jednak prezentowanie na-
zwy samochodu za pomoc powiza jest ju prawdopodobnie lekk przesad, gdy jest ona
tylko acuchem znaków.
W celu reprezentacji atrybutu za pomoc powiza mona uy jednego z powiza asocja-
cyjnych pomidzy klas zawierajc atrybut a reprezentujc go, co pokazano na rysunku 2.4.
Wida, e powizanie pomidzy samochodem a jego silnikiem ma liczno 1 samochód
ma jeden silnik.
/
Oznacza atrybut pochodny. Atrybut pochodny to taki, którego warto mona obliczy na
podstawie innych atrybutów klasy. Patrz Atrybuty pochodne.
nazwa
Rzeczownik lub krótkie wyraenie stanowice nazw atrybutu. Z reguy pierwsza litera
pierwszego czonu jest maa, a pierwsze litery wszystkich nastpnych czonów s wielkie.
typ
Typ atrybutu w postaci innego klasyfikatora. Zazwyczaj klasa, interfejs lub typ wbudo-
wany, np. int .
liczno
Okrela liczb egzemplarzy typu atrybutu, do których odnosi si atrybut. Moe nie zosta
podany (wtedy oznacza 1), moe by liczb cakowit lub zakresem wartoci rozdzielo-
nych symbolem .. podanym w nawiasach kwadratowych. Symbol * suy do oznaczania
braku górnego limitu. Gwiazdka uyta samodzielnie oznacza zero lub wicej. Patrz
Liczno.
Rysunek 2.4. Przedstawienie atrybutu za pomoc notacji powiza
Tak, tak mój redaktor mówi, e niektóre samochody, jak na przykad Toyota
Prius, maj dwa silniki.
domylna
Domylna warto atrybutu.
Notacja powiza posuguje si tak sam skadni jak notacja wewntrzna, aczkolwiek ukad
jest nieco inny. Widoczno atrybutu i jego nazwa umieszczone s w pobliu linii powizania.
Dla licznoci nie naley stosowa nawiasów kwadratowych naley j podawa w pobliu
klasyfikatora atrybutu.
Atrybuty 27
28 Rozdzia 2. Diagramy klas
253121186.004.png 253121186.005.png 253121186.006.png 253121186.007.png 253121186.008.png
Podobnie jak liczno, dla atrybutów mona zdefiniowa ograniczenia (patrz Ograniczenia).
W notacji powiza ograniczenia wpisuje si w pobliu klasyfikatora atrybutu wzdu linii
powizania. Za pomoc notacji powiza w UML-u mona równie wyraa ograniczenia
pomidzy atrybutami, jak pokazano na rysunku 2.5.
Liczno atrybutu
Liczno atrybutu okrela liczb egzemplarzy typu tego atrybutu utworzonych w procesie
instancjonowania klasy. Na przykad nasz klasowy Samochód bdzie najprawdopodobniej
mia cztery koa, a wic liczno atrybutu koa bdzie wynosia 4. Jeeli liczno nie zostaa
okrelona, to domylnie wynosi 1. Liczno moe by pojedyncz liczb cakowit, list liczb
cakowitych oddzielanych przecinkami lub zakresem wartoci. W przypadku zakresu warto-
ci nieskoczono dodatnia jest reprezentowana za pomoc symbolu * . Jeeli dolna granica
nie zostanie podana, symbol * oznacza zero lub wicej. Warto licznoci podawana jest po-
midzy nawiasami kwadratowymi w postaci pojedynczej liczby cakowitej lub za pomoc
dwóch liczb cakowitych rozdzielonych dwiema kropkami ( .. ). Na rysunku 2.7 przedstawiono
róne sposoby reprezentacji licznoci atrybutu.
Rysunek 2.5. Notacja powiza przy uyciu ogranicze
Na rysunku 2.5 standardowe ograniczenie UML-a xor pokazuje, e w danym czasie moe
by ustawiona tylko automatycznaSkrzyniaBiegów albo rcznaSkrzyniaBiegów (alternatywa
wykluczajca exclusive or ). W przypadku zastosowania notacji wewntrznej konieczne
byoby umieszczenie tego ograniczenia na notce.
Rysunek 2.7. Przykady licznoci
Atrybuty pochodne
Notacja pochodna, któr oznacza symbol ukonika ( / ), moe by uywana jako wskazówka
dla implementatora, e dany atrybut nie jest konieczny. Przypumy na przykad, e mode-
lujemy rachunek bankowy za pomoc prostej klasy o nazwie Rachunek . Klasa ta przechowuje
saldo biece jako liczb zmiennopozycyjn o nazwie saldo . Aby ledzi informacj, czy stan
konta nie zosta przekroczony, dodajemy warto logiczn ( boolean ) o nazwie przekroczenie .
O tym, czy stan konta nie zosta przekroczony, informuje dodatnie saldo, a nie dodana przed chwil
warto logiczna. Mona o tym poinformowa programist, pokazujc, e przekroczenie jest
atrybutem pochodnym, którego stan opiera si na saldzie. Na rysunku 2.6 pokazano sposób
prezentacji atrybutów saldo i przekroczenie z ukazaniem powizania za pomoc notki.
Porzdek
Atrybut, którego liczno przekracza 1, moe by sortowany (ang. ordered). W takim przypadku
elementy musz by przechowywane w odpowiedniej kolejnoci. Mona na przykad zdecy-
dowa si na przechowywanie listy nazwisk w kolejnoci alfabetycznej, nadajc jej waci-
wo ordered . Co dokadnie oznacza przechowywanie elementów w odpowiedniej kolejnoci,
zaley od rodzaju atrybutu. Domylnie atrybuty nie s sortowane. Aby oznaczy atrybut jako
sortowany, naley po nim doda waciwo ordered , jak wida na rysunku 2.8.
Rysunek 2.8. Liczno sortowana
Rysunek 2.6. Atrybut pochodny
W specyfikacji UML-a zaznaczono, e atrybuty pochodne s tylko do odczytu ( readOnly ), co
oznacza, e uytkownik nie moe zmienia ich wartoci. Jeeli jednak uytkownik ma po-
zwolenie na modyfikacj ich wartoci, to klasa powinna odpowiednio zaktualizowa ródo
informacji pochodnej.
Unikalno
Poza sortowaniem atrybuty o licznoci powyej 1 mog by równie unikalne (ang. unique).
Jeeli atrybut ma by unikalny, to wszystkie jego elementy równie musz takie by.
Domylnie wszystkie atrybuty o licznoci powyej 1 s unikalne. Oznacza to, e aden z ele-
mentów atrybutu nie moe si powtarza. Na przykad jeeli klasa przechowywaaby list
osób biorcych udzia w gosowaniu i kady gosujcy miaby tylko jeden gos, to kady ele-
ment takiej listy byby unikalny. Aby uczyni atrybut unikalnym, naley umieci po nim
Atrybuty 29
30 Rozdzia 2. Diagramy klas
253121186.009.png 253121186.010.png 253121186.011.png 253121186.012.png 253121186.013.png
Zgłoś jeśli naruszono regulamin