
Książka omawia podstawowe zagadnienia inżynierii oprogramowania:
- modele cyklu życia oprogramowania,
- czynności wykonywane w poszczególnych fazach przedsięwzięcia programistycznego,
- wykorzystanie narzędzi CASE,
- zarządzanie przedsięwzięciem programistycznym.
Omawiane są najbardziej popularne metody analizy i projektowania oprogramowania ze szczególnym uwzględnieniem metod obiektowych. Poruszane zagadnienia zilustrowane są kilkoma przewijającymi się przez całość książki przykładami.
Książka przeznaczona jest dla osób zainteresowanych profesjonalną produkcją oprogramowania. Może także służyć jako podręcznik akademicki wykorzystywany w podstawowych kursach inżynierii oprogramowania oraz projektowania systemów informatycznych.
Rozdział 1. Źródła i rola inżynierii oprogramowania- 1.1. Kryzys oprogramowania
- 1.2. Zakres inżynierii oprogramowania
- 1.3. Narzędzia CASE
- 2.1. Model kaskadowy
- 2.2. Realizacja kierowana dokumentami
- 2.3. Prototypowanie
- 2.4. Programowanie odkrywcze
- 2.5. Realizacja przyrostowa
- 2.6. Montaż z gotowych elementów
- 2.7. Model spiralny
- 2.8. Formalne transformacje
- 2.9. Podsumowanie
- 3.1. Ocena rozwiązań
- 3.2. Szacowanie kosztów oprogramowania
- 3.3. Algorytmiczne modele szacowania kosztów oprogramowania - model COCOMO
- 3.4. Podsumowanie
- 3.4.1. Kluczowe czynniki sukcesu
- 3.4.2. Podstawowe rezultaty fazy strategicznej
- 3.4.3. Narzędzia CASE w fazie strategicznej
- 4.1. Wymagania funkcjonalne
- 4.1.1. Hierarchia wymagań funkcjonalnych
- 4.1.2. Diagramy przypadków użycia
- 4.2. Wymagania niefunkcjonalne
- 4.3. Podsumowanie
- 4.3.1. Kluczowe czynniki sukcesu
- 4.3.2. Podstawowe rezultaty fazy określania wymagań
- 4.3.3. Narzędzia CASE w fazie określania wymagań
- 5.1. Rodzaje i role notacji wykorzystywanych w fazie analizy
- 5.2. Obiektowe i strukturalne metody analizy
- 5.3. Notacje obiektowe i ich interpretacja
- 5.3.1. Diagramy klas i obiektów
- 5.3.2. Diagramy interakcji
- 5.3.3. Diagramy przejść stanów
- 5.3.4. Specyfikacja modelu obiektowego
- 5.4. Proces tworzenia modelu obiektowego
- 5.4.1. Budowa statycznego modelu klas
- 5.4.1.1. Identyfikacja klas i obiektów
- 5.4.1.2. Identyfikacja związków klas i obiektów
- 5.4.1.3. Identyfikacja i definiowanie pól
- 5.4.2. Identyfikacja i definiowanie metod i komunikatów
- 5.4.2.1. Analiza scenariuszy (przypadków użycia)
- 5.4.2.2. Modelowanie przejść stanów
- 5.4.3. Przykłady
- 5.4.3.1. System podatkowy
- 5.4.3.2. System informacji geograficznej
- 5.4.3.3. System harmonogramowania zleceń
- 5.5. Notacje strukturalne i ich interpretacja 5.5.1. Diagramy związków encji
- 5.5.2. Diagramy przepływów danych
- 5.5.3. Diagramy przejść stanów
- 5.5.4. Specyfikacja modelu strukturalnego
- 5.6. Proces tworzenia modelu strukturalnego
- 5.6.1. Modelowanie danych
- 5.6.2. Modelowanie procesów i przepływów danych
- 5.6.3. Modelowanie przejść stanów
- 5.6.4. Przykład
- 5.7. Podsumowanie
- 5.7.1. Kluczowe czynniki sukcesu
- 5.7.2. Podstawowe rezultaty fazy analizy
- 5.7.3. Narzędzia CASE w fazie analizy
- 6.1. Uszczegółowienie wyników analizy
- 6.1.1. Techniki obiektowe
- 6.1.2. Techniki strukturalne
- 6.2. Projektowanie składowych systemu nie związanych z dziedziną problemu
- 6.2.1. Projektowanie składowej kontaktu z użytkownikiem
- 6.2.2. Projektowanie składowej zarządzania danymi
- 6.3. Optymalizacja projektu
- 6.4. Dostosowanie do ograniczeń i możliwości środowiska implementacji
- 6.5. Określenie fizycznej struktury systemu
- 6.6. Poprawność projektu
- 6.7. Jakość projektu
- 6.7.1. Spójność
- 6.7.2. Stopień powiązań składowych
- 6.7.3. Przejrzystość
- 6.8. Podsumowanie
- 6.8.1. Kluczowe czynniki sukcesu
- 6.8.2. Podstawowe rezultaty fazy projektowania
- 6.8.3. Narzędzia CASE w fazie projektowania
- 7.1. Programowanie niezawodnego oprogramowania - programowanie dla niezawodności
- 7.1.1. Unikanie błędów
- 7.1.2. Tolerancja błędów
- 7.2. Charakterystyka typowych środowisk implementacji
- 7.2.1. Języki proceduralne
- 7.2.2. Języki obiektowe
- 7.2.3. Relacyjne bazy danych
- 7.2.4. Obiektowe bazy danych
- 7.2.5. Środowiska programistyczne programów użytkowych
- 7.2.6. Narzędzia szybkiego wytwarzania aplikacji
- 7.3. Podsumowanie
- 7.3.1. Kluczowe czynniki sukcesu
- 7.3.2. Podstawowe rezultaty fazy implementacji
- 7.3.3. Narzędzia CASE w fazie implementacji
- 8.1. Składowe dokumentacji użytkowej
- 8.2. Jakość dokumentacji
- 8.3. Podsumowanie
- 8.3.1. Kluczowe czynniki sukcesu
- 8.3.2. Podstawowe rezultaty fazy dokumentacji
- 8.3.3. Narzędzia CASE w fazie dokumentacji
- 9.1. Testy statystyczne
- 9.2. Wykrywanie błędów
- 9.2.1. Testy funkcjonalne
- 9.2.2. Testy strukturalne
- 9.2.3. Testy statyczne
- 9.3. Ocena liczby błędów
- 9.4. Testy systemu
- 9.5. Bezpieczeństwo oprogramowania
- 9.6. Podsumowanie
- 9.6.1. Kluczowe czynniki sukcesu
- 9.6.2. Podstawowe rezultaty fazy testowania
- 9.6.3. Narzędzia CASE w fazie testowania
- 10.1. Zadania wykonywane w fazie instalacji
- 10.2. Podsumowanie
- 10.2.1. Kluczowe czynniki sukcesu
- 10.2.2. Podstawowe rezultaty fazy instalacji
- 10.2.3. Narzędzia CASE w fazie instalacji
- 11.1. Modyfikowanie oprogramowania
- 11.2. Inżynieria odwrotna
- 11.3. Podsumowanie
- 11.3.1. Kluczowe czynniki sukcesu
- 11.3.2. Podstawowe rezultaty fazy konserwacji
- 11.3.3. Narzędzia CASE w fazie konserwacji
- 12.1. Rodzaje narzędzi CASE
- 12.2. Składowe narzędzi CASE
- 12.3. Narzędzia CASE w działalności firmy programistycznej
- 13.1. Czynniki psychologiczne w inżynierii oprogramowania
- 13.2. Struktura zarządzania firmą programistyczną/działem programistycznym
- 13.3. Zapewnianie jakości
- 13.4. Poziomy rozwoju firmy programistycznej
- 13.5. Rola dokumentacji w zarządzaniu przedsięwzięciem
- 13.5.1. Dokumentacja procesu
- 13.5.2. Dokumentacja techniczna
- 13.6. Zarządzanie wersjami
- 13.7. Miary produktywności
- 13.8. Harmonogramowanie i monitorowanie przedsięwzięć programistycznych
- 13.9. Ekonomiczne aspekty działalności firmy programistycznej
Słownik terminów angielskich
Skorowidz