Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREĎCI
SPIS TREĎCI
UML dla ka¿dego
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOĎCIACH
O NOWOĎCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Autor: Joseph Schmuller
T³umaczenie: Krzysztof Mas³owski
ISBN: 83-7361-107-X
Tytu³ orygina³u: Teach Yourself UML in 24 Hours
Format: B5, stron: 372
UML jest jednym z najbardziej ekscytuj¹cych narzêdzi do tworzenia obiektowo
zorientowanych systemów. Jest to jêzyk modelowania wizualnego, pozwalaj¹cy
budowniczym systemów na tworzenie planów, w których ich wizje zostan¹ uchwycone
i wyra¿one w standardowy, ³atwy do zrozumienia sposób. UML dostarcza te¿ mechanizmy
u³atwiaj¹ce efektywn¹ wymianê informacji i przekazywanie projektów innym.
Podczas 24 sesji zawartych w ksi¹¿ce „UML dla ka¿dego” nauczysz siê tworzenia
diagramów za pomoc¹ zunifikowanego jêzyka modelowania. Proste wyjaġnienia i metoda
prowadzenia za rêkê krok po kroku w ka¿dym rozdziale, pozwalaj¹ na poznanie podstaw
tego jêzyka i zrozumienie jego zastosowañ.
Poznasz:
• Podstawy projektowania obiektowego, zwi¹zki UML-a z projektowaniem
obiektowym
• Powi¹zania, agregacje, agregacje ca³kowite, interfejsy i realizacje
• Przypadki u¿ycia i diagramy przypadków u¿ycia
• Diagramy: stanów, przebiegu, kooperacji, czynnoġci, komponentów, wdro¿enia
• Tworzenie systemów za pomoc¹ UML-a
• Studium przypadku, pokazuj¹ce kolejne etapy tworzenia z³o¿onego systemu
• Przysz³oġæ i rozszerzenia jêzyka UML
Autor Joseph Schmuller, ekspert w tej dziedzinie, t³umaczy UML-a za pomoc¹
odpowiednio dobranych i interesuj¹cych przyk³adów. Dziêki tej ksi¹¿ce w szybkim tempie
opanujesz sztukê operowania jêzykiem UML i przekonasz siê, jak bardzo porz¹dkuje on
proces projektowania oprogramowania.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
O Autorze ......................................................................................... 15
Wstęp .............................................................................................. 17
Część I Zaczynamy ...................................................c................... 19
Rozdział 1. Co to jest UML ................................................................................. 21
Dodanie metody do szaleństwa ...................................................t.............................22
Jak się narodził UML...................................................t...........................................23
Komponenty UML-a...................................................t............................................24
Diagram klas ...................................................t.................................................24
Diagram obiektów...................................................t..........................................25
Diagram przypadków użycia ...................................................t...........................26
Diagram stanów...................................................t.............................................26
Diagram przebiegu...................................................t.........................................27
Diagram czynności...................................................t.........................................27
Diagram kooperacji ...................................................t........................................28
Diagram komponentów ...................................................t..................................29
Diagram wdrożenia ...................................................t........................................29
Kilka innych składników ...................................................t......................................29
Pakiety...................................................t...................................................t.......29
Notatki...................................................t...................................................t.......30
Stereotypy...................................................t...................................................t..30
Po co tyle różnych diagramów?...................................................t.............................31
Podsumowanie ...................................................t...................................................t.31
Warsztaty...................................................t...................................................t.........31
Test...................................................t...................................................t...........32
Ćwiczenia ...................................................t...................................................t..32
Rozdział 2. Co to jest obiektowość ..................................................................... 33
Obiekty, obiekty, wszędzie obiekty...................................................t........................34
Kilka pojęć...................................................t...................................................t.......35
Abstrakcja ...................................................t...................................................t..35
Dziedziczenie ...................................................t................................................36
Polimorfizm ...................................................t..................................................37
Kapsułkowanie (hermetyzacja)...................................................t........................38
Wysyłanie komunikatów...................................................t.................................39
Powiązania ...................................................t...................................................t.39
Agregacja...................................................t...................................................t...41
6
UML dla każdego
Korzyści ...................................................t...................................................t..........43
Podsumowanie ...................................................t...................................................t.43
Warsztaty...................................................t...................................................t.........44
Test...................................................t...................................................t...........44
Rozdział 3. UML i obiektowość ........................................................................... 45
Wizualizacja klas ...................................................t.................................................45
Atrybuty ...................................................t...................................................t..........46
Operacje ...................................................t...................................................t..........47
Atrybuty, operacje i wizualizacja...................................................t...........................48
Zobowiązania i ograniczenia...................................................t.................................50
Dołączone notatki ...................................................t................................................51
Klasy — do czego służą i gdzie ich szukać...................................................t.............51
Podsumowanie ...................................................t...................................................t.53
Warsztaty...................................................t...................................................t.........54
Test...................................................t...................................................t...........54
Ćwiczenia ...................................................t...................................................t..54
Rozdział 4. Związki............................................................................................. 55
Powiązania...................................................t...................................................t.......55
Ograniczenia powiązań...................................................t...................................57
Klasy powiązań...................................................t..............................................57
Wiązania ...................................................t...................................................t....58
Liczebność ...................................................t...................................................t.......58
Powiązania kwalifikowane...................................................t....................................60
Powiązanie zwrotne ...................................................t.............................................60
Dziedziczenie i uogólnienie ...................................................t..................................61
Poznawanie dziedziczenia...................................................t...............................62
Klasy abstrakcyjne ...................................................t.........................................62
Zależności...................................................t...................................................t........63
Podsumowanie ...................................................t...................................................t.64
Warsztaty...................................................t...................................................t.........64
Test...................................................t...................................................t...........65
Ćwiczenia ...................................................t...................................................t..65
Rozdział 5. Agregacje, agregacje całkowite, interfejsy i realizacje ...................... 67
Agregacje...................................................t...................................................t.........67
Ograniczenia agregacji ...................................................t...................................68
Agregacje całkowite...................................................t.............................................69
Otoczenia...................................................t...................................................t.........69
Interfejsy i realizacje ...................................................t............................................71
Widoczność...................................................t...................................................t72
Zasięg ...................................................t...................................................t........73
Podsumowanie ...................................................t...................................................t.73
Warsztaty...................................................t...................................................t.........74
Test...................................................t...................................................t...........74
Ćwiczenia ...................................................t...................................................t..74
Rozdział 6. Informacje wstępne o przypadkach użycia......................................... 75
Przypadki użycia — co to takiego? ...................................................t........................76
Przypadki użycia — dlaczego są ważne?...................................................t................76
Przykład: automat do sprzedaży napojów gazowanych...............................................77
Przypadek użycia „Kup napój”...................................................t........................77
Dodatkowy przypadek użycia ...................................................t.........................78
Spis treści
7
Zawieranie przypadków użycia ...................................................t.............................79
Rozszerzanie przypadków użycia ...................................................t..........................80
Rozpoczęcie analizy przypadków użycia...................................................t................80
Podsumowanie ...................................................t...................................................t.81
Warsztaty...................................................t...................................................t.........81
Test...................................................t...................................................t...........81
Ćwiczenia ...................................................t...................................................t..82
Rozdział 7. Diagramy przypadków użycia ............................................................. 83
Prezentacja modelu przypadków użycia ...................................................t.................84
Wracamy do przypadku automatu do sprzedaży napojów gazowanych...................84
Śledzenie kroków scenariuszy...................................................t.........................84
Związki między przypadkami użycia ...................................................t.....................86
Zawieranie ...................................................t...................................................t.86
Rozszerzenie ...................................................t.................................................86
Uogólnienie...................................................t...................................................t88
Grupowanie...................................................t...................................................t88
Stosowanie przypadków użycia w procesie analizy ...................................................t.89
Stosowanie modeli przypadków użycia — przykład...................................................t89
Poznanie domeny...................................................t...........................................89
Zrozumienie użytkowników ...................................................t............................90
Zrozumienie przypadków użycia ...................................................t.....................90
Drążąc w głąb...................................................t................................................91
Remanent rzeczy poznanych...................................................t.................................93
Elementy strukturalne...................................................t.....................................94
Związki...................................................t...................................................t......94
Grupowanie...................................................t...................................................t94
Przypisy...................................................t...................................................t.....95
Rozszerzenie ...................................................t.................................................95
I inne ...................................................t...................................................t.........95
Obraz ogólny...................................................t...................................................t....95
Podsumowanie ...................................................t...................................................t.96
Warsztaty...................................................t...................................................t.........96
Test...................................................t...................................................t...........96
Ćwiczenia ...................................................t...................................................t..97
Rozdział 8. Diagramy stanów .............................................................................. 99
Diagram stanów...................................................t.................................................100
Zestaw symboli...................................................t............................................100
Podawanie szczegółów w ikonie stanu ...................................................t...........101
Dodawanie szczegółów transmisji — zdarzenia i akcje.......................................101
Dodawanie szczegółów transmisji — warunki dozoru ........................................103
Podstany...................................................t...................................................t........103
Podstany sekwencyjne...................................................t..................................104
Podstany współbieżne ...................................................t..................................104
Stany wznowienia ...................................................t..............................................105
Komunikaty i sygnały ...................................................t........................................106
Znaczenie diagramów stanów ...................................................t.............................107
Obraz ogólny UML-a ...................................................t.........................................108
Podsumowanie ...................................................t..................................................109
Warsztaty...................................................t...................................................t.......109
Test...................................................t...................................................t.........109
Ćwiczenia ...................................................t...................................................t110
8
UML dla każdego
Rozdział 9. Diagramy przebiegu......................................................................... 111
Co to jest diagram przebiegu? ...................................................t.............................111
Obiekty...................................................t...................................................t....112
Komunikaty...................................................t.................................................112
Czas ...................................................t...................................................t........112
GUI...................................................t...................................................t...............113
Kolejność ...................................................t...................................................t.113
Pokazanie kolejności na diagramie przebiegu ...................................................t.114
Przypadek użycia ...................................................t.........................................114
Automat do sprzedaży napojów — diagramy przebiegu: egzemplarzowy i ogólny ......115
Egzemplarzowy diagram przebiegu ...................................................t...............116
Ogólny diagram przebiegu...................................................t............................116
Tworzenie obiektów podczas przebiegu ...................................................t...............119
Rekurencja...................................................t...................................................t.....121
Obraz ogólny UML-a ...................................................t.........................................121
Podsumowanie ...................................................t..................................................121
Warsztaty...................................................t...................................................t.......123
Test...................................................t...................................................t.........123
Ćwiczenia ...................................................t...................................................t123
Rozdział 10. Diagramy kooperacji ....................................................................... 125
Co to jest diagram kooperacji? ...................................................t............................126
GUI...................................................t...................................................t...............126
Zmiany stanu...................................................t...............................................127
Automat do sprzedaży napojów ...................................................t..........................128
Tworzenie obiektów...................................................t...........................................129
Kilka dodatkowych koncepcji ...................................................t.............................131
Obiekty wielokrotne ...................................................t.....................................131
Zwracanie wyniku...................................................t........................................131
Obiekty aktywne...................................................t..........................................132
Synchronizacja ...................................................t............................................132
Obraz ogólny UML-a ...................................................t.........................................133
Podsumowanie ...................................................t..................................................133
Warsztaty...................................................t...................................................t.......134
Test...................................................t...................................................t.........135
Ćwiczenia ...................................................t...................................................t135
Rozdział 11. Diagramy czynności ........................................................................ 137
Co to jest diagram czynności? ...................................................t.............................137
Decyzje...................................................t...................................................t....138
Ścieżki współbieżne (rozwidlone)...................................................t..................139
Sygnały...................................................t...................................................t....140
Stosowanie diagramów czynności ...................................................t.......................140
Operacja: wyrazy ciągu Fibonacciego ...................................................t............140
Proces: tworzenie dokumentu...................................................t........................141
Tory...................................................t...................................................t..............143
Diagramy hybrydowe...................................................t.........................................143
Obraz ogólny UML-a ...................................................t.........................................144
Podsumowanie ...................................................t..................................................145
Warsztaty...................................................t...................................................t.......146
Test...................................................t...................................................t.........147
Ćwiczenia ...................................................t...................................................t147
Spis treści
9
Rozdział 12. Diagramy komponentów.................................................................. 149
Co to jest komponent?...................................................t........................................149
Komponenty i interfejsy ...................................................t.....................................150
Zastępstwo i wielokrotne użycie ...................................................t....................151
Rodzaje komponentów...................................................t.......................................151
Co to jest diagram komponentów?...................................................t.......................152
Reprezentacja komponentu...................................................t...........................152
Sposoby przedstawiania interfejsów...................................................t...............153
Zastosowanie diagramów komponentów ...................................................t..............154
Strona WWW z apletem Java...................................................t........................154
Strona WWW z kontrolkami ActiveX ...................................................t............155
PowerToys...................................................t..................................................156
Diagramy komponentów w ogólnym obrazie UML-a ...............................................157
Podsumowanie ...................................................t..................................................158
Warsztaty...................................................t...................................................t.......159
Test...................................................t...................................................t.........159
Ćwiczenia ...................................................t...................................................t159
Rozdział 13. Diagramy wdrożenia ........................................................................ 161
Czym jest diagram wdrożenia?...................................................t............................161
Stosowanie diagramów wdrożenia...................................................t.......................163
Domowy system komputerowy...................................................t.....................163
Sieć token-ring...................................................t.............................................164
Sieć ARCnet..................................................t.................................................164
Cienki Ethernet...................................................t............................................166
Sieć bezprzewodowa Metricom Ricochet ...................................................t.......167
Diagramy wdrożenia w ogólnym obrazie UML-a...................................................t..168
Podsumowanie ...................................................t..................................................168
Warsztaty...................................................t...................................................t.......169
Test...................................................t...................................................t.........169
Ćwiczenia ...................................................t...................................................t169
Rozdział 14. Podstawowe koncepcje UML-a ........................................................ 171
Struktura UML...................................................t..................................................172
Spojrzenie z bliska na warstwę metamodelu...................................................t.........173
Pakiet Podstawy ...................................................t..........................................174
Pakiet Elementy zachowania ...................................................t.........................175
Pakiet Model zarządzania ...................................................t.............................176
Rozszerzanie UML-a ...................................................t.........................................176
Stereotypy...................................................t...................................................t......177
Zależność ...................................................t...................................................t.177
Klasyfikator...................................................t.................................................178
Klasa ...................................................t...................................................t.......178
Uogólnienie...................................................t.................................................178
Pakiety...................................................t...................................................t.....179
Komponent ...................................................t.................................................179
Kilka dodatkowych stereotypów...................................................t....................179
Stereotypy graficzne...................................................t.....................................179
Ograniczenia ...................................................t...................................................t..180
Metki...................................................t...................................................t.............181
Podsumowanie ...................................................t..................................................181
Warsztaty...................................................t...................................................t.......182
Test...................................................t...................................................t.........182
10
UML dla każdego
Rozdział 15. UML jako narzędzie tworzenia systemów ........................................ 183
Metodologie: stara i nowa...................................................t...................................184
Stara metoda ...................................................t...............................................184
Nowa metoda ...................................................t..............................................185
Co trzeba zrobić podczas tworzenia oprogramowania? .............................................185
GRAPPLE...................................................t...................................................t.....187
RAD3: struktura GRAPPLE...................................................t................................187
Zbieranie wymagań...................................................t......................................188
Analiza ...................................................t...................................................t....191
Projekt...................................................t...................................................t.....192
Budowa kodu ...................................................t..............................................193
Wdrożenie...................................................t...................................................t194
Spojrzenie wstecz na GRAPPLE...................................................t.........................195
Podsumowanie ...................................................t..................................................195
Warsztaty...................................................t...................................................t.......196
Test...................................................t...................................................t.........196
Część II Studium przypadku ...................................................c..... 197
Rozdział 16. Studium przypadku — informacje wstępne...................................... 199
GRAPPLE-owanie problemu...................................................t..............................200
Poznanie procesów biznesowych...................................................t.........................200
Obsługa klienta ...................................................t............................................201
Przygotowanie posiłku...................................................t..................................206
Sprzątanie stołu...................................................t............................................208
Czego się nauczyliście? ...................................................t......................................210
Podsumowanie ...................................................t..................................................212
Warsztaty...................................................t...................................................t.......212
Test...................................................t...................................................t.........213
Ćwiczenia ...................................................t...................................................t213
Rozdział 17. Analiza domeny............................................................................... 215
Analiza wywiadu dotyczącego procesów biznesowych.............................................215
Tworzenie wstępnego diagramu klas...................................................t....................217
Grupowanie klas ...................................................t................................................217
Tworzenie powiązań ...................................................t..........................................219
Powiązania z klientem ...................................................t..................................219
Powiązania z kelnerem ...................................................t.................................223
Powiązania z szefem kuchni...................................................t..........................225
Powiązania z sprzątaczem..................................................t..............................225
Powiązania menadżera ...................................................t.................................225
Dygresja...................................................t...................................................t...226
Tworzenie agregacji i agregacji całkowitych ...................................................t........227
Wypełnianie klas ...................................................t...............................................227
Klient..................................................t...................................................t........227
Pracownik...................................................t...................................................t229
Rachunek...................................................t...................................................t.230
Ogólne zagadnienia modelowania ...................................................t.......................231
Słownik modelu...................................................t...........................................231
Organizacja diagramu...................................................t...................................231
Przerobiony materiał ...................................................t..........................................231
Podsumowanie ...................................................t..................................................232
Warsztaty...................................................t...................................................t.......232
Test...................................................t...................................................t.........232
Ćwiczenia ...................................................t...................................................t233
Spis treści
11
Rozdział 18. Poznawanie wymagań systemu ....................................................... 235
Tworzenie wizji ...................................................t.................................................237
Zanim zaczniemy zbierać wymagania systemu ...................................................t.....244
Sesja JAD poświęcona wymaganiom systemu ...................................................t......245
Rezultaty...................................................t...................................................t........248
Co dalej?...................................................t...................................................t........251
Podsumowanie ...................................................t..................................................251
Warsztaty...................................................t...................................................t.......251
Test...................................................t...................................................t.........251
Ćwiczenie ...................................................t...................................................t251
Rozdział 19. Praca nad przypadkami użycia......................................................... 253
Efektywne wykorzystanie przypadków użycia...................................................t......254
Analiza przypadku użycia...................................................t...................................254
Pakiet Kelner...................................................t...................................................t..255
Przyjmij zamówienie ...................................................t....................................256
Przekaż zamówienie do kuchni...................................................t......................256
Zmień zamówienie ...................................................t.......................................257
Śledź stan realizacji zamówienia...................................................t....................258
Informuj szefa o statusie klientów...................................................t..................259
Wystaw rachunek ...................................................t........................................260
Drukuj rachunek ...................................................t..........................................261
Wezwij pomocnika...................................................t.......................................262
Pozostałe przypadki użycia ...................................................t...........................263
Komponenty systemu...................................................t.........................................263
Podsumowanie ...................................................t..................................................264
Warsztaty...................................................t...................................................t.......264
Test...................................................t...................................................t.........264
Ćwiczenia ...................................................t...................................................t264
Rozdział 20. Poznawanie interakcji i zmian stanu ............................................... 265
Robocze części systemu ...................................................t.....................................265
Pakiet Kelner...................................................t...............................................266
Pakiet SzefKuchni...................................................t........................................266
Pakiet Sprzątacz ...................................................t..........................................267
Pakiet Pomocnik Kelnera...................................................t..............................267
Pakiet Pomocnik Szefa Kuchni...................................................t......................267
Pakiet Barman...................................................t.............................................267
Pakiet Szatniarz ...................................................t...........................................268
Interakcje występujące w systemie ...................................................t......................268
Przyjmij zamówienie ...................................................t....................................268
Zmień zamówienie ...................................................t.......................................271
Śledź stan realizacji zamówienia...................................................t....................272
Implikacje ...................................................t...................................................t......273
Podsumowanie ...................................................t..................................................274
Warsztaty...................................................t...................................................t.......274
Test...................................................t...................................................t.........275
Ćwiczenia ...................................................t...................................................t275
Rozdział 21. Ogólne spojrzenie na projektowanie i wdrażanie.............................. 277
Kilka ogólnych zasad projektowania GUI ...................................................t............277
Sesja JAD poświęcona GUI...................................................t................................280
Od przypadków użycia do interfejsów użytkownika.................................................281
Diagramy UML-owe projektowanych GUI ...................................................t..........283
12
UML dla każdego
Planowanie wdrażania systemu ...................................................t...........................284
Sieć ...................................................t...................................................t.........284
Węzły i diagram wdrożenia...................................................t...........................285
Następne kroki…...................................................t...............................................286
…i kilka słów od zleceniodawcy ...................................................t.........................287
Zwiększanie zdolności sprzedaży ...................................................t..................287
Ekspansja restauracyjnego imperium ...................................................t.............288
Podsumowanie ...................................................t..................................................289
Warsztaty...................................................t...................................................t.......290
Test...................................................t...................................................t.........290
Ćwiczenia ...................................................t...................................................t290
Rozdział 22. Wzorce projektowe ......................................................................... 291
Parametryzacja...................................................t..................................................291
Wzorce projektowe...................................................t............................................293
Łańcuch odpowiedzialności ...................................................t................................294
Łańcuch odpowiedzialności: domena restauracji ................................................ 295
Łańcuch odpowiedzialności: Modele zdarzeń przeglądarki sieciowej................... 297
Nasze własne wzorce projektowe ...................................................t........................298
Korzyści ze stosowania wzorców ...................................................t........................300
Podsumowanie ...................................................t..................................................300
Warsztaty...................................................t...................................................t.......301
Test...................................................t...................................................t.........301
Ćwiczenia ...................................................t...................................................t301
Część III Spojrzenie w przyszłość ................................................. 303
Rozdział 23. Modelowanie systemów wbudowanych ........................................... 305
Potrzeba jest matką wynalazków ...................................................t.........................306
Narodziny PoprawiaczaChwytu ...................................................t..........................307
Czym jest system wbudowany?...................................................t...........................309
Pojęcia dotyczące systemów wbudowanych...................................................t.........309
Czas ...................................................t...................................................t........310
Wątki...................................................t...................................................t.......310
Przerwania ...................................................t..................................................310
System operacyjny...................................................t.......................................311
Modelowanie PoprawiaczaChwytu...................................................t......................313
Klasy ...................................................t...................................................t.......314
Przypadki użycia...................................................t..........................................315
Interakcje ...................................................t...................................................t.316
Ogólne zmiany stanu...................................................t....................................317
Wdrożenie...................................................t...................................................t318
Poprawianie muskułów...................................................t.......................................318
Podsumowanie ...................................................t..................................................319
Warsztaty...................................................t...................................................t.......320
Test...................................................t...................................................t.........320
Ćwiczenia ...................................................t...................................................t320
Rozdział 24. Co dalej z UML-em? ........................................................................ 321
Rozszerzenia dla biznesu...................................................t....................................321
Nauki płynące z rozszerzeń biznesowych...................................................t.............323
Interfejsy graficzne użytkownika...................................................t.........................323
Połączenie z przypadkami użycia...................................................t...................323
Modelowanie GUI ...................................................t.......................................324
Spis treści
13
Systemy ekspertowe ...................................................t..........................................325
Komponenty systemu ekspertowego...................................................t..............325
Przykład...................................................t...................................................t...327
Modelowanie bazy wiedzy...................................................t............................328
Aplikacje sieci WWW...................................................t........................................331
To już wszystko ...................................................t................................................333
Podsumowanie ...................................................t..................................................333
Warsztaty...................................................t...................................................t.......334
Test...................................................t...................................................t.........334
Ćwiczenia ...................................................t...................................................t334
Dodatki...................................................c....................................... 335
Dodatek A Rozwiązania testów ........................................................................ 337
Dodatek B Narzędzia modelowania w UML-u ..................................................... 349
Cechy wspólne ...................................................t..................................................349
Rational Rose ...................................................t...................................................t.350
Select Enterprise ...................................................t................................................352
Visual UML...................................................t...................................................t...354
Idealne narzędzie do tworzenia modeli...................................................t.................355
Dodatek C Podsumowanie w rysunkach............................................................ 357
Diagram czynności...................................................t.............................................357
Diagram klas ...................................................t...................................................t..358
Diagram kooperacji...................................................t............................................359
Diagram komponentów ...................................................t......................................360
Diagram wdrożenia ...................................................t............................................360
Diagram przebiegu...................................................t.............................................360
Diagram stanów...................................................t.................................................361
Diagram przypadków użycia...................................................t...............................361
Skorowidz....................................................................................... 363
Rozdział 1.
Co to jest UML
UML (ang. Unified Modeling Language — zunifikowany język modelowania) jest
jednym z najbardziej ekscytujących narzędzi do tworzenia obiektowo zorientowanych
systemów. Dlaczego? Ponieważ UML jest językiem modelowania wizualnego, po-
zwalającym budowniczym systemów na tworzenie planów, na których ich wizje zo-
stają uchwycone i wyrażone w standardowy, łatwy do zrozumienia sposób. Dostarcza
też mechanizmów ułatwiających efektywną wymianę informacji i przekazywanie pro-
jektów innym.
W tym rozdziale dowiemy się:
dlaczego UML jest nieodzowny,
jak powstał UML,
czym są diagramy UML-a,
dlaczego ważne jest stosowanie kilku rodzajów diagramów.
Najważniejsze jest przekazanie wizji innym. Przed pojawieniem się UML-a rozwój
systemów był zawsze mniej lub bardziej udaną próbą trafienia do celu. Analitycy
systemowi starali się ocenić potrzeby klientów, następnie tworzyli analizę wymagań
i warunków zapisaną w notacji jasnej dla nich, ale nie zawsze zrozumiałej dla klien-
tów. Przekazywali tę analizę zespołowi programistów i mieli nadzieję, że produktem
końcowym będzie system, którego klient oczekiwał.
Kilka pojęć:
W tej książce przez system rozumiemy taką kombinację oprogramowania i sprzętu, która
jest rozwiązaniem problemu biznesowego. Budowanie systemu to tworzenie systemu dla
klienta, czyli osoby, która ma problem do rozwiązania. Analityk tworzy dokumentację pro-
blemu klienta i przedstawia ją deweloperom, czyli programistom, którzy tworzą oprogramo-
wanie rozwiązujące problem i wdrażają je do użytku na sprzęcie komputerowym.
Ponieważ budowanie systemu jest dziełem ludzi, na każdym etapie działania istnieje
potencjalne niebezpieczeństwo powstania błędu. Analitycy mogą źle zrozumieć klienta
22
Część I ♦ Zaczynamy
lub stworzyć dokument, którego klient nie będzie w stanie pojąć. Wynik pracy anali-
tyków może nie być jasny dla programistów, którzy z kolei mogą stworzyć program
trudny do obsługi i nierozwiązujący rzeczywistego problemu klienta.
Cóż więc dziwnego, że większość działających od dawna systemów jest źle skonstru-
owana i trudna do użycia?
Dodanie metody do szaleństwa
We wczesnym okresie komputeryzacji nieliczni wówczas programiści polegali na
ręcznej analizie problemów. Jeżeli w ogóle coś analizowali, robili to zwykle na dru-
giej stronie serwetki śniadaniowej. Zwykle pisali programy jednym ciągiem, tworząc
kod w miarę poznawania problemu. Miało to swą romantyczną atmosferę i śmiałość
spojrzenia, ale całkowicie nie pasowało do obecnego, stawiającego wysokie wymaga-
nia, świata biznesu.
Dzisiaj dobrze przemyślany plan to podstawa. Klient musi rozumieć, co robi grupa
tworząca oprogramowanie, i musi umieć wskazać, w którym miejscu realizujący za-
mówienie nie w pełni zrozumieli jego potrzeby (może to być także konieczne, gdy
klient zmienił swoje żądania). Ponadto tworzenie systemu jest wysiłkiem grupowym,
więc każdy członek grupy musi wiedzieć, którą część całości tworzy (i jak wielka jest
ta całość).
W miarę jak świat staje się coraz bardziej skomplikowany, systemy będące częścią tego
świata i korzystające z komputerów również stają się bardziej skomplikowane. W skład
takich systemów wchodzi często wiele elementów sprzętowych, różnych programów,
sieci rozciągnięte na duże odległości, połączenia z bazami danych, w których zostały
zmagazynowane całe góry informacji. Jeżeli chcecie, aby Wasze systemy sprawnie
i skutecznie działały, musicie się pogodzić z tym, że są one skomplikowane.
Kluczem do osiągnięcia sukcesu jest odpowiednie zorganizowanie procesu projekto-
wania, by analitycy, klienci i programiści zaangażowani w tworzenie systemu rozu-
mieli się nawzajem i potrafili się pogodzić. UML zapewnia taką organizację.
Tak jak nie można zbudować skomplikowanej struktury biurowca bez wcześniejszego
nakreślenia szczegółowego rysunku technicznego, tak bez stworzenia szczegółowego
projektu nie można stworzyć systemu, który ma w tym biurowcu funkcjonować. Jego
plan musi być tak czytelny dla klienta jak projekt architektoniczny dla zleceniodawcy
budowy. Musi on być rezultatem szczegółowej analizy potrzeb klienta.
Krótkie terminy wykonania są kolejnym problemem, z którym należy sobie radzić
przy tworzeniu współczesnych systemów. Jeżeli terminy „depczą sobie po piętach”,
solidne projektowanie jest absolutną koniecznością.
Kolejnym aspektem współczesnego życia wymagającym porządnego projektowania
są przejęcia firm. Jeżeli jedna firma przejmuje inną, może dokonać ważnych zmian
we właśnie realizowanym projekcie (zmienić narzędzia implementacyjne, język ko-
Rozdział 1. ♦ Co to jest UML
23
dowania i wiele innych rzeczy). Dobrze skonstruowany plan będzie „odporny na
uszkodzenia” i ułatwi dokonywanie niezbędnych poprawek. Jeżeli jest solidny, zmia-
ny implementacyjne przebiegną gładko.
Potrzeba solidnego projektowania zrodziła potrzebę istnienia notacji, którą analitycy,
twórcy oprogramowania i klienci zaakceptują jako standardową — tak jak została
powszechnie zaakceptowana inżynierska notacja używana przy kreśleniu diagramów
obwodów elektronicznych oraz notacja diagramów Feynmana powszechnie przyjęta
przez fizyków. UML jest taką notacją.
Jak się narodził UML
UML został wymyślony przez Grady’ego Boocha, Jamesa Rumbaugha i Ivara Jacob-
sona. Ci trzej dżentelmeni, nazwani „Three Amigos”1, w latach 80 i 90 XX wieku
pracowali w trzech różnych organizacjach, niezależnie rozwijając własne metodologie
obiektowo zorientowanej analizy i projektowania. Ich osiągnięcia przewyższyły jako-
ścią dzieła licznych współzawodników. W połowie lat 90 zaczęli od siebie nawzajem
pożyczać pomysły, aż wreszcie zdecydowali się połączyć swoje wysiłki.
Rozdział 2 „Co to jest obiektowość” i rozdział 4 „Związki” dotyczą spraw obiekto-
wości. W naszej książce te koncepcje odgrywają podstawową rolę.
W roku 1994 Rumbaugh przeniósł się do Rational Software Corporation, gdzie Booch
już wcześniej pracował. Po roku dołączył do nich Jacobsen.
Reszta, jak mówią, jest historią. Szkicowe wersje UML-a zaczęły krążyć w świecie
informatycznym i spotkały się z odzewem, pod wpływem którego wersja ostateczna
uległa znacznym zmianom. Wiele korporacji uznało, że UML może dobrze służyć ich
strategicznym celom, więc powstało UML-owe konsorcjum.
Wśród jego członków znalazły się takie firmy jak DEC, Hewlett-Packard, Intellicorp,
Microsoft, Oracle, Texas Instruments, Rational i inne. Dzięki temu współdziałaniu w ro-
ku 1997 stworzono wersję 1.0 UML-a i przedstawiono ją do oceny OMG (ang. Object
Management Group)2 — organizacji, która sformułowała żądania stworzenia standar-
dowego języka modelowania.
—
1
2
„Three Amigos” to nazwa parodii westernu z roku 1986, w której trzech patałachów przeżywa na prerii
przeróżne przygody. Nazwa ta rzeczywiście przylgnęła do trójki twórców UML-a, o czym można się
przekonać choćby na stronie internetowej http://c2.com/cgi/wiki?ThreeAmigos — przyp. tłum.
OMG (Object Management Group) to organizacja utworzona w 1989 r. przez 13 liczących się
przedsiębiorstw z branży software’owej. Jej celem jest promowanie teorii oraz praktyki technologii
obiektowych. Obecnie do OMG należy ponad 750 firm-producentów goprogramowania oraz sprzętu
komputerowego. Organizacja zajmuje się opracowywaniem standardów pomagających w tworzeniu
aplikacji obiektowych — przyp. tłum.
24
Część I ♦ Zaczynamy
Konsorcjum rozwinęło się i wyprodukowało wersję 1.1, która — w końcu roku 1997
poddana ocenie OMG — uzyskała aprobatę tej organizacji. OMG przejęła trud roz-
wijania UML-a, czego rezultatem było wypuszczenie dwóch kolejnych wersji w roku
1998. UML stał się de facto standardem w przemyśle informatycznym i wciąż jest
rozwijany.
Komponenty UML-a
UML zawiera wiele elementów graficznych grupowanych w postaci diagramów. Po-
nieważ jest językiem, określa zasady łączenia tych elementów. Zamiast wyliczania
elementów i zasad, lepiej przejdźmy od razu do diagramów, ponieważ właśnie one
będą Wam służyć do analizowania systemów.
To podejście jest zbliżone do uczenia się obcego języka przez praktykę, zamiast
wkuwania teorii. Jeżeli przez pewien czas będziecie używać obcego języka, łatwiej
Wam będzie potem pojąć jego zasady gramatyczne.
Celem diagramów jest pokazanie wielu perspektyw systemu; ten zestaw perspektyw
to model. UML-owy model systemu to coś w rodzaju wykonanego w skali modelu
budynku wraz z jego artystyczną interpretacją. Należy podkreślić, że model opisuje,
co system ma robić, ale nie określa, jak system ten ma zostać zaimplementowany.
W kolejnych podrozdziałach zostaną krótko opisane najpowszechniej używane diagra-
my UML-owe i koncepcje, które reprezentują. Dalej w części pierwszej każdemu z nich
przyjrzymy się dokładniej. Pamiętajcie, że jest możliwe tworzenie diagramów hybry-
dowych i że UML dostarcza sposobów organizowania i rozszerzania diagramów.
Modele:
Model jest pojęciem przydatnym w nauce i inżynierii. W najogólniejszym sensie, tworząc mo-
del, używamy czegoś, co dobrze znamy, do zrozumiałego objaśnienia czegoś, o czym wiemy
niewiele. W niektórych dziedzinach wiedzy modelem może być układ równań, w innych model
to symulacja komputerowa. Istnieje wiele różnych modeli.
Dla nas modelem będzie zestaw diagramów UML-owych, które będziemy mogli sprawdzać,
oceniać i modyfikować w celu poznania i rozwinięcia systemu.
Diagram klas
Pomyślcie o czymś należącym do otaczającego Was świata (przyznaję, że to dość nie-
sprecyzowane żądanie, ale spróbujcie). Większość rzeczy ma swoje atrybuty (właści-
wości) i zachowuje się w szczególny sposób. O tych zachowaniach możemy myśleć
jako o zbiorze operacji.
Rozdział 1. ♦ Co to jest UML
25
Zauważycie także, że rzeczy w sposób naturalny można przypisać do różnych katego-
rii (samochody, meble, pralki…). Te kategorie nazywamy klasami. Klasa to kategoria
lub grupa rzeczy, które mają podobne atrybuty i wspólne zachowania. Oto przykład.
Cokolwiek należącego do klasy pralek ma takie atrybuty jak nazwa firmowa, model,
numer fabryczny i pojemność. Czynności właściwe dla rzeczy z tej klasy to między
innymi działania opisane przez polecenia „włóż ubrania”, „dodaj detergenty”, „włącz”
i „usuń ubrania”.
Na rysunku 1.1 mamy przykład notacji UML-owej. Jest to prostokątna ikona repre-
zentująca klasę. W jej trzech polach oprócz nazwy klasy zostały zapisane jej atrybuty
i działania. W części najwyższej mamy nazwę klasy, w środkowej — atrybuty, a w naj-
niższej — działania. Diagram klas składa się z pewnej liczby takich prostokątów po-
łączonych liniami wskazującymi zależności między klasami.
Rysunek 1.1.
Ikona klasy
Dlaczego w ogóle mamy się zajmować klasami rzeczy, ich atrybutami i działaniami?
W celu osiągnięcia interakcji ze złożonym światem zewnętrznym większość progra-
mów symuluje niektóre jego aspekty. Doświadczenie dziesiątków lat wskazuje, że
łatwiej jest tworzyć oprogramowanie, gdy reprezentuje ono klasy rzeczy ze świata re-
alnego. Diagramy klas dla tworzących oprogramowanie są taką reprezentacją.
Diagramy klas ułatwiają również wykonywanie analizy. Umożliwiają rozmawianie
z klientami ich językiem, za pomocą przyjętych przez nich określeń. Pozwala to na
odkrycie ważnych szczegółów problemu, który należy rozwiązać.
Diagram obiektów
Obiekt to egzemplarz należący do klasy — szczególna rzecz, która ma szczególne atry-
buty i operacje. Na przykład Wasza pralka może mieć nazwę firmową Laundatorium,
nazwę modelu Washmeister, numer fabryczny: GL57774 i pojemność 5 kg.
Na rysunku 1.2 widzimy UML-ową reprezentację obiektu. Zauważ, że ikona jest pro-
stokątna — jak w przypadku klasy, ale nazwa jest podkreślona. Nazwa egzemplarza
jest podana przed dwukropkiem, a nazwa klasy — po dwukropku.
Rysunek 1.2.
UML-owa ikona
obiektu
26
Część I ♦ Zaczynamy
Diagram przypadków użycia
Przypadek użycia to opis zachowania systemu z punktu widzenia użytkownika. Dla
tworzących oprogramowanie jest to bardzo przydatne narzędzie: służy do uchwycenia
metodą prób i błędów założeń systemu z punktu widzenia użytkownika. Jest to istot-
ne, jeżeli system ma służyć zwykłym ludziom, a nie „cyborgom”.
O przypadkach użycia będziemy szczegółowo mówić w dalszej części książki. Teraz
tylko jeden przykład. Pralki używasz, oczywiście, do prania ubrań. Na rysunku 1.3
zostało to pokazane na diagramie UML.
Rysunek 1.3.
Diagram
przypadków użycia
Mała schematyczna figurka, w tym przykładzie odpowiadająca użytkownikowi pralki,
to aktor. Elipsa reprezentuje przypadek użycia. Zauważ, że aktor inicjuje przypadek
użycia. Może to być osoba lub inny system.
Diagram stanów
Obiekt zawsze jest w jakimś stanie. Człowiek może być noworodkiem, niemowlę-
ciem, dzieckiem, nastolatkiem lub dorosłym. Mamy tu do czynienia ze wznoszeniem,
zatrzymaniem lub spadkiem. Pralka może pobierać wodę, prać, płukać, wirować lub
być wyłączona.
UML-owy diagram stanów pokazany na rysunku 1.4 reprezentuje ten fragment rze-
czywistości. Na rysunku zostały pokazane przejścia od jednego stanu do drugiego.
Rysunek 1.4.
Diagram stanów
Symbol na górze reprezentuje stan początkowy, a symbol na dole — stan końcowy.
Rozdział 1. ♦ Co to jest UML
27
Diagram przebiegu
Diagram klas i diagram obiektów przedstawiają informację statyczną. Jednakże w dzia-
łającym systemie obiekty wpływają na siebie wzajemnie i trwa to w określonym cza-
sie. Diagram przebiegu ukazuje dynamikę interakcji w zależności od czasu.
Wracając do przykładu z pralką, zauważmy,
Pobierz darmowy fragment (pdf)