Tytuł: | Inżynieria oprogramowania w ujęciu obiektowym UML, wzorce projektowe i Java | | Autor: | Bernd Bruegge, Allen H. Dutoit | | ISBN: | 978-83-246-2872-8 | | Ilość stron: | 872 | | Data wydania: | 03/2012 | | Oprawa: | Twarda | | Format: | 172x245 | | Wydawnictwo: | HELION | |
| Cena: | 129.00zł | |
Sprawdź, jak sprawnie i bezbłędnie projektować systemy informatyczne!
- Czym jest inżynieria oprogramowania?
- Jak zapanować nad wszystkimi aspektami procesu projektowania?
- Jak wygląda cykl życia oprogramowania?
Projektowanie systemów informatycznych to zadanie bardzo skomplikowane. Ogromna liczba zależności, zasad i wyjątków od nich sprawia, że nie jest możliwe podejście do tego zadania ot tak, z marszu. Zbieranie i analiza wymagań, przygotowanie diagramów klas, aktywności, stanów czy interakcji to tylko część etapów, z którymi musi poradzić sobie projektant. Jeżeli nałożyć na to wszystko wzorce projektowe, stajemy przed prawie nierozwiązywalnym zadaniem. Na szczęście — prawie!
Dzięki tej książce dowiesz się, jak sprostać temu karkołomnemu zadaniu! W trakcie lektury poznasz język UML, który wprowadził porządek w tym skomplikowanym procesie, oraz podstawowe koncepcje inżynierii oprogramowania. Nauczysz się zarządzać procesem tworzenia oprogramowania, zbierać oraz analizować wymagania, identyfikować podsystemy, specyfikować interfejsy oraz testować. Znajdziesz tu wszystko na temat zarządzania zmianami. W trakcie lektury sprawdzisz, jak wygląda cykl życia oprogramowania oraz jak zarządzać konfiguracją. Dodatkowo poznasz metodologię działań, które doprowadzą Cię do wyznaczonego celu. Książka ta stanowi obowiązkową pozycję dla każdego projektanta oraz analityka. Jednak programiści również znajdą tu wiele cennych wskazówek!
- Niepowodzenia w inżynierii oprogramowania
- Podstawowe koncepcje inżynierii oprogramowania
- Modelowanie przy użyciu języka UML
- Organizacja projektu
- Narzędzie do komunikacji grupowej
- Proces zbierania wymagań
- Identyfikacja aktorów, scenariuszy oraz przypadków użycia
- Określanie obiektów modelu analitycznego
- Analiza wymagań
- Dekompozycja systemu na podsystemy
- Identyfikacja celów projektowych
- Projektowanie obiektów
- Wzorce projektowe
- Specyfikowanie interfejsów
- Odwzorowywanie modelu na kod
- Testowanie
- Zarządzanie zmianami i konfiguracją
- Cykl życia oprogramowania
- Metodologie
Dobry projekt systemu to podstawa sukcesu.
Spis treści:
CZĘŚĆ I: Zaczynamy (33) Rozdział 1. Wprowadzenie do inżynierii oprogramowania (35)
- 1.1. Wprowadzenie: niepowodzenia w inżynierii oprogramowania (36)
- 1.2. Czym jest inżynieria oprogramowania? (38)
- 1.2.1. Modelowanie (38)
- 1.2.2. Rozwiązywanie problemów (40)
- 1.2.3. Pozyskiwanie wiedzy (41)
- 1.2.4. Racjonalizacja (42)
- 1.3. Podstawowe koncepcje inżynierii oprogramowania (43)
- 1.3.1. Uczestnicy i role (44)
- 1.3.2. Systemy i modele (46)
- 1.3.3. Produkty (46)
- 1.3.4. Aktywności, zadania i zasoby (47)
- 1.3.5. Wymagania funkcyjne i pozafunkcyjne (48)
- 1.3.6. Notacje, metody i metodologie (48)
- 1.4. Aktywności inżynierii oprogramowania (49)
- 1.4.1. Zbieranie wymagań (50)
- 1.4.2. Analiza (51)
- 1.4.3. Projekt systemu (51)
- 1.4.4. Projektowanie obiektów (53)
- 1.4.5. Implementowanie (53)
- 1.4.6. Testowanie (54)
- 1.5. Zarządzanie tworzeniem oprogramowania (54)
- 1.5.1. Komunikacja (55)
- 1.5.2. Zarządzanie racjonalizacją (55)
- 1.5.3. Zarządzanie konfiguracją oprogramowania (56)
- 1.5.4. Zarządzanie projektem (56)
- 1.5.5. Cykl życiowy oprogramowania (56)
- 1.5.6. Podsumowanie (57)
- 1.6. Analiza przypadku - system ARENA (57)
- 1.7. Literatura uzupełniająca (58)
- 1.8. Ćwiczenia (59)
Rozdział 2. Modelowanie w języku UML (63)
- 2.1. Wprowadzenie (64)
- 2.2. Ogólnie o UML (65)
- 2.2.1. Diagramy przypadków użycia (65)
- 2.2.2. Diagramy klas (65)
- 2.2.3. Diagramy interakcji (67)
- 2.2.4. Diagram stanów (67)
- 2.2.5. Diagramy aktywności (68)
- 2.3. Podstawowe koncepcje modelowania (69)
- 2.3.1. Systemy, modele i widoki (69)
- 2.3.2. Typy danych, abstrakcyjne typy danych i instancje (72)
- 2.3.3. Klasy, klasy abstrakcyjne i obiekty (73)
- 2.3.4. Klasy zdarzeniowe, zdarzenia i komunikaty (75)
- 2.3.5. Modelowanie zorientowane obiektowo (76)
- 2.3.6. Falsyfikacja i prototypowanie (77)
- 2.4. UML - głębszy wgląd (78)
- 2.4.1. Diagramy przypadków użycia (79)
- 2.4.2. Diagramy klas (86)
- 2.4.3. Diagramy interakcji (95)
- 2.4.4. Diagramy stanów (98)
- 2.4.5. Diagramy aktywności (101)
- 2.4.6. Organizacja diagramów (104)
- 2.4.7. Rozszerzenia diagramów (106)
- 2.5. Literatura uzupełniająca (107)
- 2.6. Ćwiczenia (108)
Rozdział 3. Organizacja projektu i komunikacja (113)
- 3.1. Wstęp - katastrofa Ariane (114)
- 3.2. O projekcie ogólnie (115)
- 3.3. Koncepcje organizacyjne projektu (119)
- 3.3.1. Organizacja projektów (119)
- 3.3.2. Role w realizacji projektu (122)
- 3.3.3. Zadania i produkty (124)
- 3.3.4. Harmonogramy (126)
- 3.4. Koncepcje komunikacyjne projektu (128)
- 3.4.1. Komunikacja planowa (128)
- 3.4.2. Komunikacja pozaplanowa (135)
- 3.4.3. Mechanizmy komunikacyjne (138)
- 3.5. Aktywności organizacyjne (146)
- 3.5.1. Dołączanie do zespołu (146)
- 3.5.2. Dołączanie do infrastruktury komunikacyjnej (146)
- 3.5.3. Udział w zebraniach zespołu (147)
- 3.5.4. Organizacja przeglądów (149)
- 3.6. Literatura uzupełniająca (151)
- 3.7. Ćwiczenia (152)
CZĘŚĆ II: Zmagania ze złożonością (155) Rozdział 4. Zbieranie wymagań (157)
- 4.1. Wstęp: przykłady problemów z użytecznością (158)
- 4.2. O zbieraniu wymagań ogólnie (159)
- 4.3. Koncepcje zbierania wymagań (161)
- 4.3.1. Wymagania funkcyjne (161)
- 4.3.2. Wymagania pozafunkcyjne (162)
- 4.3.3. Kompletność, spójność, jednoznaczność i poprawność (164)
- 4.3.4. Realizm, weryfikowalność i identyfikowalność (165)
- 4.3.5. Inżynieria pierwotna, inżynieria wtórna i inżynieria interfejsu (165)
- 4.4. Aktywności związane ze zbieraniem wymagań (166)
- 4.4.1. Identyfikacja aktorów (167)
- 4.4.2. Identyfikacja scenariuszy (169)
- 4.4.3. Identyfikacja przypadków użycia (171)
- 4.4.4. Doskonalenie przypadków użycia (173)
- 4.4.5. Identyfikacja relacji między aktorami a przypadkami użycia (176)
- 4.4.6. Początkowa identyfikacja obiektów modelu analitycznego (179)
- 4.4.7. Identyfikacja wymagań pozafunkcyjnych (182)
- 4.5. Zarządzanie zbieraniem wymagań (183)
- 4.5.1. Negocjowanie specyfikacji z klientem: metoda Joint Application Design (185)
- 4.5.2. Zarządzanie identyfikowalnością (187)
- 4.5.3. Dokumentowanie zbierania wymagań (188)
- 4.6. Analiza przypadku - system ARENA (190)
- 4.6.1. Wstępna deklaracja problemu (190)
- 4.6.2. Identyfikacja aktorów i scenariuszy (192)
- 4.6.3. Identyfikacja przypadków użycia (195)
- 4.6.4. Doskonalenie przypadków użycia i identyfikacja relacji (198)
- 4.6.5. Identyfikacja wymagań pozafunkcyjnych (204)
- 4.6.6. Wnioski (204)
- 4.7. Literatura uzupełniająca (205)
- 4.8. Ćwiczenia (207)
Rozdział 5. Analiza wymagań (211)
- 5.1. Wstęp: złudzenie optyczne (212)
- 5.2. O analizie wymagań ogólnie (212)
- 5.3. Koncepcje analizy wymagań (214)
- 5.3.1. Analityczny model obiektowy i modele dynamiczne (214)
- 5.3.2. Obiekty encji, obiekty brzegowe i obiekty sterujące (215)
- 5.3.3. Generalizacja i specjalizacja (216)
- 5.4. Aktywności analizy wymagań: od przypadków użycia do obiektów (217)
- 5.4.1. Identyfikacja obiektów encji (218)
- 5.4.2. Identyfikacja obiektów brzegowych (220)
- 5.4.3. Identyfikacja obiektów sterujących (222)
- 5.4.4. Odwzorowywanie przypadków użycia w obiekty za pomocą diagramów sekwencji (224)
- 5.4.5. Modelowanie interakcji między obiektami za pomocą kart CRC (228)
- 5.4.6. Identyfikacja skojarzeń (228)
- 5.4.7. Identyfikacja agregacji (231)
- 5.4.8. Identyfikacja atrybutów (232)
- 5.4.9. Modelowanie zachowania poszczególnych obiektów uzależnionego od ich stanu (233)
- 5.4.10. Modelowanie relacji dziedziczenia między obiektami (234)
- 5.4.11. Przeglądy modelu analitycznego (235)
- 5.4.12. Podsumowanie analizy (236)
- 5.5. Zarządzanie analizą wymagań (237)
- 5.5.1. Dokumentowanie analizy wymagań (238)
- 5.5.2. Przydzielanie odpowiedzialności (239)
- 5.5.3. Komunikacja w związku z analizą wymagań (240)
- 5.5.4. Iteracje modelu analitycznego (241)
- 5.5.5. Uzgodnienie modelu analitycznego z klientem (243)
- 5.6. Analiza przypadku - system ARENA (245)
- 5.6.1. Identyfikacja obiektów encji (245)
- 5.6.2. Identyfikacja obiektów brzegowych (250)
- 5.6.3. Identyfikacja obiektów sterujących (251)
- 5.6.4. Modelowanie interakcji między obiektami (252)
- 5.6.5. Weryfikacja i konsolidacja modelu analitycznego (254)
- 5.6.6. Wnioski (256)
- 5.7. Literatura uzupełniająca (258)
- 5.8. Ćwiczenia (258)
Rozdział 6. Projektowanie systemu - dekompozycja na podsystemy (263)
- 6.1. Wstęp: projekt mieszkania (264)
- 6.2. O projektowaniu systemu ogólnie (266)
- 6.3. Koncepcje projektowania systemu (267)
- 6.3.1. Podsystemy i klasy (268)
- 6.3.2. Usługi i interfejsy podsystemów (270)
- 6.3.3. Sprzężenie i spoistość (271)
- 6.3.4. Warstwy i partycje (275)
- 6.3.5. Style architektoniczne (279)
- 6.4. Aktywności projektowania systemu: od obiektów do podsystemów (288)
- 6.4.1. Punkt wyjścia: model analityczny systemu planowania podróży (288)
- 6.4.2. Identyfikowanie celów projektowych (290)
- 6.4.3. Identyfikowanie podsystemów (294)
- 6.5. Literatura uzupełniająca (296)
- 6.6. Ćwiczenia (297)
Rozdział 7. Projekt systemu: realizacja celów projektowych (301)
- 7.1. Wstęp: przykład redundancji (302)
- 7.2. O aktywnościach projektowania systemu ogólnie (303)
- 7.3. Koncepcje: diagramy wdrażania UML (304)
- 7.4. Aktywności realizacji celów projektowych (306)
- 7.4.1. Odwzorowywanie podsystemów w procesory i komponenty (306)
- 7.4.2. Identyfikowanie trwałych danych i ich przechowywanie (309)
- 7.4.3. Definiowanie założeń kontroli dostępu (312)
- 7.4.4. Projektowanie globalnego przepływu sterowania (319)
- 7.4.5. Identyfikowanie usług (321)
- 7.4.6. Identyfikowanie warunków granicznych (323)
- 7.4.7. Weryfikowanie projektu systemu (326)
- 7.5. Zarządzanie projektowaniem systemu (328)
- 7.5.1. Dokumentowanie projektu systemu (328)
- 7.5.2. Przydzielanie odpowiedzialności (330)
- 7.5.3. Komunikacja w projektowaniu systemu (331)
- 7.5.4. Iteracje projektowania systemu (333)
- 7.6. Analiza przypadku - system ARENA (334)
- 7.6.1. Identyfikowanie celów projektowych (335)
- 7.6.2. Identyfikowanie podsystemów (336)
- 7.6.3. Odwzorowanie podsystemów w procesory i komponenty (337)
- 7.6.4. Identyfikowanie i przechowywanie trwałych danych (339)
- 7.6.5. Definiowanie założeń kontroli dostępu (340)
- 7.6.6. Projektowanie globalnego przepływu sterowania (341)
- 7.6.7. Identyfikowanie usług (343)
- 7.6.8. Identyfikowanie warunków granicznych (345)
- 7.6.9. Wnioski (347)
- 7.7. Literatura uzupełniająca (348)
- 7.8. Ćwiczenia (348)
Rozdział 8. Projektowanie obiektów: wielokrotne wykorzystywanie rozwiązań wzorcowych (353)
- 8.1. Wstęp: wpadki produkcyjne (354)
- 8.2. O projektowaniu obiektów ogólnie (355)
- 8.3. Koncepcja wielokrotnego wykorzystywania - dziedziczenie, delegowanie i wzorce projektowe (359)
- 8.3.1. Obiekty aplikacyjne i obiekty realizacyjne (359)
- 8.3.2. Dziedziczenie implementacyjne i dziedziczenie specyfikacyjne (360)
- 8.3.3. Delegowanie (363)
- 8.3.4. Zasada zastępowania Liskov (364)
- 8.3.5. Delegowanie i dziedziczenie we wzorcach projektowych (364)
- 8.4. Wybór wzorców projektowych i gotowych komponentów (367)
- 8.4.1. Hermetyzacja przechowywania danych za pomocą wzorca projektowego Most (368)
- 8.4.2. Hermetyzacja niekompatybilnych komponentów za pomocą wzorca projektowego Adapter (371)
- 8.4.3. Hermetyzacja kontekstu za pomocą wzorca projektowego Strategia (373)
- 8.4.4. Hermetyzacja platformy za pomocą wzorca projektowego Fabryka abstrakcyjna (376)
- 8.4.5. Hermetyzacja przepływu sterowania za pomocą wzorca projektowego Polecenie (377)
- 8.4.6. Hermetyzacja hierarchii za pomocą wzorca projektowego Kompozyt (378)
- 8.4.7. Heurystyki wyboru wzorców projektowych (379)
- 8.4.8. Identyfikowanie i przystosowywanie frameworków aplikacyjnych (381)
- 8.5. Zarządzanie wykorzystywaniem gotowych rozwiązań (386)
- 8.5.1. Dokumentowanie wykorzystywania gotowych rozwiązań (388)
- 8.5.2. Przydzielanie odpowiedzialności (389)
- 8.6. Analiza przypadku - system ARENA (390)
- 8.6.1. Zastosowanie wzorca projektowego Fabryka abstrakcyjna (390)
- 8.6.2. Zastosowanie wzorca projektowego Polecenie (392)
- 8.6.3. Zastosowanie wzorca projektowego Obserwator (393)
- 8.6.4. Wnioski (393)
- 8.7. Literatura uzupełniająca (394)
- 8.8. Ćwiczenia (395)
Rozdział 9. Projektowanie obiektów: specyfikowanie interfejsów (399)
- 9.1. Wstęp: kolej miejska i tramwaje (400)
- 9.2. O specyfikowaniu interfejsów ogólnie (401)
- 9.3. Koncepcje specyfikowania interfejsów (403)
- 9.3.1. Implementator, ekstender i użytkownik klasy (403)
- 9.3.2. Typy, sygnatury i widzialność (403)
- 9.3.3. Kontrakty: niezmienniki, warunki wstępne i warunki końcowe (406)
- 9.3.4. Język OCL (Object Constraint Language) (407)
- 9.3.5. Kolekcje OCL: zbiory, wielozbiory i ciągi (411)
- 9.3.6. Kwantyfikatory OCL: forAll() i exists() (415)
- 9.4. Aktywności specyfikowania interfejsów (416)
- 9.4.1. Identyfikowanie brakujących atrybutów i operacji (417)
- 9.4.2. Specyfikowanie typów, sygnatur i widzialności (418)
- 9.4.3. Specyfikowanie warunków wstępnych i warunków końcowych (419)
- 9.4.4. Specyfikowanie niezmienników (421)
- 9.4.5. Dziedziczenie kontraktów (424)
- 9.5. Zarządzanie projektowaniem obiektów (425)
- 9.5.1. Dokumentowanie projektowania obiektów (425)
- 9.5.2. Przydzielanie odpowiedzialności (431)
- 9.5.3. Wykorzystywanie kontraktów w analizie wymagań (432)
- 9.6. Analiza przypadku - system ARENA (433)
- 9.6.1. Identyfikowanie brakujących operacji w klasach TournamentStyle i Round (434)
- 9.6.2. Specyfikowanie kontraktów dla klas TournamentStyle i Round (435)
- 9.6.3. Specyfikowanie kontraktów dla klas KnockOutStyle i KnockOutRound (438)
- 9.6.4. Wnioski (439)
- 9.7. Literatura uzupełniająca (440)
- 9.8. Ćwiczenia (440)
Rozdział 10. Odwzorowywanie modelu na kod (445)
- 10.1. Wstęp: Władca Pierścieni (446)
- 10.2. O odwzorowywaniu ogólnie (447)
- 10.3. Koncepcje odwzorowywania (448)
- 10.3.1. Transformowanie modelu (449)
- 10.3.2. Refaktoryzacja (450)
- 10.3.3. Inżynieria postępująca (452)
- 10.3.4. Inżynieria odwracająca (452)
- 10.3.5. Zasady transformacji (453)
- 10.4. Aktywności odwzorowywania (454)
- 10.4.1. Optymalizowanie modelu obiektowego (455)
- 10.4.2. Odwzorowywanie skojarzeń na kolekcje (458)
- 10.4.3. Odwzorowywanie kontraktów w wyjątki (465)
- 10.4.4. Odwzorowywanie modelu obiektowego w schematy bazy danych (469)
- 10.5. Zarządzanie transformacjami (475)
- 10.5.1. Dokumentowanie transformacji (475)
- 10.5.2. Przydzielanie odpowiedzialności (477)
- 10.6. Analiza przypadku - system ARENA (478)
- 10.6.1. Statystyki systemu ARENA (478)
- 10.6.2. Odwzorowywanie skojarzeń na kolekcje (480)
- 10.6.3. Odwzorowywanie kontraktów w wyjątki (482)
- 10.6.4. Odwzorowywanie modelu obiektowego w schemat bazy danych (484)
- 10.6.5. Wnioski (485)
- 10.7. Literatura uzupełniająca (485)
- 10.8. Ćwiczenia (486)
Rozdział 11. Testowanie (491)
- 11.1. Wstęp: testowanie wahadłowców (492)
- 11.2. O testowaniu ogólnie (494)
- 11.3. Koncepcje związane z testowaniem (498)
- 11.3.1. Usterki, błędne stany i awarie (500)
- 11.3.2. Przypadki testowe (503)
- 11.3.3. Namiastki testowe i sterowniki testowe (505)
- 11.3.4. Poprawki (505)
- 11.4. Aktywności związane z testowaniem (506)
- 11.4.1. Inspekcja komponentu (507)
- 11.4.2. Testowanie użyteczności (508)
- 11.4.3. Testowanie jednostkowe (510)
- 11.4.4. Testowanie integracyjne (519)
- 11.4.5. Testowanie systemu (526)
- 11.5. Zarządzanie testowaniem (531)
- 11.5.1. Planowanie testów (532)
- 11.5.2. Dokumentowanie testowania (532)
- 11.5.3. Przydzielanie odpowiedzialności (536)
- 11.5.4. Testowanie regresyjne (537)
- 11.5.5. Automatyzacja testowania (538)
- 11.5.6. Testowanie bazujące na modelach (539)
- 11.6. Literatura uzupełniająca (541)
- 11.7. Ćwiczenia (543)
CZĘŚĆ III: Zarządzanie zmianami (547) Rozdział 12. Zarządzanie racjonalizacją (549)
- 12.1. Wstęp: przycinanie wędzonej szynki (550)
- 12.2. O racjonalizacji ogólnie (551)
- 12.3. Koncepcje racjonalizacji (554)
- 12.3.1. CTC - system centralnego sterowania ruchem (555)
- 12.3.2. Definiowanie problemów: zagadnienia (556)
- 12.3.3. Eksploracja przestrzeni rozwiązań: propozycje (557)
- 12.3.4. Wartościowanie elementów przestrzeni rozwiązań: kryteria i argumenty (559)
- 12.3.5. Kolapsacja przestrzeni rozwiązań: rozstrzygnięcie (560)
- 12.3.6. Implementowanie rozstrzygnięć: elementy działania (561)
- 12.3.7. Przykłady modeli zagadnień i ich realizacje (562)
- 12.4. Aktywności racjonalizacji - od zagadnień do decyzji (567)
- 12.4.1. Projekt systemu CTC (568)
- 12.4.2. Kolekcjonowanie racjonalizacji w ramach zebrań (569)
- 12.4.3. Asynchroniczne kolekcjonowanie racjonalizacji (577)
- 12.4.4. Racjonalizacja dyskutowanych zmian (579)
- 12.4.5. Rekonstruowanie racjonalizacji (582)
- 12.5. Kierownicze aspekty zarządzania racjonalizacją (585)
- 12.5.1. Dokumentowanie racjonalizacji (585)
- 12.5.2. Przypisywanie odpowiedzialności (587)
- 12.5.3. Heurystyki komunikowania racjonalizacji (588)
- 12.5.4. Modelowanie i negocjowanie zagadnień (589)
- 12.5.5. Strategie rozwiązywania konfliktów (590)
- 12.6. Literatura uzupełniająca (592)
- 12.7. Ćwiczenia (593)
Rozdział 13. Zarządzanie konfiguracją (597)
- 13.1. Wstęp: samoloty (598)
- 13.2. O zarządzaniu konfiguracją ogólnie (600)
- 13.3. Koncepcje zarządzania konfiguracją (602)
- 13.3.1. Elementy konfiguracji i agregaty CM (603)
- 13.3.2. Wersje i konfiguracje (604)
- 13.3.3. Żądania zmian (604)
- 13.3.4. Promocje i emisje (605)
- 13.3.5. Repozytoria i przestrzenie robocze (606)
- 13.3.6. Schematy identyfikowania wersji (606)
- 13.3.7. Zmiany i zbiory zmian (608)
- 13.3.8. Narzędzia wspomagające zarządzanie konfiguracją (610)
- 13.4. Aktywności tworzące zarządzanie konfiguracją (611)
- 13.4.1. Identyfikowanie elementów konfiguracji i agregatów CM (613)
- 13.4.2. Zarządzanie promocjami (615)
- 13.4.3. Zarządzanie emisjami (616)
- 13.4.4. Zarządzanie gałęziami (619)
- 13.4.5. Zarządzanie wariantami (623)
- 13.4.6. Zarządzanie propozycjami zmian i ich implementowaniem (626)
- 13.5. Kierownicze aspekty zarządzania konfiguracją (627)
- 13.5.1. Dokumentowanie zarządzania konfiguracją (627)
- 13.5.2. Przypisywanie odpowiedzialności (628)
- 13.5.3. Planowanie aktywności w ramach zarządzania konfiguracją (629)
- 13.5.4. Integracja ciągła jako optymalizacja zarządzania promocjami i ich testowaniem (630)
- 13.6. Literatura uzupełniająca (632)
- 13.7. Ćwiczenia (633)
Rozdział 14. Zarządzanie projektem (637)
- 14.1. Wstęp: uruchomienie misji STS-51L (638)
- 14.2. O zarządzaniu projektem ogólnie (639)
- 14.3. Koncepcje zarządzania projektem (646)
- 14.3.1. Zadania i aktywności (646)
- 14.3.2. Produkty, pakiety pracy i role (646)
- 14.3.3. Struktura podziału pracy (648)
- 14.3.4. Model zadań (649)
- 14.3.5. Macierz kwalifikacji (650)
- 14.3.6. Plan zarządzania projektem (651)
- 14.4. Aktywności klasycznego zarządzania projektem (653)
- 14.4.1. Planowanie projektu (654)
- 14.4.2. Organizowanie projektu (659)
- 14.4.3. Kontrolowanie projektu (665)
- 14.4.4. Kończenie projektu (671)
- 14.5. Aktywności "zwinnej" realizacji projektu (673)
- 14.5.1. Planowanie projektu: wykazy zaległości produktu i przebiegu (674)
- 14.5.2. Organizowanie projektu (675)
- 14.5.3. Kontrolowanie projektu: dni robocze i wykresy wygaszania (675)
- 14.5.4. Kończenie projektu: przeglądy przebiegów (677)
- 14.6. Literatura uzupełniająca (677)
- 14.7. Ćwiczenia (679)
Rozdział 15. Cykl życiowy oprogramowania (683)
- 15.1. Wstęp: nawigacja polinezyjska (684)
- 15.2. IEEE 1074: standard cykli życiowych (688)
- 15.2.1. Procesy i aktywności (688)
- 15.2.2. Modelowanie cyklu życiowego (690)
- 15.2.3. Zarządzanie projektem (690)
- 15.2.4. Prerealizacja (691)
- 15.2.5. Realizacja - tworzenie systemu (692)
- 15.2.6. Postrealizacja (693)
- 15.2.7. Procesy integralne (międzyrealizacyjne) (694)
- 15.3. Charakteryzowanie dojrzałości modeli cyklu życiowego (695)
- 15.4. Modele cyklu życiowego (698)
- 15.4.1. Sekwencyjne modele ukierunkowane na aktywności (699)
- 15.4.2. Iteracyjne modele ukierunkowane na aktywności (701)
- 15.4.3. Modele ukierunkowane na encje (706)
- 15.5. Literatura uzupełniająca (709)
- 15.6. Ćwiczenia (710)
Rozdział 16. Wszystko razem, czyli metodologie (713)
- 16.1. Wstęp: pierwsze zdobycie K2 (714)
- 16.2. Środowisko projektu (717)
- 16.3. Zagadnienia metodologiczne (719)
- 16.3.1. Ile planowania? (719)
- 16.3.2. Ile powtarzalności? (720)
- 16.3.3. Ile modelowania? (721)
- 16.3.4. Ile procesów cyklu życiowego? (723)
- 16.3.5. Ile kontroli i monitorowania? (723)
- 16.3.6. Kiedy przedefiniować cele projektu? (724)
- 16.4. Spektrum metodologii (724)
- 16.4.1. Metodologia Royce'a (725)
- 16.4.2. Programowanie ekstremalne (XP) (731)
- 16.4.3. Metodologie rugby (737)
- 16.5. Analizy przypadku (742)
- 16.5.1. Projekt XP: ATRACT (743)
- 16.5.2. Lokalny klient: FRIEND (746)
- 16.5.3. Rozproszony projekt: JAMES (754)
- 16.5.4. Podsumowanie analiz przypadku (761)
- 16.6. Literatura uzupełniająca (766)
- 16.7. Ćwiczenia (766)
Dodatki (769) Dodatek A: Wzorce projektowe (771)
- A.1. Fabryka abstrakcyjna (Abstract Factory) - hermetyzacja platformy (772)
- A.2. Adapter (Adapter) - otoczka dla starszego kodu (773)
- A.3. Most (Bridge) - podmiana implementacji (774)
- A.4. Polecenie (Command) - hermetyzacja przepływu sterowania (775)
- A.5. Kompozyt (Composite) - rekurencyjna reprezentacja hierarchii (776)
- A.6. Fasada (Facade) - hermetyzacja podsystemów (777)
- A.7. Obserwator (Observer) - oddzielenie encji od widoków (778)
- A.8. Proxy (Proxy) - hermetyzacja kosztownych obiektów (779)
- A.9. Strategia (Strategy) - hermetyzacja algorytmów (780)
- A.10. Heurystyki pomocne w wyborze wzorców projektowych (781)
Dodatek B: Objaśnienia haseł (783)
- B.1. Terminologia (783)
- B.2. Słownik terminów angielskich (817)
Dodatek C: Bibliografia (831)
|