UML Inzynieria oprogramowania Wydanie II.pdf

(292 KB) Pobierz
UML. Inżynieria oprogramowania. Wydanie II
oprogramowania.
Wydanie II
Autor: Perdita Stevens
T³umaczenie: Ireneusz Jakóbik
ISBN: 978-83-246-0805-8
Format: B5, stron: 304
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Praktyczny podrêcznik do nauki jêzyka UML
• Jak zaprojektowaæ dobry system?
• Jak poprawnie tworzyæ i odczytywaæ modele?
• Jak w praktyce stosowaæ UML i poprawiæ jakoœæ projektowanych produktów?
W œwiecie informatyki dobry projekt to czêsto wiêcej ni¿ po³owa sukcesu, a wraz ze
wzrostem popularnoœci obiektowych jêzyków programowania UML — ujednolicony jêzyk
modelowania przeznaczony do reprezentacji elementów w analizie obiektowej i programowaniu
obiektowym — sta³ siê podstawowym narzêdziem do tworzenia modeli. Dlatego te¿
trudno wyobraziæ sobie dobrego informatyka, który nie potrafi przygotowaæ poprawnego
projektu w tym jêzyku lub odczytaæ modelu utworzonego przez kogoœ innego.
„UML. In¿ynieria oprogramowania. Wydanie II” to przystêpny podrêcznik dla studentów
i informatyków pragn¹cych nie tylko poznaæ ujednolicony jêzyk modelowania, ale przede
wszystkim nauczyæ siê korzystaæ z niego w kontekœcie in¿ynierii oprogramowania.
Czytaj¹c go, dowiesz siê, jak powinien wygl¹daæ dobry system, poznasz sk³adniê
i funkcje jêzyka UML, a przedstawione studia przypadku pozwol¹ Ci zobaczyæ, jak
u¿ywaæ go do projektowania praktycznych rozwi¹zañ.
• Projektowanie systemów bazuj¹cych na komponentach
• Wprowadzenie do obiektowoœci
• Efektywny proces projektowania
• Opracowywanie modeli klas
• Przygotowywanie modeli przypadków u¿ycia
• Tworzenie diagramów interakcji, stanów i aktywnoœci
• Przygotowywanie diagramów struktury i wdro¿eñ
• Stosowanie komponentów i wzorców
• Dbanie o jakoœæ procesu i produktu
• Praktyczne przyk³ady projektowania systemów
Jeœli chcesz tworzyæ oprogramowanie najwy¿szej jakoœci, zacznij od dobrego projektu
UML. In¿ynieria
400260267.008.png 400260267.009.png 400260267.010.png 400260267.011.png 400260267.001.png 400260267.002.png 400260267.003.png 400260267.004.png 400260267.005.png 400260267.006.png
 
X
Wstęp ...................................................................................................... 13
Część I Tło koncepcyjne .................................................................. 19
Rozdział I Inżynieria oprogramowania z użyciem komponentów ......................... 21
1.1. Co to jest dobry system? ......................................................................................... 21
1.2. Czy istnieją dobre systemy? ..................................................................................... 22
1.2.1. Problemy… ............................................................................................... 22
1.2.2. …a nawet katastrofalne niepowodzenia .................................................... 24
1.2.3. Obietnice, obietnice .................................................................................. 25
1.3. Jakie są dobre systemy? ............................................................................................ 26
1.3.1. Hermetyzacja: słabe powiązania ................................................................ 27
1.3.2. Abstrakcja: wysoki stopień spójności ......................................................... 30
1.3.3. Architektura i komponenty ........................................................................ 31
1.3.4. Projektowanie oparte na komponentach: modularność ............................ 33
1.4. Jak są zbudowane dobre systemy? ........................................................................... 33
Rozdział 2 Koncepcje obiektów ............................................................................... 35
2.1. Czym jest obiekt? ..................................................................................................... 35
2.1.1. Przykład ..................................................................................................... 37
2.1.2. Komunikaty ................................................................................................ 37
2.1.3. Interfejsy .................................................................................................... 38
2.1.4. Klasy .......................................................................................................... 39
2.2. Jaki to ma związek z celami poprzedniego rozdziału? .............................................. 42
2.2.1. Co wspólnego z komponentami mają obiekty? ......................................... 43
2.3. Dziedziczenie ........................................................................................................... 44
2.4. Polimorfizm i wiązanie dynamiczne ......................................................................... 46
Rozdział 3 Wstępne studium przypadku ................................................................. 49
3.1. Problem ...................................................................................................................49
3.1.1. Sprecyzowanie wymagań ........................................................................... 49
3.1.2. Model przypadków użycia ......................................................................... 51
3.2. Zakres oraz iteracje ................................................................................................. 53
3.3. Identyfikowanie klas ................................................................................................. 55
3.4. Relacje między klasami ............................................................................................. 57
3.5. System w akcji ......................................................................................................... 60
3.5.1. Zmiany w systemie: diagramy stanów ....................................................... 64
3.5.2. Dalsze prace .............................................................................................. 64
400260267.007.png
4 UML. Inżynieria oprogramowania
Rozdział 4 Proces projektowania ............................................................................. 67
4.1. Definicje terminów .................................................................................................. 67
4.1.1. Modele i języki modelowania .................................................................... 68
4.1.2. Proces i jakość ........................................................................................... 70
4.2. Proces projektowania .............................................................................................. 70
4.2.1. Zunifikowana metodologia? ....................................................................... 72
4.2.2. Procesy stosowane w UML ....................................................................... 73
4.3. System, projekt, model, diagram ............................................................................. 75
4.3.1. Wykorzystanie modeli ............................................................................... 76
Część II UML ..................................................................................... 79
Rozdział 5 Podstawy modeli klas ............................................................................. 81
5.1. Identyfikowanie obiektów i klas ............................................................................... 81
5.1.1. Co sprawia, że model klasy jest dobry? ..................................................... 81
5.1.2. Jak zbudować dobry model klasy ............................................................... 82
5.1.3. Jakim rodzajem rzeczy są klasy? ................................................................. 85
5.1.4. Obiekty ze świata rzeczywistego a ich reprezentacje w systemie ............ 85
5.2. Powiązania ............................................................................................................... 86
5.2.1. Wielokrotności .......................................................................................... 88
5.3. Atrybuty i operacje .................................................................................................. 89
5.3.1. Operacje .................................................................................................... 89
5.3.2. Atrybuty ..................................................................................................... 89
5.4. Generalizacja ............................................................................................................ 90
5.4.1. Korzystanie z języka polskiego w celu sprawdzenia, czy zachodzi
generalizacja ...................................................................................................... 93
5.4.2. Implementacja generalizacji: dziedziczenie ................................................ 93
5.5. Model klasy podczas opracowywania ...................................................................... 94
5.6. Karty CRC ............................................................................................................... 95
5.6.1. Tworzenie kart CRC ................................................................................. 95
5.6.2. Używanie kart CRC podczas opracowywania projektu ............................ 96
5.6.3. Przykład karty CRC ................................................................................... 97
5.6.4. Refaktoring ................................................................................................ 98
Rozdział 6 Więcej na temat modeli klas ................................................................ 101
6.1. Więcej na temat powiązań ..................................................................................... 101
6.1.1. Agregacja i kompozycja ........................................................................... 101
6.1.2. Role ......................................................................................................... 103
6.1.3. Możliwości nawigacji ............................................................................... 104
6.1.4. Powiązania kwalifikowane ....................................................................... 105
6.1.5. Powiązania pochodne .............................................................................. 107
6.1.6. Ograniczenia ............................................................................................ 108
6.1.7. Klasy powiązań ........................................................................................ 110
6.2. Więcej na temat klas .............................................................................................. 112
6.2.1. Interfejsy .................................................................................................. 113
6.2.2. Klasy abstrakcyjne .................................................................................... 115
6.3. Klasy sparametryzowane ....................................................................................... 117
6.4. Zależność ............................................................................................................... 118
6.5. Komponenty i pakiety ............................................................................................ 119
6.6. Widoczność i ochrona ........................................................................................... 119
Spis treści 5
Rozdział 7 Najważniejsze informacje na temat modeli przypadków użycia ........ 121
7.1. Szczegóły dotyczące aktorów ................................................................................ 123
7.2. Przypadki użycia w szczegółach ............................................................................. 125
7.3. Granice systemu .................................................................................................... 126
7.4. Używanie przypadków użycia ............................................................................... 127
7.4.1. Przypadki użycia podczas gromadzenia wymagań ................................... 127
7.4.2. Przypadki użycia podczas projektowania ................................................ 128
7.5. Możliwe problemy z przypadkami użycia .............................................................. 130
Rozdział 8 Więcej informacji na temat modeli przypadków użycia ..................... 133
8.1. Relacje między przypadkami użycia ....................................................................... 133
8.1.1. Przypadki użycia do wielokrotnego użycia: <<include>> .................... 134
8.1.2. Komponenty i przypadki użycia ............................................................... 136
8.1.3. Rozdzielanie wariantów zachowania: <<extend>> ............................. 138
8.2. Generalizacje ......................................................................................................... 139
8.3. Aktorzy i klasy ........................................................................................................ 140
8.3.1. Notacja: aktorzy jako klasy ...................................................................... 141
Rozdział 9 Najważniejsze informacje na temat diagramów interakcji .................. 143
9.1. Współprace ............................................................................................................ 144
9.2. Diagramy komunikacji ........................................................................................... 145
9.3. Diagramy sekwencji ............................................................................................... 147
9.4. Więcej zaawansowanych funkcji ............................................................................ 150
9.4.1. Komunikaty z obiektu do samego siebie ................................................. 150
9.4.2. Zwracane wartości .................................................................................. 151
9.4.3. Tworzenie i usuwanie obiektów ............................................................. 152
9.5. Diagramy interakcji służące innym celom .............................................................. 154
9.5.1. Pokazywanie, jak klasa udostępnia operację ............................................ 154
9.5.2. Opisywanie, jak działa wzorzec projektowy ........................................... 154
9.5.3. Opisywanie, jak można użyć komponentu .............................................. 154
Rozdział 10 Więcej informacji na temat diagramów interakcji ............................... 155
10.1. Więcej niż tylko proste sekwencje komunikatów ................................................ 155
10.1.1. Zachowania warunkowe ....................................................................... 155
10.1.2. Iteracja ................................................................................................... 157
10.2. Współbieżność ..................................................................................................... 158
10.2.1. Modelowanie ścieżek kontroli ............................................................... 159
Rozdział 11 Najważniejsze informacje na temat diagramów stanów i aktywności ......165
11.1. Diagramy stanów ................................................................................................. 166
11.1.1. Niespodziewane komunikaty ................................................................ 167
11.1.2. Poziom abstrakcji ................................................................................... 168
11.1.3. Stany, zmiany stanu i zdarzenia .............................................................. 168
11.1.4. Akcje ...................................................................................................... 169
11.1.5. Dozór .................................................................................................... 171
11.2. Diagramy aktywności ........................................................................................... 174
Rozdział 12 Więcej informacji na temat diagramów stanów ................................... 179
12.1. Inne rodzaje zdarzeń ........................................................................................... 179
12.2. Inne rodzaje akcji ................................................................................................. 180
12.3. Zaglądanie do wnętrza stanów ............................................................................ 181
12.4. Współbieżność w obrębie stanów ....................................................................... 183
6 UML. Inżynieria oprogramowania
Rozdział 13 Diagramy architektury i wdrożeń ....................................................... 185
13.1. Diagramy struktury komponentów ..................................................................... 185
13.2. Model wdrożeń ................................................................................................... 187
13.2.1. Warstwa fizyczna ................................................................................... 187
13.2.2. Wdrażanie oprogramowania na sprzęcie ............................................... 187
Rozdział 14 Pakiety i modele ................................................................................... 191
14.1. Pakiety ................................................................................................................. 191
14.1.1. Kontrolowanie przestrzeni nazw ........................................................... 192
14.2. Modele ................................................................................................................. 194
Część III Studia przypadków ........................................................... 197
Rozdział 15 Administrowanie I4 .............................................................................. 199
15.1. Studium przypadku .............................................................................................. 199
15.1.1. Model klas .............................................................................................. 203
15.1.2. Dynamika ............................................................................................... 204
15.1.3. Diagramy stanów ................................................................................... 204
15.1.4. Diagramy aktywności ............................................................................. 204
15.2. Dyskusja ............................................................................................................... 205
Rozdział 16 Gry planszowe ...................................................................................... 207
16.1. Zakres i wstępna analiza ...................................................................................... 208
16.1.1. „Kółko i krzyżyk” ................................................................................... 208
16.1.2. Szachy .................................................................................................... 209
16.2. Interakcja ............................................................................................................. 213
16.3. Z powrotem do szkieletu aplikacji ....................................................................... 215
16.4. Stany .................................................................................................................... 217
Rozdział 17 Symulacja metodą kolejnych zdarzeń ................................................. 219
17.1. Wymagania ........................................................................................................... 219
17.1.1. Bardziej szczegółowy opis ..................................................................... 220
17.2. Zarys modelu klasy .............................................................................................. 222
17.3. Przypadki użycia .................................................................................................. 224
17.3.1. Podsumowanie przypadku użycia tworzenie modelu ............................ 224
17.3.2. Podsumowanie przypadku użycia obserwowanie zachowania .............. 225
17.3.3. Podsumowanie przypadku użycia zbieranie danych statystycznych ...... 225
17.3.4. Podsumowanie przypadku użycia uruchomienie modelu ...................... 225
17.4. Standardowy mechanizm symulacji opartej na procesie ...................................... 226
17.5. Powiązania i możliwości nawigacji ....................................................................... 227
17.6. Klasy w szczegółach ............................................................................................. 230
17.6.1. Klasa Zarzadca ....................................................................................... 230
17.6.2. Klasa JednostkaAktywna ........................................................................ 231
17.6.3. Klasa JednostkaPasywna ........................................................................ 233
17.6.4. Klasa Zasob ............................................................................................ 233
17.7. Klasa Raport ......................................................................................................... 236
17.8. Klasa DaneStatystyczne ....................................................................................... 236
17.8.1. Klasa Srednia .......................................................................................... 236
17.9. Budowanie kompletnego modelu symulacji ......................................................... 237
17.10. Ucztujący filozofowie ......................................................................................... 238
Zgłoś jeśli naruszono regulamin