Obsah
Předmluva (13) Předmluva (14) O autorech (20) ČÁST I. AGILNÍ VÝVOJ SOFTWARU (21) Kapitola 1. Agilní postupy (23) - Agilní aliance (24)
- Manifest agilní aliance (24)
- Pravidla (27)
- Závěr (29)
- Bibliografie (29)
Kapitola 2. Přehled extrémního programování (31) - Extrémní programovací postupy (31)
- Zákazník je členem týmu (32)
- Uživatelské příběhy (32)
- Krátké cykly (32)
- Přejímací zkoušky (33)
- Párové programování (33)
- Programování řízené testem (34)
- Sdílené vlastnictví (34)
- Kontinuální integrace (34)
- Stabilní tempo (35)
- Otevřený pracovní prostor (35)
- Plánovací hra (35)
- Jednoduchý design (36)
- Refaktoring (37)
- Metafora (37)
- Závěr (38)
- Bibliografie (38)
Kapitola 3. Plánování (39) - Počáteční průzkum (40)
- Prototypování, dělení a rychlost (40)
- Plánování distribučních verzí 41
- Plánování iterací 41
- Plánování úkolů (41)
- Iterační kurz (42)
- Aplikace (43)
- Bibliografie (43)
Kapitola 4. Testování - Programování řízené testem (45)
- Příklad projektu ve stylu „test nejprve“ (46)
- Testovací izolace (47)
- Neočekávaně eliminace zpětné vazby
- Přejímací zkoušky (49)
- Příklad přejímacího testu (50)
- Architektura „mimochodem“ (51)
- Aplikace (51)
- Bibliografie (52)
Kapitola 5. Refaktorování (53) - Generování prvočísel - jednoduchý příklad refaktoringu 54
- Závěr (62)
- Bibliografie (63)
Kapitola 6. Epizoda programování (65) - Bowling (66)
- Aplikace (98)
ČÁST II. AGILE PROJECT (101) - Příznaky špatného designu 101
- Pravidla (101)
- Vůně a pravidla (102)
- Bibliografie (102)
Kapitola 7. Co je to agilní projekt? (103) - Co se stalo se softwarem? (103)
- Design Smells - The Smell of Broken Software (104)
- Co stimuluje software k zahynutí? (106)
- Agilní týmy nedovolí rozbití softwaru (106)
- Program kopírování (106)
- Příklad programu kopírování vytvořeného v souladu s agilní metodikou (109)
- Jak agilní vývojáři věděli, co mají dělat? (110)
- Udržujte svůj projekt v nejlepším stavu 110
- Aplikace (111)
- Bibliografie (111)
Kapitola 8. SRP - Princip jediné odpovědnosti (113) - SRP - zásada jediné odpovědnosti 113
- Co je to odpovědnost? (115)
- Oddělení souvisejících povinností 115
- Odolnost (116)
- Aplikace (116)
- Bibliografie (116)
Kapitola 9. OCP - Princip otevřeno-zavřeno (117) - OCP - zásada otevřeno-zavřeno (117)
- Popis (118)
- Klíčem je abstrakce (118)
- Tvarová aplikace (119)
- Porušení pravidel OCP (120)
- Dodržování zásady OCP (121)
- Přiznávám se. Lhal jsem (122)
- Predikce a "přirozená" struktura (122)
- Umístění "háčků" (123)
- Uplatňování abstrakcí k získání výslovného uzavření 124
- Použití přístupu k řízení dat k dosažení uzavření
- Aplikace (126)
- Bibliografie (126)
Kapitola 10 LSP - Zásada substituce Liskov 127 - LSP - Zásada substituce Liskov 127
- Jednoduchý příklad porušení pravidel LSP
- Čtverce a obdélníky - jemnější porušení pravidla LSP Pravidlo 129
- Skutečný problém (131)
- Správnost není vrozená (132)
- Vztah IS-A je o chování (132)
- Smlouva (132)
- Zadávání smluv při testování jednotek 133
- Skutečný příklad (133)
- Motivace (133)
- Problém (135)
- Řešení nekompatibilní s LSP
- Řešení vyhovující LSP 136
- Sekrece místo dědičnosti (137)
- Heuristika a konvence
- Degenerované funkce v odvozených třídách 140
- Zvyšování výjimek z odvozených tříd 140
- Poptávka (140)
- Bibliografie (140)
Kapitola 11. DIP - zásada inverze závislostí 139 - DIP - princip inverze závislostí 141
- Rozdělení do vrstev 142
- Zrušení vlastnictví (142)
- Závislost na abstrakci 143
- Jednoduchý příklad (144)
- Hledání potřebných abstrakcí 145
- Příklad pece 146
- Dynamický a statický polymorfismus
- Aplikace (148)
- Bibliografie (148)
Kapitola 12. ISP - Princip segregace rozhraní 149 - Nepořádek rozhraní
- Distinct Clients Mean Separate Interfaces
- Síla zákazníků ovlivňujících rozhraní
- ISP - Princip segregace rozhraní 151
- Rozhraní třídy versus rozhraní objektů
- Rozdělení podle pověření (152)
- Oddělení více dědičností 153
- Příklad uživatelského rozhraní bankomatu (153)
- Poptávka (159)
- Bibliografie (159)
ČÁST III. PŘÍPADOVÁ STUDIE: MZDOVÝ SYSTÉM (161) - Zbytková specifikace mzdového systému (162)
- Cvičení 162
- Příklad použití 1: Přidání nového zaměstnance
- Příklad použití 2: Odstranit pracovníka (163)
- Příklad použití 3: Poskytnutí listu (163)
- Případ použití č. 4: Doručení zprávy o prodeji (163)
- Případ použití 5: poskytování informací o poplatcích odborovým svazům (164)
- Případ použití 6: Změna údajů o zaměstnancích (164)
- Příklad použití 7: Generování mezd za den (164)
Kapitola 13. Příkaz Návrhové vzory a aktivní objekt 165 - Jednoduché příkazy
- Prodej (167)
- Rozdělení fyzického a dočasného kódu 168
- Rozdělení dočasného kódu (168)
- Metoda Zpět 169
- Aktivní zařízení (169)
- Závěr (173)
- Bibliografie (173)
Kapitola 14. Metoda a strategie šablony: Dědičnost versus delegace 175 - Metoda šablony 176
- Zneužití vzoru 178
- Třídění bublin
- Strategické (181)
- Aplikace (185)
- Bibliografie (185)
Kapitola 15. Návrhové vzory fasád a mediátorů (187) - Fasáda (187)
- Zprostředkovatel (188)
- Žádost (190)
- Bibliografie (190)
Kapitola 16 Návrhové vzory Singleton a Monostate 191 - Singleton (192)
- Výhody používání Singletonova vzoru
- Náklady na použití vzoru Singleton
- Návrhový vzor Singleton v praxi 193
- Monostate (194)
- Výhody používání vzoru Monostate
- Monostate náklady 196
- Návrhový vzor Monostate v praxi 196
- Závěr (200)
- Bibliografie (200)
Kapitola 17. Návrhový vzor Null Object 201 - Aplikace (204)
- Bibliografie (204)
Kapitola 18. Případová studie: mzdový systém. První iterace 205 - Vložení (205)
- Analýza podle případu použití
- Přidávání zaměstnanců
- Odstranění zaměstnanců (208)
- Dodání listu (209)
- Dodání prodejních zpráv (209)
- Poskytování informací o poplatcích odborovým svazům (210)
- Změna údajů o zaměstnancích (210)
- Výběry (212)
- Reflexe: co jsme se naučili? (214)
- Hledání požadovaných abstrakcí 214
- Plán abstrakce (214)
- Způsoby výběru (215)
- Členství v odborech (216)
- Poptávka (216)
- Bibliografie (216)
Kapitola 19. Případová studie: mzdový systém. Implementace (217) - Přidávání zaměstnanců (218)
- Mzdová databáze (219)
- Použití metody šablony šablony pro přidávání zaměstnanců
- Odstranění zaměstnanců (223)
- Pracovní listy, zprávy o prodeji a příspěvky (225)
- Změna údajů o zaměstnancích (231)
- Přeřazení (235)
- Co jsem kouřil? (240)
- Zpracování výběrů (244)
- Chceme, aby vývojáři činili obchodní rozhodnutí? (246)
- Zpracování plateb zaměstnancům s pevným platem (246)
- Platby za zaměstnance pracující v hodinovém systému (248)
- Fakturační období: Designové číslo 251
- Hlavní program (257)
- Databáze (257)
- Shrnutí návrhu mzdového systému (258)
- Historie (259)
- Zdroje (259)
- Bibliografie (259)
ČÁST IV. ROZDĚLENÍ MZDOVÉHO SYSTÉMU DO BALENÍ (261) Kapitola 20. Zásady návrhu balíčku 263 - Navrhování s balíčky? (263)
- Podrobnost: Konzistence paketů
- Rovnocennost a distribuce kódu (REP)
- Kolektivní opakovaně použitelný princip (CRP) (265)
- Zásada kolektivního blokování (CCP) (266)
- Shrnutí konzistence balíčku 266
- Stabilita: Principy propojení paketů
- Princip acyklických závislostí (ADP) 267
- Týdenní sestavení (267)
- Odstranění cyklů závislostí 268
- Účinky cyklů v grafu závislosti balíku 269
- Cyklus lámání 270
- Variace (270)
- Design nahoru a dolů (271)
- Princip stabilní závislosti (SDP) 272
- Stabilita (272)
- Metriky stability
- Ne všechny balíčky musí být stabilní
- Kam by měla jít implementace designu na vysoké úrovni? (276)
- Princip stabilní abstrakce (SAP) 276
- Měření abstrakcí 276
- Hlavní sekvence (277)
- Vzdálenost od hlavní linky (278)
- Poptávka (280)
Kapitola 21. Tovární návrhový vzor - Závislostní cyklus 283
- Zaměnit továrny (284)
- Použití továrního vzoru k vytvoření testovacích sad
- Důležitost využívání továren (286)
- Závěr (287)
- Bibliografie (287)
Kapitola 22. Případová studie: Mzdový systém (část 2) (289) - Struktura paketu a notace
- Uplatňování zásady kolektivního uzavírání (CCP) (291)
- Aplikace pro opětovné použití kódu a distribuční ekvivalenci (REP) 292
- Spojky a zapouzdření
- Metriky (296)
- Uplatňování indikátorů na mzdovou aplikaci (297)
- Továrny na výrobu objektů (300)
- Továrna objektů pro balíček TransactionImplementation (300)
- Inicializace továren
- Přestavba mezí konzistence
- Konečná struktura balíků
- Žádost (304)
- Bibliografie (304)
ČÁST V. PŘÍPADOVÁ STUDIE: POČASÍ (305) Kapitola 23. Složený vzor 307 - Příklad: Složené příkazy 308
- Více nebo ne více 309
Kapitola 24 Pozorovatel - vývoj kódu k vzoru 311 - Digitální hodiny (311)
- Aplikace (326)
- Použití diagramů v této kapitole 327
- Návrhový vzor pozorovatele
- Správa objektově orientovaných návrhových pravidel pro návrhový vzor pozorovatele
- Bibliografie (329)
Kapitola 25: Návrhové vzory Abstrakt Server a Bridge 331 - Návrhový vzor Abstraktní server 332
- Kdo je vlastníkem rozhraní? (333)
- Návrhový vzor adaptéru 333
- Navrhněte vzor Adaptér jako třídu
- Problém s modemem. Adaptéry a princip LSP 334
- Návrhový vzor mostu 338
- Aplikace (339)
- Bibliografie (340)
Kapitola 26 Návrhové vzory serveru proxy a schodiště do nebe - správa externích API - Reprezentativní vzor návrhu (342)
- Implementace návrhového vzoru Proxy v aplikaci nákupního košíku (345)
- Shrnutí reprezentativního vzorového vzoru 356
- Podpora databází, middlewaru a externích API (357)
- Schodiště do nebe (359)
- Příklad použití vzoru Schodiště do nebe (360)
- Aplikace (365)
- Další návrhové vzory, které lze použít s databázemi 365
- Poptávka (366)
- Bibliografie (366)
Kapitola 27. Případová studie: Meteorologická stanice (367) - Cloudová společnost (367)
- Software WMS-LC (369)
- Výběr jazyka (369)
- Systémový softwarový projekt Nimbus-LC (369)
- 24hodinová historie a nahrávání (382)
- Implementace HiLo algoritmů 384
- Poptávka (391)
- Bibliografie (391)
- Recenze softwarových požadavků Nimbus-LC 391
- Provozní požadavky (391)
- 24hodinová historie (392)
- Konfigurace uživatele (392)
- Administrativní požadavky (392)
- Případy použití Nimbus-LC 393
- Herci (393)
- Pouzdra na použití (393)
- Historie měření (393)
- Konfigurace (393)
- Správa (393)
- Plán vydání distribuce Nimbus-LC (394)
- Vložení (394)
- Vydání I (394)
- Hrozby (394)
- Produkty projektu (395)
- Vydání II (395)
- Implementované případy použití
- Hrozby (395)
- Produkty projektu (395)
- Vydání III (396)
- Implementované případy použití
- Hrozby (396)
- Produkty projektu (396)
ČÁST VI. PŘÍPADOVÁ STUDIE: ETS (397) Kapitola 28. Návrhový vzor návštěvníka 399 - Návštěvník rodiny designových vzorů (400)
- Návštěvník (400)
- Návrhový vzor Návštěvník funguje jako matice 403
- Návrhový vzor Acyclic Visitor (403)
- Návrhový vzor Návštěvník funguje jako řídká matice 407
- Použití návrhového vzoru návštěvníka v generátorech sestav
- Jiná použití pro návrhový vzor návštěvníka
- Dekorativní návrhový vzor 413
- Objekt rozšíření návrhového vzoru 418
- Poptávka (426)
- Bibliografie (426)
Kapitola 29 Návrhový vzor stavu 427 - Recenze Finite State Machines 427
- Implementační techniky
- Vnořené příkazy přepínače / případy 429
- Interpretace přechodové tabulky 432
- Návrhový vzor stavu 433
- SMC - State Machine Compiler (436)
- Kdy by se měly používat státní stroje? (439)
- Strategie zpracování GUI na vysoké úrovni 439
- Správci interakce s GUI
- Distribuované výpočty
- Poptávka (441)
- Nabídky (441)
- Implementace třídy Turnstile.java pomocí interpretace tabulky přechodů
- Třída Turnstile.java generovaná kompilátorem SMC a dalšími podpůrnými soubory
- Bibliografie (447)
Kapitola 30 Rámec ETS 449 - Vložení (449)
- Recenze informací o projektu 449
- Počáteční období 1993-1994 (451)
- Rámec? (451)
- Rámec (452)
- Kapela z roku 1994 (452)
- Termín (452)
- Strategické (452)
- Výsledky (453)
- Návrh rámce (454)
- Společné požadavky na žádosti o posouzení
- Návrh skórovacího rámce 456
- Pouzdro vzorové metody Metoda šablony 459
- Napište smyčku jednou (460)
- Společné požadavky pro přihlášku na zkoušku (463)
- The Passing Framework Design (463)
- Architektura správce úloh
- Aplikace (472)
- Bibliografie (472)
Dodatek A. Notace UML. Část I: Příklad CGI 473 - Systém záznamu kurzu: Popis problému 474
- Herci (475)
- Pouzdra na použití (475)
- Doménový model
- Architektura (482)
- Abstraktní třídy a rozhraní v sekvenčních diagramech
- Shrnutí (494)
- Bibliografie (494)
Dodatek B. Notace UML. Část II: STATMUX (495) - Definice statistického multiplexeru
- Softwarové prostředí (496)
- Limity v reálném čase
- Rutiny zpracování přerušení vstupu 497
- Rutiny zpracování přerušení výstupu 501
- Komunikační protokoly (502)
- Závěr (512)
- Bibliografie (512)
Dodatek C. Satira ve dvou podnicích (513) - Rufus! Inc. Project Kickoff (513)
- Rupert Industries Project Alpha (513)
Dodatek D. Zdrojový kód je projekt (525) - Co je to softwarový design? (525)
Rejstřík (535) |