14.ModelMcCalla

Download Report

Transcript 14.ModelMcCalla

Jarosław Kuchta
Dokumentacja i Jakość Oprogramowania
Model jakości McCalla
http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/Jakosc
[email protected]
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ć?)
Testowalność
(Czy mogę to testować?)
Przeglądy
produktu
Zmiany
produktu
Łatwość współdziałania
(Czy będę mógł współpracować
z innym systemem?)
Operacje produktu
źródło: Pressman
Dokumentacja i Jakość
Oprogramowania
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?)
Model jakości McCalla
2
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
Dokumentacja i Jakość
Oprogramowania
Model 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
Dokumentacja i Jakość
Oprogramowania
Model 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
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
5
Czynniki a metryki
Fq = c1×m1 + c2×m2 + ... + cn×mn
Czynniki
Dokumentacja i Jakość
Oprogramowania
Metryki
Model jakości McCalla
6
Czynniki a metryki (1/4)

Poprawność




Kompletność
Spójność
Łatwość śledzenia
Wiarygodność





Dokładność
Prostota
Spójność
Odporność na błędy
Dokumentacja i Jakość
Oprogramowania
Wydajność




Zwartość
Efektywność wykonania
Operatywność
Integralność



Model jakości McCalla
Komunikatywność
Instrumentacja
Ochrona
7
Czynniki a metryki (2/4)

Łatwość pielęgnacji






Zwartość
Spójność
Instrumentacja
Modularność
Samo-dokumentacja
Prostota

Elastyczność







Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
Zwartość
Spójność
Rozszerzalność
Ogólność
Modularność
Samo-dokumentacja
Prostota
8
Czynniki a metryki (3/4)


Przenośność





Ogólność
Niezależność sprzętowa
Niezależność
programowa
Modularność
Samo-dokumentacja
Dokumentacja i Jakość
Oprogramowania
Łatwość powtórnego
wykorzystania





Model jakości McCalla
Ogólność
Niezależność sprzętowa
Niezależność
programowa
Modularność
Samo-dokumentacja
9
Czynniki a metryki (4/4)

Łatwość współdziałania




Standaryzacja
komunikacji
Standaryzacja danych
Ogólność
Modularność

Użyteczność



Testowalność





Dokumentacja i Jakość
Oprogramowania
Operatywność
Łatwość nauki
Model jakości McCalla
Komunikatywność
Instrumentacja
Modularność
Samo-dokumentacja
Prostota
10
Ochrona (security)

zastosowanie mechanizmów ochrony programów i danych







Czy zastosowano logowanie użytkowników?
Czy wyróżnia się kategorie użytkowników z różnym poziomem dostępu?
Czy zastosowano szyfrowanie poufnych danych?
Jaki algorytm szyfrowania zastosowano?
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?
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
11
Dokładność (accuracy)

dokładność obliczeń i sterowania



Jaką zastosowano precyzję obliczeń?
Czy odpowiednio określono zakresy danych?
Czy sterowanie urządzeniami ma odpowiednią dokładność?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
13
Instrumentacja
(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 program wspiera usunięcie przyczyny błędu?
Dokumentacja i Jakość
Oprogramowania
Model 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 wymagane dla swojej kategorii?
Czy istnieje możliwość dodania szczególnych funkcji wymaganych przez
niektórych użytkowników?
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
15
Komunikatywność
(auditability)

łatwość sprawdzenia zgodności ze standardami








Czy system wykazuje zgodność ze standardami?
Czy dokumentacja systemu jest zrozumiała?
Czy system oferuje pomoc?
Czy istnieje pomoc kontekstowa?
Czy istnieją menu kontekstowe?
Czy stosuje się podpowiedzi do menu i przycisków sterowania?
Czy istnieje możliwość dostosowania menu i przycisków sterowania?
Czy dialogi również są zaopatrzone w pomoc?
Dokumentacja i Jakość
Oprogramowania
Model 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 może być dokumentowane w logach?
Czy istnieje możliwość wygenerowania i sprawdzenia dokumentów
pośrednich?
Dokumentacja i Jakość
Oprogramowania
Model 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 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)?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
21
Odporność na błędy
(error tolerance)

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?
Jak duża część danych jest tracona w przypadku awarii systemu? Czy jest
to akceptowalne?
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?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
23
Operatywność
(operability)

łatwość posługiwania się programem








Jaka jest liczba kroków wiodących użytkownika przez menu do najczęściej
wykonywanych operacji?
Jaka jest liczba kroków wiodących użytkownika przez menu do rzadziej
wykonywanych operacji?
Czy stosuje się przyciski narzędziowe do najczęściej 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 stosuje się podpowiedzi przy wprowadzaniu danych?
Czy istnieje możliwość automatyzacji pracy?
Dokumentacja i Jakość
Oprogramowania
Model 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?
przyjmuje się, że przeciętny człowiek jest w stanie naraz zapamiętać do 7 elementów
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
25
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)?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model 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? Na ile nowe?
Czy do połączeń komunikacyjnych stosuje się standardowe szybkości? Na
ile maksymalne?
Dokumentacja i Jakość
Oprogramowania
Model 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?
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
31
Literatura

Pressman R.S., Software engineering. A practitioner’s
approach, McGraw-Hill, International Edition,
1992
Dokumentacja i Jakość
Oprogramowania
Model jakości McCalla
32