Jakość w procesie
Jakość w procesie
wytwarzania
wytwarzania
oprogramowania
oprogramowania
Jarosław Kuchta
Jarosław Kuchta
Dokumentacja i Jakość
Dokumentacja i Jakość
Oprogramowania
Oprogramowania
http://www.eti.pg.gda.pl/katedry/kask/pracownicy/Jaroslaw.Kuchta/DJO
J.Kuchta@eti.pg.gda.pl
Dokumentacja i Jakość
Oprogramowania
2
Jakość w procesie wytwarzania op
rogramowania
Względny koszt wprowadzania
Względny koszt wprowadzania
zmian w zależności od fazy
zmian w zależności od fazy
realizacji projektu
realizacji projektu
Dokumentacja i Jakość
Oprogramowania
3
Jakość w procesie wytwarzania op
rogramowania
Model wzmocnienia
Model wzmocnienia
błędów
błędów
Błędy
Błędy
nowowprowadzone
nowowprowadzone
Błędy
Błędy
wzmocnione 1:x
wzmocnione 1:x
Procent
Procent
wydajnoś
wydajnoś
ci
ci
detekcji
detekcji
błędów
błędów
Błędy
Błędy
przepuszczone
przepuszczone
Błędy
Detekcja
Błędy z poprzedniego etapu
Błędy do następnego etapu
Źródło: Pressman
Dokumentacja i Jakość
Oprogramowania
4
Jakość w procesie wytwarzania op
rogramowania
Efekt wzmocnienia błędów
Efekt wzmocnienia błędów
–
–
kontrola jakości przy testowaniu
kontrola jakości przy testowaniu
0
0
0%
0%
0
0
10
10
6
6
0%
0%
4
4
1,5
1,5
25
25
10
10
20
20
%
%
27
27
3
3
25
25
50
50
%
%
0
0
0
0
50
50
%
%
0
0
0
0
50
50
%
%
0
0
0
0
Analiza wymagań
Projektowanie
Implementacja
Testy integracyjne
Testy akceptacyjne
Testy systemowe
1
0
6
4
3
7
1
0
2
7
9
4
4
7
9
4
2
4
1
2
Źródło: Pressman
Dokumentacja i Jakość
Oprogramowania
5
Jakość w procesie wytwarzania op
rogramowania
Efekt wzmocnienia błędów
Efekt wzmocnienia błędów
–
–
kontrola jakości w całym procesie
kontrola jakości w całym procesie
0
0
70
70
%
%
0
0
10
10
2
2
50
50
%
%
1
1
1,5
1,5
25
25
5
5
60
60
%
%
10
10
3
3
25
25
50
50
%
%
0
0
0
0
50
50
%
%
0
0
0
0
50
50
%
%
0
0
0
0
Analiza wymagań
Projektowanie
Implementacja
Testy integracyjne
Testy akceptacyjne
Testy systemowe
3
2
1
1
5
5
1
0
2
4
1
2
2
4
6
3
Źródło: Pressman
Dokumentacja i Jakość
Oprogramowania
6
Jakość w procesie wytwarzania op
rogramowania
Porównanie kosztów
Porównanie kosztów
wytwarzania
wytwarzania
Błędy wykryte
Błędy wykryte
Liczba błędów
Liczba błędów
Koszt jednostkowy
Koszt jednostkowy
Koszt sumaryczny
Koszt sumaryczny
Kontrola jakości przy testowaniu
Kontrola jakości przy testowaniu
Przed testowaniem
Przed testowaniem
22
22
6,5
6,5
143
143
Podczas testowania
Podczas testowania
82
82
15
15
1230
1230
Po wydaniu
Po wydaniu
12
12
67
67
804
804
Razem
Razem
2177
2177
Kontrola jakości w całym procesie
Kontrola jakości w całym procesie
Podczas wytwarzania
Podczas wytwarzania
22
22
1,5
1,5
33
33
Przed testowaniem
Przed testowaniem
36
36
6,5
6,5
234
234
Podczas testowania
Podczas testowania
15
15
15
15
225
225
Po wydaniu
Po wydaniu
3
3
67
67
202
202
Razem
Razem
693
693
Źródło: Pressman
Dokumentacja i Jakość
Oprogramowania
7
Jakość w procesie wytwarzania op
rogramowania
Ewolucja polityki
Ewolucja polityki
jakościowej
jakościowej
Kontrola jakości (QC –
Kontrola jakości (QC –
Quality Control
Quality Control
)
)
– lata 1970-te – kontrolowanie jedynie jakości produktu
– lata 1970-te – kontrolowanie jedynie jakości produktu
końcowego
końcowego
Sterowanie jakością (QC –
Sterowanie jakością (QC –
Quality Control
Quality Control
)
)
– lata 1980-te – kontrolowanie jakości produktów
– lata 1980-te – kontrolowanie jakości produktów
pośrednich
pośrednich
Zapewnienie jakości (SQA –
Zapewnienie jakości (SQA –
Software Quality
Software Quality
Assurance
Assurance
)
)
– lata 1990-te – opracowanie procedur zapewniających
– lata 1990-te – opracowanie procedur zapewniających
jakość na każdym etapie
jakość na każdym etapie
Zarządzanie jakością (TQM –
Zarządzanie jakością (TQM –
Total Quality
Total Quality
Management
Management
)
)
– lata 2000 – przeniesienie ciężaru
– lata 2000 – przeniesienie ciężaru
zapewnienia jakości z inżynierów na całą organizację
zapewnienia jakości z inżynierów na całą organizację
(zarządzanie)
(zarządzanie)
Dokumentacja i Jakość
Oprogramowania
8
Jakość w procesie wytwarzania op
rogramowania
Proces dla Quality
Proces dla Quality
Control
Control
Specyfikacja
wymagań
Analiza
Projektowanie
Implementacja
Testowanie
QC
QC
QC
QC
Kontrola jakości produktów
pośrednich jest nieefektywna!
Kontroluje się jakość produktu
po każdym etapie prac
Dokumentacja i Jakość
Oprogramowania
9
Jakość w procesie wytwarzania op
rogramowania
Software Quality
Software Quality
Assurance
Assurance
jest to planowy i usystematyzowany zbiór akcji
jest to planowy i usystematyzowany zbiór akcji
wymaganych dla zapewnienia jakości w
wymaganych dla zapewnienia jakości w
oprogramowaniu
oprogramowaniu
powołuje się
powołuje się
grupę SQA
grupę SQA
(inżynierowie,
(inżynierowie,
kierownicy, klienci, sprzedawcy i inni), która
kierownicy, klienci, sprzedawcy i inni), która
przygląda się powstającemu oprogramowaniu z
przygląda się powstającemu oprogramowaniu z
punktu widzenia klienta:
punktu widzenia klienta:
Czy oprogramowanie odpowiada czynnikom jakości?
Czy oprogramowanie odpowiada czynnikom jakości?
Czy oprogramowanie powstaje zgodnie z wcześniej
Czy oprogramowanie powstaje zgodnie z wcześniej
ustanowionymi standardami?
ustanowionymi standardami?
Czy techniczne dyscypliny odpowiednio wypełniają
Czy techniczne dyscypliny odpowiednio wypełniają
swoje role w aspekcie aktywności SQA?
swoje role w aspekcie aktywności SQA?
Dokumentacja i Jakość
Oprogramowania
10
Jakość w procesie wytwarzania op
rogramowania
Aktywności SQA
Aktywności SQA
Stosowanie metod technicznych
Stosowanie metod technicznych
Przeprowadzanie formalnych przeglądów
Przeprowadzanie formalnych przeglądów
technicznych (
technicznych (
FTR – Formal Technical
FTR – Formal Technical
Review
Review
)
)
Testowanie oprogramowania
Testowanie oprogramowania
Wymuszenie standardów
Wymuszenie standardów
Kontrolowanie zmian
Kontrolowanie zmian
Wykonywanie pomiarów
Wykonywanie pomiarów
Zapisywanie i raportowanie
Zapisywanie i raportowanie
Dokumentacja i Jakość
Oprogramowania
11
Jakość w procesie wytwarzania op
rogramowania
Cele FTR
Cele FTR
wykrycie błędów w funkcjach, logice lub
wykrycie błędów w funkcjach, logice lub
implementacji oprogramowania w dowolnej jego
implementacji oprogramowania w dowolnej jego
reprezentacji,
reprezentacji,
sprawdzenie, czy przeglądane oprogramowanie jest
sprawdzenie, czy przeglądane oprogramowanie jest
zgodne z wymaganiami,
zgodne z wymaganiami,
upewnienie się, że reprezentacja oprogramowania
upewnienie się, że reprezentacja oprogramowania
jest zgodna z wcześniej zdefiniowanymi
jest zgodna z wcześniej zdefiniowanymi
standardami,
standardami,
uzyskanie oprogramowania opracowanego w
uzyskanie oprogramowania opracowanego w
jednolity sposób,
jednolity sposób,
sprawienie, by projekty były łatwiejsze w
sprawienie, by projekty były łatwiejsze w
utrzymaniu.
utrzymaniu.
Dokumentacja i Jakość
Oprogramowania
12
Jakość w procesie wytwarzania op
rogramowania
Rodzaje FTR
Rodzaje FTR
przegląd (
przegląd (
walkthrough
walkthrough
)
)
przejrzenie treści dokumentu zgodnie z jego
przejrzenie treści dokumentu zgodnie z jego
logicznym uporządkowaniem (np. odczytanie
logicznym uporządkowaniem (np. odczytanie
dokumentu)
dokumentu)
inspekcje
inspekcje
przejrzenie dokumentu zgodnie z listą
przejrzenie dokumentu zgodnie z listą
kontrolną
kontrolną
Dokumentacja i Jakość
Oprogramowania
13
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna
Lista kontrolna
dla specyfikacji
dla specyfikacji
wymagań
wymagań
Czy główne funkcje są zdefiniowane w sposób powiązany i
Czy główne funkcje są zdefiniowane w sposób powiązany i
jednoznaczny?
jednoznaczny?
Czy interfejsy między elementami systemowymi są
Czy interfejsy między elementami systemowymi są
zdefiniowane?
zdefiniowane?
Czy ustalono granice wydajności dla całego systemu oraz
Czy ustalono granice wydajności dla całego systemu oraz
dla każdego jego elementu?
dla każdego jego elementu?
Czy ustalono ograniczenia projektowe dla każdego
Czy ustalono ograniczenia projektowe dla każdego
elementu?
elementu?
Czy wybrane zostało najlepsze rozwiązanie?
Czy wybrane zostało najlepsze rozwiązanie?
Czy rozwiązanie jest technologicznie możliwe?
Czy rozwiązanie jest technologicznie możliwe?
Czy opracowano mechanizm walidacji i weryfikacji
Czy opracowano mechanizm walidacji i weryfikacji
systemu?
systemu?
Czy zachowano spójność pomiędzy wszystkimi elementami
Czy zachowano spójność pomiędzy wszystkimi elementami
systemu?
systemu?
Dokumentacja i Jakość
Oprogramowania
14
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna dla
Lista kontrolna dla
analizy
analizy
Czy analiza dziedziny problemu jest kompletna,
Czy analiza dziedziny problemu jest kompletna,
zwarta i dokładna?
zwarta i dokładna?
Czy zakończono partycjonowanie problemu?
Czy zakończono partycjonowanie problemu?
Czy model danych odpowiada obiektom danych,
Czy model danych odpowiada obiektom danych,
ich atrybutom i relacjom?
ich atrybutom i relacjom?
Czy wszystkie wymagania znalazły odwzorowanie
Czy wszystkie wymagania znalazły odwzorowanie
w modelu?
w modelu?
Czy wykonano prototyp dla użytkownika?
Czy wykonano prototyp dla użytkownika?
Czy wydajność jest osiągalna w aspekcie
Czy wydajność jest osiągalna w aspekcie
ograniczeń wprowadzanych przez inne elementy
ograniczeń wprowadzanych przez inne elementy
systemu?
systemu?
Czy kryteria walidacyjne są kompletne?
Czy kryteria walidacyjne są kompletne?
Dokumentacja i Jakość
Oprogramowania
15
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna dla
Lista kontrolna dla
projektowania (1)
projektowania (1)
Czy wymagania softwerowe znalazły odwzorowanie w
Czy wymagania softwerowe znalazły odwzorowanie w
architekturze oprogramowania?
architekturze oprogramowania?
Czy zastosowano odpowiednią modularyzację? Czy moduły
Czy zastosowano odpowiednią modularyzację? Czy moduły
są funkcjonalnie niezależne?
są funkcjonalnie niezależne?
Czy zdefiniowano interfejsy dla modułów i elementów
Czy zdefiniowano interfejsy dla modułów i elementów
systemów zewnętrznych?
systemów zewnętrznych?
Czy struktura danych jest spójna z dziedziną informacji?
Czy struktura danych jest spójna z dziedziną informacji?
Czy struktura danych jest spójna ze specyfikacją
Czy struktura danych jest spójna ze specyfikacją
wymagań?
wymagań?
Czy uwzględniono łatwość pielęgnacji?
Czy uwzględniono łatwość pielęgnacji?
Czy jawnie uwzględniono czynniki jakości?
Czy jawnie uwzględniono czynniki jakości?
Dokumentacja i Jakość
Oprogramowania
16
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna dla
Lista kontrolna dla
projektowania (2)
projektowania (2)
Czy algorytmy odpowiadają wymaganym funkcjom?
Czy algorytmy odpowiadają wymaganym funkcjom?
Czy algorytmy są logicznie poprawne?
Czy algorytmy są logicznie poprawne?
Czy interfejs jest spójny z projektem architektury?
Czy interfejs jest spójny z projektem architektury?
Czy logiczna złożoność jest rozsądna?
Czy logiczna złożoność jest rozsądna?
Czy określono obsługę błędów i ochronę przed błędami?
Czy określono obsługę błędów i ochronę przed błędami?
Czy lokalne struktury danych są poprawnie zdefiniowane?
Czy lokalne struktury danych są poprawnie zdefiniowane?
Czy zachowano konstrukcje programowania
Czy zachowano konstrukcje programowania
strukturalnego?
strukturalnego?
Czy szczegółowość projektowania jest odpowiednia dla
Czy szczegółowość projektowania jest odpowiednia dla
języka implementacji?
języka implementacji?
Czy uwzględniono łatwość pielęgnacji?
Czy uwzględniono łatwość pielęgnacji?
Dokumentacja i Jakość
Oprogramowania
17
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna
Lista kontrolna
dla implementacji
dla implementacji
Czy projekt został odpowiednio przetłumaczony
Czy projekt został odpowiednio przetłumaczony
na kod?
na kod?
Czy zachowano zgodność ze standardami
Czy zachowano zgodność ze standardami
kodowania w zakresie stylu języka, komentarzy,
kodowania w zakresie stylu języka, komentarzy,
prologów modułów?
prologów modułów?
Czy nie ma niepoprawnych lub
Czy nie ma niepoprawnych lub
niejednoznacznych komentarzy?
niejednoznacznych komentarzy?
Czy typy danych zostały odpowiednio dobrane?
Czy typy danych zostały odpowiednio dobrane?
Czy stałe fizyczne zostały poprawnie
Czy stałe fizyczne zostały poprawnie
zdefiniowane?
zdefiniowane?
Dokumentacja i Jakość
Oprogramowania
18
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna
Lista kontrolna
dla testowania (1)
dla testowania (1)
Czy główne fazy testowania zostały poprawnie
Czy główne fazy testowania zostały poprawnie
zidentyfikowane i przeprowadzone?
zidentyfikowane i przeprowadzone?
Czy zachowano zgodność kryteriów walidacji ze
Czy zachowano zgodność kryteriów walidacji ze
specyfikacją wymagań?
specyfikacją wymagań?
Czy główne funkcje zademonstrowano wcześnie?
Czy główne funkcje zademonstrowano wcześnie?
Czy zasoby testów zostały zidentyfikowane i są
Czy zasoby testów zostały zidentyfikowane i są
dostępne?
dostępne?
Czy ustalono sposób zapisywania wyników
Czy ustalono sposób zapisywania wyników
testów?
testów?
Czy moduły sterujące testami i moduły zastępcze
Czy moduły sterujące testami i moduły zastępcze
testów zostały zidentyfikowane?
testów zostały zidentyfikowane?
Czy określono testy obciążeniowe
Czy określono testy obciążeniowe
oprogramowania?
oprogramowania?
Dokumentacja i Jakość
Oprogramowania
19
Jakość w procesie wytwarzania op
rogramowania
Lista kontrolna
Lista kontrolna
dla testowania (2)
dla testowania (2)
Czy przeprowadzono testowanie metodą białej i
Czy przeprowadzono testowanie metodą białej i
czarnej skrzynki?
czarnej skrzynki?
Czy wszystkie niezależne ścieżki logiczne zostały
Czy wszystkie niezależne ścieżki logiczne zostały
przetestowane?
przetestowane?
Czy przypadki testowe zostały zidentyfikowane i
Czy przypadki testowe zostały zidentyfikowane i
wylistowane z oczekiwanymi rezultatami?
wylistowane z oczekiwanymi rezultatami?
Czy obsługa błędów została przetestowana?
Czy obsługa błędów została przetestowana?
Czy wartości graniczne zostały przetestowane?
Czy wartości graniczne zostały przetestowane?
Czy przetestowano timing i wydajność?
Czy przetestowano timing i wydajność?
Czy określono dopuszczalne odchylenia od
Czy określono dopuszczalne odchylenia od
oczekiwanych rezultatów?
oczekiwanych rezultatów?
Dokumentacja i Jakość
Oprogramowania
20
Jakość w procesie wytwarzania op
rogramowania
Proces dla SQA
Proces dla SQA
Specyfikacja
wymagań
Analiza
Projektowanie
Implementacja
Testowanie
FTR
Jakość produktu kontroluje się wielokrotnie
na każdym etapie prac
FTR
FTR
FTR
FTR
Jak dowiodła praktyka SQA
wcale nie zapewnia wysokiej jakości!
Dokumentacja i Jakość
Oprogramowania
21
Jakość w procesie wytwarzania op
rogramowania
Co to jest TQM?
Co to jest TQM?
Total Quality Management
Total Quality Management
– jest to zbiór
– jest to zbiór
działań sprawiających, że każdy członek
działań sprawiających, że każdy członek
organizacji (od dyrektora do sprzątaczki)
organizacji (od dyrektora do sprzątaczki)
rozumie, jakie są oczekiwania klientów tej
rozumie, jakie są oczekiwania klientów tej
organizacji i dąży do spełnienia tych
organizacji i dąży do spełnienia tych
oczekiwań
oczekiwań
Rozumienie i spełnianie oczekiwań
Rozumienie i spełnianie oczekiwań
klientów jest wyzwaniem dla organizacji i
klientów jest wyzwaniem dla organizacji i
wymaga odpowiednich procesów.
wymaga odpowiednich procesów.
Dokumentacja i Jakość
Oprogramowania
22
Jakość w procesie wytwarzania op
rogramowania
Naczelne zasady TQM
Naczelne zasady TQM
Jakość może i musi być zarządzana.
Jakość może i musi być zarządzana.
Każdy ma swojego klienta i swojego dostawcę.
Każdy ma swojego klienta i swojego dostawcę.
Procesy, a nie ludzie stanowią problem.
Procesy, a nie ludzie stanowią problem.
Każdy pracownik jest odpowiedzialny za jakość.
Każdy pracownik jest odpowiedzialny za jakość.
Problemom trzeba zapobiegać, a nie tylko rozwiązywać
Problemom trzeba zapobiegać, a nie tylko rozwiązywać
Jakość musi być mierzona.
Jakość musi być mierzona.
Poprawa jakości musi być stała
Poprawa jakości musi być stała
Standard jakości jest wolny od defektów.
Standard jakości jest wolny od defektów.
Cele są oparte o wymagania, a nie negocjowane.
Cele są oparte o wymagania, a nie negocjowane.
Koszty są w ukryte w całym cyklu życia, a nie tylko w
Koszty są w ukryte w całym cyklu życia, a nie tylko w
wytwarzaniu.
wytwarzaniu.
Kierownictwo musi być zaangażowane i musi przewodzić.
Kierownictwo musi być zaangażowane i musi przewodzić.
Działania na rzecz poprawy jakości muszą być planowane i
Działania na rzecz poprawy jakości muszą być planowane i
organizowane.
organizowane.
Dokumentacja i Jakość
Oprogramowania
23
Jakość w procesie wytwarzania op
rogramowania
Podejście procesowe
Podejście procesowe
TQM
TQM
Specyfikacja
wymagań
Analiza
Projektowanie
Implementacja
Testowanie
QM
QM
QM
QM
QM
TQ
M
Utrzymanie
QM
Zapewnia się jakość procesów
w każdej fazie cyklu życia
Dokumentacja i Jakość
Oprogramowania
24
Jakość w procesie wytwarzania op
rogramowania
TQM w inżynierii
TQM w inżynierii
oprogramowania
oprogramowania
W fazie specyfikacji wymagań konieczne jest określenie
W fazie specyfikacji wymagań konieczne jest określenie
potrzeb wszystkich użytkowników, w tym użytkowników
potrzeb wszystkich użytkowników, w tym użytkowników
informacji generowanej przez oprogramowanie,
informacji generowanej przez oprogramowanie,
użytkowników wprowadzających dane i dostawców
użytkowników wprowadzających dane i dostawców
wewnętrznych.
wewnętrznych.
W fazie analizy i projektowania konieczne jest
W fazie analizy i projektowania konieczne jest
przeglądanie projektów przez użytkowników.
przeglądanie projektów przez użytkowników.
W fazie implementacji konieczne jest przeprowadzanie
W fazie implementacji konieczne jest przeprowadzanie
przeglądów wzajemnych (
przeglądów wzajemnych (
peer review
peer review
).
).
W fazie testowania konieczne jest przeprowadzenie
W fazie testowania konieczne jest przeprowadzenie
testowania przez klientów i ocena dokumentacji.
testowania przez klientów i ocena dokumentacji.
W fazie utrzymania przeprowadza się szkolenia i stale
W fazie utrzymania przeprowadza się szkolenia i stale
doskonali procesy projektowe i relacje z klientami.
doskonali procesy projektowe i relacje z klientami.
Dokumentacja i Jakość
Oprogramowania
25
Jakość w procesie wytwarzania op
rogramowania
Literatura
Literatura
Pressman R.S.,
Pressman R.S.,
Software engineering. A
Software engineering. A
practitioner’s approach
practitioner’s approach
, McGraw-Hill,
, McGraw-Hill,
International Edition, 1992
International Edition, 1992
Górski J. et al.,
Górski J. et al.,
Inżynieria oprogramowania w
Inżynieria oprogramowania w
projekcie informatycznym
projekcie informatycznym
, wyd. Mikom,
, wyd. Mikom,
Warszawa, 2000
Warszawa, 2000
Dahlgaard J. J., Kristensen K., Kanji G. K. -
Dahlgaard J. J., Kristensen K., Kanji G. K. -
Fundamentals of Total Quality Management
Fundamentals of Total Quality Management
,
,
Polish edition by PWN, 2000.
Polish edition by PWN, 2000.
Grudowski P., Kolman R., Meller A., Preihs J. -
Grudowski P., Kolman R., Meller A., Preihs J. -
Zarządzanie jakością (Quality Management)
Zarządzanie jakością (Quality Management)
,
,
Wydawnictwo Politechniki Gdanskiej, 1996.
Wydawnictwo Politechniki Gdanskiej, 1996.