Wprowadzenie do Wprowadzenie do jakości Oprogramowania jakości Oprogramowania Jarosław Kuchta Jarosław Kuchta Dokumentacja i Jakość Dokumentacja i Jakość Oprogramowania Oprogramowania ttp://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/DJO [email protected]
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wprowadzenie do jakości Oprogramowania. http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/DJO. [email protected]. Znaczenie jakości systemów informatycznych. Systemy bankowe Systemy medyczne Systemy projektowe - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Wprowadzenie do Wprowadzenie do jakości jakości
OprogramowaniaOprogramowania
Jarosław KuchtaJarosław KuchtaDokumentacja i Jakość Dokumentacja i Jakość
oprogramowaniaoprogramowania 1/3 błędów można by uniknąć1/3 błędów można by uniknąć złożoność oprogramowania – 10złożoność oprogramowania – 1066 linii kodu linii kodu 80% kosztów opracowania – na 80% kosztów opracowania – na
wykrywanie i usuwanie błędówwykrywanie i usuwanie błędów
Dokumentacja i Jakość Oprogramowania
5Wprowadzenie do jakości oprogramowania
Przykłady skutków Przykłady skutków błędówbłędów
1962 – zboczenie z kursu rakiety nośnej sondy kosmicznej 1962 – zboczenie z kursu rakiety nośnej sondy kosmicznej Mariner IMariner I
THERAC-25 – USA, KanadaTHERAC-25 – USA, Kanada 1988 – pierwsze zarażenie komputerów w Berkeley przez robaka 1988 – pierwsze zarażenie komputerów w Berkeley przez robaka
internetowegointernetowego 1988-96 – brak bezpieczeństwa w systemie Kerberos1988-96 – brak bezpieczeństwa w systemie Kerberos 1990 – łańcuchowe załamanie komunikacji sieciowej AT&T1990 – łańcuchowe załamanie komunikacji sieciowej AT&T 1993 – błąd dzielenia Intel Pentium1993 – błąd dzielenia Intel Pentium 1995/96 – błąd w komunikacie „ping”1995/96 – błąd w komunikacie „ping” 1996 – katastrofa rakiety Ariane 51996 – katastrofa rakiety Ariane 5 1998 – awaria nowojorskiej giełdy towarowej (NYMEX)1998 – awaria nowojorskiej giełdy towarowej (NYMEX) 1999 – katastrofa sondy marsjańskiej Mars Orbiter1999 – katastrofa sondy marsjańskiej Mars Orbiter 2000 – przedawkowania w National Cancer Institute, Panama City2000 – przedawkowania w National Cancer Institute, Panama City 2000 – problem roku 20002000 – problem roku 2000
Dokumentacja i Jakość Oprogramowania
6Wprowadzenie do jakości oprogramowania
Co to jest jakość?Co to jest jakość? Stopień w jakim system, komponent lub Stopień w jakim system, komponent lub
proces /obiekt spełnia wyspecyfikowane proces /obiekt spełnia wyspecyfikowane wymagania wymagania
Stopień w jakim system, komponent lub Stopień w jakim system, komponent lub proces /obiekt spełnia oczekiwania klienta proces /obiekt spełnia oczekiwania klienta lub użytkownikalub użytkownika
systemu do potrzeb funkcjonalnychsystemu do potrzeb funkcjonalnych Kompletność funkcjonalna (Kompletność funkcjonalna (Functional completnessFunctional completness) – stopień ) – stopień
pokrycia wymaganych funkcjipokrycia wymaganych funkcji Złożoność (Złożoność (ComplexityComplexity) – stopień skomplikowania systemu i ) – stopień skomplikowania systemu i
jego elementówjego elementów Adekwatność (Adekwatność (AdequacyAdequacy) – stopień dopasowania ) – stopień dopasowania
wykonywanych funkcji do ich specyfikacjiwykonywanych funkcji do ich specyfikacji Spójność (Spójność (IntegrityIntegrity) – stopień dopasowania poszczególnych ) – stopień dopasowania poszczególnych
elementów systemu do siebieelementów systemu do siebie Łatwość śledzenia (Łatwość śledzenia (TraceabilityTraceability) – łatwość orientowania się w ) – łatwość orientowania się w
sposobie działania systemusposobie działania systemu Łatwość testowania (Łatwość testowania (TestabilityTestability) – łatwość sprawdzenia ) – łatwość sprawdzenia
poprawności działania systemupoprawności działania systemu
Dokumentacja i Jakość Oprogramowania
11Wprowadzenie do jakości oprogramowania
WydajnośćWydajność Wydajność (Wydajność (PerformancePerformance) – zbiór cech ) – zbiór cech
związanych z osiągami systemuzwiązanych z osiągami systemu Efektywność wykonania (Efektywność wykonania (Execution efficiencyExecution efficiency) – szybkość ) – szybkość
działania systemudziałania systemu Wydajność interakcji (Wydajność interakcji (Interaction performanceInteraction performance) – szybkość ) – szybkość
komunikacji z użytkownikiemkomunikacji z użytkownikiem Stabilność (Stabilność (StabilityStability) – odporność systemu na zmiany ) – odporność systemu na zmiany
środowiska (platformy programistycznej, systemu środowiska (platformy programistycznej, systemu operacyjnego, zmiennych środowiskowych)operacyjnego, zmiennych środowiskowych)
Skalowalność (Skalowalność (ScalabilityScalability) – podatność systemu na zmianę ) – podatność systemu na zmianę (zwiększenie) wymagań ilościowych(zwiększenie) wymagań ilościowych
Dokumentacja i Jakość Oprogramowania
12Wprowadzenie do jakości oprogramowania
WiarygodnośćWiarygodność Wiarygodność (Wiarygodność (DependabilityDependability) - stopień ) - stopień
zaufania do systemuzaufania do systemu Niezawodność (Niezawodność (ReliabilityReliability) - określa, czy system nie upadnie i ) - określa, czy system nie upadnie i
można korzystać z jego usług można korzystać z jego usług Odporność na błędy (Odporność na błędy (Error-toleranceError-tolerance) - stopień tolerancji ) - stopień tolerancji
błędów; błędów; Bezpieczeństwo (Bezpieczeństwo (SafetySafety) - stopień zapobiegania szkodom, jakie ) - stopień zapobiegania szkodom, jakie
system może wyrządzić w otoczeniusystem może wyrządzić w otoczeniu Ochrona (Ochrona (SecuritySecurity) - stopień kontroli dostępu do systemu) - stopień kontroli dostępu do systemu Łatwość testowania (Łatwość testowania (TestabilityTestability) - zdolność do wykrywania i ) - zdolność do wykrywania i
identyfikacji błędów w systemieidentyfikacji błędów w systemie
Dokumentacja i Jakość Oprogramowania
13Wprowadzenie do jakości oprogramowania
SatysfakcjaSatysfakcja Satysfakcja (Satysfakcja (SatisfactionSatisfaction) – zespół cech ) – zespół cech
określających stopień zadowolenia określających stopień zadowolenia użytkownikaużytkownika Łatwość użycia (Łatwość użycia (Ease of useEase of use) – łatwość obsługi produktu) – łatwość obsługi produktu Zrozumiałość (Zrozumiałość (UnderstandabilityUnderstandability) – łatwość zrozumienia ) – łatwość zrozumienia
produktu wynikająca z zastosowanych konwencji jego opisuproduktu wynikająca z zastosowanych konwencji jego opisu Łatwość nauki (Łatwość nauki (LearnabilityLearnability) – nakład pracy wymagany do ) – nakład pracy wymagany do
zdobycia umiejętności posługiwania się produktemzdobycia umiejętności posługiwania się produktem Produktywność (Produktywność (ProductivityProductivity) – stopień wspomagania zadań ) – stopień wspomagania zadań
użytkownika przez systemużytkownika przez system Akceptowalność (Akceptowalność (AcceptanceAcceptance) – stopień akceptacji przez ) – stopień akceptacji przez
dopasowania się systemu do dopasowania się systemu do zachodzących zmianzachodzących zmian Przenośność (Przenośność (PortabilityPortability) – łatwość przystosowania systemu ) – łatwość przystosowania systemu
do nowego środowiska lub rozszerzenia środowiskado nowego środowiska lub rozszerzenia środowiska Modyfikowalność (Modyfikowalność (ModifiabilityModifiability) – łatwość wprowadzania ) – łatwość wprowadzania
zmian w funkcjach systemuzmian w funkcjach systemu Konfigurowalność (Konfigurowalność (ConfigurabilityConfigurability) – łatwość dostosowania ) – łatwość dostosowania
systemu do potrzeb użytkownika bez konieczności zmian jego systemu do potrzeb użytkownika bez konieczności zmian jego funkcjifunkcji
Łatwość testowania (Łatwość testowania (Ease of testingEase of testing) – łatwość projektowania i ) – łatwość projektowania i wykonywania testówwykonywania testów
Dokumentacja i Jakość Oprogramowania
15Wprowadzenie do jakości oprogramowania
Wagi atrybutów w Wagi atrybutów w różnych klasach różnych klasach
Kompletność funkcjonalna =Liczba zrealizowanych funkcji
Liczba wymaganych funkcji
Metryka – to co się mierzy Miara – jak się mierzy
[0 – 1][%]
[MFLOPS][KLOC]
?
Dokumentacja i Jakość Oprogramowania
23Wprowadzenie do jakości oprogramowania
Miary a pomiaryMiary a pomiary
Miara
0,95
0,94
0,99
0,92
1
ekspert1
ekspert2
ekspert3
ekspert4
ekspert5
AVG0,96
?
Czy 0,96 to dużo, czy mało?
Dokumentacja i Jakość Oprogramowania
24Wprowadzenie do jakości oprogramowania
Podsumowanie Podsumowanie problemów z oceną problemów z oceną
jakościjakości Jakość jest pojęciem złożonymJakość jest pojęciem złożonym Pomiar jest często subiektywnyPomiar jest często subiektywny Często brak punktu odniesieniaCzęsto brak punktu odniesienia Problem z normalizacją wyniku pomiaruProblem z normalizacją wyniku pomiaru Wagi mogą być arbitralnie ustaloneWagi mogą być arbitralnie ustalone Problem z oceną wynikuProblem z oceną wyniku
John L. Hennesy & David Patterson: John L. Hennesy & David Patterson: Computer Computer Architecture a quantitative approachArchitecture a quantitative approach. Morgan . Morgan Kaufmann Publishers, Inc, 1996Kaufmann Publishers, Inc, 1996
Pressman R.S., Pressman R.S., Software engineering. A Software engineering. A practitioner’s approachpractitioner’s approach, McGraw-Hill, International , McGraw-Hill, International Edition, 1992Edition, 1992
Górski J. et al., Górski J. et al., Inżynieria oprogramowania w Inżynieria oprogramowania w projekcie informatycznymprojekcie informatycznym, wyd. Mikom, Warszawa, , wyd. Mikom, Warszawa, 20002000