Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wprowadzenie do jakości Oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Podobne prezentacje


Prezentacja na temat: "Wprowadzenie do jakości Oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania"— Zapis prezentacji:

1 Wprowadzenie do jakości Oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

2 Dokumentacja i Jakość Oprogramowania 2 Wprowadzenie do jakości oprogramowania Znaczenie jakości systemów informatycznych Systemy bankowe Systemy bankowe Systemy medyczne Systemy medyczne Systemy projektowe Systemy projektowe Sterowanie ruchem (lotniczy, kolejowy, drogowy) Sterowanie ruchem (lotniczy, kolejowy, drogowy) Systemy energetyczne Systemy energetyczne Samochody (zapłon, hamulce, sterowanie) Samochody (zapłon, hamulce, sterowanie) Telefony Telefony Sprzęt AGD Sprzęt AGD......

3 Dokumentacja i Jakość Oprogramowania 3 Wprowadzenie do jakości oprogramowania Statystyka projektów

4 Dokumentacja i Jakość Oprogramowania 4 Wprowadzenie do jakości oprogramowania Skala problemu średni roczny koszt błędów (USA) średni roczny koszt błędów (USA) ok. 60 mld USD ok. 60 mld USD 0,6% PKB 0,6% PKB 50% użytkownicy, 50% dostawcy oprogramowania 50% użytkownicy, 50% dostawcy oprogramowania 1/3 błędów można by uniknąć 1/3 błędów można by uniknąć złożoność oprogramowania – 10 6 linii kodu złożoność oprogramowania – 10 6 linii kodu 80% kosztów opracowania – na wykrywanie i usuwanie błędów 80% kosztów opracowania – na wykrywanie i usuwanie błędów

5 Dokumentacja i Jakość Oprogramowania 5 Wprowadzenie do jakości oprogramowania Przykłady skutków błędów 1962 – zboczenie z kursu rakiety nośnej sondy kosmicznej Mariner I 1962 – zboczenie z kursu rakiety nośnej sondy kosmicznej Mariner I 1982 – eksplozja gazociągu transsyberyjskiego 1982 – eksplozja gazociągu transsyberyjskiego – przedawkowania przy terapii radiologicznej aparatem THERAC-25 – USA, Kanada – przedawkowania przy terapii radiologicznej aparatem THERAC-25 – USA, Kanada 1988 – pierwsze zarażenie komputerów w Berkeley przez robaka internetowego 1988 – pierwsze zarażenie komputerów w Berkeley przez robaka internetowego – brak bezpieczeństwa w systemie Kerberos – brak bezpieczeństwa w systemie Kerberos 1990 – łańcuchowe załamanie komunikacji sieciowej AT&T 1990 – łańcuchowe załamanie komunikacji sieciowej AT&T 1993 – błąd dzielenia Intel Pentium 1993 – błąd dzielenia Intel Pentium 1995/96 – błąd w komunikacie ping 1995/96 – błąd w komunikacie ping 1996 – katastrofa rakiety Ariane – katastrofa rakiety Ariane – awaria nowojorskiej giełdy towarowej (NYMEX) 1998 – awaria nowojorskiej giełdy towarowej (NYMEX) 1999 – katastrofa sondy marsjańskiej Mars Orbiter 1999 – katastrofa sondy marsjańskiej Mars Orbiter 2000 – przedawkowania w National Cancer Institute, Panama City 2000 – przedawkowania w National Cancer Institute, Panama City 2000 – problem roku – problem roku 2000

6 Dokumentacja i Jakość Oprogramowania 6 Wprowadzenie do jakości oprogramowania Co to jest jakość? Stopień w jakim system, komponent lub proces /obiekt spełnia wyspecyfikowane wymagania Stopień w jakim system, komponent lub proces /obiekt spełnia wyspecyfikowane wymagania Stopień w jakim system, komponent lub proces /obiekt spełnia oczekiwania klienta lub użytkownika Stopień w jakim system, komponent lub proces /obiekt spełnia oczekiwania klienta lub użytkownika IEEE Std IEEE Std

7 Dokumentacja i Jakość Oprogramowania 7 Wprowadzenie do jakości oprogramowania Wymagania systemowe funkcjonalne niezawodnościowe funkcje interfejsy zasoby platformy dostępność ochrona przed intruzami gotowość obsługi czas reakcji porządek zdarzeń czasowe czas oczekiwania H.Krawczyk

8 Dokumentacja i Jakość Oprogramowania 8 Wprowadzenie do jakości oprogramowania Wymagania a atrybuty Wymagania Atrybuty jakości funkcjonalnefunkcjonalność czasowewydajność niezawodnościowewiarygodność ograniczeniaelastyczność

9 Dokumentacja i Jakość Oprogramowania 9 Wprowadzenie do jakości oprogramowania Drzewo jakości Jakość FunkcjonalnośćWydajnośćWiarygodnośćSatysfakcjaElastyczność Kompletność funkcjonalna Złożoność Adekwatność Spójność Łatwość śledzenia Łatwość testowania Efektywność wykonania Wydajność interakcji Stabilność Skalowalność Niezawodność Odporność na błędy Bezpieczeństwo Ochrona Łatwość testowania Łatwość użycia Zrozumiałość Łatwość nauki Produktywność Akceptowalność Przenośność Modyfikowalność Konfigurowalność Łatwość testowania

10 Dokumentacja i Jakość Oprogramowania 10 Wprowadzenie do jakości oprogramowania Funkcjonalność Funkcjonalność (Functionality) – dopasowanie systemu do potrzeb funkcjonalnych Funkcjonalność (Functionality) – dopasowanie systemu do potrzeb funkcjonalnych Kompletność funkcjonalna (Functional completness) – stopień pokrycia wymaganych funkcji Kompletność funkcjonalna (Functional completness) – stopień pokrycia wymaganych funkcji Złożoność (Complexity) – stopień skomplikowania systemu i jego elementów Złożoność (Complexity) – stopień skomplikowania systemu i jego elementów Adekwatność (Adequacy) – stopień dopasowania wykonywanych funkcji do ich specyfikacji Adekwatność (Adequacy) – stopień dopasowania wykonywanych funkcji do ich specyfikacji Spójność (Integrity) – stopień dopasowania poszczególnych elementów systemu do siebie Spójność (Integrity) – stopień dopasowania poszczególnych elementów systemu do siebie Łatwość śledzenia (Traceability) – łatwość orientowania się w sposobie działania systemu Łatwość śledzenia (Traceability) – łatwość orientowania się w sposobie działania systemu Łatwość testowania (Testability) – łatwość sprawdzenia poprawności działania systemu Łatwość testowania (Testability) – łatwość sprawdzenia poprawności działania systemu

11 Dokumentacja i Jakość Oprogramowania 11 Wprowadzenie do jakości oprogramowania Wydajność Wydajność (Performance) – zbiór cech związanych z osiągami systemu Wydajność (Performance) – zbiór cech związanych z osiągami systemu Efektywność wykonania (Execution efficiency) – szybkość działania systemu Efektywność wykonania (Execution efficiency) – szybkość działania systemu Wydajność interakcji (Interaction performance) – szybkość komunikacji z użytkownikiem Wydajność interakcji (Interaction performance) – szybkość komunikacji z użytkownikiem Stabilność (Stability) – odporność systemu na zmiany środowiska (platformy programistycznej, systemu operacyjnego, zmiennych środowiskowych) Stabilność (Stability) – odporność systemu na zmiany środowiska (platformy programistycznej, systemu operacyjnego, zmiennych środowiskowych) Skalowalność (Scalability) – podatność systemu na zmianę (zwiększenie) wymagań ilościowych Skalowalność (Scalability) – podatność systemu na zmianę (zwiększenie) wymagań ilościowych

12 Dokumentacja i Jakość Oprogramowania 12 Wprowadzenie do jakości oprogramowania Wiarygodność Wiarygodność (Dependability) - stopień zaufania do systemu Wiarygodność (Dependability) - stopień zaufania do systemu Niezawodność (Reliability) - określa, czy system nie upadnie i można korzystać z jego usług Niezawodność (Reliability) - określa, czy system nie upadnie i można korzystać z jego usług Odporność na błędy (Error-tolerance) - stopień tolerancji błędów; Odporność na błędy (Error-tolerance) - stopień tolerancji błędów; Bezpieczeństwo (Safety) - stopień zapobiegania szkodom, jakie system może wyrządzić w otoczeniu Bezpieczeństwo (Safety) - stopień zapobiegania szkodom, jakie system może wyrządzić w otoczeniu Ochrona (Security) - stopień kontroli dostępu do systemu Ochrona (Security) - stopień kontroli dostępu do systemu Łatwość testowania (Testability) - zdolność do wykrywania i identyfikacji błędów w systemie Łatwość testowania (Testability) - zdolność do wykrywania i identyfikacji błędów w systemie

13 Dokumentacja i Jakość Oprogramowania 13 Wprowadzenie do jakości oprogramowania Satysfakcja Satysfakcja (Satisfaction) – zespół cech określających stopień zadowolenia użytkownika Satysfakcja (Satisfaction) – zespół cech określających stopień zadowolenia użytkownika Łatwość użycia (Ease of use) – łatwość obsługi produktu Łatwość użycia (Ease of use) – łatwość obsługi produktu Zrozumiałość (Understandability) – łatwość zrozumienia produktu wynikająca z zastosowanych konwencji jego opisu Zrozumiałość (Understandability) – łatwość zrozumienia produktu wynikająca z zastosowanych konwencji jego opisu Łatwość nauki (Learnability) – nakład pracy wymagany do zdobycia umiejętności posługiwania się produktem Łatwość nauki (Learnability) – nakład pracy wymagany do zdobycia umiejętności posługiwania się produktem Produktywność (Productivity) – stopień wspomagania zadań użytkownika przez system Produktywność (Productivity) – stopień wspomagania zadań użytkownika przez system Akceptowalność (Acceptance) – stopień akceptacji przez użytkownika Akceptowalność (Acceptance) – stopień akceptacji przez użytkownika

14 Dokumentacja i Jakość Oprogramowania 14 Wprowadzenie do jakości oprogramowania Elastyczność Elastyczność (Flexibility) – umiejętność dopasowania się systemu do zachodzących zmian Elastyczność (Flexibility) – umiejętność dopasowania się systemu do zachodzących zmian Przenośność (Portability) – łatwość przystosowania systemu do nowego środowiska lub rozszerzenia środowiska Przenośność (Portability) – łatwość przystosowania systemu do nowego środowiska lub rozszerzenia środowiska Modyfikowalność (Modifiability) – łatwość wprowadzania zmian w funkcjach systemu Modyfikowalność (Modifiability) – łatwość wprowadzania zmian w funkcjach systemu Konfigurowalność (Configurability) – łatwość dostosowania systemu do potrzeb użytkownika bez konieczności zmian jego funkcji Konfigurowalność (Configurability) – łatwość dostosowania systemu do potrzeb użytkownika bez konieczności zmian jego funkcji Łatwość testowania (Ease of testing) – łatwość projektowania i wykonywania testów Łatwość testowania (Ease of testing) – łatwość projektowania i wykonywania testów

15 Dokumentacja i Jakość Oprogramowania 15 Wprowadzenie do jakości oprogramowania Wagi atrybutów w różnych klasach aplikacji (1) Klasy aplikacji SpecjalistyczneInternetowe Czasu rzeczywistego Wiarygodność0,30,51 Bezpieczeństwo0,501 Niezawodność10,51 Ochrona011 Odporność na błędy0,50,61 Łatwość testowana10,91

16 Dokumentacja i Jakość Oprogramowania 16 Wprowadzenie do jakości oprogramowania Wagi atrybutów w różnych klasach aplikacji (2) Klasy aplikacji SpecjalistyczneInternetowe Czasu rzeczywistego Satysfakcja0,30,90,6 Łatwość użycia0,710,8 Zrozumiałość0,710,2 Łatwość nauki0,310,6 Produktywność10,81 Akceptowalność0,60,70,5

17 Dokumentacja i Jakość Oprogramowania 17 Wprowadzenie do jakości oprogramowania Wagi atrybutów w różnych klasach aplikacji (3) Klasy aplikacji SpecjalistyczneInternetowe Czasu rzeczywistego Funkcjonalność0,8 0,9 Kompletność funkcjonalna 10,61 Złożoność0,50,80,9 Adekwatność111 Spćjność0,711 Łatwość śledzenia0,60,40,5

18 Dokumentacja i Jakość Oprogramowania 18 Wprowadzenie do jakości oprogramowania Wagi atrybutów w różnych klasach aplikacji (4) Klasy aplikacji SpecjalistyczneInternetowe Czasu rzeczywistego Elastyczność0,31 Przenośność0,110,2 Modyfikowalność0,310,2 Konfigurowalność0,70,90,7 Łatwość testowania0,211

19 Dokumentacja i Jakość Oprogramowania 19 Wprowadzenie do jakości oprogramowania Wagi atrybutów w różnych klasach aplikacji (5) Klasy aplikacji SpecjalistyczneInternetowe Czasu rzeczywistego Wydajność0,20,80,4 Skalowalność0,110 Stabilność0,110 Wydajność interakcji0,40,80,5 Efektywność wykonania 0,20,41

20 Dokumentacja i Jakość Oprogramowania 20 Wprowadzenie do jakości oprogramowania Atrybuty a metryki Jakość FunkcjonalnośćWydajnośćWiarygodnośćSatysfakcjaElastyczność Kompletność funkcjonalna Złożoność Adekwatność Spójność Łatwość śledzenia Łatwość testowania Atrybuty – cechy jakościowe produktu, świadczą o jego wartości dla użytkownika Metryki – cechy ilościowe, określają sposób oceny poszczególnych atrybutów

21 Dokumentacja i Jakość Oprogramowania 21 Wprowadzenie do jakości oprogramowania Wyznaczenie atrybutów Jakość FunkcjonalnośćWydajnośćWiarygodnośćSatysfakcjaElastyczność Kompletność funkcjonalna Złożoność Adekwatność Spójność Łatwość śledzenia Łatwość testowania M j – metryka [0 – 1] w j – waga metryki ? A i – atrybut [0 – 1] j j jj i w wM A

22 Dokumentacja i Jakość Oprogramowania 22 Wprowadzenie do jakości oprogramowania Metryki a miary Kompletność funkcjonalna = Liczba zrealizowanych funkcji Liczba wymaganych funkcji Metryka – to co się mierzyMiara – jak się mierzy [0 – 1] [%] [MFLOPS] [KLOC] ?

23 Dokumentacja i Jakość Oprogramowania 23 Wprowadzenie do jakości oprogramowania Miary a pomiary Miara 0,95 0,94 0,99 0,92 1 ekspert 1 ekspert 2 ekspert 3 ekspert 4 ekspert 5 AVG 0,96 ? Czy 0,96 to dużo, czy mało?

24 Dokumentacja i Jakość Oprogramowania 24 Wprowadzenie do jakości oprogramowania Podsumowanie problemów z oceną jakości Jakość jest pojęciem złożonym Jakość jest pojęciem złożonym Pomiar jest często subiektywny Pomiar jest często subiektywny Często brak punktu odniesienia Często brak punktu odniesienia Problem z normalizacją wyniku pomiaru Problem z normalizacją wyniku pomiaru Wagi mogą być arbitralnie ustalone Wagi mogą być arbitralnie ustalone Problem z oceną wyniku Problem z oceną wyniku

25 Dokumentacja i Jakość Oprogramowania 25 Wprowadzenie do jakości oprogramowania Literatura (2002) (2002) billions-better-estimation-planning-can-help.php Norton Fenton: Software Metrics, Chapman Hall, billions-better-estimation-planning-can-help.php Norton Fenton: Software Metrics, Chapman Hall, billions-better-estimation-planning-can-help.php billions-better-estimation-planning-can-help.php John L. Hennesy & David Patterson: Computer Architecture a quantitative approach. Morgan Kaufmann Publishers, Inc, 1996 John L. Hennesy & David Patterson: Computer Architecture a quantitative approach. Morgan Kaufmann Publishers, Inc, 1996 Pressman R.S., Software engineering. A practitioners approach, McGraw-Hill, International Edition, 1992 Pressman R.S., Software engineering. A practitioners approach, McGraw-Hill, International Edition, 1992 Górski J. et al., Inżynieria oprogramowania w projekcie informatycznym, wyd. Mikom, Warszawa, 2000 Górski J. et al., Inżynieria oprogramowania w projekcie informatycznym, wyd. Mikom, Warszawa, 2000


Pobierz ppt "Wprowadzenie do jakości Oprogramowania Jarosław Kuchta Dokumentacja i Jakość Oprogramowania"

Podobne prezentacje


Reklamy Google