Modelowanie i implementacja systemów informatycznych - Helion
ISBN: 978-83-631-0321-7
stron: 286, Format: ebook
Data wydania: 2017-12-06
Księgarnia: Helion
Cena książki: 21,35 zł
Ksiazka poswiecona jest problematyce wytwarzania oprogramowania z wykorzystaniem
podejscia obiektowego i notacji UML. Szczególny nacisk poÅ‚ozono na
przełozenie teoretycznych pojec obiektowosci na praktyczne odpowiedniki implementacyjne.
Na konkretnym, biznesowym przykładzie (wypozyczalnia wideo) opisano
poszczególne fazy wytwarzania oprogramowania: analiza, projekt, implementacja,
testowanie ze szczególnym uwzglednieniem tych dwóch srodkowych. Opis
poparto implementacja biblioteki (dla jezyka Java) uÅ‚atwiajacej stosowanie niektórych
pojec obiektowosci (ekstensja, asocjacje, ograniczenia, dziedziczenie) oraz
prototypem czesciowo realizujacym funkcjonalnosc wspomnianej wypozyczalni wideo
(równiez dla jezyka Java).
Przy pisaniu ksiazki wykorzystano doswiadczenia autora płynace z pracy w Polsko-
Japonskiej Wyzszej Szkole Technik Komputerowych oraz uczestnictwa w róznych
projektach komercyjnych oraz naukowo-badawczych.
Odbiorcami publikacji moga byc wszyscy zainteresowani wspóÅ‚czesnymi obiektowymi
jezykami programowania takimi jak Java, C czy C++. Ksiazka szczególnie
polecana jest dla studentów nauk informatycznych, którzy chca pogÅ‚ebic swoja
wiedze dotyczaca analizy, modelowania oraz implementacji nowoczesnych systemów
komputerowych.
Osoby które kupowały "Modelowanie i implementacja systemów informatycznych", wybierały także:
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
- Scratch. Komiksowa przygoda z programowaniem 36,06 zł, (11,90 zł -67%)
- GameMaker. Kurs video. Kompleksowy przewodnik tworzenia gier platformowych 154,58 zł, (55,65 zł -64%)
- JavaScript. Kurs video. Programowanie funkcyjne i reaktywne 98,98 zł, (39,59 zł -60%)
Spis treści
Modelowanie i implementacja systemów informatycznych eBook -- spis treści
1 Wprowadzenie ............................................................................................ 7
2 Analiza ......................................................................................................... 9
2.1 Wymagania klienta ............................................................................. 10
2.2 Wymagania dla Wypożyczalni wideo .................................................. 11
2.3 Przypadki użycia ................................................................................. 13
2.3.1 Ogólny diagram przypadków użycia dla Wypożyczalni wideo .............. 15
2.3.2 SzczegóÅ‚owy diagram przypadków użycia ............................................. 19
2.4 Diagram klas ....................................................................................... 22
2.4.1 Obiekt ..................................................................................................... 23
2.4.2 Klasa ....................................................................................................... 24
2.4.2.1 Atrybuty .............................................................................................. 25
2.4.2.2 Metody ................................................................................................ 30
2.4.3 Asocjacje ................................................................................................ 31
2.4.3.1 Asocjacja binarna ............................................................................... 34
2.4.3.2 Asocjacja n-arna ................................................................................. 35
2.4.3.3 Asocjacja kwalifikowana .................................................................... 36
2.4.3.4 Asocjacja rekurencyjna (zwrotna) ...................................................... 37
2.4.3.5 Klasa asocjacji .................................................................................... 38
2.4.3.6 Agregacja i kompozycja ..................................................................... 40
2.4.4 Dziedziczenie .......................................................................................... 42
2.4.4.1 Dziedziczenie pojedyncze ................................................................... 42
2.4.4.2 Klasa abstrakcyjna i polimorfizm metod ............................................ 43
2.4.4.3 Dziedziczenie wielokrotne .................................................................. 47
2.4.4.4 Dziedziczenie typu overlapping .......................................................... 48
2.4.4.5 Dziedziczenie wieloaspektowe ........................................................... 49
2.4.4.6 Dziedziczenie dynamiczne .................................................................. 50
2.4.5 Ograniczenia ........................................................................................... 51
2.4.5.1 Ograniczenie {subset} ........................................................................ 51
2.4.5.2 Ograniczenie {ordered} ...................................................................... 52
2.4.5.3 Ograniczenie {bag} oraz {history} ..................................................... 52
2.4.5.4 Ograniczenie {xor} ............................................................................. 53
2.4.6 Diagram klas dla Wypożyczalni Wideo .................................................. 53
2.5 Diagram aktywności ........................................................................... 81
2.6 Diagram stanów .................................................................................. 83
3 Projektowanie ........................................................................................... 85
3.1 Klasy ................................................................................................... 86
3.1.1 Obiekt ..................................................................................................... 86
3.1.2 Klasa ....................................................................................................... 87
3.1.3 Ekstensja klasy ........................................................................................ 88
3.1.3.1 Implementacja ekstensji klasy w ramach tej samej klasy .................... 89
3.1.3.2 Implementacja ekstensji klasy przy użyciu klasy dodatkowej ............ 91
3.1.4 Atrybuty .................................................................................................. 92
3.1.4.1 Atrybuty proste ................................................................................... 92
3.1.4.2 Atrybuty złożone ................................................................................. 93
3.1.4.3 Atrybuty wymagane oraz opcjonalne .................................................. 93
3.1.4.4 Atrybuty pojedyncze ........................................................................... 94
3.1.4.5 Atrybuty powtarzalne .......................................................................... 94
3.1.4.6 Atrybuty obiektu ................................................................................. 94
3.1.4.7 Atrybuty klasowe ................................................................................ 94
3.1.4.8 Atrybuty wyliczalne ............................................................................ 95
3.1.5 Metody .................................................................................................... 96
3.1.5.1 Metoda obiektu ................................................................................... 96
3.1.5.2 Metoda klasowa .................................................................................. 96
3.1.5.3 Przeciążenie metody ........................................................................... 97
3.1.5.4 Przesłonięcie metody .......................................................................... 97
3.1.6 Trwałość ekstensji................................................................................... 97
3.1.6.1 Ręczna implementacja trwałości danych ............................................ 98
3.1.6.2 Implementacja trwałości danych w oparciu o serializację ................ 104
3.1.6.3 Inne sposoby uzyskiwania trwałości danych ..................................... 108
3.1.7 Klasa ObjectPlus ................................................................................... 110
3.2 Asocjacje ........................................................................................... 116
3.2.1 Implementacja asocjacji za pomocÄ… identyfikatorów ........................... 116
3.2.2 Implementacja asocjacji za pomocÄ… natywnych referencji ................... 122
3.2.3 Implementacja różnych rodzajów asocjacji .......................................... 128
3.2.3.1 Asocjacja skierowana ....................................................................... 128
3.2.3.2 Asocjacja rekurencyjna ..................................................................... 128
3.2.3.3 Asocjacja z atrybutem ....................................................................... 130
3.2.3.4 Asocjacja kwalifikowana .................................................................. 131
3.2.3.5 Asocjacja n-arna ............................................................................... 134
3.2.3.6 Implementacja agregacji ................................................................... 135
3.2.3.7 Implementacja kompozycji ............................................................... 135
3.2.4 Klasa ObjectPlusPlus ............................................................................ 142
3.3 Dziedziczenie .................................................................................... 155
3.3.1 Dziedziczenie rozłączne ....................................................................... 155
3.3.2 Polimorficzne wołanie metod ............................................................... 156
3.3.3 Dziedziczenie typu overlapping ........................................................... 160
3.3.3.1 Obejście dziedziczenia overlapping za pomocą grupowania ............ 160
3.3.3.2 Obejście dziedziczenia overlapping za pomocą agregacji lub kompozycji ............... 162
3.3.3.3 Polimorfizm w dziedziczeniu overlapping ........................................ 166
3.3.4 Dziedziczenie kompletne oraz niekompletne ........................................ 167
3.3.5 Dziedziczenie wielokrotne (wielodziedziczenie) .................................. 168
3.3.6 Dziedziczenie wieloaspektowe ............................................................. 173
3.3.7 Dziedziczenie dynamiczne .................................................................... 176
3.3.8 Dziedziczenie, a ekstensja klasy ........................................................... 180
3.3.9 Podsumowanie ...................................................................................... 182
3.4 Ograniczenia i inne konstrukcje ....................................................... 183
3.4.1 Implementacja ograniczeÅ„ dotyczÄ…cych atrybutów ............................... 183
3.4.2 Implementacja ograniczenia {subset} ................................................... 185
3.4.3 Implementacja ograniczenia {ordered} ................................................ 189
3.4.4 Implementacja ograniczenia {bag} oraz {history} ............................... 189
3.4.5 Implementacja ograniczenia {XOR} .................................................... 190
3.4.6 Implementacja innych ograniczeń ......................................................... 192
3.5 Model relacyjny ................................................................................ 193
3.5.1 Mapowanie klas .................................................................................... 194
3.5.2 Mapowanie asocjacji ............................................................................ 197
3.5.2.1 Asocjacje binarne ............................................................................. 197
3.5.2.2 Asocjacje z atrybutem ....................................................................... 199
3.5.2.3 Asocjacje kwalifikowane .................................................................. 200
3.5.2.4 Asocjacje n-arne ............................................................................... 201
3.5.2.5 Agregacja i kompozycja ................................................................... 203
3.5.3 Mapowanie dziedziczenia ..................................................................... 204
3.5.4 Relacyjne bazy danych w obiektowych językach programowania ........ 206
3.5.4.1 Wykorzystanie JDBC ........................................................................ 207
3.5.4.2 Wykorzystanie gotowej biblioteki do pracy z danymi (Hibernate) ... 209
3.6 Użyteczność graficznych interfejsów użytkownika ........................... 222
3.6.1 Co to jest użyteczność? ......................................................................... 222
3.6.2 Kształtowanie użyteczności .................................................................. 223
3.6.3 Testowanie użyteczności....................................................................... 223
3.6.4 Użyteczność niestety kosztuje .............................................................. 225
3.6.5 Zalecenia dotyczące Graficznego Interfejsu Użytkownika ................... 226
3.6.5.1 Wymagania dotyczące funkcjonalności ............................................ 226
3.6.5.2 Wymagania zwiÄ…zane z wykorzystywanÄ… platformÄ… ......................... 227
3.6.5.3 Wymagania dotyczÄ…ce okien............................................................. 227
3.6.5.4 Wymagania dotyczÄ…ce zarzÄ…dzania oknami dialogowymi ................ 228
3.6.5.5 Wymagania dotyczÄ…ce kontrolek ...................................................... 228
3.6.5.6 Wymagania dotyczÄ…ce menu ............................................................. 229
3.6.5.7 Wymagania dotyczÄ…ce podpisów ...................................................... 230
3.6.5.8 Wymagania dotyczÄ…ce pracy z klawiaturÄ… ........................................ 230
3.6.6 Jakość interfejsu graficznego ................................................................ 230
3.7 Projekt dla Wypożyczalni wideo ....................................................... 231
3.7.1 Diagram klas dla wypożyczalni wideo .................................................. 231
3.7.2 Projekt działania systemu ..................................................................... 242
3.7.3 Projekt interfejsu użytkownika ............................................................. 245
4 Implementacja i testowanie ................................................................... 249
4.1 Wprowadzenie ................................................................................... 249
4.1.1 Nazewnictwo i formatowanie kodu źródÅ‚owego ................................... 249
4.1.2 Zintegrowane środowisko programistyczne (IDE) ............................... 252
4.1.3 Wykorzystanie narzędzi CASE ............................................................. 253
4.1.4 Użyteczne biblioteki pomocnicze ......................................................... 254
4.2 ZarzÄ…dzanie danymi .......................................................................... 255
4.3 Logika biznesowa .............................................................................. 260
4.4 Implementacja Graficznego Interfejsu Użytkownika ........................ 263
4.5 Testowanie ........................................................................................ 266
5 Uwagi końcowe ....................................................................................... 269
Bibliografia .................................................................................................... 271
Ważniejsze informacje związane z Wypożyczalnią wideo......................... 273
Indeks ............................................................................................................. 275
Spis ilustracji ................................................................................................. 277
Spis listingów ................................................................................................. 283