Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Slides:



Advertisements
Podobne prezentacje
Programowanie w PMC.
Advertisements

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania
Jarosław Kuchta Jakość Oprogramowania
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Jakość w procesie wytwarzania oprogramowania
Modelowanie przypadków użycia
Jakość w procesie wytwarzania oprogramowania
Projektowanie w cyklu życia oprogramowania
Kamil Smitkiewicz Bezpieczeństwo w PHP.
Sieci komputerowe.
Projektowanie Aplikacji Komputerowych
Dokumentowanie wymagań w języku XML
Systemy operacyjne.
Jarosław Kuchta Jakość Systemów Informatycznych
Pomiary w inżynierii oprogramowania
Pomiary w inżynierii oprogramowania
Administracja zintegrowanych systemów zarządzania
Systemy zarządzania treścią CMS
Wstęp do interpretacji algorytmów
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
REPOZYTORIA 1. Co to są repozytoria?
Wykład 2 Cykl życia systemu informacyjnego
Wady i zalety Microsoft Word –a
Atlantis INSPECTOR System wspomagania zarządzaniem i ewidencją obiektów sieciowych.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Inżynieria Oprogramowania
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Protokół Komunikacyjny
Temat: Eksplorator Windows - wędrówka po drzewie folderów
Instytut Tele- i Radiotechniczny WARSZAWA
Model przestrzenny Diagramu Obiegu Dokumentów
WinPakSE/PE Zintegrowany System Ochrony Obiektów
Wanda Klenczon Biblioteka Narodowa
Budowa systemu komputerowego
Użytkowanie komputerów
Budowa komputera.
Dr hab. Dariusz Piwczyński Katedra Genetyki i Podstaw Hodowli Zwierząt
Prezentacja i szkolenie
Konkurs Ofert 2007 Instalacja oprogramowania Kopiowanie danych.
Systemy operacyjne. Komputer aby mógł realizować zadania oraz aby wszystkie urządzenia w systemie komputerowym mogły działać poprawnie, musi być wyposażony.
Podstawowe informacje o SYSTEMIE WINDOWS
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Rynek tłumaczeń i lokalizacji w Polsce, Wrocław marca 2009r. Małgorzata Haas-Tokarska Maksymilian Nawrocki MORAVIA IT.
Przeglądanie zasobów komputera - uruchamianie programów
Architektura PC.
DxR 700 & Bosch Video Client
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
System plików.
Temat 4: Funkcje Systemu Zarządzania Bazą Danych (SZBD)
System Zarządzania Bazą Danych
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Procesor, pamięć, przerwania, WE/WY, …
Temat 6: Dokumentacja techniczna urządzeń sieciowych.
Jarosław Kuchta Jakość Oprogramowania
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Struktura systemu operacyjnego
Moduł e-Kontroli Grzegorz Dziurla.
Wstęp do interpretacji algorytmów
Model warstwowy ISO-OSI
Rozwiązania mobilne wykorzystujące i aktualizujące informacje przestrzenne Poznań
Dokumentacja programu komputerowego i etapy tworzenia programów.
Interfejs użytkownika „No matter how cool your interface is, less of it would be better”
Graficzny Interfejs Użytkownika
Inżynieria Oprogramowania Laboratorium
Temat: Zasoby komputera
Excel Informacje różne.
Zapis prezentacji:

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Model jakości McCalla http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/Jakosc J.Kuchta@eti.pg.gda.pl

Czynniki jakości produktu Operacje produktu Zmiany produktu Przeglądy 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?) Dokumentacja i Jakość Oprogramowania 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 Dokumentacja i Jakość Oprogramowania 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 Dokumentacja i Jakość Oprogramowania 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 Dokumentacja i Jakość Oprogramowania Model jakości McCalla

Czynniki a metryki Fq = c1×m1 + c2×m2 + ... + cn×mn Czynniki Metryki Dokumentacja i Jakość Oprogramowania Model jakości McCalla

Czynniki a metryki (1/4) Poprawność Wiarygodność Wydajność Kompletność Spójność Łatwość śledzenia Wiarygodność Dokładność Prostota Odporność na błędy Wydajność Zwartość Efektywność wykonania Operatywność Integralność Komunikatywność Instrumentacja Ochrona Dokumentacja i Jakość Oprogramowania Model jakości McCalla

Czynniki a metryki (2/4) Łatwość pielęgnacji Elastyczność Zwartość Spójność Instrumentacja Modularność Samo-dokumentacja Prostota Elastyczność Zwartość Spójność Rozszerzalność Ogólność Modularność Samo-dokumentacja Prostota Dokumentacja i Jakość Oprogramowania Model jakości McCalla

Czynniki a metryki (3/4) Łatwość powtórnego wykorzystania 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 Dokumentacja i Jakość Oprogramowania Model jakości McCalla

Czynniki a metryki (4/4) Łatwość współdziałania Użyteczność Standaryzacja komunikacji Standaryzacja danych Ogólność Modularność Użyteczność Operatywność Łatwość nauki Testowalność Komunikatywność Instrumentacja Modularność Samo-dokumentacja Prostota Dokumentacja i Jakość Oprogramowania Model jakości McCalla

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

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

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

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

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

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

Ł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

Ł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

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

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

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

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

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

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

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

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

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

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

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

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

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

Literatura Pressman R.S., Software engineering. A practitioner’s approach, McGraw-Hill, International Edition, 1992 Dokumentacja i Jakość Oprogramowania Model jakości McCalla