PROJEKTOWANIE NIEZAWODNEGO OPROGRAMOWANIA
Glenford J. Myers
Wydawnictwo: WNT, 1980
Oprawa: miękka z obwolutą
Stron: 322
Stan: bardzo dobry, nieaktualne pieczątki
W książce omówiono jeden z najważniejszych aspektów współczesnych systemów informatycznych — niezawodność oprogramowania. Przedstawiony zestaw metod i technik obejmuje cały cykl budowy
dużych programów, pokazując, jak należy projektować, kodować, testować i uruchamiać programy, od których wymaga się niezawodności działania. W sposób przystępny i systematyczny podano zasady sprawdzone w dotychczasowej praktyce. Przedstawione rozwiązania, a także przeciwskazania zilustrowano przykładami zaczerpniętymi z istniejących systemów informatycznych.
Książka jest przeznaczona dla programistów i kierowników zespołów programistycznych,
projektantów systemów przetwarzania informacji, pracowników nauki zajmujących się informatyką oraz dla studentów kierunków informatycznych.
SPIS TREŚCI:
Od Tłumacza
Przedmowa
Część pierwsza
Pojęcia z dziedziny niezawodności oprogramowania
Definicja niezawodności oprogramowania
Czy Księżyc jest nieprzyjacielską rakietą?
Czym jest błąd ?
Czym jest niezawodność'?.
Czy inżynierowie są mądrzejsi od programistów?
Niezawodność sprzętu
Duży koszt oprogramowania
Eksperymenty w dziedzinie budowy oprogramowania
Literatura.
Błędy — ich przyczyny i konsekwencje
Makroskopowy model procesu tłumaczenia
Mikroskopowy model procesu tłumaczenia
Konsekwencje błędów
Literatura.
Część druga.
Projektowanie niezawodnego oprogramowania
Podstawowe zasady projektowania
Cztery ujęcia niezawodności
Procesy projektowania
Złożoność.
Komunikacja z użytkownikiem
Rozwiązywanie problemów
Poprawność projektów
Literatura..
Wymagania, cele, specyfikacje
Określanie wymagań
Cele oprogramowania
Zrozumienie kompromisów
Spis celów oprogramowania
Projektowanie zewnętrzne.
Projektowanie współpracy z użytkownikiem
Sporządzanie specyfikacji zewnętrznej
Weryfikacja specyfikacji zewnętrznej
Planowanie zmian
Literatura
Architektura systemu
Poziomy abstrakcji
Podsystemy bramkowe
Programy sekwencyjne
Dokumentacja.
Weryfikacja.
Literatura
Projektowanie struktury programu
Niezależność modułowa.
Moc modułu
Więź modułowa
Dalsze wskazówki
Analiza składana.
Przykład analizy składanej
Weryfikacja.
Literatura
Praktyka projektowania
Bierne wykrywanie defektów
Czynne wykrywanie defektów
Poprawianie i tolerowanie defektów
Izolacja defektów.
Reagowanie na awarie sprzętu
Literatura
Projektowanie i kodowanie modułów
Projektowanie zewnętrzne modułu
Projektowanie logiki modułu
Programowane strukturalne i metoda kolejnych uściśleń
Programowanie defensywne Języki wysokiego poziomu
Postawa.
Dokumentacja.
Standardy
Weryfikacja
Literatura.
Styl programowania
Jasność programu
Używanie języka
Mikrooszczędności
Komentarze
Definicje danych
Struktura programu
Literatura.
Część trzecia.
Testowanie oprogramowania
Zasady testowania
Podstawowe pojęcia
Filozofie testowania
Mit o testowaniu ścieżek
Scalanie modułów
Testowanie wstępujące
Testowanie zstępujące
Zmodyfikowane testowanie zstępujące
Testowanie „big-bang"
Testowanie mieszane
Zmodyfikowane testowanie mieszane
Co jest najlepsze?
Aksjomaty testowania.
Literatura
Testowanie modułów
Projektowanie danych testowych.
Wykonywanie testów
Narzędzia testowania
Statyczna analiza przepływu sterowania
Narzędzia działające podczas wykonania programu
Testy równań kwadratowych
Literatura
Testowanie funkcjonalne i testowanie systemu
Testowanie funkcji zewnętrznych
Grafy skutkowo-przyczynowe
Scalanie systemu
Testowanie systemu
Narzędzia testowania funkcjonalnego i testowania systemu
Planowanie i kontrola testowania
Testowanie akceptacyjne
Testowanie instalacyjne.
Literatura.
Uruchamianie
Znajdowanie błędu.
Dokonywanie poprawki
Narzędzia uruchamiające
Nadzorowanie uruchamiania.
Literatura
Część czwarta.
Inne aspekty niezawodności oprogramowania
Techniki zarządzania a niezawodność
Organizacja i obsada.
Bibliotekarze programowania
Zespoły programistów
Co czyni dobrego kierownika ?
Literatura
Języki programowania a niezawodność
Jednolitość
Prostota.
Deklarowanie danych
Typy danych i konwersja
Procedury i zakresy danych.
Struktury sterowania
Operacje na danych.
Wykrywanie błędów podczas kompilacji
Wykrywanie błędów podczas wykonania
Literatura..
Architektura komputerów a niezawodność
Struktura pamięci
Struktura programu
Pomoce uruchamiające
Maszyny wysokiego poziomu
Literatura.
Dowodzenie poprawności programu
Metoda asercji indukcyjnych
Co można, a czego nie można wykazać za pomocą dowodów ?
Automatyzacja dowodzenia.
Inne zastosowania metod dowodzenia
Literatura
Modele niezawodności
Model wzrostu niezawodności
Inne modele probabilistyczne
Model z zasiewem błędów
Proste modele intuicyjne
Modele złożoności
Literatura
Systemy oprogramowania pomocniczego
Systemy bibliotek programów
Pomoce projektowe
Literatura
Skorowidz