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
3. Zwiększenie niezawodności oprogramowania można uzyskać dzięki:
  • 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)