Inżynieria oprogramowania - Faza implementacji
1. Faza implementacji została znacznie zautomatyzowana dzięki językom programowania wysokiego poziomu, gotowych elementów, narzędzi szybkiego wytwarzania aplikacji oraz generatorów kodu.
2. Znaczenie niezawodności:
- rosnące oczekiwania klientów
- potencjalnie duże koszty błędnych wykonań
- nieprzewidywalność efektów oraz trudność usunięcia błędów w oprogramowaniu
- unikaniu błędów (unikanie niebezpiecznych technik, stosowanie zasady ograniczonego dostępu, zastosowanie języków z mocną kontrolą typów i kompilatorów sprawdzających zgodność typów, stosowanie języków o wyższym poziomie abstrakcji, dokładne i konsekwentne specyfikowanie interfejsów pomiędzy modułami, wykorzystanie gotowych komponentów)
- tolerancji błędów (wykrycie błędu, poprawnego zakończenia pracy modułu, ewentualnej naprawy błędu)
4. Sposoby automatycznego wykrywania błędów:
- sprawdzanie warunków poprawności danych
- porównywanie wyników różnych wersji modułu
5. Transakcje umożliwiają zachowanie spójności wielu jednocześnie działających procesów. Umożliwiają uniknięcie niespójności danych i przetwarzania związanych z dowolnymi awariami sprzętu, błędami w oprogramowaniu, niedyspozycyjną personelu itp. Własności transakcji:
- atomowość (w ramach jednej transakcji zrobią się wszystkie operacje, albo żadna)
- spójność (jeśli transakcja zastała bazę danych w spójnym stanie, po jej zakończeniu stan jest również spójny)
- izolacja (transakcja nic nie wie o innych transakcjach i nie musi uwzględniać ich działania)
- trwałość (po zakończeniu transakcji skutki są zapamiętane i nie mogą być odwrócone przez zdarzenia losowe)
6. Zalety środowiska relacyjnych baz danych:
- wielodostęp
- automatyczna weryfikacji więzów integralności
- prawa dostępu dla poszczególnych użytkowników
- wysoka niezawodność
- rozszerzalność (ograniczona)
- możliwość rozproszenia danych
- dostęp na wysokim poziomie (SQL, ODBC, JDBC)