Model Rayleigha w zwinnych metodykach wytwarzania

Transkrypt

Model Rayleigha w zwinnych metodykach wytwarzania
ROZDZIAŁ 99
MODEL RAYLEIGHA W ZWINNYCH METODYKACH
WYTWARZANIA OPROGRAMOWANIA
Model Rayleigha to narzędzie służące do estymacji liczby wykrywanych w systemie
informatycznym defektów, w trakcie realizacji tego systemu, oraz do predykcji liczby defektów
ukrytych, które wyjdą na jaw dopiero po wdrożeniu systemu u klienta. Model ten ma
ugruntowaną pozycję wśród klasycznych metodyk wytwarzania oprogramowania. Brak
natomiast prac badających jego użyteczność w metodykach zwinnych. W rozdziale został
opisany przeprowadzony w warunkach akademickich eksperyment, w którym, przy pomocy
monitorowania pojawiania się defektów w projekcie informatycznym, weryfikowano
poprawność działania modelu Rayleigha dla zwinnego procesu wytwarzania oprogramowania.
Badano projekty studenckiego realizowane w procesie zbliżonym do programowania
ekstremalnego.
1. WPROWADZENIE
Bardzo istotnym elementem każdego procesu wytwarzania oprogramowania powinno
być zarządzanie jakością. Istnieje kilka różnych definicji jakości w procesie
wytwarzania oprogramowania. Według autorów [9] najważniejszy jest punkt widzenia
klienta, który z kolei swoją wizję jakości zazwyczaj opiera na kilku zmiennych, takich
jak: cena, niezawodność, wydajność, satysfakcja z użytkowania produktu i inne. Nie
wszystkie te zmienne są mierzalne w związku z tym w [9] sugeruje się przybliżanie
jakości przy pomocy liczby awarii systemu występujących w jednostce czasu i liczby
defektów przypadających na milion linii kodu. Autorzy [4] podają, że zespół działań,
których celem jest sporządzenie raportów informujących o jakości produktu
i reagowanie gdy raporty te wskazują na niespełnienie założonych standardów,
nazywany jest zapewnianiem jakości (quality assurance). Zgodnie z tą definicją
zapewnianie jakości można oprzeć o wielkości zasugerowane w [9] – są to wielkości
mierzalne i łatwo można na ich podstawie określić wymagane standardy.
Z wielkościami tymi jednak wiąże się dosyć poważny problem. Trudno wyliczyć ich
wartości przed zakończeniem realizacji projektu. Jednym z narzędzi umożliwiających
Marian Jureczko: Politechnika Wrocławska, Instytut Informatyki, Automatyki i Robotyki;
Wybrzeże Wyspiańskiego 27, 50-370 Wrocław; [email protected]
M. Jureczko
szacowanie liczby defektów jeszcze przed ukończeniem projektu jest model
Rayleigha.
Istnieje bogata literatura dotycząca zastosowania modelu Rayleigha
w zarządzaniu jakością w projekcie informatycznym. Obszerne wyjaśnienie sposobu
jego używania i zasady działania można znaleźć w [8], [10] i [11]. W [13] wykazano,
że model Rayleigha, po odpowiednim dopasowaniu parametrów w rozkładzie
Weibulla, jest jednym z najlepszych predykatorów liczby defektów. Porównywano
tam dwie wersje modelu Rayleigha, z kilkoma różnymi modelami przyrostu
niezawodności, opartymi o rozkład wykładniczy. Walidację modelu Rayleigha dla
trzech różnych projektów programistycznych można znaleźć w [5]. Ponadto
zaproponowano tam, w oparciu o te trzy projekty, sposób łączenia danych
historycznych z różnych projektów w celu lepszego wykalibrowania modelu.
Prowadzone są również badania mające na celu zwiększenie dokładności oszacowań
dostarczanych przez model. Przykład takich badań opisano w [12], gdzie
wprowadzono koncepcję „punktów zmiany”. Koncepcja ta polega na podzieleniu
czasu na odcinki, na których stosuje się rozkłady z różnymi parametrami.
Wszystkie wymienione powyżej prace, opisujące i rozwijające model
Rayleigha, dotyczą zastosowania go w kaskadowym procesie wytwarzania
oprogramowania. Eksperyment opisywany w tym rozdziale jest próbą udzielenia
odpowiedzi na pytanie o możliwość zastosowania modelu Rayleigha do
przewidywania liczby defektów w systemie wytworzonym w procesie zwinnym.
Jedyną pracą łączącą model Rayleigha z metodykami zwinnymi, do jakiej udało się
dotrzeć, jest [14]. Niestety praca ta, koncentruje się na zwinnym wytwarzaniu
dokumentacji i nie próbuje nawet odpowiadać na sformułowane powyżej pytanie.
Struktura tego rozdziału jest następująca. W podrozdziale 2 przedstawiono
rozkład Weibulla i opierający się na nim model Rayleigha. Podrozdział 3 zawiera
definicję i szczegółowy opis przeprowadzonego eksperymentu. W podrozdziale
4 przedstawiono uzyskane wyniki, a w podrozdziale 5 płynące z nich wnioski
i potencjalne kierunki prowadzenia dalszych badań.
2. MODEL RAYLEIGHA I ROZKLAD WEIBULLA
Model Rayleigha to narzędzie pozwalające estymować liczbę defektów w programie
na podstawie danych historycznych. Jest on oparty o rozkład Weibulla i w związku
z tym przed omówieniem samego modelu przedstawiony zostanie rozkład Weibulla.
2.1.
ROZKŁAD WEIBULLA
Rozkład Weibulla jest od dawna powszechnie używany do przeprowadzania analizy
niezawodności. Jego cechą charakterystyczną jest to, że koniec wykresu
2
Model Rayleigha w zwinnych metodykach wytwarzania oprogramowania
asymptotycznie dąży do zera, ale go nigdy nie osiąga. Dystrybuantę F(t) oraz funkcję
gęstości prawdopodobieństwa f(t) tego rozkładu definiuje się następująco:
F(t ) = 1 - e-( t/c )
m
(1)
m
m
m t 
f(t ) =   e − ( t/c )
t c
(2)
gdzie m to współczynnik kształtu, c współczynnik skali, natomiast t oznacza czas.
Stosując rozkład Weibulla do zarządzania jakością w projekcie
programistycznym wykorzystuje się jego funkcję gęstości prawdopodobieństwa. Służy
ona do estymacji liczby, lub częstotliwości
występowania defektów w funkcji czasu.
W będącym
tematem
rozdziału
eksperymencie badano liczbę wykrywanych
defektów w funkcji czasu.
Kształt funkcji gęstości rozkładu
w istotny sposób zależy od wartości
współczynnika kształtu m, co pokazano na
rysunku 1. Dobór wartości współczynnika
kształtu powinien być oparty o dane
doświadczalne.
2.2.
MODEL RAYLEIGHA
Rys. 1 Gęstość prawdopodobieństwa rozkładu
Weibulla (dla c=1)
Model Rayleigha to narzędzie umożliwiające
przewidywanie liczby defektów operacyjnych
(defektów ukrytych w gotowym, przekazanym
klientowi systemie) na podstawie historii
występowania defektów w trakcie procesu
wytwarzania oprogramowania. Prace [5], [8],
[10], [11] i wiele innych pokazują zastosowanie
Rys. 2 Model Rayleigha
modelu Rayleigha w kaskadowych procesach
wytwarzania oprogramowania. W procesach tych wyróżnia się fazy, np.: projekt
wysokiego poziomu, projekt niskiego poziomu, implementacja, testy jednostkowe,
testy integracyjne, testy systemu. Fazy te występują po sobie. Rozpoczęcie następnej
ma miejsce dopiero po zakończeniu poprzedniej. W celu zastosowania modelu
Rayleigha w takim procesie konstruuje się histogram, co pokazano na rysunku 2.
Każdy słupek histogramu odpowiada liczbie defektów wykrytych w danej fazie
procesu. Do tak skonstruowanego histogramu dopasowuje się rozkład Weibulla.
3
M. Jureczko
Dopasowanie rozkładu polega na odpowiednim dobraniu jego parametrów (m, c).
Następnie należy jeszcze go przemnożyć przez stałą równą liczbie defektów. Dzięki
temu uzyskuje się funkcję fR, z której całka jest całkowitej równa liczbie defektów.
Adekwatność uzyskanego rozkładu należy zweryfikować stosując test dopasowania,
według autorów [3] najlepiej do tego celu stosować test Kołmogorowa Smirnowa lub
ewentualnie test chi kwadrat. Jeżeli dopasowany rozkład będzie adekwatny do
zebranych danych (historii występowania defektów w trakcie procesu wytwarzania
oprogramowania) to licząc z uzyskanej z niego funkcji fR całkę, od miejsca w którym
się zakończyła ostatnia faza procesu (w omawianym tu przykładzie faza testów
systemu) do nieskończoności, dostajemy oszacowanie liczby defektów ukrytych
w systemie.
Model Rayleigha jest oparty o rozkład Weibulla ze współczynnikiem kształtu
m=2, lub bliskim tej wartości. W [10] podano, że przyjęcie m=2 może prowadzić do
konstrukcji modelu, który zaniża liczbę defektów operacyjnych i w praktyce często
lepszy jest model z parametrem m=1,8. Najlepsze efekty uzyskuje się, gdy dobiera się
wartość współczynnika na podstawie danych historycznych. W taki właśnie sposób
postąpiono w opisywanym tu eksperymencie.
3. OPIS EKSPERYMENTU
Podrozdział ten zawiera definicję eksperymentu, jego plan oraz opis sposobu
przeprowadzenia.
3.1.
DEFINICJA EKSPERYMENTU
Obiekty badania: iteracyjny, zwinny proces wytwarzania oprogramowania, zbliżony
do metodyki programowania ekstremalnego (XP); model Rayleigha jako narzędzie
pozwalające na predykcję liczby defektów operacyjnych w systemie informatycznym.
Cel eksperymentu: zweryfikowanie możliwości zastosowania modelu Rayleigha do
opisywania liczby wykrywanych defektów w funkcji czasu, przy założeniu, że system
informatyczny, w którym są wykrywane defekty, jest wytwarzany w zwinnym
procesie; zbadanie skuteczności modelu Rayleigha w estymacji liczby defektów
operacyjnych systemu informatycznego wytwarzanego w zwinnym procesie.
Środowisko: badano projekty realizowane przez studentów piątego roku informatyki,
studiów magisterskich. Tematyka projektów była różnorodna.
3.2.
ŚRODOWISKO EKSPERYMENTU
Eksperyment został przeprowadzony w środowisku akademickim. Badano projekty
4
Model Rayleigha w zwinnych metodykach wytwarzania oprogramowania
realizowane w ramach zajęć projektowych przez studentów piątego roku informatyki.
Studenci mieli przynajmniej kilkuletnie doświadczenie w posługiwaniu się
obiektowymi językami programowania wynikające z odbytych przez nich zajęć
dydaktycznych. Nowością dla nich natomiast były metodyki zwinne oraz wynikające
z nich metody pracy, takie jak testy jednostkowe.
Każdy projekt był realizowany przez czteroosobowy zespół, w którym jedna
osoba pełniła funkcję kierownika projektu. Implementacja projektów trwała jeden
semestr, z którego wyłączono ostatni miesiąc. Miesiąc ten został przeznaczony na
testowanie. Testy były przeprowadzane przez innych studentów, niż ci, którzy projekt
realizowali. Były to testy na zasadzie czarnej skrzynki. Miały one za zadanie
zasymulować użytkowanie aplikacji przez użytkownika docelowego (klienta). Model
Rayleigha ma za zadanie przewidywać liczbę defektów po zakończeniu fazy testów,
w zastosowanym tu podejściu waliduje się go jako estymator liczby defektów
wykrytych po ostatniej iteracji projektu, czyli w fazie testów. Podejście takie znajduje
swoje uzasadnienie w wykładniczych modelach przyrostu niezawodności ([6], [7], [8],
[10], [13], [15]). Z modeli tych wynika bowiem, że liczba błędów wykrytych podczas
fazy testów jest dużo większa niż liczba defektów operacyjnych. Szacowanie przy
pomocy modelu sumy defektów operacyjnych i defektów wykrytych podczas fazy
testów i przyrównywanie ich do liczby defektów wykrytych podczas testów nie
prowadzi więc do dużej niedokładności.
Stosowany proces wytwarzania oprogramowania był wzorowany na
programowanie ekstremalnym w oparciu o [1] i [2]. Niestety z uwagi na formułę
przedmiotu, w ramach którego projekty były realizowane, nie wszystkie zalecane
w XP praktyki można było wyegzekwować. Stosowano iteracyjne podejście
sterowane historiami użytkownika (historie składały się ze scenariusza głównego
i ewentualnie alternatywnych). W każdej iteracji implementowano, uprzednio
wybrane w ramach gry planistycznej (rolę klienta grał prowadzący) z zachowaniem
praktyki opcjonalności, historie. Iteracje trwały jeden lub dwa tygodnie.
Programowanie rozpoczynano od testów, zarówno na poziomie testów akceptacyjnych
jak i jednostkowych. Nie udało się natomiast wdrożyć takich praktyk jak
programowanie w parach (z uwagi na fakt, że studenci nad projektem pracowali
w domu, a nie na zajęciach) czy też cykle kwartalne (to z uwagi na zbyt krótki czas
realizacji projektu).
W eksperymencie badano dziesięć projektów. Niestety, z powodu braków
w danych, aż cztery projekty trzeba było odrzucić i analizie poddano jedynie sześć.
W analizowanych projektach liczba defektów wykrytych przed przekazaniem systemu
do testów wahała się od 21 do 57, średnio dla projektu wykrywano 43 defekty.
3.3.
ZMIENNE
W eksperymencie weryfikuje się dwie hipotezy, każda z nich opiera się na innych
5
M. Jureczko
zmiennych. Przy weryfikowaniu, czy model Rayleigha poprawnie opisuje pojawianie
się w funkcji czasu defektów, zmienną jest czas (numer iteracji) wykrycia defektu.
Przy weryfikowaniu, czy model Rayleigha poprawnie przewiduje liczbę defektów
operacyjnych, zmienną zależną jest liczba defektów wykryta podczas testów czarnej
skrzynki, a zmienną niezależną oszacowana liczba defektów uzyskana z modelu.
3.4.
HIPOTEZY
Dla każdego z badanych projektów z osobna weryfikowano hipotezę zerową:
– H0 x – Rozkład empiryczny występowania defektów w funkcji czasu nie
różni się w sposób istotny od rozkładu teoretycznego wynikającego
z modelu Rayleigha. Hipotezę weryfikowano przy pomocy testu
dopasowania x, gdzie x może się równać chi (test chi kwadrat) lub ks (test
Kołmogorowa Smirnowa).
– H1 x – Hipoteza alternatywna. Rozkład empiryczny w istotny sposób różni
się od rozkładu teoretycznego.
Dla wszystkich badanych projektów łącznie weryfikowano hipotezę zerową:
– H1 P – Nie ma istotnej różnicy pomiędzy liczbą defektów znalezionych
w projekcie podczas testów czarnej skrzynki, a predykcją tej liczby
uzyskaną z modelu Rayleigha.
– H1 P – Hipoteza alternatywna. Istnieje istotna różnica pomiędzy empiryczną
liczbą defektów, a predykcją modelu.
3.5.
POMIARY
W procesie wytwarzania oprogramowania zastosowano system śledzenia defektów
Mantis. W systemie tym zgłaszano głównie defekty wynikające z niezaliczonych
testów akceptacyjnych. Pojawiały się również postulaty dotyczące niedopasowania
implementacji do oczekiwań klienta, oraz wykrycia złych praktyk programistycznych.
Każde zgłoszenie odpowiadało jednemu defektowi. Data wprowadzenia zgłoszenia
stanowiła podstawę do powiązania defektu z iteracją. Na podstawie liczby defektów
skonstruowano histogram (wysokość słupka odpowiadała liczbie defektów
zgłoszonych w iteracji), który był badany pod kątem zgodności z modelem Rayleigha.
Na etapie testów czarnej skrzynki dwuosobowa grupa studentów testowała
system wcielając się w rolę przyszłego klienta. Zgłaszano błędy dotyczące
niezgodności ze specyfikacją, niestabilnego działania i niewłaściwych rozwiązań
w interfejsie aplikacji.
6
Model Rayleigha w zwinnych metodykach wytwarzania oprogramowania
4. WYNIKI EKSPERYMENTU
Dla każdego z projektów skonstruowano histogram opisujący wykrywanie defektów
w funkcji czasu. Do histogramu dopasowano rozkład Weibulla. Dla każdego projektu
sprawdzono przy pomocy dwóch testów dopasowania, czy rozkład dobrze opisuje
pojawianie się defektów. Rezultat tych kroków opisano w 4.1.
Dla każdego, z uzyskanych w 4.1, modeli wyliczono analitycznie oszacowanie
liczby defektów operacyjnych i porównano je z liczbą defektów wykrytych podczas
testów czarnej skrzynki. Rezultat tego porównania przedstawiony jest w 4.2.
Projekt 1
m=1,8
Projekt 2
m=2,5
Projekt 3
m=1,9
Projekt 4
m=1,7
Projekt 5
m=2,59
Projekt 6
m=1,75
Rys. 3 Defekty wykrywane w badanych projektach z dopasowanymi do nich rozkładami Weibulla
7
M. Jureczko
4.1.
MODEL RAYLEIGHA JAKO ESTYMATOR LICZBY WYKRYWANYCH
W TRAKCIE WYTWARZANIA OPROGRAMOWANIA DEFEKTÓW
Na rysunku 3 pokazano histogramy wykrywania defektów w procesie wytwarzania
oprogramowania dla poszczególnych, badanych projektów oraz dopasowane do nich
rozkłady. Dla każdego z rozkładów podano uzyskany współczynnik kształtu m.
Tabela 1. Wyniki zastosowania testów Kołmogorowa Smirnowa i chi kwadrat do uzyskanych
rozkładów. P oznacza przyjęcia, a O odrzucenie hipotezy zerowej. Przy pomocy α oznaczono
poziom istotności testu.
1
2
3
4
5
6
Projekt
α
H0 ks
H0 chi
0,
1
P
P
0,0
5
P
P
0,0
1
P
P
0,
1
P
P
0,0
5
P
P
0,0
1
P
P
0,
1
P
O
0,0
5
P
O
0,0
1
P
P
0,
1
O
O
0,0
5
P
O
0,0
1
P
O
0,
1
O
O
0,0
5
P
O
0,0
1
P
P
0,
1
O
O
0,0
5
P
O
0,01
P
P
W tabeli 1 pokazano dla których projektów udało się dopasować rozkład
Weibulla tak dobrze, że test dopasowania pozwolił zaakceptować hipotezę zerową
mówiącą o tym, że nie ma istotnej różnicy pomiędzy rozkładem teoretycznym,
a danymi empirycznymi. Test Kołmogorowa Smirnowa pozwolił zaakceptować
wszystkie rozkłady na najczęściej stosowanym poziomie istotności α=0,05.
Natomiast, działający w stosunku do rozkładu Weibulla bardzo restrykcyjnie [3], test
chi kwadrat, pozwolił przyjąć jako poprawne tylko niektóre spośród uzyskanych
rozkładów.
4.2.
MODEL RAYLEIGHA JAKO ESTYMATOR LICZBY DEFEKTÓW
OPERACYJNYCH
Tabela 2. Liczba defektów operacyjnych
Projekt
Liczba defektów znaleziona podczas testów
czarnej skrzynki
Predykcja liczby defektów operacyjnych
uzyskana z modelu
1
28
2
21
3
19
4
21
5
10
6
20
6,55
1,04
1,83
3,54
2,26
1,18
W tabeli 2 przedstawiono rezultat zastosowania modelu Rayleiga do predykcji
liczby defektów operacyjnych. Uzyskane wyniki pokazują, że model bardzo mocno
zaniża liczbę defektów. Wartości uzyskane podczas testów czarnej skrzynki są
zdecydowanie większe niż ich predykcje. Predykcje uzyskiwano wyliczając całkę
z dopasowanego rozkładu na przedziale od końca ostatniej iteracji do
nieskończoności. Rozmiar próbki jest zbyt mały, żeby można zweryfikować
poprawność hipotezy H0 P. W świetle uzyskanych wyników, wydaje się jednak bardzo
mało prawdopodobne, aby hipoteza ta była prawdziwa.
8
Model Rayleigha w zwinnych metodykach wytwarzania oprogramowania
5. WNIOSKI I MOŻLIWOŚCI DALSZEGO ROZWOJU
Przeanalizowane projekty programistyczne pozwalają stwierdzić, że schemat
wykrywania defektów w czasie, w projekcie wykonywanym według zwinnej
metodyki, jest podobny do tego, z jakim mamy do czynienia w projektach
realizowanych według metodyk tradycyjnych. Zarówno w jednym, jak i w drugim
przypadku schemat ten może zostać opisany przy pomocy modelu Rayleigha.
Przebadano zaledwie sześć projektów. Stawianie ogólnych wniosków może więc być
bardzo ryzykowne. Przebadane projekty mają bowiem ze sobą wiele wspólnego
(wszystkie były realizowane przez niezbyt doświadczonych programistów –
studentów, w niezbyt długim okresie czasu – jeden semestr). Uzyskane tu wnioski
mogą więc nie mieć zastosowania do projektów informatycznych innych kategorii.
Uzasadnione jest powtórzenie opisanego w tym rozdziale eksperymentu dla kolejnych
projektów, w celu uzyskania statystycznie istotniejszych rezultatów.
Druga z badanych hipotez, dotycząca możliwości predykcji liczby defektów
operacyjnych projektu zrealizowanego według metodyki zwinnej przy pomocy
modelu Rayleigha, nie została zweryfikowana. Rozmiar próbki nie pozwalał na
uzyskanie statystycznie istotnych wyników, zdrowy rozsądek podpowiada jednak, że
model nie przewiduje poprawnie liczby defektów operacyjnych. Powody, dla których
model nie zadziałał prawidłowo, czyli tak jak działa w przypadku procesu
kaskadowego, mogą być różne. Być może studenci zaniżali liczbę defektów w swoich
aplikacjach, mając nadzieję, na zaprezentowanie tym sposobem swojej pracy
w lepszym świetle. Możliwe jest również, że brak doświadczenia w przeprowadzaniu
testów, powodował, iż produkt po ostatniej iteracji zawierał więcej defektów, niż by to
miało miejsce w sytuacji, w której rozwijany by on był przez programistów mających
doświadczenie w stosowaniu metodyk zwinnych. Otrzymanie ostatecznych wniosków
co do możliwości zastosowania modelu do predykcji liczby defektów operacyjnych
wymaga dalszych badań i przeanalizowania kolejnych projektów. Z punktu widzenia
możliwości stosowania modelu Rayleigha, najciekawszym, potencjalnym wynikiem
dalszych badań, jest znalezienie zależności funkcyjnej pozwalającej, na podstawie
wyjścia modelu, wyliczyć liczbę defektów operacyjnych (w najprostszym przypadku
byłoby to przemnożenie wyjścia modelu przez stałą). Wyznaczenie zależności
funkcyjnej wymaga jednak zdecydowanie większej próbki niż ta, którą udało się
uzyskać na potrzeby opisanego w tym rozdziale eksperymentu.
Eksperyment pokazuje, że model Rayleigha nie sprawdza się w metodykach
zwinnych tak dobrze, jak ma to miejsce w przypadku procesu kaskadowego. Sytuacja
taka nie może zbytnio dziwić. W procesie kaskadowym początkowo stale rośnie
rozmiar wytworzonego systemu, co może pociągać za sobą zwiększanie się liczby
defektów. Natomiast końcowe fazy są poświęcone tylko testowaniu, więc liczba
defektów powinna się zmniejszać. W metodykach zwinnych system rośnie, aż do
samego końca. Na rzecz zmniejszania się liczby defektów przemawia jedynie widmo
9
M. Jureczko
zbliżającego się wydania. Duża liczba defektów blisko terminu wydania zwiększa
ryzyko niepomyślnego wdrożenia systemu u klienta.
LITERATURA DO ROZDZIAŁU
[1] Astels D., Miller G., Novak M.: Extreme programming: teoria i praktyka prowadzenia projektów
programistycznych. Helion, Gliwice 2002.
[2] Beck K., Andres C.: Wydajne programowanie: Extreme programming. Mikom, Warszawa 2005.
[3] Cieślik G., Jóźwiak I., Jureczko M.: Applying Rayleigh model to predict software reliability. IEEE
Transactions on Reliability, 2008, w recenzji.
[4] Flasiński M.: Zarządzanie projektami informatycznymi. Wydawnictwo naukowe PWN, Warszawa
2006.
[5] Galinac T., Golubić S.: Project overlaping and its influence on the product quality. Proc of the 8th
International Conference on Telecommunications, pp. 655-662, 2005.
[6] Goel A.L.: Software Reliability Models: Assumptions, Limitations, and Applicability. IEEE
Transactions on Software Engineering vol. SE-11, no. 12, pp. 1411-1423, 1985.
[7] Huang C-Y.: Cost-reliability-optimal release policy for software reliability models incorporating
improvements in testing efficiency. The Journal of System and Software no. 77, pp. 139-155, 2005.
[8] Kan S. H.: Modeling and software development quality. IBM Systems Journal, vol. 30, no. 3, pp.
351-362, 1991.
[9] Kan S. H., Basili V. R., Shapiro L. N.: Software quality: An overview from the perspective of total
quality management. IBM System Journal, vol. 33, no. 1, pp. 4-19, 1994.
[10] Kan S. H.: Metryki i modele w inżynierii jakości oprogramowania. Wydawnictow naukowe
PWN, Warszawa 2006.
[11] Li P.L.: A Catalog of Techniques that Predict Information about the Count or Rate of Field
Defects. CMU tech report CMU-ISR1-06-122, School of Computer Science, Pittsburgh, 2006.
[12] Lin C-T., Huang C-Y., Chang J-R.: Integrating generalized Weibull-type testing-effort function
and multiple change-point into software reliability growth models. Proc. of the 12th Asia-Pacific
Software Engineering Conference, 2005.
[13] Lo J-H, Huang C-Y.: An integration of fault detection and correction processes in software
reliability analysis. The Journal of System and Software no. 79, pp. 1312-1323, 2006.
[14] Luqi, Zhang L.: Documentation Driven Agile Development for Systems of Embedded Systems.
Proc. Of the 4th Workshop on Software Engineering for Embedded Systems, 2003.
[15] Rinsaka K., Dohi T.: Optimal Testing/ Maintenance Design in a Software Development Project.
Electronics and Communications in Japan (Part III: Fundamental Electronic Science), vol 89, no. 8,
pp. 1-9, 2006.
10

Podobne dokumenty