320 likes | 594 Views
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. J.Kuchta@eti.pg.gda.pl. Przeglądy produktu. Zmiany produktu. Operacje produktu. Czynniki jakości produktu.
E N D
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 J.Kuchta@eti.pg.gda.pl
Przeglądy produktu Zmiany produktu Operacje produktu Czynniki jakości produktu Przenośność (Czy mogę to uruchomić na innej maszynie?) Utrzymywalność (Czy mogę to utrzymać?) Łatwość powtórnego użycia (Czy mogę wykorzystać część tego?) Elastyczność (Czy mogę to zmieniać?) Łatwość współdziałania (Czy będę mógł współpracować z innym systemem?) Testowalność (Czy mogę to testować?) Poprawność(Czy to robi to, co ja chcę?) źródło: Pressman 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?) Model jakości McCalla
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 Model jakości McCalla
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 Model jakości McCalla
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 Model jakości McCalla
Czynniki a metryki Fq = c1×m1 + c2×m2 + ... + cn×mn Czynniki Metryki Model jakości McCalla
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 Model jakości McCalla
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 Model jakości McCalla
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 Model jakości McCalla
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 Model jakości McCalla
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? Model jakości McCalla
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ść? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
Ł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? Model jakości McCalla
Ł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? Model jakości McCalla
Ł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)? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? *) przyjmuje się, że przeciętny człowiek jest w stanie naraz zapamiętać do 7 elementów Model jakości McCalla
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)? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
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? Model jakości McCalla
Literatura • Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992 Model jakości McCalla