Implementacja, Semestr 5, Inżynieria oprogramowania


IMPLEMENTACJA NIEZAWODNOŚCI:

Znaczenie niezawodności:

- Rosnące oczekiwania klientów wynikające m.in. z coraz większej powszechności wykorzystania oprogramowania oraz z wysokiej niezawodności sprzętu; w kwestiach niezawodności oprogramowanie znacznie ustępuje sprzętowi (być może wynika to z mniejszej powtarzalności oraz dużej złożoności oprogramowania)

- Potencjalnie duże koszty błędnych wykonań (wysokie straty finansowe wynikające z błędnego działania funkcji oprogramowania, nawet zagrożenie dla życia)

- Nieprzewidywalność efektów oraz trudność usunięcia błędów w oprogramowaniu

- Często pojawia się konieczność znalezienia kompromisu pomiędzy efektywnością i niezawodnością; teoretycznie łatwiej jest jednak pokonać problemy zbyt małej efektywności niż zbyt małej niezawodności.

Zwiększanie niezawodności

- Unikanie błędów

- Testowanie błędów

- Tolerowanie błędów

Obserwacja liczby błędów podczas testów statystycznych pozwala określać stopień niezawodności oprogramowania

Miary niezawodności oprogramowania:

- Prawdopodobieństwo błędnego wykonania podczas realizacji transakcji (w niektórych systemach każde błędne wykonanie powoduje zerwanie całej operacji; miarą jest częstość występowania operacji, które nie powiodły się wskutek błędów)

- Częstotliwość występowania błędnych wykonań (ilość błędów w jednostce czasu; np. 0.1/h oznacza, że w ciągu 10 godzin ilość spodziewanych błędnych wykonań wyniesie 1; miara stosowana w przypadku systemów, które nie mają charakteru transakcyjnego

- Średni czas między błędnymi wykonaniami (odwrotność poprzedniej miary)

- Dostępność (prawdopodobieństwo, że w danej chwili system będzie dostępny do użytkowania; miarę tę można oszacować na podstawie stosunku czasu, w którym system jest dostępny, do czasu od wystąpienia błędu do powrotu do normalnej sytuacji; miara zależy nie tylko od błędnych wykonań, ale także od szybkości powrotu do normalnego działania)

Oszacowanie i podnoszenie niezawodności

Czasami (ale rzadko) poziom niezawodności (wartość pewnej miary lub miar) jest określany w wymaganiach klienta

Zwykle, jest on jednak wyrażony w terminach jakościowych, co utrudnia obiektywną weryfikację

Informacja o niezawodności jest przydatna również wtedy, gdy klient nie określił jej jednoznacznie w wymaganiach:

- częstotliwość występowania błędnych wykonań ma podstawowy wpływ na koszt konserwacji (znajomość niezawodności pozwala oszacować m.in. liczbę personelu, zgłoszeń tel. , ... dając łączny koszt serwisu)

- pozwala ocenić i poprawić proces wytwarzania pod kątem zminimalizowania łącznego kosztu funkcjonowania firmy

Jeżeli podczas usuwania wykrytych błędów nie wprowadza się nowych błędów, to mamy wzrost niezawodności

Szybszy wzrost niezawodności można osiągnąć jeżeli dane testowe są dobierane nie w pełni losowo, lecz w kolejnych przebiegach testuje się sytuacje, które dotąd nie były testowane

Unikanie błędów:

Można przyjąć, że stworzenie bardziej złożonego systemu, który nie zawiera błędów, jest praktycznie niemożliwe; trzeba natomiast starać się zmniejszać prawdopodobieństwo wystąpienia błędu dzięki:

- unikaniu niebezpiecznych technik (np. programowanie oparte na wskaźnikach)

- stosowaniu zasady ograniczonego dostępu (reguły zakresu, hermetyzacja, ...)

- językom z mocną kontrolą typów i kompilatorom sprawdzających zgodność typów

- dokładnemu i konsekwentnemu specyfikowaniu interfejsów pomiędzy modułami oprogramowania

- zwróceniu szczególnej uwagi na sytuacje skrajne (puste zbiory, pętle z graniczną ilością obiegów, wartości zerowe, niezainicjowane zmienne, ...)

- wykorzystaniu gotowych komponentów (np. gotowych bibliotek procedur lub klas) z zastosowaniem zasady ograniczonego zaufania

- minimalizawaniu różnic pomiędzy modelem pojęciowym i modelem implementacyjnym



Wyszukiwarka

Podobne podstrony:
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
sciaga io świder, Studia, Semestr 4, Inżynieria Oprogramowaia
Projektowanie systemu, Semestr 5, Inżynieria oprogramowania
Modelowanie systemu, Semestr 5, Inżynieria oprogramowania
piekarnia, Studia - Politechnika Opolska, Semestr 4, Inżynieria Oprogramowania
przydział, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
Inżynieria oprogramowania Przykładowe pytania na egzamin 4 semestr, edukacja i nauka, Informatyka
Rafał Polak 12k2 lab4a, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Sp

więcej podobnych podstron