Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pewność Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności.

Podobne prezentacje


Prezentacja na temat: "©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pewność Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności."— Zapis prezentacji:

1 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pewność Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności w systemach krytycznych.

2 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Cele l Znać cztery wymiary pewności, tzn. dostępność, niezawodność, bezpieczeństwo i zabezpieczenie. l Rozumieć pojęcie systemu krytycznego, którego awaria może mieć poważne konsekwencje dla ludzi i gospodarki. l Wiedzieć, że do osiągnięcia pewności konieczne jest unikanie pomyłek w trakcie budowania systemu, wykrywanie i usuwanie błędów w trakcie użytkowania systemu i ograniczenie szkód powodowanych przez awarie w czasie działania.

3 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Zawartość l Systemy krytyczne l Dostępność i niezawodność l Bezpieczeństwo l Zabezpieczenie

4 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Wymiary pewności ZabezpieczenieBezpieczeństwoNiezawodnośćDostępność Pewność Zdolność systemu do realizacji usług, gdy są potrzebne Zdolność systemu do realizacji usług zgodnie ze specyfikacją Zdolność systemu do działania bez katastroficznych awarii Zdolność systemu do zabezpieczenia siebie przed przypadkowym lub celowym włamaniem

5 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pojęcie pewności l Pewność systemu komputerowego jest właściwością systemu odpowiadającą zaufaniu, którym jest obdarzony. l Zaufanie oznacza stopień przekonania użytkownika, że system będzie działał tak jak należy i nie będzie się psuł przy normalnym użytkowaniu. l Ta właściwość nie może być wyrażona liczbowo, ale da się ją zapisać nieformalnie. l Określenia, takie jak niepewny, bardzo pewny i ultrapewny, odpowiadają różnym poziomom zaufania, którym obdarzamy system. l Zasługiwanie na zaufanie nie jest oczywiście tym samym co użyteczność.

6 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Krzywa zależności kosztu i pewności Koszt Mała Średnia Duża Bardzo Ultra- duża duża Pewność

7 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pewność a efektywność l Systemy niepewne, niebezpieczne lub niezabezpieczone zwykle pozostają nieużywane. l Koszt awarii systemu może być olbrzymi. l Trudno jest odzyskać pewność. l Zwykle można zrekompensować brak efektywności systemu. l Systemy niegodne zaufania mogą spowodować utratę informacji.

8 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Systemy krytyczne Awarie wielu systemów sterowanych komputerami powodują niewygody, a nie poważne długotrwałe zniszczenia. Istnieją jednak systemy, których awarie mogą powodować znaczne straty gospodarcze, fizyczne zniszczenia lub zagrożenia życia ludzkiego. Systemy te zwykle nazywa się systemami krytycznymi. Pewność jest zasadniczym atrybutem systemów krytycznych. Każdy z jej aspektów (dostępność, niezawodność, bezpieczeństwo i zabezpieczenie) może być ważny.

9 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Rodzaje systemów krytycznych l Systemy krytyczne dla bezpieczeństwa to systemy, których awaria może powodować obrażenia i utratę życia lub poważne zniszczenie środowiska. l Systemy krytyczne dla zadania to systemy, których awaria może powodować niepowodzenie pewnej czynności mającej jakiś cel. l Systemy krytyczne dla przedsiębiorstwa to systemy, których awaria może powodować kłopoty korzystających z nich przedsiębiorstw.

10 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Awarie systemu krytycznego l Koszt awarii systemu krytycznego jest zwykle bardzo wysoki. Obejmuje bezpośrednie koszty awarii (np. konieczność wymiany systemu) oraz koszty pośrednie (koszty procesów sądowych, utracone zyski w związku z niedostępnością systemu). l W rezultacie systemy krytyczne są zwykle budowane raczej za pomocą starannie sprawdzonych metod, a nie nowinek, z którymi dotychczas nie wiążą się znaczące praktyczne doświadczenia.

11 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Typy komponentów systemu najbardziej podatnych na awarie l Sprzęt systemu, który może się popsuć z powodu błędów projektowych, błędów przy ich produkcji lub z powodu naturalnego zmęczenia materiału. l Oprogramowanie systemu, które może ulec awarii z powodu błędów w specyfikacji, projekcie lub implementacji. l Operatorzy systemu, którzy mogą niewłaściwie go obsługiwać.

12 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Prosty system krytyczny dla bezpieczeństwa System podawania insuliny może składać się z wszczepionego pacjentowi mikroskopijnego detektora, który mierzy pewien parametr krwi proporcjonalny do poziomu cukru. Odczyt jest przesyłany do sterownika pompy. Sterownik wyznacza poziom cukru, ocenia ilość potrzebnej insuliny i wysyła sygnał do miniaturowej pompy, która tłoczy insulinę przez wkłutą na stałe igłę. Systemy podawania insuliny będą sterowane przez oprogramowanie.

13 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Struktura pompy insulinowej Igła Pompa Zegar Miernik Alarm Sterownik Wyświetlacz 1 Wyświetlacz 1 Wyświetlacz 2 Wyświetlacz 2 Zbiornik insuliny Zasilanie

14 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Model przepływu danych w pompie insulinowej Detektor cukru we krwi Detektor cukru we krwi Wyznaczanie potrzebnej Ilości insuliny Wyznaczanie potrzebnej Ilości insuliny Analiza cukru we krwi Analiza cukru we krwi Sterownik pompy insulinowej Sterownik pompy insulinowej Pompa insulinowa Pompa insulinowa Krew Insulina Parametry krwi Polecenia sterujące pompą Poziom cukru we krwi Potrzebna ilość insuliny

15 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Wymiary pewności dotyczą systemu podawania insuliny l Dostępność System powinien być gotowy do wstrzyknięcia insuliny, gdy jest ona potrzebna. l Niezawodność System powinien działać niezawodnie i dostarczać właściwą ilość insuliny w celu zrównoważenia aktualnego poziomu cukru we krwi. l Bezpieczeństwo Awaria systemu może w zasadzie spowodować wstrzykiwanie nadmiernych dawek insuliny, które mogą być zagrożeniem życia użytkownika. Ten rodzaj awarii systemu nie powinien się zdarzać.

16 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Dostępność i niezawodność l Dostępność systemu to prawdopodobieństwo, że będzie on realizował usługi dla użytkowników, gdy mu to zlecą. l Niezawodność to prawdopodobieństwo, że system zaoferuje usługi zgodne ze specyfikacją. l Niezawodność wymaga dostępności, ponieważ niezrealizowanie wyspecyfikowanych usług nie jest oczywiście zachowaniem zgodnym ze specyfikacją.

17 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Przykład l Dobrym przykładem takiego systemu jest centrala telefoniczna. Podnosząc słuchawkę, użytkownicy chcą usłyszeć sygnał, więc wymagania stawiane dostępności systemu są duże. l Jeżeli awaria systemu spowoduje przerwanie połączenia, to zwykle łatwo jest to naprawić. l Centrale mogą mieć udogodnienia naprawcze, które ponownie uruchamiają system i próbują nawiązać połączenie. l Można to zrobić bardzo szybko, a użytkownik telefonu może nawet nie zauważyć awarii. l Dostępność, a nie niezawodność, jest w tym wypadku głównym wymaganiem stawianym pewności.

18 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Bardziej precyzyjne definicje l Niezawodność. Prawdopodobieństwo bezawaryjnego działania w ciągu ustalonego czasu w zadanym środowisku w określonym celu. l Dostępność. Prawdopodobieństwo, że w ustalonej chwili system będzie działał i będzie zdolny do realizacji żądanych usług.

19 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Uwagi l Niezawodność i dostępność uważa się zwykle za najważniejsze wymiary pewności. Jeśli system jest zawodny, to trudno zapewnić jego bezpieczeństwo lub go zabezpieczyć, ponieważ może to być zniweczone przez awarie systemu. l Jeśli system jest niedostępny, to wynikające z tego straty gospodarcze mogą być bardzo duże. Zawodne oprogramowanie powoduje wysokie koszty ponoszone przez użytkowników. Twórcy zawodnych systemów mogą zyskać złą opinię o jakości ich produktów i utracić przyszłe możliwości zarabiania.

20 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pojęcia związane z niezawodnością Pojęcie Opis Awaria Zdarzenie zachodzące w chwili, w której system przestaje systemurealizować usługi oczekiwane przez użytkowników. Błąd Błędne zachowanie systemu niezgodne z jego systemuspecyfikacją. UsterkaNiepoprawny stan systemu, tzn. stan, którego nie systemuspodziewali się projektanci systemu. Błąd lub Działanie człowieka, które powoduje usterki systemu. pomyłka człowieka

21 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Poprawianie niezawodności systemu l Unikanie usterek. Stosuje się metody tworzenia, które zmniejszają możliwość pomyłek lub umożliwiają wychwytywanie ich, zanim doprowadzą do awarii systemu. l Wykrywanie i usuwanie usterek. Stosuje się metody weryfikacji i zatwierdzania, które zwiększają szansę wykrycia i usunięcia usterek przed przystąpieniem do użytkowania systemu. l Tolerowanie usterek. Stosuje się metody, które zapewniają, że usterki w systemie nie powodują błędów, a błędy systemu nie powodują awarii.

22 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 System jako odwzorowanie danych wejściowych na dane wyjściowe Zbiór danych wejściowych Program Zbiór danych wyjściowych Wej b Wyj b Dane wejściowe powodujące błędne dane wyjściowe Błedne danewyjścioweBłedne danewyjściowe Błędne dane wyjściowe

23 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Wzorce użycia oprogramowania l Program może zawierać znane błędy, a mimo tego użytkownicy mogą go uważać za niezawodny. l Niektórzy nigdy nie wprowadzą błędnych danych wejściowych, awaria nigdy się więc nie zdarzy. l Co więcej, doświadczeni użytkownicy zwykle obchodzą usterki oprogramowania, o których wiadomo, że powodują awarie. l Świadome unikają korzystania z udogodnień systemu, o których wiedzą, że spowodują kłopoty. l Naprawienie usterek w tych udogodnieniach praktycznie nie zmienia niezawodności postrzeganej przez użytkowników.

24 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Wzorce użycia oprogramowania Użytkownik 1 Użytkownik 2 Użytkownik 3 Błędne dane wejściowe Dopuszczalne dane wejściowe

25 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Bezpieczeństwo l Bezpieczeństwo systemu to atrybut odzwierciedlający zdolność systemu do normalnego lub nienormalnego działania bez wywoływania zagrożeń dla ludzi lub środowiska. l Jeśli bezpieczeństwo jest zasadniczą cechą systemu krytycznego, to nazywamy go systemem krytycznym dla bezpieczeństwa. l Przykładami takich systemów są systemy sterowania i kontroli w samolocie, systemy sterowania procesami w reaktorach chemicznych i farmaceutycznych oraz systemy sterowania samochodami.

26 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Oprogramowanie krytyczne dla bezpieczeństwa l Podstawowe oprogramowanie krytyczne dla bezpieczeństwa jest oprogramowaniem w postaci sterownika wbudowanego w system. Niewłaściwe działanie takiego oprogramowania może powodować niewłaściwe działanie sprzętu, które powoduje szkody lub zniszczenia środowiska. l Pomocnicze oprogramowanie krytyczne dla bezpieczeństwa jest oprogramowaniem, które może pośrednio powodować szkody. Przykładami takich systemów są systemy komputerowego wspomagania projektowania, których niewłaściwe działanie może doprowadzić do usterek w projektowanym obiekcie.

27 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pojęcie Definicja Wypadek (lubNiezaplanowane zdarzenie lub ciąg zdarzeń, które powodują obrażenia lub śmierć nieszczęście)osób, szkody w majątku lub środowisku. Maszyna sterowana komputerem raniąca swego operatora to dobry przykład wypadku. ZagrożenieSytuacja, która może spowodować lub przyczynić się do wypadku. Awaria detektora wykrywającego przeszkody na drodze maszyny jest przykładem zagrożenia. SzkodaMiara strat powstałych w wyniku nieszczęścia. Zakres szkód może być rozmaity, od śmierci wielu osób do mniejszych obrażeń i zniszczenia majątku. Waga zagrożeniaOszacowanie największych szkód, które mogą być wynikiem konkretnego zagrożenia. Waga zagrożenia może być rozmaita, od katastroficznej (gdy ginie wielu ludzi) do niewielkiej (jedynie niewielkie szkody). PrawdopodobieństwoPrawdopodobieństwowystąpienia zdarzeń powodujących zagrożenie. zagrożenia Prawdopodobieństwo może być dowolne; zwykle waha się od prawdopodobne (np. zagrożenie wystąpi w jednym na sto przypadków) do niewiarygodne (nie można wyobrazić sobie sytuacji, w których to zagrożenie występuje). Ryzyko Miara prawdopodobieństwa, że system spowoduje wypadek. Ryzyko szacuje się na podstawie prawdopodobieństwa zagrożenia, wagi zagrożenia i prawdopodobieństwa, że zagrożenie będzie przyczyna wypadku. Pojęcia związane z bezpieczeństwem

28 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 l Unikanie zagrożeń. System jest zaprojektowany tak, aby uniknąć zagrożeń. System tnący, którego zadziałanie wymaga od operatora naciśnięcia dwóch przycisków w tej samej chwili, wystrzega się na przykład ryzyka umieszczenia rąk operatora w zasięgu noża. l Wykrywanie i eliminowanie zagrożeń. System jest zaprojektowany tak, aby wykrywać i eliminować zagrożenia, zanim doprowadzą do wypadku. System reaktora chemicznego może na przykład wykrywać nadmierne ciśnienie i otwierać zawór bezpieczeństwa w celu zmniejszenia ciśnienia, zanim dojdzie do eksplozji. l Ograniczanie szkód. System może obejmować udogodnienia zabezpieczające, które ograniczają szkody będące konsekwencją wypadku. Silnik lotniczy zawiera na przykład automatyczne gaśnice. Gdy pojawi się ogień, zwykle można go ugasić, zanim stanie się zagrożeniem dla pasażerów i załogi. Sposoby zapewnienia bezpieczeństwa

29 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 l Zabezpieczenie systemu to oszacowanie stopnia zabezpieczenia systemu przed atakami z zewnątrz zarówno przypadkowymi, jak i celowymi. l Przykładami ataków są wirusy, nieuprawnione użycie usług systemu, nieuprawnione aktualizowanie systemu lub jego danych itd. l Bez rozsądnego poziomu zabezpieczeń dostępność, niezawodność i bezpieczeństwo systemu mogą być zniweczone przez zewnętrzne ataki, które wywołały szkody w systemie. Zabezpieczenie

30 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Przykłady Istnieją pewne rodzaje systemów krytycznych, w których zabezpieczenie jest najważniejszym wymiarem pewności systemu. Systemy wojskowe, systemy handlu elektronicznego i systemy przetwarzające i wymieniające poufne dane muszą być zaprojektowane tak, aby osiągnąć wysoki poziom zabezpieczenia. Jeśli system rezerwacji biletów lotniczych jest na przykład niedostępny, to powoduje niewygody i opóźnienia w wydawaniu biletów. Jeśli jednak byłby niezabezpieczony i akceptował fałszywe rezerwacje, to obsługiwana przestrzeń lotnicza ponosiłaby w wyniku tego problemu znaczne straty finansowe.

31 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Trzy typy szkód, które mogą być wynikiem ataku z zewnątrz Zaprzestanie usługi. System może być zmuszony do przyjęcia stanu, w którym nie jest możliwe normalne realizowanie usług. Uszkodzenie programów lub danych. Komponenty programowe systemu mogą być podmienione w nieuprawniony sposób. Ujawnienie poufnej informacji. Informacja przechowywana w systemie może być poufna. Atak z zewnątrz może ujawnić ją nieuprawnionym osobom.

32 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pojęcia związane z zabezpieczeniem PojęcieDefinicja OdsłonięcieMożliwość starty lub szkody w systemie komputerowym. SłabośćSłaby punkt systemu komputerowego, który można wykorzystać do spowodowania start lub szkód. AtakWykorzystanie słabości systemu. GroźbaSytuacja, która może doprowadzić do strat lub szkód. NadzórMiara ochrony, która zmniejsza słabości systemu.

33 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Podejścia do zabezpieczenia systemu l Unikanie słabości. System projektuje się tak, aby nie miał słabości. Jeśli system nie jest połączony na przykład z zewnętrzna siecią publiczną, to ludzie z zewnątrz nie maja możliwości ataku. l Wykrywanie i neutralizacja ataków. System projektuje się tak, aby wykrywał słabości i eliminował je, zanim spowodują odsłonięcie. Przykładami wykrywania i usuwania słabości jest zastosowanie programu antywirusowego. l Ograniczanie odsłonięć. Minimalizuje się konsekwencje udanego ataku. Przykładami ograniczania odsłonięć są systematyczne tworzenie kopii zapasowych.

34 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pewne aspekty zabezpieczenia l Zabezpieczenie stało się bardziej istotne z powodu podłączania coraz większej i większej liczby systemów do Sieci. Połączenie z Siecią daje dodatkową funkcjonalność systemu (np. klient może bezpośrednio działać na swoim koncie bankowym), ale oznacza to także możliwość zaatakowania systemu przez ludzi o złych intencjach. l Innym podobnym i bardzo ważnym atrybutem systemów w Sieci jest zdolność przetrwania (Ellison i inni, 1999). Zdolność przetrwania jest zdolnością systemu do ciągłej realizacji usług nawet w czasie ataku i ewentualnego odłączenia części systemu.

35 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Główne tezy l Pewność systemu komputerowego jest jego właściwością, która odzwierciedla stopień zaufania użytkownika do systemu. Najważniejszymi wymiarami pewności są: dostępność, niezawodność, bezpieczeństwo i zabezpieczenie. l System krytyczny to system, którego awarie mogą powodować znaczne straty gospodarcze, fizyczne zniszczenia lub śmierć ludzi. Trzema ważnymi rodzajami systemów krytycznych są systemy krytyczne dla bezpieczeństwa, systemy krytyczne dla zadania i systemy krytyczne dla przedsiębiorstwa. l Dostępność systemu to prawdopodobieństwo, że będzie on realizował usługi dla użytkowników, gdy o to poproszą. Niezawodność to prawdopodobieństwo, że usługi systemu będą wykonywane zgodnie ze specyfikacją. l Niezawodność i dostępność są czasem uważane za najważniejsze wymiary pewności. Jeśli system jest zawodny, to trudno jest zapewnić jego bezpieczeństwo lub zabezpieczenie, ponieważ niweczą je awarie systemu.

36 ©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Główne tezy l Niezawodność jest związana z prawdopodobieństwem wystąpienia błędu w czasie użytkowania systemu. Program może zawierać usterki, a mimo tego użytkownicy mogą uważać go za niezawodny, ponieważ nie korzystają z udogodnień systemu niepełnowartościowych wskutek tych usterek. l Bezpieczeństwo systemu to jego atrybut, który odzwierciedla zdolność systemu do poprawnego lub niepoprawnego działania bez powodowania zagrożeń dla ludzi i środowiska. Jeśli bezpieczeństwo jest główną cechą systemu krytycznego, to nazywamy go systemem krytycznym dla bezpieczeństwa. l Zabezpieczenie jest ważne we wszystkich systemach krytycznych. Bez rozsądnego poziomu zabezpieczeń dostępność, niezawodność i bezpieczeństwo systemu mogą być zniweczone przez zewnętrzne ataki, które wywołały szkody w systemie.


Pobierz ppt "©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 16 Pewność Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności."

Podobne prezentacje


Reklamy Google