Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00270 006384 12422163 na godz. na dobę w sumie
UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III - książka
UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III - książka
Autor: Liczba stron: 754
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-2874-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> wzorce projektowe
Porównaj ceny (książka, ebook, audiobook).

Poznaj metodologię projektowania i wytwarzania systemów informatycznych!

Projektanci wielokrotnie podejmowali próby opracowania sposobu prezentacji struktury i zasad działania systemów informatycznych. Poszukiwania metody, która zostałaby zaakceptowana przez rynek i uznana za standard, trwały długo i nie były łatwe. Zakończyły się jednak sukcesem, a ich efektem jest język UML. Z drugiej strony 'banda czterech' (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) w 1995 roku opracowała metody rozwiązywania typowych problemów - wzorce projektowe.

Craig Larman łączy znajomość języka UML z wiedzą na temat wzorców projektowych i przedstawia w swojej książce sposoby projektowania systemów informatycznych z wykorzystaniem języka UML 2. W trakcie lektury tego uznanego na całym świecie podręcznika dowiesz się, jak zbierać wymagania, tworzyć przypadki użycia, modelować dziedzinę, tworzyć architektury wielowarstwowe, a co najważniejsze, odkryjesz, jak wykorzystać przy tym wzorce projektowe. Najnowsze wydanie wzbogacone zostało o nowe studia przypadków, omówienie zwinnych metod projektowania oraz liczne dodatki ułatwiające naukę. Podręcznik ten jest niezastąpiony dla wszystkich osób mających styczność z procesem projektowania i wytwarzania systemów informatycznych.

Dołącz do grona najznamienitszych projektantów!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Idź do • Spis treści • Przykładowy rozdział • Skorowidz Katalog książek • Katalog online • Zamów drukowany katalog Twój koszyk • Dodaj do koszyka Cennik i informacje • Zamów informacje o nowościach • Zamów cennik Czytelnia • Fragmenty książek online Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2011 UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III Autor: Craig Larman Tłumaczenie: Justyna Walkowska ISBN: 978-83-246-2874-2 Tytuł oryginału: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) Format: 172×245, stron: 754 Poznaj metodologię projektowania i wytwarzania systemów informatycznych! • Co to jest UML? • Czym jest modelowanie zwinne? • Jak wybrać narzędzia wspomagające proces projektowania? Projektanci wielokrotnie podejmowali próby opracowania sposobu prezentacji struktury i zasad działania systemów informatycznych. Poszukiwania metody, która zostałaby zaakceptowana przez rynek i uznana za standard, trwały długo i nie były łatwe. Zakończyły się jednak sukcesem, a ich efektem jest język UML. Z drugiej strony „banda czterech” (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) w 1995 roku opracowała metody rozwiązywania typowych problemów – wzorce projektowe. Craig Larman łączy znajomość języka UML z wiedzą na temat wzorców projektowych i przedstawia w swojej książce sposoby projektowania systemów informatycznych z wykorzystaniem języka UML 2. W trakcie lektury tego uznanego na całym świecie podręcznika dowiesz się, jak zbierać wymagania, tworzyć przypadki użycia, modelować dziedzinę, tworzyć architektury wielowarstwowe, a co najważniejsze, odkryjesz, jak wykorzystać przy tym wzorce projektowe. Najnowsze wydanie wzbogacone zostało o nowe studia przypadków, omówienie zwinnych metod projektowania oraz liczne dodatki ułatwiające naukę. Podręcznik ten jest niezastąpiony dla wszystkich osób mających styczność z procesem projektowania i wytwarzania systemów informatycznych. • Przypadki użycia, diagram przypadków użycia • Wykorzystanie testów do identyfikacji przypadków użycia • Metody przyrostowe i ewolucyjne • Cykl życia projektu w modelu kaskadowym • Praktyki zwinne, modelowanie zwinne • Modelowanie dziedziny • Wzorce projektowe „bandy czterech” • Analiza i projektowanie obiektowe • Zarządzanie projektem • Diagramy klas • Projektowanie warstw • Diagramy sekwencji i komunikacji • Programowanie sterowane testami • Narzędzia wspomagające UML Dołącz do grona najznamienitszych projektantów! SPIS TRE¥CI Sïowo wstÚpne 19 Przedmowa 21 CzÚĂÊ I Wprowadzenie 1 Analiza i projektowanie obiektowe 29 Czego uczy ta ksiÈĝka? Czy to siÚ przyda? 29 Co jest gïównym celem nauki? 32 Czym sÈ analiza i projektowanie? 33 Czym sÈ analiza i projektowanie obiektowe? 33 Krótki przykïad 34 Co to jest UML? 37 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. Modelowanie graficzne jest dobre 41 1.8. 1.9. Historia 41 Polecane materiaïy 43 2 IteracyjnoĂÊ, ewolucyjnoĂÊ i zwinnoĂÊ 45 Wprowadzenie 45 2.1. 2.2. 2.3. 2.4. 2.5. Czym jest UP? Czy moĝna uzupeïniaÊ go innymi metodami? 46 Czym jest metoda iteracyjna i ewolucyjna? 47 Jak wyglÈda cykl ĝycia projektu w modelu kaskadowym? 51 Na czym polegajÈ przyrostowe i ewolucyjne projektowanie oraz analiza? 53 Czym jest planowanie iteracyjne sterowane ryzykiem i sterowane przez klienta? 56 Jakie metody i zasady skïadajÈ siÚ na podejĂcie zwinne? 57 Czym jest modelowanie zwinne? 58 Czym jest zwinny UP? 60 Czy istniejÈ inne waĝne praktyki UP? 62 Jakie sÈ fazy UP? 62 2.6. 2.7. 2.8. 2.9. 2.10. 2.11. Czym sÈ dyscypliny UP? 63 2.12. 2.13. 2.14. Historia 68 2.15. Polecane materiaïy 69 Jak dostosowaÊ UP do wïasnych potrzeb? Przypadek wytwórczy 65 Symptomy braku zrozumienia UP 67 3 Studia przypadków 71 Wprowadzenie 71 3.1. 3.2. Co zostaïo, a co nie zostaïo uwzglÚdnione w studiach przypadków? 71 Strategia studiów przypadków: iteracyjne wytwarzanie aplikacji i iteracyjna nauka 73 Studium przypadku nr 1: system sprzedaĝy NextGen 73 Studium przypadku nr 2: gra Monopoly 74 3.3. 3.4. CzÚĂÊ II 4 Faza rozpoczÚcia Faza rozpoczÚcia nie jest fazÈ wymagañ 77 Wprowadzenie 77 4.1. 4.2. 4.3. 4.4. 4.5. Czym jest faza rozpoczÚcia? 78 Ile trwa faza rozpoczÚcia? 79 Które artefakty pojawiajÈ siÚ juĝ w fazie rozpoczÚcia? 79 Symptomy ĂwiadczÈce o braku zrozumienia fazy rozpoczÚcia 81 IloĂÊ UML w fazie rozpoczÚcia 82 9 SPIS TRE¥CI 5 6 Definicja: wymagania 84 EwoluujÈce wymagania 83 Wprowadzenie 83 5.1. 5.2. Wymagania kaskadowe a ewolucyjne 84 5.3. W jaki sposób umiejÚtnie wskazywaÊ wymagania? 85 5.4. 5.5. W jaki sposób artefakty UP organizujÈ wymagania? 87 Czy ta ksiÈĝka zawiera przykïady tych artefaktów? 88 5.6. 5.7. Polecane zasoby 89 Jakie sÈ typy i kategorie wymagañ? 86 Przypadki uĝycia 91 Wprowadzenie 91 Przykïad 92 6.1. Definicja: aktorzy, scenariusze, przypadki uĝycia 92 6.2. 6.3. Przypadki uĝycia a Model Przypadków Uĝycia 94 6.4. Motywacja: po co nam przypadki uĝycia? 95 6.5. 6.6. 6.7. 6.8. 6.9. 6.10. Notacja: czy istniejÈ inne formaty zapisu przypadków uĝycia? Definicja: czy przypadki uĝycia to wymagania funkcjonalne? 95 Definicja: jakie sÈ typy aktorów? 96 Notacja: jakie sÈ trzy podstawowe formaty przypadków uĝycia? 97 Przykïad: peïny opis przypadku uĝycia Obsïuĝ sprzedaĝ 97 Co opisujÈ poszczególne sekcje? 103 Wersja dwukolumnowa 110 6.11. Wskazówka: opisuj sedno sprawy i odsuñ siÚ od interfejsu uĝytkownika 111 6.12. Wskazówka: pisz zwiÚzïe przypadki uĝycia 113 6.13. Wskazówka: stosuj technikÚ czarnej skrzynki 113 6.14. Wskazówka: przyjmij perspektywÚ aktora i jego celu 114 6.15. Wskazówka: jak znajdowaÊ przypadki uĝycia? 114 6.16. Wskazówka: jakie testy mogÈ pomóc w identyfikacji przypadków uĝycia? 119 6.17. 6.18. 6.19. Motywacja: inne zyski ze stosowania przypadków uĝycia? Zastosowanie UML: diagramy przypadków uĝycia 121 Zastosowanie UML: diagramy czynnoĂci 124 Kontekst dla wymagañ 124 Przykïad: gra Monopoly 125 Proces: jak stosowaÊ przypadki uĝycia w ramach metod iteracyjnych? 127 6.20. 6.21. 6.22. Historia 132 6.23. Polecane zasoby 132 7 Inne wymagania 135 Wprowadzenie 135 Artefakty zwiÈzane z innymi wymaganiami 136 Czy przykïady sÈ kompletne? 136 7.1. 7.2. Czy te wymagania sÈ w peïni analizowane w fazie rozpoczÚcia? 136 7.3. Wskazówka: czy te artefakty powinny trafiÊ na stronÚ projektu? 137 7.4. 7.5. 7.6. 7.7. 7.8. 7.9. 7.10. 7.11. Komentarz: Reguïy Dziedzinowe 152 7.12. 7.13. Przykïad NextGen: (niepeïna) Specyfikacja Dodatkowa 138 Komentarz: Specyfikacja Dodatkowa 141 Przykïad NextGen: (niepeïna) Wizja 143 Komentarz: Wizja 146 Przykïad NextGen: (niepeïny) Sïowniczek 149 Komentarz: Sïowniczek 150 Przykïad NextGen: Reguïy Biznesowe (Dziedzinowe) 151 Proces: ewoluujÈce wymagania w metodach iteracyjnych 152 Polecane zasoby 155 10 SPIS TRE¥CI CzÚĂÊ III Faza opracowywania. Iteracja-1 — podstawy 8 Iteracja-1 — podstawy 159 Wprowadzenie 159 8.1. Wymagania w iteracji-1: zastosowanie najwaĝniejszych umiejÚtnoĂci z OOA/D 160 Proces: fazy rozpoczÚcia i opracowywania 162 Proces: planowanie nastÚpnej iteracji 165 8.2. 8.3. 9 Modele dziedziny 167 Wprowadzenie 167 9.1. Przykïad 169 9.2. Czym jest model dziedziny? 170 9.3. Motywacja: po co tworzyÊ model dziedziny? 174 9.4. Wskazówka: jak stworzyÊ Model Dziedziny? 175 9.5. 9.6. 9.7. Wskazówka: modelowanie zwinne — szkicowanie diagramu klas 181 9.8. Wskazówka: modelowanie zwinne — czy korzystaÊ z narzÚdzi? 181 9.9. Wskazówka: obiekty raportujÈce Jak znaleěÊ klasy konceptualne? 175 Przykïad: znajdowanie i rysowanie klas konceptualnych 179 — czy umieszczaÊ w modelu klasÚ Receipt? 181 9.10. Wskazówka: myĂl jak kartograf, posïuguj siÚ terminami z dziedziny 182 9.11. Wskazówka: jak modelowaÊ Ăwiat nierzeczywisty? 182 9.12. Wskazówka: atrybuty a klasy 183 9.13. Wskazówka: kiedy modelowaÊ z uĝyciem klas opisowych? 183 9.14. Asocjacje 186 9.15. Asocjacje w modelach dziedziny 193 9.16. Atrybuty 194 9.17. 9.18. 9.19. 9.20. Przykïad: atrybuty w modelu dziedziny 201 Podsumowanie: czy model jest poprawny? 204 Proces: iteracyjne i ewolucyjne modelowanie dziedziny 204 Polecane zasoby 206 Systemowe diagramy sekwencji 207 10 Przykïad: SSD dla NextGen 209 Wprowadzenie 10.1. 10.2. Czym sÈ systemowe diagramy sekwencji? 209 10.3. Motywacja: po co rysowaÊ SSD? 210 10.4. 10.5. 10.6. 10.7. 10.8. 10.9. 10.10. Proces: iteracyjne i przyrostowe SSD 214 10.11. Historia i polecane zasoby 214 Stosowanie UML: diagramy sekwencji 211 Jak majÈ siÚ SSD do przypadków uĝycia? 211 Jak nazywaÊ zdarzenia i operacje systemowe? 212 Jak uwzglÚdniÊ zewnÚtrzne systemy w SSD? 212 Jakie informacje z SSD powinny trafiÊ do Sïowniczka? 213 Przykïad: SSD dla gry Monopoly 213 11 Kontrakty operacji 215 Wprowadzenie 215 Przykïad 217 11.1. 11.2. Z jakich sekcji skïada siÚ kontrakt? 217 11.3. Definicja: czym jest operacja systemowa? 217 11.4. Warunki koñcowe 218 11.5. 11.6. Wskazówka: czy aktualizowaÊ model dziedziny? 222 11.7. Wskazówka: kiedy warto pisaÊ kontrakty operacji? 222 Przykïad: warunki koñcowe operacji enterItem 221 11 SPIS TRE¥CI 11.8. Wskazówka: tworzenie kontraktów 223 11.9. Przykïad: kontrakty NextGen 224 11.10. Przykïad: kontrakty Monopoly 225 11.11. Stosowanie UML: operacje, kontrakty i OCL 226 11.12. Proces: kontrakty operacji w UP 227 11.13. Historia 227 11.14. Polecane zasoby 228 12 13 Od wymagañ do projektowania — iteracyjnie 229 Wprowadzenie 229 12.1. 12.2. 12.3. ZrobiÊ co naleĝy i jak naleĝy — iteracyjnie 230 Prowokowanie zmian na wczesnym etapie 230 Tylko czy analiza i modelowanie nie zajÚïy nam caïych tygodni? 230 Architektura logiczna i diagramy pakietów UML 231 Stosowanie UML: diagramy pakietów 235 Wprowadzenie 231 13.1. Przykïad 232 13.2. Czym jest architektura logiczna? Co to sÈ warstwy? 232 13.3. Na której warstwie koncentrujÈ siÚ studia przypadków? 234 13.4. Czym jest architektura oprogramowania? 235 13.5. 13.6. Wskazówka: projektowanie warstw 236 13.7. Wskazówka: zasada oddzielenia modelu od widoku 242 13.8. 13.9. 13.10. Przykïad: architektura logiczna Monopoly 246 13.11. Polecane zasoby 246 Jaki jest zwiÈzek pomiÚdzy SSD, operacjami systemowymi i warstwami? 244 Przykïad: architektura logiczna i diagram pakietów NextGen 246 14 Zaczynamy projektowaÊ 247 Wprowadzenie 247 14.1. Modelowanie zwinne i szkicowanie UML 248 14.2. NarzÚdzia UML CASE 249 14.3. 14.4. 14.5. UmiejÚtnoĂÊ projektowania obiektowego jest waĝniejsza Ile czasu przeznaczyÊ na UML przed rozpoczÚciem kodowania? 250 Projektowanie obiektów: czym sÈ modelowanie statyczne i dynamiczne? 250 od znajomoĂci notacji UML 252 Inne techniki projektowania obiektowego: karty CRC 252 14.6. 15 Diagramy interakcji UML 255 PoczÈtkujÈcy projektanci za rzadko uĝywajÈ diagramów interakcji! 259 Wprowadzenie 255 15.1. Diagramy sekwencji i komunikacji 256 15.2. 15.3. CzÚsto stosowana notacja diagramów interakcji 259 15.4. 15.5. Podstawowa notacja diagramów sekwencji 261 Podstawowa notacja diagramów komunikacji 273 16 Diagramy klas UML 281 Stosowanie UML: notacja diagramów klas UML 282 Wprowadzenie 281 16.1. 16.2. Definicja: projektowy diagram klas 283 16.3. Definicja: klasyfikator 283 16.4. 16.5. 16.6. Operacje i metody 288 16.7. 16.8. 16.9. WïaĂciwoĂci i listy wïaĂciwoĂci UML 292 Sïowa kluczowe 290 Stereotypy, profile i znaczniki 291 Sposoby prezentacji atrybutów UML: tekst i linie asocjacji 284 Symbol notatki: uwagi, komentarze, ograniczenia i ciaïa metod 287 12 SPIS TRE¥CI 16.10. Generalizacja, klasy abstrakcyjne, operacje abstrakcyjne 292 16.11. ZaleĝnoĂci 293 16.12. Interfejsy 295 16.13. O przewadze kompozycji nad agregacjÈ 296 16.14. Ograniczenia 297 16.15. Asocjacja kwalifikowana 298 16.16. Klasa asocjacyjna 299 16.17. Klasy singletonowe 299 16.18. Szablony klas i interfejsów 300 16.19. Przegródki definiowane przez uĝytkownika 300 16.20. Klasa aktywna 301 16.21. Jaki jest zwiÈzek pomiÚdzy diagramami interakcji i klas? 301 17 GRASP: projektowanie obiektów i przydziaï odpowiedzialnoĂci 303 Wprowadzenie 303 17.1. UML a zasady projektowania 304 17.2. Projektowanie obiektowe: przykïad danych wejĂciowych, czynnoĂci i wyników 304 17.3. OdpowiedzialnoĂÊ i projektowanie sterowane odpowiedzialnoĂciÈ 308 17.4. GRASP: metodyczne podejĂcie do podstaw projektowania obiektowego 309 17.5. Jaki jest zwiÈzek pomiÚdzy zobowiÈzaniami, GRASP i diagramami UML? 310 17.6. Czym sÈ wzorce? 311 17.7. Co juĝ wiemy? 313 17.8. Krótki przykïad projektowania obiektowego z uĝyciem GRASP 314 17.9. 17.10. Twórca (Creator) 325 17.11. Ekspert (Information Expert) 327 17.12. Niskie SprzÚĝenie (Low Coupling) 332 17.13. Kontroler (Controller) 336 17.14. Wysoka SpójnoĂÊ (High Cohesion) 348 17.15. Polecane zasoby 353 Zastosowanie GRASP podczas projektowania obiektowego 324 18 Projektowanie obiektowe z uĝyciem GRASP — przykïady 355 Wprowadzenie 355 18.1. Czym jest realizacja przypadku uĝycia? 356 18.2. Uwagi na temat artefaktów 358 18.3. Co dalej? 361 18.4. Realizacje przypadków uĝycia rozpatrywanych w bieĝÈcej iteracji NextGen 361 Realizacje przypadków uĝycia rozpatrywanych w bieĝÈcej iteracji gry Monopoly 382 Proces: iteracyjne i ewolucyjne projektowanie obiektowe 392 Podsumowanie 394 18.5. 18.6. 18.7. 19 20 WidocznoĂÊ obiektów 395 Wprowadzenie 395 19.1. Wzajemna widocznoĂÊ obiektów 395 19.2. Czym jest widocznoĂÊ? 396 Odwzorowanie wyników projektowania w kodzie 401 Programowanie w ewolucyjnym modelu przyrostowym 402 Wprowadzenie 401 20.1. 20.2. Odwzorowanie wyników projektowania w kodzie 403 20.3. 20.4. 20.5. Kolekcje 406 Tworzenie definicji klas na podstawie DCD 403 Tworzenie metod na podstawie diagramów interakcji 404 13 SPIS TRE¥CI 20.6. WyjÈtki i obsïuga bïÚdów 407 20.7. Definicja metody Sale.makeLineItem 407 20.8. KolejnoĂÊ implementacji 408 20.9. 20.10. Podsumowanie zasad odwzorowywania wyników projektowania Programowanie sterowane testami 408 w kodzie 409 20.11. Kod NextGen 409 20.12. Kod Monopoly 412 21 22 Programowanie sterowane testami i refaktoryzacja 417 Wprowadzenie 417 21.1. 21.2. 21.3. Programowanie sterowane testami 418 Refaktoryzacja 421 Polecane zasoby 425 NarzÚdzia UML i UML jako plan 427 Inĝynieria postÚpowa, wsteczna i wahadïowa 428 Jaka jest opinia programistów na temat narzÚdzi UML CASE? 429 Wprowadzenie 427 22.1. 22.2. 22.3. Na co zwróciÊ uwagÚ przy wyborze narzÚdzia? 429 22.4. JeĂli UML traktowany jest jako szkic, to jak aktualizowaÊ diagramy po zmianach w kodzie? 430 Polecane zasoby 430 22.5. CzÚĂÊ IV Faza opracowywania. Iteracja-2 — wiÚcej wzorców 23 Iteracja-2 — wymagania 433 Wprowadzenie 433 23.1. 23.2. PrzejĂcie z iteracji-1 do iteracji-2 434 Iteracja-2: krótko o wymaganiach, nacisk na projektowanie obiektowe i wzorce 435 Szybka aktualizacja artefaktów analitycznych 439 Wprowadzenie 439 24.1. 24.2. Studium przypadku: NextGen 439 Studium przypadku: Monopoly 441 GRASP: wiÚcej obiektów, wiÚcej zobowiÈzañ 445 Polimorfizm (Polymorphism) 446 Wprowadzenie 445 25.1. 25.2. Czysty Wymysï (Pure Fabrication) 453 25.3. 25.4. Ochrona ZmiennoĂci (Protected Variations) 459 PoĂrednictwo (Indirection) 458 24 25 26 14 Wzorce projektowe GoF 467 Wprowadzenie 467 26.1. GoF: Adapter 468 26.2. Niektóre wzorce GRASP sÈ uogólnieniem innych wzorców 470 26.3. Odkrycia „analityczne” na poziomie projektowania 471 26.4. 26.5. GoF: Singleton 474 26.6. 26.7. GoF: Strategia (Strategy) 479 26.8. GoF: Kompozyt (Composite) i inne zasady projektowe 483 26.9. GoF: Fasada (Facade) 492 26.10. GoF: Obserwator, Wydawca-Prenumerator Fabryka (Factory) 472 Podsumowanie problemu zewnÚtrznych usïug o odmiennych interfejsach 478 lub Delegacja Obsïugi Zdarzeñ 495 26.11. Wnioski 502 26.12. Polecane zasoby 503 SPIS TRE¥CI CzÚĂÊ V Faza opracowywania. Iteracja-3 — Ărednio zaawansowane zagadnienia 27 Iteracja-3 — wymagania 507 Wprowadzenie 507 27.1. NextGen 508 27.2. Monopoly 508 28 Diagramy czynnoĂci (aktywnoĂci) UML i modelowanie czynnoĂci 509 29 Przykïad: diagram czynnoĂci NextGen 515 Proces: diagramy czynnoĂci w UP 516 Wprowadzenie 509 Przykïad 510 28.1. 28.2. Jak stosowaÊ diagramy czynnoĂci? 511 28.3. Diagramy czynnoĂci: wiÚcej notacji 513 28.4. Wskazówki 514 28.5. 28.6. 28.7. Historia 516 Diagramy stanów UML 517 Wprowadzenie 517 29.1. Przykïad 518 29.2. Definicje: zdarzenia, stany, przejĂcia 518 29.3. 29.4. Diagramy stanów UML: wiÚcej notacji 521 29.5. 29.6. 29.7. 29.8. Jak stosowaÊ diagramy stanów? 519 Przykïad: modelowanie nawigacji UI za pomocÈ diagramów stanów 522 Przykïad: diagram stanów dla przypadku uĝycia NextGen 523 Proces: diagramy stanów w UP 524 Polecane zasoby 524 30 PowiÈzania pomiÚdzy przypadkami uĝycia 525 Wprowadzenie 30.1. 30.2. Relacja include 526 Terminologia: konkretne, abstrakcyjne, bazowe i dodatkowe przypadki uĝycia 529 Relacja extend 530 Relacja generalize 532 30.3. 30.4. 30.5. Diagramy przypadków uĝycia 532 31 Udoskonalenie Modelu Dziedziny 535 Wprowadzenie 535 31.1. Nowe koncepty w Modelu Dziedziny NextGen 536 31.2. Generalizacja 538 31.3. Definiowanie konceptualnych nadklas i podklas 539 31.4. Kiedy definiowaÊ podklasy konceptualne? 542 31.5. Kiedy definiowaÊ nadklasy konceptualne? 544 31.6. Hierarchie klas konceptualnych w NextGen 545 31.7. Abstrakcyjne klasy konceptualne 548 31.8. Modelowanie zmian stanów 549 31.9. Hierarchie klas konceptualnych a dziedziczenie 550 31.10. Klasy asocjacyjne 550 31.11. Agregacja i kompozycja 553 31.12. Przedziaïy czasowe i ceny produktów — naprawa „bïÚdu” z iteracji-1 556 31.13. Nazwy ról w asocjacjach 557 31.14. Role jako koncepty a role w asocjacjach 557 31.15. Elementy pochodne 558 31.16. Asocjacje kwalifikowane 559 31.17. Asocjacje zwrotne 560 15 SPIS TRE¥CI 31.18. Wykorzystanie pakietów w celu lepszej organizacji Modelu Dziedziny 560 31.19. Przykïad: udoskonalenie Modelu Dziedziny Monopoly 566 32 33 WiÚcej SSD i kontraktów 569 Wprowadzenie 569 32.1. POS NextGen 569 Analiza architektoniczna 575 Etapy analizy architektonicznej 578 Wprowadzenie 575 33.1. Proces: kiedy zaczÈÊ analizÚ architektonicznÈ? 576 33.2. Definicja: punkty zmiennoĂci i punkty ewolucji 576 33.3. Analiza architektoniczna 577 33.4. 33.5. Nauka Ăcisïa: identyfikacja i analiza czynników architektonicznych 579 Przykïad: fragment tabeli czynników architektonicznych NextGen 582 33.6. Sztuka: rozwiÈzywanie problemów stwarzanych 33.7. przez czynniki architektoniczne 582 Podsumowanie motywów przewodnich analizy architektonicznej 591 Proces: architektura iteracyjna w UP 592 33.8. 33.9. 33.10. Polecane zasoby 593 34 Udoskonalenie architektury logicznej 595 Przykïad: architektura logiczna NextGen 596 Wprowadzenie 595 34.1. 34.2. Wspóïpraca oparta o wzorzec Warstwy 601 34.3. Dodatkowe uwagi na temat wzorca Warstwy 607 34.4. Oddzielenie modelu od widoku i komunikacja wzwyĝ 612 34.5. Polecane zasoby 613 35 36 Projektowanie pakietów 615 Wprowadzenie 615 35.1. Wskazówki na temat organizacji pakietów 616 35.2. Polecane zasoby 622 WiÚcej projektowania z zastosowaniem wzorców GoF 623 Wprowadzenie 623 36.1. 36.2. Przykïad: POS NextGen 624 PrzejĂcie do usïug lokalnych. WydajnoĂÊ dziÚki lokalnej pamiÚci podrÚcznej cache 624 PrzejĂcie do usïug lokalnych z wykorzystaniem Peïnomocnika (GoF) 635 36.3. Obsïuga bïÚdów 629 36.4. 36.5. Wpïyw wymagañ niefunkcjonalnych na architekturÚ 638 36.6. DostÚp do zewnÚtrznych urzÈdzeñ fizycznych za pomocÈ adapterów 639 36.7. 36.8. Obsïuga pïatnoĂci z wykorzystaniem wzorców Polimorfizm i Zrób To Sam 644 36.9. 36.10. Podsumowanie 653 Fabryka Abstrakcyjna dla rodzin powiÈzanych obiektów 641 Przykïad: Monopoly 649 37 Projektowanie szkieletu (frameworku) trwaïych danych w oparciu o wzorce 655 Problem: trwaïe obiekty 656 RozwiÈzanie: usïuga trwaïych danych oparta o framework 657 Szkielety (frameworki) 657 Wprowadzenie 655 37.1. 37.2. 37.3. 37.4. Wymagania wobec usïugi i szkieletu trwaïych danych 658 37.5. Najwaĝniejsze idee 659 37.6. Wzorzec Reprezentacja Obiektów w Postaci Tabel 659 37.7. Profil modelowania danych w UML 660 16 SPIS TRE¥CI 37.8. Wzorzec Identyfikator Obiektu 660 37.9. DostÚp do usïugi trwaïych danych poprzez fasadÚ 661 37.10. Wzorzec Odwzorowywacz Bazodanowy (Database Mapper, Database Broker) 662 37.11. Projektowanie szkieletów z zastosowaniem wzorca Metoda Szablonowa 664 37.12. Materializacja z zastosowaniem wzorca Metoda Szablonowa 665 37.13. Konfiguracja odwzorowywaczy poprzez fabrykÚ MapperFactory 670 37.14. Wzorzec ZarzÈdzanie Cache 671 37.15. Ukrycie kodu SQL wewnÈtrz jednej klasy 671 37.16. Stany transakcyjne i wzorzec Stan 672 37.17. Projektowanie transakcji w oparciu o wzorzec Polecenie 676 37.18. Leniwa materializacja z zastosowaniem wzorca Peïnomocnik Wirtualny 678 37.19. 37.20. Nadklasa PersistentObject a zasada rozdzielenia zagadnieñ 681 37.21. Pozostaïe problemy 682 Jak reprezentowaÊ asocjacje w tabelach bazodanowych? 681 38 39 Diagramy wdroĝeniowe i diagramy komponentów 683 38.1. Diagramy wdroĝeniowe 683 38.2. Diagramy komponentów 685 Dokumentacja architektury: UML i model N+1 widoków 687 Wprowadzenie 687 39.1. Dokument Architektura Aplikacji i widoki architektoniczne 688 39.2. Notacja: struktura dokumentu Architektura Aplikacji 691 39.3. 39.4. 39.5. 39.6. Przykïad NextGen: Architektura Aplikacji 692 Przykïad: dokument Architektura Aplikacji Jakarta Struts 697 Proces: iteracyjna dokumentacja architektury 701 Polecane zasoby 701 CzÚĂÊ VI Dodatkowe zagadnienia 703 40 Zwinne zarzÈdzanie projektem 705 Jak zaplanowaÊ iteracjÚ? 706 Planowanie adaptacyjne 706 Plan Faz i Plan Iteracji 708 Jak planowaÊ iteracje w oparciu o przypadki uĝycia i scenariusze? 708 (Nie)wiarygodnoĂÊ wczesnych szacunków 711 Wprowadzenie 705 40.1. 40.2. 40.3. 40.4. 40.5. 40.6. Organizacja artefaktów 712 40.7. 40.8. Symptomy braku zrozumienia planowania iteracyjnego 713 Polecane zasoby 713 Bibliografia 715 Sïowniczek 723 Skorowidz 727 17 Rozdziaï 3 STUDIA PRZYPADKÓW Niewiele jest rzeczy równie irytujÈcych co dobry przykïad. — Mark Twain Wprowadzenie Problemy poruszane w studiach przypadków, które po raz pierwszy pojawiajÈ siÚ wïaĂnie w tym rozdziale, zostaïy wybrane, poniewaĝ sÈ czÚsto spotykane, a przy tym zïoĝone i interesujÈce. W praktyczny sposób uïatwiÈ one zrozu- mienie podstaw OOA/D, analizy wymagañ oraz wzorców projektowych. Co dalej? Po przedstawieniu ogólnej idei metody przyrostowej w tym rozdziale nadszedï czas na wprowadzenie studiów przypadków i skoncentrowanie siÚ na warstwie logicznej aplikacji. NastÚpny rozdziaï jest poĂwiÚcony fazie rozpoczÚcia (dla studiów przypadków). PodkreĂlam w nim, ĝe faza rozpoczÚcia absolutnie nie odpowiada znanej z modelu kaskadowego peïnej analizie wymagañ. 3.1. Co zostaïo, a co nie zostaïo uwzglÚdnione w studiach przypadków? Zasadniczo aplikacje skïadajÈ siÚ z: elementów interfejsu uĝytkownika (UI), warstwy logiki aplikacji, warstwy dostÚpu do bazy danych i warstwy wspóï- pracy z zewnÚtrznym oprogramowaniem lub sprzÚtem. Mimo ĝe techniki obiektowe mogÈ byÊ stosowane na wszystkich poziomach aplikacji, to niniejsze wprowadzenie do OOA/D koncentruje siÚ na warstwie logiki aplikacji. W niektórych miejscach pojawiajÈ siÚ równieĝ uwagi na temat innych warstw. 71 3 — STUDIA PRZYPADKÓW Projektowanie innych warstw (np. UI) z reguïy bÚdzie ograniczone do ich interfejsu (punktu styku) z warstwÈ logiki aplikacji. IloĂÊ uwagi poĂwiÚcona w ksiÈĝce poszczególnym warstwom zostaïa zaznaczona na rysunku 3.1. Rysunek 3.1. Przykïadowe warstwy i komponenty w systemie obiektowym oraz wskazanie tematów, na które poïoĝono najwiÚkszy nacisk w studiach przypadków. Sale to obiekt reprezentujÈcy transakcjÚ sprzedaĝy, Payment to obiekt pïatnoĂci Dlaczego koncentrujemy siÚ na OOA/D w warstwie logiki aplikacji? „ Inne warstwy czÚsto sÈ silnie zwiÈzane z technologiÈ i danÈ platformÈ. Na przykïad: w celu zrozumienia projektowania obiektowego sieciowych interfejsów uĝytkownika lub ciÚĝkich klientów w Javie musielibyĂmy naj- pierw szczegóïowo poznaÊ takie technologie, jak Struts czy Swing. Gdy- byĂmy jednak chcieli implementowaÊ to samo w .NET lub w Pythonie, szczegóïy wyglÈdaïyby zupeïnie inaczej. „ Projekt obiektowy warstwy logiki aplikacji jest podobny we wszystkich technologiach. „ UmiejÚtnoĂci obiektowe zdobyte podczas pracy nad warstwÈ logiki aplikacji majÈ zastosowanie równieĝ dla innych warstw i komponentów. „ Wzorce i podejĂcia do projektowania innych warstw zmieniajÈ siÚ doĂÊ szybko w miarÚ pojawiania siÚ nowych technologii. Na przykïad w poïowie lat dziewiÚÊdziesiÈtych naturalne byïo, ĝe programiĂci sami pisali obiektowe warstwy dostÚpu do relacyjnych baz danych. JakiĂ czas póěniej pojawiïy siÚ wygodne, gotowe rozwiÈzania open source, np. Hibernate (dla Javy). definicja warstw, s. 232 72 STUDIUM PRZYPADKU NR 1: SYSTEM SPRZEDA¿Y NEXTGEN 3.2. Strategia studiów przypadków: iteracyjne wytwarzanie aplikacji i iteracyjna nauka Ta ksiÈĝka ma prezentowaÊ iteracyjnÈ strategiÚ wytwarzania aplikacji. OOA/D w studiach przypadków jest stosowane iteracyjnie, w pierwszej iteracji poja- wiajÈ siÚ najwaĝniejsze funkcje. Póěniejsze iteracje rozszerzajÈ zakres funk- cjonalnoĂci (rysunek 3.2). Rysunek 3.2. ¥cieĝka nauki podÈĝa za iteracjami W zgodzie z zasadami prezentowanej metody tematy zwiÈzane z analizÈ i pro- jektowaniem, notacjÈ UML i wzorcami sÈ wprowadzane iteracyjnie i przyro- stowo. W pierwszej iteracji pojawiajÈ siÚ kluczowe zagadnienia OOA/D i UML, a w kolejnych ich rozszerzenia i nowe elementy 3.3. Studium przypadku nr 1: system sprzedaĝy NextGen Pierwsze studium przypadku to system sprzedaĝy POS o nazwie NextGen. Okaĝe siÚ, ĝe w tej pozornie prostej dziedzinie istniejÈ ciekawe problemy zwiÈzane z wymaganiami i projektem. DodatkowÈ zaletÈ jest to, ĝe problem jest rzeczywisty — takie systemy sÈ tworzone z wykorzystaniem technologii obiektowych. System POS (ang. point of sale) to system kompute- rowy sïuĝÈcy (miÚdzy innymi) do odnotowywania transakcji i obsïugi pïatnoĂci. Systemy takie sÈ czÚsto wykorzystywane w sprzedaĝy detalicznej. System skïada siÚ z elementów sprzÚtowych, takich jak kom- puter i czytnik kodów kreskowych, oraz z oprogra- mowania. Za poĂrednictwem rozmaitych interfejsów ïÈczy siÚ z róĝnymi aplikacjami, np. z wytworzonym przez innÈ firmÚ licznikiem podatków czy aplikacjÈ kontrolujÈcÈ stan magazynu. Systemy takie muszÈ byÊ stosunkowo odporne na bïÚdy: nawet jeĂli niektóre ze zdalnych usïug (jak system magazynowy) sÈ niedostÚpne, transakcje nadal muszÈ dziaïaÊ, chociaĝby jedynie w oparciu o gotówkÚ (by nie sparaliĝowaÊ dziaïania firmy). 73 3 — STUDIA PRZYPADKÓW System POS musi wspieraÊ róĝne terminale i interfejsy klienckie. Terminal moĝe mieÊ postaÊ lekkiej aplikacji klienckiej obsïugiwanej przez przeglÈdarkÚ internetowÈ, aplikacji desktopowej uruchamianej na zwykïym komputerze osobistym, opartej np. o interfejs Java Swing, moĝe takĝe mieÊ postaÊ ekranu dotykowego lub bezprzewodowego palmtopa. Co wiÚcej, w studium przypadku zajmiemy siÚ komercyjnym systemem POS przeznaczonym dla klientów o odmiennych potrzebach biznesowych. Kaĝdy z nich bÚdzie wymagaï innej logiki, stosowanej w okreĂlonych i przewidy- walnych punktach scenariuszy uĝycia systemu, takich jak inicjacja transakcji lub dodanie artykuïu nowego typu. Konieczne bÚdzie znalezienie mechanizmu, który umoĝliwi takie elastyczne dopasowanie siÚ do potrzeb klienta. Przy uĝyciu strategii iteracyjnej przejdziemy przez wymagania, analizÚ, projek- towanie i implementacjÚ. 3.4. Studium przypadku nr 2: gra Monopoly Poniewaĝ chcÚ pokazaÊ, ĝe te same praktyki OOA/D moĝna stosowaÊ podczas rozwiÈzywania bardzo róĝnych problemów, jako drugie studium przy- padku wybraïem elektronicznÈ wersjÚ gry Mono- poly®. Dziedzina problemu i wymagania sÈ caïko- wicie odmienne niĝ w przypadku biznesowej aplikacji, jakÈ jest NextGen; modelowanie dzie- dziny, projektowanie obiektowe z uĝyciem wzor- ców i stosowanie UML sÈ wciÈĝ aktualne i przy- datne. Podobnie jak w przypadku systemu POS, komputerowe wersje gry rzeczywiĂcie sÈ produ- kowane i sprzedawane zarówno w postaci ciÚĝkich klientów, jak i gier przeglÈdarkowych. Nie zamierzam powtarzaÊ tutaj zasad Monopoly. Prawie kaĝdy graï w jakiĂ jej wariant (np. Eurobiznes). JeĂli ktoĂ ma wÈtpliwoĂci, bez problemu znajdzie opis zasad w internecie. Nasza wersja gry bÚdzie symulacjÈ. Uĝytkownik rozpoczyna grÚ, wybiera listÚ symulowanych graczy, a nastÚpnie obserwuje przebieg gry w kolejnych turach. 74 {abstract}, 291, 293, 448, 549 {leaf}, 293 {List}, 287 {new}, 274 {ordered}, 287, 291 {unique}, 287 «actor», 123, 290, 291, 458 «browser», 685 «constructor», 666 «create», 274 «database», 685 «destroy», 291 «interface», 290, 291 «method», 289, 372 «OS», 685 «server», 685 «subsystem», 600 A abstract, 291 Abstrakcja WyjÈtku, 631 abstrakcyjne klasy konceptualne, 548 UML, 549 abstrakcyjny przypadek uĝycia, 529 Action, 341 ActionEvent, 500 activity diagram, 509 adapter, 458, 459 Adapter, 457, 458, 459, 468, 469, 470, 471, 478, 626 GRASP, 471 adapter zasobów, 469, 470 affinity grouping, 147 agile, 31, 57, 248 agregacja, 296, 553 agregacja zïoĝona, 326 agregaty pakietów, 621 akcje, 510 aktor, 92 SKOROWIDZ algorytmy równolegïe, 512 alt, 266 analityczny model obiektów, 170 analiza, 33 analiza architektoniczna, 87, 575, 577 analiza czynników architektonicznych, 579 cele, 577 czynniki architektoniczne, 578, 579 decyzje architektoniczne, 578 definiowanie wymagañ jakoĂci, 579 dokumentowanie alternatywnych rozwiÈzañ architektonicznych, 585 etapy, 578 identyfikacja czynników architektonicznych, 579 inĝynieryjna przesada, 588 inĝynieryjne niedostatki, 588 koszty zakupionych komponentów, 577 moment rozpoczÚcia, 576 motywy przewodnie, 591 nazwa marki, 577 priorytety decyzji architektonicznych, 586 punkt ewolucji, 576, 588 punkt zmiennoĂci, 576 rozdzielanie zagadnieñ, 590 rozwiÈzywanie problemów stwarzanych przez czynniki architektoniczne, 582 scenariusze jakoĂci, 579 techniki rozdzielania zagadnieñ, 590 wymagania istotne z punktu widzenia architektury, 579 wymagania zwiÈzane z niezawodnoĂciÈ i odpornoĂciÈ na awarie, 577 wymagania zwiÈzane z przystosowalnoĂciÈ i konfigurowalnoĂciÈ, 577 wzorce architektoniczne, 591 zagadnienia przecinajÈce, 590 zasady projektowania architektury, 588 aktor drugoplanowy, 96 aktor pierwszoplanowy, 96, 104, 115, 117 aktor zakulisowy, 96 aktualizacja artefaktów analitycznych, 439 AlarmListener, 500 ALGOL 60, 227 Analiza Biznesowa, 81 analiza czynników architektonicznych, 579 analiza i projektowanie obiektowe, 21, 29, 41 analiza lingwistyczna, 178 analiza obiektowa, 33 analiza wymagañ, 33, 78 analysis object model, 170 727 SKOROWIDZ architectural approach document, 585 architectural drivers, 578 architectural factors, 578 architectural proposal, 585 Architecture Based Design, 579 Architektura, 130, 205, 585, 592 architektura aplikacji, 231 Architektura Aplikacji, 165, 668, 688 faza opracowywania, 701 faza przekazania systemu, 701 faza rozpoczÚcia, 701 Jakarta Struts, 697 kolejne cykle ewolucji, 701 motywacja, 688 NextGen, 692 struktura dokumentu, 691 typy widoków architektonicznych, 689 widok bezpieczeñstwa, 690 widok danych, 690, 696 widok implementacji, 690 widok logiczny, 690, 694, 698 widok procesów, 690 widok programistyczny, 691 widok przypadków uĝycia, 691, 697 widok wdroĝeniowy, 690, 695 widoki architektoniczne, 688 wzorce architektoniczne, 698 architektura dwuwarstwowa, 611 architektura fizyczna, 683 architektura iteracyjna, 592 faza opracowywania, 593 faza przekazania systemu, 593 faza rozpoczÚcia, 593 fazy, 593 informacje na temat architektury w artefaktach UP, 593 kolejne cykle ewolucji, 593 prototyp architektoniczny, 593 synteza architektoniczna, 593 architektura logiczna, 231, 232 Monopoly, 246 NextGen, 246, 596 powiÈzania pomiÚdzy warstwami i pakietami, scenariusze interakcji pomiÚdzy warstwami scenariusze istotne z punktu widzenia 596 i pakietami, 599 architektury, 599 udoskonalenie, 595 Warstwy, 601 architektura logiczna aplikacji, 305 architektura oprogramowania, 235 architektura oprogramowania oparta na wzorcach, 348 architektura trójwarstwowa, 610 interfejs, 611 logika aplikacji, 611 przechowywanie, 611 architektura warstwowa, 237 Architektura Warstwowa, 612 architektura wdroĝeniowa, 232 architekturocentrycznoĂÊ, 56 ArrayList, 300 artefakty UML, 401 artefakty UP, 63, 137, 358, 581 Architektura Aplikacji, 687 faza opracowywania, 164 faza rozpoczÚcia, 79 Glosariusz, 136 Model Dziedziny, 63 Model Projektowy, 63 Model Przypadków Uĝycia, 63, 87 organizacja, 712 przypadki uĝycia, 130 Reguïy Biznesowe, 88, 136, 140, 151 Reguïy Dziedzinowe, 136 Sïowniczek, 88, 136, 149 Specyfikacja Dodatkowa, 87, 136, 141 Specyfikacja UzupeïniajÈca, 136 Wizja, 88, 136, 143, 587 wymagania, 87 artefakty wÚzïów, 685 asocjacja, 186 asocjacja jeden do jednego, 681 asocjacja jeden do wielu, 681 asocjacja kwalifikowana, 298, 559, 560 asocjacja wiele do wielu, 681 asocjacja zwrotna, 560 implementacja, 188 krotnoĂci, 190 lista popularnych asocjacji, 191 model dziedziny, 193 Monopoly, 194 nazwy, 189 nazwy ról, 557 NextGen, 193 notacja asocjacji, 188 role, 189, 557 róĝne asocjacje pomiÚdzy tymi samymi klasami, 191 stosowanie, 187 UML, 188 ASP.NET, 341 AspectJ, 591 728 assertTrue, 419 atrybuty, 183, 194 {readOnly}, 195 atrybuty pochodne, 196 klucze obce, 201 kod programu, 199 model dziedziny, 197, 201 modelowanie iloĂci, 201 Monopoly, 202 NextGen, 201 skïadnia opisu atrybutu, 195 stosowanie, 194 typy atrybutów, 196 typy proste, 198 typy wyliczeniowe, 197 UML, 195 atrybuty bÚdÈce kolekcjami, 287 atrybuty jakoĂci, 87, 142 atrybuty pochodne, 559 automatyczna weryfikacja, 418 autoryzacja pïatnoĂci, 644 pïatnoĂci kartÈ kredytowÈ, 647 awaria, 630 AWT, 500 B back-end, 125 Banda Czterech, 312, 467 bardzo niska spójnoĂÊ, 350 baza danych, 454, 656, 685 bazowy przypadek uĝycia, 530 BeanInfo, 461 Beck Kent, 252 biznesowe przypadki uĝycia, 104 bïÚdy, 407, 630 BOM, 170, 205, 206 Booch Grady, 42, 228 boundary class, 341 brainstorming, 147 brak operacji, 450 brief, 92 broker, 663 Broker Bazodanowy, 663 Brooks Frederick, 69 brzydkie zapachy, 422 burze mózgów, 147 business case, 78, 80 Business Object Model, 170, 205 SKOROWIDZ C C#, 29, 402 cache, 624, 625, 659, 671 call-flow diagrams, 214 CASE, 38, 39, 48, 428 cele interesariuszy, 146 ceny produktów, 556 Choosing Message, 453 chronione metody, 669 ciaïo metody, 287 ciÈgïa integracja, 46 ciÚĝki interfejs uĝytkownika po stronie klienta, 343 Class, 270 Class, Responsibility, Collaboration, 252 classifier, 40 client tier, 241 Coarse-Grained Remote Interface, 352 COCOMO II, 214 code smells, 422 code stench, 422 cofniÚcie transakcji, 659 cohesion, 323 Command, 347, 348, 677 Command Processor, 348 Command-Query Separation Principle, 390 commit, 659, 673, 674 Composite, 483 Computer Aided Software Engineering, 428 conceptual entity relationship models, 170 conceptual models, 170 Constantine Larry, 112 constraint, 297 constraint objects, 226 construction phase, 62 control class, 341 Controller, 314, 320, 322, 336 Core/Misc, 563 coupling, 293, 332 CQS, 390 CRC, 252 create, 290 Creator, 314, 315, 325 CRUD, 119, 611 CruiseControl, 419 Crystal Methods, 31 Cunningham Ward, 252 cykl ĝycia obiektu, 518 cykl ĝycia projektu, 47 model kaskadowy, 51 czarna skrzynka, 113 czÚĂciowy model dziedziny, 35 729 SKOROWIDZ czynniki architektoniczne, 578, 579 analiza, 579 dokumentowanie alternatywnych rozwiÈzañ architektonicznych, 585 hierarchia celów, 586 identyfikacja, 579 priorytety, 586 rozwiÈzywanie problemów, 582 czynnoĂci, 305, 509, 514 Czysty Wymysï, 348, 453, 455 D dane wejĂciowe, 304 data flow diagrams, 511 data type, 285 Database Broker, 662, 663 Database Mapper, 662, 663 datastore nodes, 511 DBC, 228 DCD, 283, 367, 401 decyzje architektoniczne, 578 definicja modelu dziedziny, 35 definicja projektowych diagramów klas, 36 definicja przypadków uĝycia, 34 definiowanie klas z atrybutami i sygnaturami metod, 403 definiowanie konceptualnych nadklas, 539, 544 definiowanie konceptualnych podklas, 539 definiowanie typów danych, 199 definiowanie wymagañ jakoĂci, 579 dekompozycja reprezentacji, 456, 457 dekompozycja zachowania, 456, 457 Delegacja Obsïugi Zdarzeñ, 495, 499 dematerializacja obiektów, 659, 682 dependency, 293 description class, 183 design, 33 Design by Contract, 228 design class diagram, 283 development case, 66, 80 DFD, 511 Diagnostic Logger, 633 diagramy aktywnoĂci, 124, 509 diagramy czynnoĂci, 124, 251, 509 akcje, 510 algorytmy równolegïe, 512 czynnoĂci, 513 fork, 510 join, 510 modelowanie procesu biznesowego, 511 730 diagramy interakcji, 250, 251, 255, 256, 259, 358, 404 modelowanie przepïywów danych, 511 NextGen, 515 notacja, 510 partycje, 510 programy wspóïbieĝne, 512 przepïyw danych, 510 przepïyw sterowania, 510 rake, 513 rozwidlenie, 510 rozwiniÚcie czynnoĂci, 513 semantyka, 516 stosowanie, 511 sygnaïy, 514 symbol decyzji, 513 symbol grabek, 513 symbol scalenia, 513 synchronizacja, 510 Unified Process, 516 wÚzïy magazynowe, 511 wÚzïy obiektowe, 510 diagramy klas, 301 globalne diagramy interakcji, 256, 269 iteracyjne przechodzenie przez kolekcjÚ, 267 komunikaty, 261 komunikaty asynchroniczne, 271 komunikaty do self lub this, 263 komunikaty polimorficzne, 270 komunikaty warunkowe, 265, 266 komunikaty wysyïane do klas w celu wywoïania metod statycznych, 270 linie ĝycia, 261 notacja, 259, 261 obiekty singletonowe, 260 odpowiedzi, 262 paski specyfikacji wykonania, 262 pÚtle, 265 przepïyw sterowania, 262 ramki, 264 skïadnia opisu komunikatów, 260 tworzenie instancji, 263 uczestnicy interakcji, 259 usuwanie obiektów, 263 wady, 257 wartoĂci zwracane, 262 wiÈzanie ze sobÈ diagramów interakcji, 268 wyjÈtki, 633 wyraĝenia if-then-else, 266 wywoïania asynchroniczne, 271 wywoïania synchroniczne, 271 zagnieĝdĝanie ramek, 268 zalety, 257 SKOROWIDZ diagramy klas, 169, 171, 181, 281 agregacja, 296 asocjacja kwalifikowana, 298 atrybuty, 284, 285 atrybuty bÚdÈce kolekcjami, 287 ciaïa metod, 287 diagramy interakcji, 301 etykiety zaleĝnoĂci, 295 generalizacja, 292 interfejsy, 295 klasa aktywna, 301 klasy abstrakcyjne, 292 klasy asocjacyjne, 299 klasy finalne, 293 klasy singletonowe, 299 klasyfikator, 283 komentarze, 287 kompozycja, 296 krotnoĂÊ, 287 linie asocjacji, 284, 285 listy wïaĂciwoĂci, 292 metody, 288, 289 metody finalne, 293 model dziedziny, 285 nazwa koñca asocjacji, 287 nazwa roli, 285, 287 notacja, 282 notacja koñca linii asocjacji, 287 ograniczenia, 287, 297 operacje, 288 operacje abstrakcyjne, 292 operacje dostÚpowe, 290 prezentacja atrybutów, 284 problematyczne operacje, 290 profile, 291 przegródki, 282 przegródki definiowane przez uĝytkownika, 300 sïowa kluczowe, 287, 290 stereotypy, 291 strzaïka nawigacji, 285 symbol notatki, 287 szablony interfejsów, 300 szablony klas, 300 tekst, 284 tekstowy opis atrybutu, 284 uwagi, 287 widocznoĂÊ, 282, 284 wïaĂciwoĂci, 287, 292 zaleĝnoĂci, 293, 294 zasady rysowania diagramów klas w zaleĝnoĂci od perspektywy, 286 znaczniki, 291, 292 diagramy komponentów, 683, 685 diagramy komunikacji, 250, 257, 258 iteracje, 277 iteracyjne przechodzenie przez kolekcjÚ, 277 komunikaty, 273 komunikaty do self lub this, 274 komunikaty polimorficzne, 278 komunikaty warunkowe, 276 komunikaty wysyïane do klas w celu wywoïania metod statycznych, 277 linki, 273 makePayment, 259 notacja, 273 numerowanie komunikatów, 274 obsïuga operacji systemowych, 359 pÚtle, 277 powiÈzania, 273 tworzenie instancji, 274 wady, 257 wyraĝenia if-then-else, 276 wywoïania asynchroniczne, 278 wywoïania synchroniczne, 278 zalety, 257 diagramy pakietów, 231, 232, 235, 251, 694 linie zaleĝnoĂci, 235 NextGen, 246 pakiety, 235 pozyskiwanie diagramów pakietów z kodu, 236 przestrzeñ nazw, 235 diagramy Pareto, 147 diagramy przebiegu, 36, 256 diagramy przepïywu danych, 511, 512 diagramy przepïywu rozmów, 214 diagramy przypadków uĝycia, 94, 121, 123, 532 diagramy rybiej oĂci, 147 diagramy sekwencji, 36, 207, 210, 211, 250, 256, 258, 319 makePayment, 258 obsïuga operacji systemowych, 359 pÚtle, 211 wady, 257 zalety, 257 diagramy stanów, 251, 517, 518 akcje, 521 cykl ĝycia obiektu, 518 fizyczne urzÈdzenia, 520 kontrolery, 520 modelowanie nawigacji UI, 520, 522 modelowanie obiektów zaleĝnych od stanu, 519 nawigacja przez strony, 520 NextGen, 523 731 SKOROWIDZ diagramy stanów notacje, 521 obiekty biznesowe, 520 obiekty niezaleĝne od stanu, 519 obiekty trwaïe, 673 obiekty zaleĝne od stanu, 519 obiekty zmieniajÈce rolÚ, 520 obsïuga zdarzeñ w okienku UI, 521 operacje systemowe w przypadkach uĝycia, 520 protokoïy komunikacyjne, 520 przejĂcia, 518, 521 sesje UI, 520 stany, 518 stosowanie, 519 transakcje, 520 Unified Process, 524 warunki, 521 zagnieĝdĝone stany, 521 zdarzenia, 518 zïoĝone obiekty reakcyjne, 520 diagramy sterowania interakcjÈ, 256, 269 diagramy UML, 252, 310 diagramy Venna, 540 diagramy wdroĝeniowe, 251, 683 artefakty, 685 instancje, 685 Ăcieĝka komunikacji, 685 wÚzeï, 684 wÚzeï EEN, 685 wÚzeï sprzÚtowy, 684 wÚzeï Ărodowiska uruchomieniowego, 684 dobry projekt obiektowy, 29 dodatkowe wymagania, 108 dodatkowy przypadek uĝycia, 530 dodawanie kolekcji, 406 dokument Architektura Aplikacji, 668, 688 dokumentacja architektury, 585, 687 dokumentowanie alternatywnych rozwiÈzañ architektonicznych, 585 domain model, 35, 170 domain object models, 170 dostawca, 293 dostÚp do usïugi trwaïych danych, 661 dostÚp do zewnÚtrznych urzÈdzeñ fizycznych za pomocÈ adapterów, 639 dostosowanie UP do wïasnych potrzeb, 65 dot voting, 147 drobnoziarniste klasy, 645 dynamiczne modelowanie obiektowe, 250, 251 dyscypliny UP, 63, 64, 65 dziedziczenie, 293, 486, 550 hierarchia klas konceptualnych, 550 dziedzina wytwarzania nowego produktu, 52 Dziennik Diagnostyczny, 633 E EBJ, 589 EBP, 104, 120 Eclipse, 247, 421 EEN, 684, 685 Eiffel, 228 EJB, 341, 590 Ekspert, 314, 317, 327, 330, 387, 644 ekspert czÚĂciowy, 386 eksperymenty programistyczne, 305 Ekstrakcja Metody, 423, 424 Ekstrakcja Staïej, 423 Ekstrakcja Zmiennej Lokalnej, 423 elaboration phase, 62 elementarny proces biznesowy, 120 elementary business process, 104 elementy pochodne, 558 endSale, 368 enterItem, 221, 360, 364, 367, 404, 405 Enterprise JavaBeans, 38, 341 Enterprise Resource Planning, 696 entity class, 341 ERP, 696 error, 630 etapy analizy architektonicznej, 578 etykiety zaleĝnoĂci, 295 ewolucyjne modelowanie dziedziny, 204 ewolucyjne projektowanie obiektowe, 392 ewolucyjne projektowanie oraz analiza, 53 ewolucyjny model przyrostowy, 402 ewolucyjny model wytwarzania oprogramowania, 46 ewoluujÈce wymagania, 83 metody iteracyjne, 152 execution environment node, 684 extend, 530 punkty rozszerzeñ, 531 warunek wywoïania, 531 F fabryka, 473 Fabryka, 472, 473, 478, 626 tworzenie strategii, 480 Fabryka Abstrakcyjna, 446, 472, 641 klasy abstrakcyjne, 641 Fabryka Konkretna, 472 732 SKOROWIDZ Fabryka Obiektów Dziedzinowych, 621 Fabryka Prosta, 472 Facade, 492 Factory, 472 failure, 630 Fasada, 348, 459, 477, 492, 493, 602, 612, 661 dostÚp do usïugi trwaïych danych, 661 fasada sesyjna, 602 fault, 630 faza elaboracji, 163 faza konstrukcji, 62, 154, 393 przypadki uĝycia, 131 faza opracowywania, 55, 62, 153, 163, 164, 393 artefakty UP, 164 pierwsza iteracja, 159 przypadki uĝycia, 131 symptomy braku zrozumienia, 164 faza przekazania systemu, 62 faza rozpoczÚcia, 62, 77, 78, 153, 162, 392 artefakty, 79, 80 cele, 78 czas trwania, 79 dokumentacja, 81 iloĂÊ UML, 82 przypadki uĝycia, 130 symptomy ĂwiadczÈce o braku zrozumienia, 81 fazy UP, 62, 65 Feature-Driven Development, 31 fishbone diagrams, 147 fixture, 419 fizyczne urzÈdzenia, 520 Flex, 610 fork, 510 formalny opis przypadku uĝycia, 93 format danych, 109 formaty przypadków uĝycia, 97, 110 forward engineering, 428 found message, 261 framework, 30, 655, 657 frazy rzeczownikowe, 178 functional, 86 funkcjonalnoĂci, 147 funkcjonalnoĂÊ systemu, 147 FURPS, 86 FURPS+, 86, 95, 141, 579 generalizacja, 292, 442, 538 klasy konceptualne, 539 zbiory klas, 540 generalize, 532 generowanie nowych pomysïów, 147 Gilb Tob, 68 globalne diagramy interakcji, 256, 269 Glosariusz, 136 gïówny scenariusz sukcesu, 105, 106, 178, 369, 435 GoF, 307, 312, 446, 467 gorÈce punkty, 465 gra Monopoly, 74 Graficzny Interfejs Uĝytkownika, 232 graficzny sïownik, 171 granice systemu, 115 GRASP, 33, 251, 303, 307, 309, 313, 489 Controller, 320, 322, 336 Creator, 314, 315, 325 Czysty Wymysï, 348, 453 diagramy UML, 310 Ekspert, 317, 327 High Cohesion, 322 Indirection, 458 Information Expert, 317, 327 Kontroler, 320, 322, 336 Low Coupling, 318, 332 Niskie SprzÚĝenie, 318, 332 obiekty programistyczne, 315 Ochrona ZmiennoĂci, 459 Polimorfizm, 446 Polymorphism, 446 PoĂrednictwo, 458 projektowanie obiektowe, 314, 324, 355 Protected Variations, 459 Pure Fabrication, 453 Twórca, 314, 315, 325 Wysoka SpójnoĂÊ, 322, 350 wzorce, 311, 312, 314 zasady projektowe, 313 zobowiÈzania, 310 Gruboziarnisty Zdalny Interfejs, 352 grupowanie w oparciu o podobieñstwo, 147 GUI, 232, 500 gwarancje sukcesu, 105 G Gang of Four, 312, 446, 467 garbage collector, 263 General Responsibility Assignment Software Patterns, 324 H HashMap, 625 hermetyzacja, 460 hermetyzacja szczegóïów, 672 Hibernate, 72, 656, 696 733 SKOROWIDZ hierarchia klas, 442 hierarchia klas oparta o relacjÚ generalizacji – specjalizacja, 538 hierarchia klas konceptualnych, 545 dziedziczenie, 550 High Cohesion, 314, 322, 348 HIGH-LOW, 661 Hoare Tony, 227 hot spots, 465 HTTPS, 469 I IDE, 247 identyfikacja czynników architektonicznych, 579 identyfikacja fraz rzeczownikowych w tekĂcie przypadków uĝycia, 536 identyfikacja przypadków uĝycia, 119 identyfikator obiektu, 661 Identyfikator Obiektu, 660 if-then-else, 266, 276 Implementacja, 64, 67 implementacja oprogramowania, 40 inception phase, 62 include, 526 obsïuga zdarzeñ asynchronicznych, 528 Indirection, 458 informacje zwrotne, 53 Information Expert, 314, 317, 327 inicjalizacja, 378, 391 inicjalizacja wartoĂci procentowej, 482 inicjalizacyjne obiekty dziedzinowe, 379 initialize, 391 inne wymagania, 135, 136 instancja adaptera, 470 instancja metaklasy, 270 instancja testowa, 419 instancje, 685 Integrated Development Environment, 247 interaction overview diagram, 256 interesariusze, 104 interfejs systemu, 218 interfejs uĝytkownika, 71 Interfejs Uĝytkownika, 232 interfejsy, 295, 418, 452, 460 stosowanie, 452 interfejsy nabyte, 295 interfejsy programistyczne, 436 interfejsy zewnÚtrznych usïug, 478 Interpreter Poleceñ, 348, 678 interpretery, 461 inĝynieria postÚpowa, 428 734 inĝynieria uĝytecznoĂci, 32, 112 inĝynieria wahadïowa, 428 inĝynieria wsteczna, 236, 428 is – a, 541 issue card, 585 ITaxCalculatorAdapter, 460 iteracja-1, 159 Monopoly, 160 NextGen, 160 przyrostowe rozwijanie tego samego przypadku uĝycia, 161 wymagania, 160, 161 iteracja-2, 433, 434 Monopoly, 437 NextGen, 435 wymagania, 435 iteracja-3, 507 wymagania, 507 iteracje, 47, 49, 57, 277 iteracyjna dokumentacja architektury, 701 iteracyjna nauka, 73 iteracyjne modelowanie dziedziny, 204 iteracyjne projektowanie obiektowe, 392 iteracyjne przechodzenie przez kolekcjÚ, 267, 277 iteracyjne SSD, 214 iteracyjne wymagania, 83 iteracyjne wytwarzanie aplikacji, 73 iteracyjnoĂÊ, 45 iteracyjny model wytwarzania, 230 Iterator, 267 J J2EE, 335 Jacobson Ivar, 42, 114 Jakarta Struts, 697 Java, 29, 402 Java Database Connectivity, 331 Java Messaging Service, 589, 686 Java Struts, 341, 344 Java Swing, 239, 338, 343, 634, 657 java.beans.Introspector, 461 java.util.Iterator, 267 JavaPOS, 639, 640, 641, 643 JButton, 321, 500 JDBC, 483, 619 JDBCUtilities, 619 jeden do jednego, 681 jeden do wielu, 406, 681 jednolity dostÚp, 461 jÚzyk ALGOL 60, 227 jÚzyk obiektowy, 41 SKOROWIDZ jÚzyk OCL, 226 jÚzyk PLanguage, 579 jÚzyk specyfikacji ograniczeñ, 297 jÚzyk UML, 30, 37 jÚzyk zapisu ograniczeñ, 226 JFrame, 239, 244, 321, 346 JMS, 589 JNDI, 461 JNI, 640 join, 510 JTextField, 498 JUnit, 419 metody testowe, 420 tworzenie testów, 420 K Kadry Przypadków Uĝycia, 165 kamienie milowe, 707 karty CRC, 252 karty problemowe, 585 kaskadowa analiza wymagañ, 85 kaskadowy model wytwarzania oprogramowania, 46 kategorie warunków koñcowych, 219 kategorie wymagañ, 86 Kay Alan, 42, 610 klasa aktywna, 271, 301 klasy, 40, 183, 686 definiowanie typów danych, 199 dziedziczenie, 550 generalizacja, 538 kolejnoĂÊ implementacji, 408 tworzenie definicji na podstawie DCD, 403 klasy abstrakcyjne, 292, 293 Fabryka Abstrakcyjna, 641 UML, 549 klasy asocjacyjne, 282, 299, 550, 552 UML, 552 klasy finalne, 293 klasy graniczne, 341 klasy implementacyjne, 41 klasy kompozytowe, 484 klasy konceptualne, 40, 41, 169, 172, 538, 539 analiza lingwistyczna, 178 atrybuty, 194 identyfikacja fraz rzeczownikowych, 178 instrumenty finansowe, 178 katalogi, 177 lista kategorii, 176 Monopoly, 180 obiekty fizyczne, 177 odnajdywanie klas konceptualnych poprzez identyfikacjÚ fraz rzeczownikowych, 178 opisy, 177 podziaï na podklasy, 543 pojemniki, 177 przedmioty transakcji, 176 rysowanie, 179 strategie znajdowania klas, 176 systemy wspóïpracujÈce, 177 transakcje biznesowe, 176 znajdowanie klas, 175, 179 klasy kontrolne, 341 klasy opisowe, 183, 185 motywacja, 184 zastosowanie, 185 klasy programistyczne, 41 klasy projektowe, 40 klasy przechowujÈce, 341 klasy singletonowe, 299 klasyczna architektura trójwarstwowa, 610 klasyfikator, 40, 283 klient, 104 klucze obce, 201 kod Monopoly, 412 kod NextGen, 409 kodowanie sterowane testami, 306 kolaboracja, 308, 309 kolejnoĂÊ implementacji, 408 kolekcje, 406 komentarze, 287 komponenty, 685, 686 kompozycja, 296, 297, 315, 327, 553 Model Dziedziny, 555 rozpoznanie, 554 zalety uwzglÚdnienia, 554 Kompozyt, 483, 484, 485 komunikacja wzwyĝ, 612 Komunikat WybierajÈcy, 453 komunikaty, 261, 273 komunikacja z wyĝszÈ warstwÈ UI, 606 komunikaty asynchroniczne, 271, 629, 632 komunikaty do self lub this, 263, 274 komunikaty odnalezione, 261 komunikaty polimorficzne, 270, 278 komunikaty warunkowe, 265, 266, 276 komunikaty wysyïane do klas w celu wywoïania metod statycznych, 270, 277 konceptualne nadklasy, 539 konceptualne podklasy, 539 koncepty dziedzinowe, 40 konfiguracja odwzorowywaczy, 670 konkretny przypadek uĝycia, 529 735 SKOROWIDZ konstruktory, 666 kontekst pisania przypadków uĝycia, 129 kontekstowy diagram przypadków uĝycia, 126 kontener EJB, 685 kontener serwletów, 685 kontrakty operacji, 215, 305, 360, 569 aktualizacja modelu dziedziny, 222 bïÚdy, 223 faza opracowywania, 227 faza rozpoczÚcia, 227 historia, 227 jÚzyki programowania, 228 Monopoly, 225 NextGen, 224 OCL, 226 operacje systemowe, 217 pisanie, 223 realizacja przypadków uĝycia, 360 sekcje, 217 szablon kontraktu, 217 tworzenie kontraktów, 223 Unified Process, 227 warunki koñcowe, 217, 218 zastosowanie, 222 kontrola wspóïbieĝnoĂci, 476 Kontroler, 314, 320, 322, 336, 340, 363, 603 stosowanie po stronie serwera, 341 kontroler fasadowy, 336, 340, 345, 362 kontroler napuchniÚty, 345 kontroler sesyjny, 340, 345 krotnoĂÊ asocjacji, 190 krytycznoĂÊ, 166 kwalifikator, 298, 559 L Layers, 237, 591 lazy initialization, 476 LDAP, 242 Lean Development, 31 leniwa inicjalizacja, 476, 477 leniwa materializacja, 659, 678 LGP, 643 Lieberherr Karl, 464 linie asocjacji, 284 linie zaleĝnoĂci, 235 linie ĝycia, 261 usuwanie obiektów, 263 linki, 273 Liskov Substitution Principle, 462 List, 300 lista funkcjonalnoĂci, 114, 125, 148 736 Lista Rodzajów Ryzyka, 80 listy wïaĂciwoĂci, 292 logika aplikacji, 72, 611 Logika Aplikacji, 232 lokalna pamiÚÊ podrÚczna cache, 624 Low Coupling, 314, 318, 332 Lower Representational Gap, 174 LRG, 174, 309, 363, 644 LSP, 462 luěna architektura warstwowa, 233, 606 ’ ïadowanie danych do cache, 628 ïÈczenie obiektów UI z obiektami modelu, 500 M makeLineItem, 407 makeNewSale, 362 makePayment, 258, 372 MakeReservationHandler, 345 ManageFaresHandler, 345 ManageSchedulesHandler, 345 manifest programowania zwinnego, 57 Manufacturer, 679 mapa myĂli, 147 mapa procesu iteracyjnego, 21 mapowanie, 659, 660 mapowanie bezpoĂrednie, 662 mapowanie niebezpoĂrednie, 663 mapowanie O-R, 657, 696 mapowanie organizacji kodu na warstwy i pakiety UML, 239 mapowanie projektu na kod, 401 mapowanie schematów, 659 mapper bazodanowy, 659 MapperFactory, 670 maszyna wirtualna, 610, 684 materializacja, 659, 665 MDA, 38, 39 mechanizm obsïugi trwaïych danych, 611 mechanizm rozszerzeñ, 291 mechanizmy ochrony zmiennoĂci, 460 mechanizmy przechowywania, 656 Mediator, 459 menedĝer widoku, 635 metadane, 150, 664, 672 metaklasy, 270 metamodel, 38, 285 metaprogramowanie, 461 Metoda Boocha, 228 SKOROWIDZ metoda fuzji, 228 metoda iteracyjna, 31, 45, 47 czas trwania iteracji, 51 ewoluujÈce wymagania, 152 nieprzekraczalnoĂÊ terminów, 51 przypadki uĝycia, 127 termin zakoñczenia iteracji, 51 zyski, 50 metoda przyrostowa, 45, 47 Metoda Szablonowa, 664, 665 materializacja, 665 metodologia ewolucyjna, 47 metodologia spiralna, 48 metody, 226, 288, 289 metody abstrakcyjne, 486 metody chronione, 669 metody finalne, 293 metody klasy, 270, 277 metody statyczne, 270, 277 tworzenie na podstawie diagramów interakcji, 404 metody zwinne, 57 Scrum, 57 metodyczne podejĂcie do podstaw projektowania obiektowego, 309 miara spójnoĂci, 323 Microsoft Transaction Service, 590 MicroView, 634 middleware, 125 Mills Harlan, 68 mind mapping, 147 model, 242 model danych, 173, 660 Model Danych, 165, 205, 660 model dziedziny, 35, 167, 170, 172, 285 asocjacje, 193 atrybuty, 201 diagramy klas, 171 graficzny sïownik, 171 klasy konceptualne, 172 LRG, 174 Monopoly, 194, 202 motywacja, 174 NextGen, 193, 201 tworzenie nowych typów danych, 199 typy atrybutów, 196 typy danych, 196 Model Dziedziny, 63, 130, 165, 168, 170, 171, 205, 305, 328, 516, 535 asocjacja kwalifikowana, 559 asocjacja zwrotna, 560 BOM, 206 faza opracowywania, 205 faza rozpoczÚcia, 205 generalizacja, 538 identyfikacja fraz rzeczownikowych w tekĂcie przypadków uĝycia, 536 klasy abstrakcyjne, 548 kompozycja, 555 lista kategorii konceptów, 536 Model Obiektów Biznesowych, 205 Monopoly, 566 nadklasy, 539 NextGen, 536 pakiety, 560, 562 podklasy, 539 podziaï klasy na pakiety, 562 programistyczne obiekty biznesowe, 171 realizacja przypadków uĝycia, 360 transakcje zwiÈzane z autoryzacjÈ pïatnoĂci, 537 tworzenie, 175 udoskonalenie, 535 warunki koñcowe, 219 zmiany stanów, 549 model FURPS+, 86 Model Implementacyjny, 128, 401, 616, 690 model inicjatywy oddolnej, 612 model kaskadowy, 46, 51 cykl ĝycia projektu, 51 dziedzina wytwarzania nowego produktu, 52 informacje zwrotne, 53 niepowodzenia, 52 model konceptualny, 35, 170 model N+1 widoków, 687, 688, 689 model nawigacji, 522 Model Obiektów Biznesowych, 170, 205, 516 model obiektów dziedziny, 170 model OSI, 606 model powiÈzañ jednostek konceptualnych, 170 Model Projektowy, 63, 128, 130, 165, 168, 205, 328, 357, 394 artefakty, 402 Model Przypadków Uĝycia, 63, 80, 87, 94, 128, 130, 142, 147, 205, 214, 215, 357, 532, 712 Model Wdroĝeniowy, 608 Model-Driven Architecture, 38 modele dynamiczne, 250 modele obiektowe, 250 modele statyczne, 250 Modelowanie Biznesowe, 63, 67, 153, 170, 516 modelowanie czynnoĂci, 509, 514 modelowanie dynamiczne, 250, 255 modelowanie graficzne, 41, 313 modelowanie iloĂci, 202 737 SKOROWIDZ modelowanie nawigacji UI, 520, 522 modelowanie obiektowe, 174 modelowanie obiektów zaleĝnych od stanu, 519 modelowanie procesu biznesowego, 511 modelowanie przepïywów danych, 511 modelowanie przy uĝyciu jÚzyka naturalnego, 178 modelowanie przyrostowe, 30 modelowanie ról, 558 modelowanie statyczne, 250 modelowanie Ăwiata nierzeczywistego, 182 modelowanie zmian stanów, 549 modelowanie zwinne, 31, 39, 58, 59, 69, 181, 248, 257 szkice diagramów UML, 60 szkicowanie diagramu klas, 181 tworzenie kilku równolegïych modeli, 248 wspólne modelowanie, 248 Model-View-Controller, 243, 341 Model-Widok-Kontroler, 243, 341, 698 Moment-Interval, 556 Monopoly, 74, 649 algorytm pÚtli gry, 384 architektura logiczna, 246 asocjacje, 194 atrybuty, 202 Board, 414 diagram przypadków uĝycia, 126 Die, 413 dynamiczna wspóïpraca zwiÈzana ze strategiÈ projektowÈ landedOn, 650 dynamiczny projekt operacji playGame, 389 Ekspert, 387 gracz, 415 Gracz, 651 inicjalizacja, 391 initialize, 391 iteracja-1, 160, 382 iteracja-2, 437, 442 iteracja-3, 508, 567 klasy konceptualne, 180 kod, 412 kontrakty operacji, 225 kostka, 413 model dziedziny, 194, 202, 316 Model Dziedziny, 382, 442, 566 Model Dziedziny w iteracji-3, 567 MonopolyGame, 386, 416 obsïuga kostki, 455 obsïuga róĝnych typów pól, 448 Piece, 413 pionek, 413 plansza, 414 Player, 415, 651 playGame, 320, 383, 388 pole, 412 Polimorfizm, 449 problem widocznoĂci, 388 PropertySquare, 651 próba zakupu, 651 przebieg tury, 388 przypadki uĝycia, 125, 126, 441 realizacja przypadków uĝycia, 382 Square, 412 statyczny projekt operacji playGame, 390 systemowe diagramy sekwencji, 213 udoskonalenie Modelu Dziedziny, 566 Uruchom system, 391 wymagania, 437 wymagania w iteracji-3, 508 zaleĝnoĂci kreacyjne, 392 zasada rozdzielania poleceñ i zapytañ, 390 Most, 459 multi-voting, 147 MVC, 243, 341, 698 myĂlenie kaskadowe, 52 N N+1 widoków architektonicznych, 688 nadklasy, 442, 538, 539 nadklasy abstrakcyjne, 486 nadklasy konceptualne, 539, 544 definiowanie, 544 najbardziej odpowiedzialny pakiet, 618 nakïadanie modelu kaskadowego na model iteracyjny, 51 napuchniÚty kontroler, 345 narzÚdzia UML CASE, 249, 427, 428, 429 natural language modeling, 178 nawiÈzywanie asocjacji, 219, 221, 223 nawigacja przez strony, 520 nawigacja UI, 520 nazwa marki, 577 nazwa Ăcieĝki, 600 Nazwij Problem, Nie RzucajÈcego, 631 nazwy ról w asocjacjach, 557 nazwy typów reprezentujÈcych adaptery, 469 nazwy zdarzeñ, 212 NextGen, 66, 73 aktor pierwszoplanowy, 117 Architektura Aplikacji, 692 architektura logiczna, 246, 596 asocjacje, 193 atrybuty, 201 Authorization Transactions, 564, 566 738 SKOROWIDZ ceny produktów, 556 Core/Misc, 563 diagramy czynnoĂci, 515 diagramy pakietów, 246 diagramy stanów, 523 endSale, 224, 368 enterItem, 224, 364, 367 fasada sesyjna, 602 hierarchia klas konceptualnych, 545 inicjalizacja, 378 iteracja-1, 160 iteracja-2, 435 iteracja-3, 508 kasa, 410 katalog produktów, 409 klasy pïatnoĂci, 545 klasy serwisu autoryzacji, 545 klasy transakcji autoryzacyjnych, 545 kod, 409 kompozycja w Modelu Dziedziny, 555 kontrakty operacji, 224, 572 kontrakty operacji systemowych, 441 kontrola urzÈdzeñ, 639 koñcowy DCD dla iteracji-1, 376 makeCheckPayment, 573 makeCreditPayment, 572 makeNewSale, 224, 362 makePayment, 225, 372 model dziedziny, 193, 201, 326 Model Dziedziny, 440, 536 moĝliwoĂÊ dziaïania po awarii, 624 nawiÈzanie wspóïpracy z usïugÈ informacji o produktach, 627 nieaktualne dane w cache, 628 notatki techniczne, 585 operacje systemowe, 224, 337, 358 opis produktu, 410 pakiety w Modelu Dziedziny, 562 Payment, 409 Payments, 563, 564 pïatnoĂci, 409, 564, 565 pïatnoĂci czekiem, 571 pïatnoĂci kartÈ kredytowÈ, 570 podïÈczanie warstwy UI do warstwy dziedzinowej, 377 powiÈzania pomiÚdzy warstwami i pakietami, 596 pozyskiwanie informacji o produktach, 626 ProductCatalog, 409 ProductDescription, 410 Products, 564, 565 produkty, 565 przedziaïy czasowe, 556 przypadki uĝycia, 98, 439 przypadki uĝycia w fazie rozpoczÚcia, 132 realizacja przypadków uĝycia, 361 Register, 410, 603 Reguïy Biznesowe, 140, 151 Sale, 411 Sales, 564, 565 SalesLineItem, 412 scenariusze, 358 scenariusze interakcji pomiÚdzy warstwami i pakietami, 599 skasowany produkt, 412 sklep, 412 Sïowniczek, 149 Specyfikacja Dodatkowa, 138 sprzedaĝ, 411 SSD, 440 Store, 412 strategie ïadowania danych do cache, 628 systemowe diagramy sekwencji, 209, 358, 569 tabela czynników architektonicznych, 582 transakcje autoryzacyjne, 566 trwaïe obiekty, 656 Uruchom system, 361, 378 uzasadnienie hierarchii serwisów autoryzacji, warstwy, 597 Wizja, 143 wsparcie dla zewnÚtrznych kalkulatorów podatków, 447 wspóïpraca z podsystemem trwaïych danych, 546 628 wybór klasy kontrolera, 362 wymagania w iteracji-3, 508 wzorzec Peïnomocnik, 635 zapisywanie obiektu sprzedaĝy w bazie danych, 454 zmiany w modelu dziedziny, 225 Nie rozmawiaj z obcymi, 462, 464 nieaktualne dane w cache, 628 nieformalny opis przypadku uĝycia, 92 niska spójnoĂÊ, 350, 352 Niskie SprzÚĝenie, 314, 318, 332, 334, 380, 607, 612 no operation, 450 nominal group technique, 147 NO-OP, 450 noĂniki danych, 607 notacja asocjacji, 188 notacja diagramów interakcji, 259 notacja diagramów klas, 282 notacja diagramów komunikacji, 273 739 SKOROWIDZ notacja diagramów sekwencji, 261 notacja „gniazda”, 296 notacja klas abstrakcyjnych, 549 notacja klas asocjacyjnych, 282 notacja opisu atrybutów, 195 notacja rysowania diagramów, 37 notatki techniczne, 585 motywacja, 585 nowy wzorzec, 312 numerowanie komunikatów, 274, 275 NUnit, 419 Nygaard Kristen, 42 O obiekt aktywny, 271, 301 obiekt wytwórczy, 473 obiektowe bazy danych, 656 obiektowoĂÊ, 34 obiekty identyfikator obiektu, 661 tworzenie, 474 widocznoĂÊ, 395 obiekty biznesowe, 520 obiekty dziedzinowe, 172, 240 Obiekty Dziedzinowe, 232 obiekty graniczne, 341 obiekty kontekstowe, 479 obiekty kontrolne, 341 obiekty niezaleĝne od stanu, 519 obiekty ograniczajÈce, 226 obiekty porównywane przez wartoĂci, 199 obiekty programistyczne, 315 obiekty przechowujÈce, 341 obiekty raportujÈce, 181 obiekty singletonowe, 260 obiekty UI, 346 obiekty wartoĂci, 607 obiekty zaleĝne od stanu, 519 obiekty zmieniajÈce rolÚ, 520 Object Constraint Language, 222, 226, 297 Object Management Group, 42 Object-Oriented Analysis and Design, 29 object-oriented programming, 42 Objectory, 42, 341 Obserwator, 244, 459, 495, 496, 497, 499, 605, 606, 612, 657 implementacja, 500, 501 zdarzenia, 500 obsïuga bïÚdów, 407, 629, 633 obsïuga operacji systemowych, 359 obsïuga pïatnoĂci kartÈ kredytowÈ, 648 740 obsïuga róĝnych typów pól, 448 obsïuga wyjÈtków, 636 obsïuga zdarzeñ asynchronicznych, 528 obsïuga zdarzeñ systemowych, 346 obsïuga zdarzeñ w okienku UI, 521 Obsïuĝ sprzedaĝ, 537 ocena stopnia sprzÚĝenia, 319 Ochrona ZmiennoĂci, 459, 460, 462, 465, 470, 576, 607, 612 OCL, 222, 226, 297 OCP, 466 odczyt wartoĂci procentowej, 482 oddzielanie modelu od widoku, 239, 242, 243, 612 odkrycia „analityczne” na poziomie projektowania, 471 odkrywanie wymagañ, 230 odpowiedzi, 262 odpowiedzialnoĂÊ, 308 odpowiedzialnoĂÊ pomiÚdzy klasami, 30 odpytywanie z góry, 612 odĂmiecacz, 263 odwoïania, 561 odwzorowanie artefaktów projektowych w kodzie, 401 odwzorowanie wyników projektowania w kodzie, 401, 403 odwzorowywacz bazodanowy, 659 Odwzorowywacz Bazodanowy, 662, 663 odwzorowywacze oparte o metadane, 664 ograniczanie zaleĝnoĂci od niestabilnych pakietów, 618 ograniczenia, 287, 291, 297 OID, 661, 681 Okno BïÚdu, 634 okreĂlanie aktor pierwszoplanowy, 115 granice systemu, 115 OMG, 42 OMT, 42 OOA/D, 21, 29, 32, 34, 41, 42, 54, 160 OOD, 255 open source, 139, 656 Open-Closed Principle, 466 operacje, 226, 288 operacje abstrakcyjne, 292, 293 operacje dostÚpowe, 2
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: