• Nie Znaleziono Wyników

Nieznacznie lepsze

Nieznacznie lepsze

od nieprzemysłowych od nieotwartych od niestudenckich Nieznacznie lepsze

Istotnie lepsze

ր

Gorsze od

ց

od otwartych od przemysłowych od otwartych Istotnie lepsze

ր

Istotnie lepsze

ր

Nieznacznie lepsze

od studenckich od studenckich od przemysłowych

’ր’ – lepszy, wynik istotny statystycznie; ’ց’ – gorszy;

’–’ – lepszy, wynik nie istotny statystycznie;

Podsumowanie eksperymentu wstępnego zaprezentowano w Tabeli 5.34. Można z pewnym uprosz-czeniem przyjąć, że udało się częściowo wykazać istnienie klastra projektów otwartych. Natomiast w przypadku klastra projektów studenckich uzyskano zaskakująco słabe wyniki. Wskazywać to może na

5.4. PODSUMOWANIE 93

sporą dozę chaosu w tych projektach i stawia pod znakiem zapytania sens stosowania takich projektów w badaniach empirycznych dotyczących modeli predykcji defektów.

Tabela 5.35: Podsumowanie wyników eksperymentu z eksploracją danych Ocena względem

Klaster modelu referencyjnego Wynik

1 z 2 0,06 nieistotny stat.

2 z 2 -0,23 –

1 z 4 0,61 nieistotny stat.

2 z 4 21,47 istotny stat.

3 z 4 -1,63 –

4 z 4 Tylko jedno wydanie w klastrze

Przemysłowy A -4,02 –

Przemysłowy B 6,03 istotny stat. Przemysłowo otwarty 5,07 istotny stat.

Otwarty -1,81 –

Podsumowanie eksperymentu wykorzystującego eksplorację danych zaprezentowano w Tabeli 5.35. Łącznie badano istnienie 10 klastrów. 4 z nich zostały zidentyfikowane przy pomocy sieci Kohonena, a 6 przy pomocy k–średnich. Jeden klaster spośród tych 6 był zdegenerowany. Składał się tylko z jednego wydania, jednego projektu. W związku z tym klaster ten pominięto w analizach. Przepro-wadzone analizy wykazały z poziomem istotności α = 0, 05 istnienie trzech klastrów. Są to ”2 z 4”, ”Przemysłowy B” oraz ”Przemysłowo otwarty”

5.4.2 Charakterystyki zidentyfikowanych klastrów

Klaster ”2 z 4” to bardzo mały klaster, ale mimo to bardzo różnorodny pod względme zaklasyfiko-wanych do niego wydań projektów. W jego skład wchodzą Apache Ant w wersji 1.4 i trzy projekty studenckie dotyczące zagadnień z trzech różnych dziedzin: program na telefony komórkowe, wykonana w EJB aplikacja internetowa wspierająca pracę wydawców gazety studenckiej oraz opierający się na platformie Spring sklep internetowy. Członkowie tego klastra są tak różnorodni, że nie udało się dla nich znaleźć spójnej charakterystyki. Klaster ten w aktualnej postaci nie jest więc nazbyt użyteczny. Klaster ”Przemysłowy B” składa się około połowy projektów przemysłowych. Wszystkie zakwa-lifikowane do tego klastra projekty to rozwiązania przygotowywane na specjalne zamówienie klien-ta. Wszystkie tego typu projekty przemysłowe (nie tylko te które należą do klastra ”Przemysłowy B”) rozwijane były w sformalizowanym, sterowanym planem procesie wytwarzania oprogramowania. Wszystkie one zostały już z sukcesem zainstalowane w środowisku klienta. Kolejne wydania tych pro-jektów składają się z poprawek naprawiających błędy oraz z implementacji nowych funkcjonalności wynikających bądź to z życzeń klienta, bądź też ze zmian w prawie. Wszystkie te projekty nale-żą do branży ubezpieczeniowej. Nie wszystkie projekty przemysłowe pasujące do powyższego opisu zostały zakwalifikowane do klastra ”Przemysłowy B”. W związku z tym przeprowadzono ich dokład-niejszą analizę opierającą się na wywiadach przeprowadzonych z osobami realizującymi te projektu. Okazało się, że pomiędzy tymi projektami przemysłowymi, które zostały zakwalifikowane do klastra ”Przemysłowy B” a pozostałymi, istniały istotne różnice w fazie testów. Prawie wszystkie wydania projektów zakwalifikowane do klastra ”Przemysłowy B” były testowane ręcznie. Natomiast w wyda-niach, które do tego klastra nie zostały zakwalifikowane powszechnie stosowano testy automatyczne na poziomie regresyjnych testów funkcjonalnych. Czynnik związany ze stosowaną metodą testowania wyjaśnił przynależność wszystkich za wyjątkiem trzech wydań projektów. Istniały mianowicie trzy

94 ROZDZIAŁ 5. MIĘDZYPROJEKTOWA PREDYKCJA DEFEKTÓW

wydania projektów, które były testowane ręcznie, a mimo to nie zostały zakwalifikowane do klastra ”Przemysłowy B”. Po dalszej analizie okazało się, że te trzy wydania były rozwijane przez krótszy okres czasu niż pozostałe. We wszystkich badanych projektach przemysłowych stosowano praktykę polegającą na przygotowywaniu dwóch wydań rozwijanego systemu w ciągu roku. Powoduje to, że prace nad każdym wydaniem trwają około sześć miesięcy. Istnieje jednak kilka wydań, które się od tej zasady wyłamały i były opracowywane przez krótszy okres czasu. W szczególności od tej zasady wyłamały się te trzy wydania, które nie zostały zakwalifikowane do klastra ”Przemysłowy B”.

Klaster ”Przemysłowo otwarty” składa się z Apache Forrest w wersjach 0.7 oraz 0.8, Apache POI w wersjach 2.5.1 oraz 3.0, Apache Xalan w wersjach 2.4, 2.5, 2.6 oraz 2.7, Apache Xerces w wersjach 1.1.0, 1.2.0, 1.3.0 oraz 1.4.4, JEdit w wersjach 3.2.1, 4.1, 4.2 oraz 4.3 i dwóch wersji tego projektu przemysłowego, który jest standardowym narzędziem wspierającym zapewnianie jakości w projekcie programistycznym. Klaster ten składa się zatem z kilku różnych projektów, które były rozwijane przez różne firmy w różnych procesach wytwarzania oprogramowania. Dziedzina projektów również nie jest jednolita, ale mimo to można w tej kwestii znaleźć pewne cechy wspólne. Wszystkie należące do te-go klastra projekty mają wiele wspólnete-go z przetwarzaniem tekstu. Wszystkie, za wyjątkiem JEdit, wykorzystują systemy Jira lub Bugzilla jako system śledzenia defektów. Wszystkie, również za wyjąt-kiem JEdit, są rozwijane przez międzynarodowe zespoły średniej wielkości. Największy zespół składał się z 25 osób. W większości przypadków było to jednak dokładnie 11 osób. We wszystkich należących do tego klastra projektach wykorzystywano SubVersion do zarządzania wersjami kodu. Istnieją rów-nież podobieństwa dotyczące procesu testowania. Powszechnie stosowano w tych projektach wysoki poziom automatyzacji w testach.

Podsumowanie charakterystyk klastrów przedstawiono w Tabeli 5.36. Tabela 5.36: Charakterystyki klastrów Klaster Cechy wspólne

2 z 4 –

Przemysłowy B indywidualne zamówienie klienta, sformalizowa-ny i sterowasformalizowa-ny planem proces, już zainstalowane u klienta, branża ubezpieczeniowa, testy manu-alne, taki sam czas prac nad wydaniem, wyko-rzystywana baza danych, przemysłowe – wytwo-rzone przez tą samą firmę

Przemysłowo otwarty przetwarzanie tekstu, wykorzystywany

SubVer-sion oraz Jira lub Bugzilla, średniego rozmiaru

międzynarodowy zespół, automatyzacja w pro-cesie testowania, niewykorzystywana baza da-nych

5.4.3 Porównanie z wynikami innych badań

Badania dotyczące predykcji międzyprojektowej prowadzili między innymi Zimmerman i inni [119]. W swoim artykule opracowali oni drzewo decyzyjne pozwalające ocenić szansę powodzenia predykcji międzyprojektowej. Jeżeli wyniki badań przedstawionych w tym rozdziale są spójne z wynikami Zim-mermana, to wśród cech charakterystycznych klastrów powinny pojawić się takie, które we wspomnia-nym drzewie zwiększają szansę na powodzenie predykcji międzyprojektowej, a nie powinny pojawić się takie, które zmniejszają szansę udanej predykcji. Czynniki wskazane w [119] będą konfrontowane

5.4. PODSUMOWANIE 95

tylko z klastrami ”Przemysłowy B” oraz ”Przemysłowo otwarty”. Nie udało się zidentyfikować cech charakterystycznych klastra ”2 z 4”, więc nie będzie on w dalszych rozważaniach brany pod uwagę.

Zaproponowane przez Zimmermana drzewo decyzyjne wskazuje, że szansa na skuteczną predykcję międzyprojektową jest większa, jeżeli model budowany jest na podstawie projektu składającego się z większej liczby klas, a stosowany w projektach z mniejszą liczbą klas. Jest to relacja niesymetryczna i w związku z tym nie przystaje ona do koncepcji klastrów. Niemniej można ją skonfrontować z liczbą klas w poszczególnych projektach należących do analizowanych klastrów. Liczba klas w klastrze ”Prze-mysłowy B” waha się do 2286 do 4622. Występuje tam również jedno odstające wydanie, składające się z zaledwie 1694 klas. Wydania projektów należące do klastra ”Przemysłowo otwarty” składają się z od 162 do 909 klas. Występują dwa wydania odstające pod względem rozmiaru, składające się z 29 oraz 32 klas.

Drugi czynnik zwiększający szansę predykcji międzyprojektowej zidentyfikowany w [119] to fakt używania bazy danych. Jeżeli oba projekty nie wykorzystują bazy danych, to powinno to ułatwiać skuteczne przeprowadzenie predykcji pomiędzy tymi projektami. Wszystkie wydania projektów wcho-dzące w skład klastra ”Przemysłowy B” wykorzystują bazę danych, natomiast spośród wchodzących w skład klastra ”Przemysłowo otwarty” żadne z bazy danych nie korzysta.

Trzecim czynnikiem zidentyfikowanym w [119] jest firma odpowiedzialna za opracowywanie da-nego projektu. Zaprezentowano listę konkretnych firm, które zdaniem autorów miały pozytywny, lub też negatywny wpływ na dokładność predykcji międzyprojektowej. W badanych w tym rozdzia-le projektach wystąpił tylko jeden ze wskazanych w [119] wytwórców oprogramowania, mianowicie

Apache. Zdaniem Zimmermana i innych [119] fakt, że dwa projekty były wytwarzane przez Apa-che, powoduje zwiększenie dokładności predykcji międzyprojektowej. Z drugiej strony stwierdzono

w [119], że predykcja pomiędzy projektami wytworzonymi przez różne firmy zmniejsz dokładność predykcji międzyprojektowej. Stwierdzenia dotyczące czynnika – wytwórca oprogramowania znalazły tylko częściowe potwierdzenie w uzyskanym podziale na klastry. Wszystkie projekty, które weszły w skład klastra ”Przemysłowy B” były rozwijane przez Capgemini–sd&m. Projekty wchodzące w skład klastra ”Przemysłowo otwarty” były wytwarzane przez trzy firmy. Zdecydowana większość (12 wy-dań) zostało opracowanych przez Apache, 4 wydania opracowała społeczność JEdit, a 2 pochodzą z

Capgemini–sd&m. Klaster ”Przemysłowy B” nie łamie zatem zasady dotyczące predykcji pomiędzy

projektami wytworzonymi przez różne firmy i nie ma nic wspólnego z zasadą dotyczącą produktów

Apache. Klaster ”Przemysłowo otwarty” częściowo łamie zasadę dotyczące predykcji pomiędzy

pro-jektami wytworzonymi przez różne firmy, ale za to częściowo wspiera zasadę dotyczącą produktów

Rozdział 6

Praktyczne zastosowanie uzyskanych