background image

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

background image

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

background image

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

background image

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%

 

 

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

background image

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,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

background image

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

background image

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)

background image

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

background image

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?

background image

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

background image

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.

background image

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ą

background image

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?

background image

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?

background image

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?

background image

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?

background image

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?

background image

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?

background image

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?

background image

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!

background image

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.

background image

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.

background image

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

background image

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.

background image

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. 


Document Outline