• Nie Znaleziono Wyników

Dodanie nowych funkcji

W dokumencie Rozbudowa systemu KTDA (Stron 36-0)

6. Implementacja rozwiązania

6.3.  Dodanie nowych funkcji

Ostatnim   etapem   pracy   było   dodanie   brakujących   funkcji programu. Ta część nie sprawiła większych problemów. W tym stadium rozwoju autor biegle poruszał się po kodzie źródłowym aplikacji. Kolejne funkcje   były   dodawane   cyklicznie   do   momentu   spełnienia   założonych wymagań funkcjonalnych.

W bieżącym rozdziale znajduje się opis najważniejszych narzędzi użytych   podczas   implementacji   nowych   funkcjonalności   systemu.

Podczas   wyboru   technologii   głównymi   kryteriami   były:   wygoda użytkowania,   uniwersalność   oraz   dostępność   na   rynku   wolnego oprogramowania.   Wszystkie   technologie   i   narzędzia   zostały   opisane w kontekście   ich   pochodzenia,   popularności   oraz   warunków licencyjnych.

7.1. Code::Blocks

W każdym większym projekcie informatycznym, nieodzownym staje się   skorzystanie   z   zintegrowanego   środowiska   programistycznego (ang. integrated   development   environment,   IDE).  Code::Blocks  jest darmowym, wieloplatformowym środowiskiem wspierającym m.in. język C++, który został wykorzystany do budowy systemu oraz do napisania samego   środowiska.   Tym,   co   zaważyło   na   wyborze   omawianego środowiska   był   fakt,   że   do   jego   implementacji   wykorzystano wieloplatformową   bibliotekę  wxWidgets,   która   jest   szeroko   stosowana w implementacji   systemu   KTDA.   Środowisko  Code::Blocks  udostępnia najlepsze   wsparcie   do   projektowania   aplikacji   wykorzystujących   tę bibliotekę.

Podczas   pracy   nad   rozszerzeniem   programu   użyto   wersji Code::Blocks 13.12.

Program  Code::Blocks  jest   dystrybuowany   na   licencji   GNU   GPL v3.0.

Rysunek 7.1. Ekran powitalny środowiska Code::Blocks w wersji 13.12.

7.2. Git

Tematem   niniejszej   pracy   jest   rozbudowa   istniejącego   systemu.

Podczas realizacji tego zadania pożądanym było dysponowanie działającą wersją   oprogramowania,   na   każdym   etapie   rozwoju   projektu.

W spełnieniu   tego   wymagania   pomocne   okazało   się   skorzystanie z systemu   kontroli   wersji   (ang.   version   control   system,   VCS)  Git.

Narzędzia   użyto   w   celu   rejestracji   oraz   śledzenia   zmian   w   kodzie źródłowym.   Dzięki   temu   zabiegowi   możliwe   stało   się   cofnięcie   do dowolnego   miejsca   w   historii   rozbudowy   aplikacji   w   przypadku wystąpienia regresji. Log wprowadzanych poprawek był przechowywany w prywatnym repozytorium przez cały czas trwania prac nad projektem.

System Git jest dystrybuowany na licencji GNU GPL v2.0.

Rysunek 7.2. Logo projektu Git.

7.3. Biblioteka wxWidgets

W   pierwotnej   wersji   programu   autor   zdecydował   się   na wykorzystanie   biblioteki  wxWidgets.  wxWidgets  jest   biblioteką   klas języka   C++   przeznaczoną   do   tworzenia   graficznego   interfejsu użytkownika aplikacji. Biblioteka udostępnia jednolity, łatwy w użyciu interfejs do budowy oprogramowania przeznaczonego do uruchamiania na różnych platformach, co stanowi jej główną zaletę.

Biblioteka   do   dziś   jest   aktywnie   rozwijana.   Na   przestrzeni   lat przeszła szereg zmian i usprawnień. Podczas rozbudowy systemu KTDA postanowiono   skorzystać   z   jej   najnowszej   wersji,   tj.  wxWidgets   3.0.

W konsekwencji   należało   przebudować   kod   źródłowy,   pozbywając   się z niego   przestarzałych   funkcji,   klas   czy   zmienionych   nazw   zmiennych i zastąpić   je   aktualnymi   odpowiednikami.   W   niektórych   przypadkach konieczne   były   zmiany   w   architekturze   programu.   Stanowiło   to zasadniczą część pracy.

Biblioteka  wxWidgets  jest dystrybuowana na licencji wxWindows, która w zasadniczej części została oparta na licencji LGPL.

Rysunek 7.3. Logo biblioteki wxWidgets.

7.4. Biblioteka Newmat

Newmat  jest biblioteką języka C++ udostępniającą użytkownikom podstawowe operacje na macierzach. Biblioteka kładzie główny nacisk na operacje stosowane w obliczeniach statystycznych.

W pracy korzysta się z wersji biblioteki Newmat10.

W bieżącym rozdziale zaprezentowano przykłady użycia systemu.

Zademonstrowane   funkcje   wybrano   pod   kątem   ukazania   możliwości oprogramowania w jak najszerszym zakresie. Przede wszystkim skupiono się na nowo powstałych funkcjach.

Przykład   8.1.  Obliczenie   współczynników   wiarygodności   dla wygenerowanego zbioru danych „RP”.

Procedurę rozpoczynamy od uruchomienia programu, a następnie wygenerowaniu   specjalnego   zbioru   danych   „RP”.   W   tym   celu z widocznego menu kontekstowego wybieramy kolejno opcje: 

Plik   Utwórz zbiór danych RP→  

Po wybraniu tej opcji pojawia się okno dialogowe, w którym należy zadać parametry aktualnie generowanego zbioru:

Rysunek 8.1. Okno wyboru parametrów generowanego zbioru danych.

Zatwierdzając wybór w głównym oknie programu powinien pojawić się obiekt reprezentujący wygenerowany zbiór:

Rysunek 8.2. Utworzenie obiektu zbioru danych.

Wygenerowany   zbiór   możemy   przejrzeć.   W   tym   celu   prawym przyciskiem   myszy   należy   kliknąć   interesujący   nas   zbiór   danych, a następnie wybrać opcję  Widok. Naszym oczom ukaże się nowe okno zawierające tabelę, w której każdy rekord odpowiada innemu obiektowi, a   także   komplet   histogramów   obrazujących   rozkład   wartości poszczególnych atrybutów.

Warto   również   zauważyć,   że   wraz   z   generacją   zbioru   danych automatycznie   został   utworzony   system   decyzyjny   z   domyślnym atrybutem  decyzyjnym.   Jeśli   potrzebujemy   utworzyć   system   decyzyjny bazujący   na   innym   atrybucie,   to   w   tym   celu   należy   klikając   prawym przyciskiem   myszy   na   zbiorze   danych   wybrać   opcję  Utwórz   system decyzyjny, a następnie w oknie dialogowym wybrać właściwy atrybut decyzyjny.

Rysunek 8.3. Okno przeglądu zbioru danych.

Kolejnym krokiem procedury jest odkrycie w systemie decyzyjnym wyłaniających wzorców. Dokonać tego możemy na trzy sposoby:

 odkrywanie   wyłaniających   wzorców   z   użyciem   drzewa decyzyjnego;

 odkrywanie wyłaniających wzorców z użyciem maksymalnych częstych zbiorów;

 załadowanie   uprzednio   odkrytych   wyłaniających   wzorców z pliku ARFF.

W   przykładzie   skorzystamy   z   pierwszej   możliwości.   Klikając prawym przyciskiem myszy na systemie decyzyjnym wybieramy:

Odkryj wyłaniające wzorce   Algorytm drzewa decyzyjnego

Po   tej   czynności   system   wyświetli   okno   dialogowe   służące   do nastawy parametrów algorytmu:

Rysunek 8.4. Okno wyboru parametrów algorytmu odkrywania wyłaniających wzorców.

Zatwierdzając   wybór   przyciskiem  OK  program   wykona   operację odkrywania   wyłaniających   wzorców.   Po   jej   zakończeniu   do   głównego okna   programu   dodany   zostaje   obiekt   reprezentujący   odkryte wyłaniające wzorce:

Rysunek 8.5. Utworzenie obiektu wyłaniających wzorców.

W   następnym   kroku   utworzymy   klasyfikator   CAEP.

Oprogramowanie   umożliwia   podjęcie   decyzji,   czy   chcemy   zbudować klasyfikator na podstawie wszystkich wyłonionych wzorców, czy tylko na kilku wybranych. Wykorzystamy drugą możliwość.

Klikając prawym przyciskiem myszy na obiekcie reprezentującym wyłaniające wzorce wybieramy opcję Utwórz klasyfikator CAEP bazując na   wybranych   wzorcach.   System   wyświetla   okno   dialogowe z możliwością wyboru wzorców użytych w dalszym procesie analizy:

Rysunek 8.6. Okno wyboru wyłaniających wzorców wykorzystanych w dalszym procesie analizy.

Po   wyborze   i   jego   zatwierdzeniu   w   głównym   oknie   programu pojawia się nowo utworzony obiekt wyrażający klasyfikator CAEP.

Mając do dyspozycji klasyfikator możemy przystąpić do finalnego etapu  procedury,   tj.   obliczenia  współczynników  wiarygodności.   W  tym celu   klikając   prawym   przyciskiem   myszy   na   obiekcie   klasyfikatora wybieramy opcję  Użyj do obliczenia współczynników wiarygodności.

Wyświetlone   zostaje   kolejne   okno   dialogowe,   w   którym   wybieramy system decyzyjny, który zostanie poddany przetwarzaniu:

Rysunek 8.7. Okno wyboru systemu decyzyjnego poddanego analizie.

Zatwierdzając   decyzję   współczynniki   wiarygodności   dla   danego systemu   decyzyjnego   zostają   wyznaczone,   co   w   systemie   objawia   się ukazaniem kolejnego obiektu:

Rysunek 8.8. Utworzenie obiektu zbierającego wyznaczone współczynniki wiarygodności.

System umożliwia także przejrzenie wyników działania procedury w   przejrzystej   formie   tabelarycznej.   Aby   skorzystać   z   tej   możliwości należy, klikając prawym przyciskiem myszy na obiekcie reprezentującym współczynniki wiarygodności, wybrać opcję Widok.

Wyświetlone zostaje okno zawierające wszelkie dane o badanych obiektach:

Rysunek 8.9. Okno przeglądu wyników analizy.

W   ramach   niniejszej   pracy   dyplomowej   z   powodzeniem zrealizowano   rozbudowę   systemu   KTDA.   Spełnione   zostały   wszystkie wymogi zawarte w specyfikacji wymagań.

Modernizacja   już   istniejącego   systemu   wymaga   przyjęcia odpowiedniego rygoru pracy. Ze względu na fakt, że system KTDA jest oprogramowaniem dedykowanym, przed przystąpieniem do właściwych działań autor zapoznał się z dziedziną problemu. W obrębie tych działań znalazło   się   przyswojenie   podstawowych   pojęć   z   zakresu   eksploracji danych, procesu analizy wiarygodności danych, wyłaniających wzorców oraz   współczynników   wiarygodności.   Zrozumienie   przytoczonych zagadnień   umożliwiło   dokładną   analizę   wymagań   stawianych rozbudowywanemu systemowi.

Po   przyswojeniu   wiedzy   dziedzinowej   nadszedł   czas   na   wybór narzędzi   i   technologii   stosowanych   do   rozwiązania   zadania.

Zdecydowano   się   użyć   większości   bibliotek,   którymi   posłużono   się w inicjalnej wersji projektu. Z racji tego, że były to propozycje nieznane autorowi, należało poświęcić czas na zapoznanie się z nimi.

Zdecydowanie   najbardziej   czasochłonnym   etapem   okazała   się analiza architektury systemu. Ponadto autor musiał przyzwyczaić się do konwencji stosowanych przez swojego poprzednika, co również stanowiło pewne wyzwanie.

Po   rzetelnym   przygotowaniu   teoretycznym   przystąpiono   do właściwej   pracy   nad   kodem   źródłowym   aplikacji   oraz   wprowadzaniem nowych   funkcjonalności   systemu.   Wraz   z   upływem   czasu   autor   coraz lepiej   orientował   się   w   organizacji   kodu   źródłowego   oraz   bieglej posługiwał się wykorzystywanymi narzędziami. Poskutkowało to tym, że implementacje   kolejnych   funkcji   pojawiały   się   w   krótszych   odstępach czasu.

Ostatecznie  udało się  zrealizować wszystkie  założone  cele  pracy.

System KTDA został wyposażony w nowe, praktyczne funkcje, elastyczną architekturę,   aktualne   wersje   bibliotek   oraz   nie   sprawia   żadnych trudności podczas uruchamiania na współczesnych maszynach.

1. Krzysztof   Tomaszewski  „Analiza   wiarygodności   danych z wykorzystaniem   wyłaniających   wzorców”,   praca   dyplomowa magisterska,   Politechnika   Warszawska,   Wydział   Elektroniki i Technik Informacyjnych, Instytut Informatyki, Warszawa, 2005 2. Andrzej Dominik  „Analiza danych z zastosowaniem teorii zbiorów

przybliżonych”,   praca   dyplomowa   magisterska,   Politechnika Warszawska,   Wydział   Elektroniki   i   Technik   Informacyjnych, Instytut Informatyki, Warszawa, 2004

3. Mariusz   Walkiewicz  „Ocena   wiarygodności   danych”,   praca dyplomowa   magisterska,   Politechnika   Warszawska,   Wydział Elektroniki   i   Technik   Informacyjnych,   Instytut   Informatyki, Warszawa, 2004

4. Zdzisław   Pawlak  „Rough  sets   –   Basic   notions”,  ICS   PAS  Reports, Warszawa, 1981

5. Zdzisław   Pawlak  „Systemy   informacyjne   ­   podstawy   teoretyczne”, WNT, Warszawa, 1983

6. Guozhu   Dong,   Jinyan   Li  „Efficient   Mining   of   Emerging   Patterns:

Discovering   Trends   and   Differences”,   Proceedings   of   the   SIGKDD (5th   ACM   International   Conference   on   Knowledge   Discovery   and Data Mining), 1999

7. Mosche   Lichman,   UCI   Machine   Learning   Repository,   Irvine,   CA:

University   of   California,   School   of   Information   and   Computer Science, 2013, http://archive.ics.uci.edu/ml

11. Projekt Code::Blocks, 

http://www.codeblocks.org/

12. Projekt Git,          

https://git­scm.com/

13. Biblioteka wxWidgets, 

https://www.wxwidgets.org/

14. Biblioteka Newmat, 

http://www.robertnz.net/nm_intro.htm

W dokumencie Rozbudowa systemu KTDA (Stron 36-0)

Powiązane dokumenty