32
Model jakości McCalla Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/Jakosc [email protected]

Jarosław Kuchta Jakość Systemów Informatycznych Jakość ... · Model jakości McCalla Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania

Embed Size (px)

Citation preview

Model jakości McCalla

Jarosław Kuchta

Jakość Systemów Informatycznych

Jakość Oprogramowania

http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/Jakosc

[email protected]

Czynniki jakości produktu

Jakość systemów

informatycznychModel jakości McCalla 2

Operacje produktu

Zmiany

produktu

Przeglądy

produktu

źródło: Pressman

Utrzymywalność

(Czy mogę to utrzymać?)

Elastyczność

(Czy mogę to zmieniać?)

Testowalność

(Czy mogę to testować?)

Przenośność (Czy mogę to

uruchomić na innej maszynie?)

Łatwość powtórnego użycia

(Czy mogę wykorzystać część tego?)

Łatwość współdziałania

(Czy będę mógł współpracować

z innym systemem?)

Poprawność (Czy to robi to, co ja chcę?)

Wiarygodność (Czy to robi dokładnie to przez cały czas?)

Wydajność (Czy to będzie odpowiednio działać na moim sprzęcie?)

Integralność (Czy to jest bezpieczne?)

Użyteczność (Czy to jest zaprojektowane pod użytkownika?)

Czynniki jakości (1/3)

• Poprawność (correctness) - stopień zgodności programu ze specyfikacją i zaspokojenia celów przedsięwzięcia

• Wiarygodność (reliability) - stopień, w jakim program wykonuje zamierzone funkcje z wymaganą precyzją

• Wydajność (efficiency) - ilość przetwarzanych zasobów i kodu, które program potrzebuje do wykonywania swoich funkcji

• Integralność (integrity) - stopień odporności programu lub danych na nieuprawnione użycie lub modyfikację

• Użyteczność (usability) - wysiłek, który musi być włożony w nauczenie się programu, w jego użycie, przygotowanie danych wejściowych i interpretację danych wyjściowych

Jakość systemów

informatycznychModel jakości McCalla 3

Czynniki jakości (2/2)

• Łatwość pielęgnacji (maintainability) -wysiłek, który musi być włożony w lokalizację błędów i ich naprawę

• Elastyczność (flexibility) - wysiłek wymagany dla modyfikacji działającego programu

• Testowalność (testability) - wysiłek, który jest potrzebny dla upewnienia się, że program funkcjonuje poprawnie

Jakość systemów

informatycznychModel jakości McCalla 4

Czynniki jakości (3/3)

• Przenośność (portability) - wysiłek, który może być wymagany dla przeniesienia oprogramowania z jednego systemu sprzętowego lub programowego do drugiego

• Możliwość powtórnego wykorzystania (reusability) -stopień, w jakim całość lub część oprogramowania może zostać powtórnie wykorzystana w innej aplikacji

• Łatwość współdziałania (interoperability) - wysiłek, który musi być włożony dla podłączenia jednego systemu do drugiego

Jakość systemów

informatycznychModel jakości McCalla 5

Czynniki a metryki

Jakość systemów

informatycznychModel jakości McCalla 6

Fq = c1×m1 + c2×m2 + ... + cn×mn

Czynniki Metryki

Czynniki a metryki (1/4)

• Poprawność

– Kompletność

– Spójność

– Łatwość śledzenia

• Wiarygodność

– Dokładność

– Prostota

– Spójność

– Odporność na błędy

• Wydajność

– Zwartość

– Efektywność wykonania

– Operatywność

• Integralność

– Łatwość kontroli

– Komunikatywność

– Ochrona

Jakość systemów

informatycznychModel jakości McCalla 7

Czynniki a metryki (2/4)

• Łatwość pielęgnacji

– Zwartość

– Spójność

– Komunikatywność

– Modularność

– Samo-dokumentacja

– Prostota

• Elastyczność

– Zwartość

– Spójność

– Rozszerzalność

– Ogólność

– Modularność

– Samo-dokumentacja

– Prostota

Jakość systemów

informatycznychModel jakości McCalla 8

Czynniki a metryki (3/4)

• Przenośność– Ogólność

– Niezależność sprzętowa

– Niezależność programowa

– Modularność

– Samo-dokumentacja

• Łatwość powtórnego wykorzystania

– Ogólność

– Niezależność sprzętowa

– Niezależność programowa

– Modularność

– Samo-dokumentacja

Jakość systemów

informatycznychModel jakości McCalla 9

Czynniki a metryki (4/4)

• Łatwość współdziałania– Standaryzacja

komunikacji

– Standaryzacja danych

– Ogólność

– Modularność

• Użyteczność– Operatywność

– Łatwość nauki

• Testowalność– Łatwość kontroli

– Komunikatywność

– Modularność

– Samo-dokumentacja

– Prostota

Jakość systemów

informatycznychModel jakości McCalla 10

Ochrona (security)

• zastosowanie mechanizmów ochrony programów i danych– Czy zastosowano uwierzytelnianie i autoryzację użytkowników?

– Czy wyróżnia się kategorie (role) użytkowników z różnym poziomem dostępu?

– Czy zastosowano szyfrowanie poufnych danych?

– Czy zastosowano odpowiednio silny algorytm szyfrowania?

– Czy zablokowano boczne furtki dostępu?

– Czy wykrywa się próby nieuprawnionego dostępu lub nieautoryzowanej modyfikacji?

– Czy istnieje możliwość odtworzenia danych w przypadku nieuprawnionej modyfikacji?

Jakość systemów

informatycznychModel jakości McCalla 11

Dokładność (accuracy)

• dokładność obliczeń i sterowania– Czy zastosowano odpowiednią precyzję obliczeń?

– Czy odpowiednio określono zakresy danych?

– Czy sterowanie urządzeniami ma odpowiednią dokładność?

Jakość systemów

informatycznychModel jakości McCalla 12

Efektywność wykonania(execution efficiency)

• wydajność programu w czasu wykonania– Czy czas reakcji programu na działania użytkownika jest zadowalający?

– Czy czas reakcji systemu na zdarzenia zewnętrzne jest wystarczający?

– Czy dla długotrwałych operacji zastosowano osobne wątki?

Jakość systemów

informatycznychModel jakości McCalla 13

Komunikatywność(instrumentation)

• stopień, w jakim program monitoruje swoje własne działania i identyfikuje pojawiające się błędy– Czy program podaje stan, w jakim się znajduje?

– Czy program podaje nazwę dokumentu, nad którym pracuje?

– Czy program podaje położenie dokumentu, nad którym pracuje?

– Czy program podaje postęp długotrwałych operacji?

– Czy, w przypadku błędu, podawany opis błędu jest zrozumiały?

– Czy istnieje wsparcie umożliwiające ustalenie przyczyny błędu?

– Czy wsparcie dotyczy też usunięcia przyczyny/skutku błędu?

Jakość systemów

informatycznychModel jakości McCalla 14

Kompletność(completeness)

• stopień implementacji wymaganych funkcji– Czy wszystkie jawnie wyspecyfikowane funkcje są w pełni

zaimplementowane?

– Czy niejawne wymagania są wypełnione? W jakim stopniu?

– Czy system spełnia standardy funkcjonalności wymagane dla swojej kategorii?

– Czy istnieje możliwość dodania szczególnych funkcji wymaganych przez niektórych użytkowników?

Jakość systemów

informatycznychModel jakości McCalla 15

Łatwość kontroli(auditability)

• łatwość sprawdzenia zgodności ze standardami– Czy system wykazuje zgodność ze standardami?

– Czy system posiada dokumentację?

– Czy dokumentacja systemu jest zrozumiała dla ekspertów?

– Czy system oferuje pomoc dla użytkownika?

– Czy pomoc dla użytkownika może być wykorzystana do kontroli?

Jakość systemów

informatycznychModel jakości McCalla 16

Łatwość śledzenia(traceability)

• łatwość powiązania projektu lub programu z wymaganiami– Czy struktura menu odpowiada strukturze wymagań funkcjonalnych?

– Czy działanie programu jest monitorowane dokumentowane w logach?

– Czy istnieje możliwość wygenerowania i sprawdzenia dokumentów pośrednich?

Jakość systemów

informatycznychModel jakości McCalla 17

Łatwość nauki(training)

• stopień, w jakim system pomaga nowym użytkownikom we wdrożeniu się do pracy– Czy system informuje nowego użytkownika o swoich podstawowych możliwościach?

– Czy interfejs systemu jest zgodny ze stosowanymi standardami?

– Czy system zachowuje się w sposób zgodny z intuicją?

– Czy system oferuje pomoc dla użytkownika?

– Czy pomoc dla użytkownika jest kontekstowa?

– Czy stosuje się podpowiedzi do menu i przycisków sterowania?

– Czy dialogi również są zaopatrzone w pomoc?

– Czy podpowiedzi systemu są zrozumiałe dla przeciętnego użytkownika?

– Czy system dostosowuje się do umiejętności użytkownika?

– Czy system oferuje szablony?

– Czy system oferuje dokumenty przykładowe?

– Czy system jest wyposażony w programy demonstracyjne?

– Czy system jest wyposażony w programy edukacyjne (samouczki)?

Jakość systemów

informatycznychModel jakości McCalla 18

Modularność(modularity)

• niezależność funkcjonalna komponentów programowych– Czy system składa się z modułów?

– Czy istnieją w systemie niezależnie wykonywane programy?

– Czy istnieją w systemie biblioteki DLL?

– Czy system wymaga do swojego działania programów z innych systemów?

– Czy system wymaga do swojego działania bibliotek z innych systemów?

Jakość systemów

informatycznychModel jakości McCalla 19

Niezależność programowa(software system independence)

• stopień, w którym program jest niezależny od niestandardowych rozwiązań programowych, charakterystyki systemu operacyjnego i innych ograniczeń środowiska– Czy program może zostać uruchomiony pod różnymi systemami

operacyjnymi?

– Czy istnieją wersje programu dla różnych systemów operacyjnych?

– Czy dane są przenośne na różne systemy operacyjne?

– Czy sposób kodowania znaków uwzględnia różne języki?

– Czy sposób kodowania liczb i dat uwzględnia różne języki?

– Czy istnieją różne wersje językowe interfejsu użytkownika?

Jakość systemów

informatycznychModel jakości McCalla 20

Niezależność sprzętowa(hardware independence)

• stopień, w jakim program jest niezależny od sprzętu, na którym pracuje– Czy program można uruchomić na starszych komputerach?

– Jakie są wymagania na pamięć operacyjną w stosunku do przeciętnej pojemności pamięci współcześnie stosowanego sprzętu?

– Jakie są wymagania na pamięć dyskową w stosunku do przeciętnej pojemności pamięci współcześnie stosowanego sprzętu?

– Czy program jest niezależny od producenta (typu) procesora?

– Jaka szybkość pracy procesora jest wymagana w stosunku do przeciętnie stosowanego sprzętu?

– Czy system ma inne wymagania co do sprzętu? Jakie?

Jakość systemów

informatycznychModel jakości McCalla 21

Odporność na błędy(error tolerance)

• odporność na uszkodzenia, które mogą powstać w przypadku błędu– Czy stosuje się kopie zapasowe danych?

– Czy istnieje możliwość odtworzenia danych w przypadku awarii systemu?

– Czy jest akceptowalna ilość danych tracona w przypadku awarii systemu (czas od ostatniej archiwacji danych)?

– Czy istnieje wsparcie techniczne dla sytuacji awaryjnych?

– Czy producent systemu publikuje listę najczęściej zadawanych pytań i odpowiedzi?

– Czy producent systemu zbiera informację o błędach od użytkowników?

– Czy producent systemu oferuje bezpłatne nakładki korygujące błędy?

– Czy aktualizacje systemu do kolejnych wersji są oferowane po preferencyjnych cenach?

Jakość systemów

informatycznychModel jakości McCalla 22

Ogólność(generality)

• zakres potencjalnych zastosowań programu– Ile klas zastosowań ma program?

– W jakich przypadkach program nie ma zastosowania?

– Czy program lub jego fragment może mieć inne zastosowanie niż tylko podstawowe?

Jakość systemów

informatycznychModel jakości McCalla 23

Operatywność(operability)

• łatwość posługiwania się programem– Czy liczba kroków (kliknięć) wiodących użytkownika do najczęściej

wykonywanych operacji nie przekracza dwóch?

– Czy stosuje się menu kontekstowe?

– Czy stosuje się przyciski narzędziowe do często wykonywanych operacji?

– Czy istnieją skróty klawiszowe do najczęściej wykonywanych operacji?

– Czy istnieje możliwość dostosowania przycisków narzędziowych dla bardziej zaawansowanych użytkowników?

– Czy istnieje możliwość dostosowania skrótów klawiszowych?

– Czy istnieje możliwość dostosowania menu i przycisków sterowania?

– Czy stosuje się podpowiedzi przy wprowadzaniu danych?

– Czy istnieje możliwość automatyzacji pracy?

Jakość systemów

informatycznychModel jakości McCalla 24

Prostota(simplicity)

• stopień, w jakim system może być bez trudu zrozumiały– Czy struktura menu jest prosta (ma nie więcej niż siedem*) elementów

na każdym poziomie)?

– Czy elementy menu mają standardowe nazwy?

– Czy paski narzędziowe są proste (podzielone na maks. 7 grup po 7 przycisków)?

– Czy ikony na przyciskach są zrozumiałe?

Jakość systemów

informatycznychModel jakości McCalla 25

*) przyjmuje się, że przeciętny człowiek jest w stanie naraz zapamiętać do 7 elementów

Rozszerzalność(expandability)

• stopień, w jakim można rozszerzyć architekturę, dane lub funkcjonalność systemu– Czy istnieje możliwość stosowania makrodefinicji (skryptów)?

– Czy można rozszerzyć menu o makrodefinicje?

– Czy istnieją dodatki (add-ins) do programu?

– Czy istnieje możliwość napisania własnego dodatku?

– Czy system ma specjalne mechanizmy wspierające pracę z dużymi dokumentami?

– Czy istnieje możliwość włączenia do dokumentu obiektów zarządzanych przez inne aplikacje (np. typu COM)?

Jakość systemów

informatycznychModel jakości McCalla 26

Samo-dokumentacja(self-documentation)

• stopień, w którym kod źródłowy dostarcza użytecznej informacji– Czy system przedstawia dokumenty w postaci What You See Is What

You Get?

– Czy program pamięta listę ostatnio otwartych dokumentów? Jak długą?

– Czy program przedstawia listę otwartych dokumentów?

– Czy przy otwieraniu dokumentu system oferuje podgląd jego zawartości?

– Czy program prezentuje podgląd wydruku?

Jakość systemów

informatycznychModel jakości McCalla 27

Spójność(consistency)

• użycie jednolitych technik projektowania i dokumentacji w całym procesie wytwarzania oprogramowania– Czy w całym systemie używa się tej samej formy przechowywania

danych?

– Czy interfejs systemu w różnych jego modułach jest zgodny? W jakim stopniu?

– Czy przejście od jednego modułu systemu do drugiego jest możliwe bez wychodzenia z systemu?

– Czy podsystem pomocy jest wspólny dla całego systemu?

Jakość systemów

informatycznychModel jakości McCalla 28

Zgodność danych(data commonality)

• użycie standardowych struktur i typów danych– Czy w systemie stosuje się standardowy sposób kodowania znaków

(ANSI, Unicode)?

– Czy stosuje się standardowe formaty plików (np. XML)?

– Czy stosuje się powszechnie dostępne systemy baz danych?

Jakość systemów

informatycznychModel jakości McCalla 29

Zgodność komunikacji(communication commonality)

• stopień stosowania standardowych interfejsów, protokołów, zakresów– Czy do połączenia z innymi systemami stosuje się standardowe

interfejsy?

– Czy do połączenia z innymi systemami stosuje się standardowe protokoły?

– Czy do połączeń komunikacyjnych stosuje się odpowiednio wysokie szybkości?

Jakość systemów

informatycznychModel jakości McCalla 30

Zwartość (conciceness)

• upakowanie programu (w liniach kodu)– Czy stosuje się zapis tekstowy, czy binarny danych?

– Ile zajmują dane na dysku w stosunku do wewnętrznej postaci danych?

– Czy stosowana jest kompresja danych?

– Czy istnieje jedna, wspólna część systemu, wykorzystywana przez różne części systemu?

Jakość systemów

informatycznychModel jakości McCalla 31

Literatura

• Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992

Jakość systemów

informatycznychModel jakości McCalla 32