okladka

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
Rozdział 2. Modele cyklu życia oprogramowania
  • 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
Rozdział 3. Faza strategiczna
  • 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
Rozdział 4. Faza określania wymagań
  • 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ń
Rozdział 5. Faza analizy (modelowania)
  • 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
Rozdział 6. Projektowanie
  • 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
Rozdział 7. Implementacja
  • 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
Rozdział 8. Dokumentacja
  • 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
Rozdział 9. Testowanie
  • 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
Rozdział 10. Instalacja
  • 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
Rozdział 11. Konserwacja oprogramowania
  • 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
Rozdział 12. Narzędzia CASE
  • 12.1. Rodzaje narzędzi CASE
  • 12.2. Składowe narzędzi CASE
  • 12.3. Narzędzia CASE w działalności firmy programistycznej
Rozdział 13. Zarządzanie przedsięwzięciem programistycznym
  • 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
Literatura
Słownik terminów angielskich
Skorowidz