1. Wstęp
1.3. Zawartość merytoryczna
Wstęp stanowi pierwszy rodział niniejszej pracy. Znajduje się w nim krótka przedmowa, wprowadzenie do tematu oraz lapidarny opis zawartości merytorycznej dokumentu.
Rozdział drugi jest wprowadzeniem do dziedziny problemu. Zostały w nim opisane wyłaniające wzorce jako narzędzie eksploracji danych umożliwiające reprezentację wieloatrybutowych kontrastów pomiędzy dwoma zbiorami obiektów. Ponadto zaprezentowany został proces jakim jest analiza wiarygodności danych oraz przedstawiono definicję współczynnika wiarygodności.
Rozdział trzeci w zwięzły sposób przedstawia możliwości istniejącego systemu. Wszystkie dostępne funkcje zostały podzielone na kategorie ze względu na część systemu, której dotyczą oraz zestawione w postaci listy.
Rozdział czwarty zawiera specyfikację wymagań.
Zademonstrowano w nim wymagania stawiane rozbudowanemu systemowi. Zgodnie z metodyką inżynierii oprogramowania wymagania podzielono na funkcjonalne i niefunkcjonalne.
W rozdziale piątym została szczegółowo opisana architektura systemu KTDA, pierwotnie zaproponowana przez twórcę. Następnie zawarto przekrojowy zarys architektury trójwarstwowej w kontekście
zalet, które oferuje aplikacjom projektowanym zgodnie z tą koncepcją.
Rozdział kończy się sprawozdaniem obejmującym swą treścią wykaz zmian wprowadzonych przez autora, w celu przybliżenia wyjściowej struktury programu do postulowanej przez powszechnie stosowany wzorzec architektoniczny MVC.
Rozdział szósty w całości traktuje o wyzwaniach, z którymi zmierzył się autor podczas rozbudowy istniejącego systemu. Wymieniono w nim podjęte decyzje na temat sposobu rozwiązania problemów poruszanych w tej pracy oraz szczegóły implementacji dodatkowych funkcji programu.
Rozdział siódmy został poświęcony ogólnemu przeglądowi technologii i narzędzi użytych podczas projektowania i implementacji zmodernizowanego systemu. Charakterystyki poszczególnych pozycji obejmują również motywację towarzyszącą autorowi podczas wyboru każdej z nich.
W rozdziale ósmym zilustrowano przykłady użycia systemu.
Niniejsza sekcja może posłużyć jako swoisty podręcznik użytkownika.
Rozdział dziewiąty stanowi spójne podsumowanie zrealizowanej pracy.
W rozdziale tym znajduje się wprowadzenie do wiedzy dziedzinowej z zakresu eksploracji danych oraz procesu analizy wiarygodności danych. W kolejnych podrozdziałach znajdują się definicje i przykłady takich pojęć jak:
wyłaniające wzorce;
analiza wiarygodności danych;
współczynnik wiarygodności.
Ponadto rozdział został uzupełniony o opisy najpopularniejszych metod wyznaczania współczynników wiarygodności, popartych odpowiednimi i prostymi przykładami.
2.1. Wyłaniające wzorce
Pojęcie wyłaniających wzorców (ang. emerging patterns) zostało przedstawione w pracy [6]. Za jego pomocą można określić kontrast pomiędzy dwoma zbiorami obiektów. Te cechy, którymi odznaczają się obiekty jednego z tych zbiorów znacznie częściej niż drugiego, są nazywane wyłaniającym wzorcem.
Zważając na fakt, że w większości zbiorów danych liczba wyłaniających wzorców jest ogromna, w pracy [6] skupiono się na odkrywaniu tylko tych, których współczynnik wzrostu jest wyższy od pewnego progu liczbowego.
2.1.1. Wsparcie wzorca
Wsparcie (ang. support) wzorca w systemie informacyjnym definiuje się jako:
gdzie oznacza liczbę obiektów ze zbioru pasujących do wzorca , natomiast to liczność zbioru . Innymi słowy wsparcie wzorca to częstość występowania pasujących do niego obiektów.
2.1.2. Współczynnik wzrostu wzorca
Niech będzie uporządkowaną parą systemów informacyjnych opisywanych za pomocą tego samego zbioru atrybutów.
Współczynnik wzrostu wzorca z do definiuje się jako:
Przykład 2.1. Poniżej przedstawiono dwa wyłaniające wzorce odkryte w zbiorze danych grzybów z repozytorium UCI [7] i opublikowane w pracy [6]:
X = {zapach=żaden, rozmiar blaszek=szerokie, liczba pierścieni=1}
Y = {sinieje=nie, rozmieszczenie blaszek=ścisłe, kolor osłony=biały}
wzorzec wsparcie w kat. wyłącznie wśród grzybów jadalnych, natomiast wzorzec jest o wiele bardziej charakterystyczny dla grzybów trujących. Współczynnik wzrostu określa ile razy częściej wyłaniający wzorzec występuje w kategorii, do której należy.
2.2. Analiza wiarygodności danych
Analiza wiarygodności danych jest procesem, w którym szacuje się wiarygodność poszczególnych obiektów badanego zbioru danych. Jej celem jest wykrycie tych rekordów, których wiarygodność jest wątpliwa.
W efekcie zidentyfikowane obiekty mogą być pozostawione bez zmian, poprawione bądź usunięte ze zbioru danych.
Do przeprowadzenia analizy wiarygodności danych wymagana jest znajomość dziedziny problemu. Warunek ten spełnia ekspert z danej dziedziny. Może on wykonać to zadanie samodzielnie, natomiast nie jest to rozwiązanie automatyczne. Inną możliwością jest implementacja systemu wykorzystującego uprzednio spisaną wiedzę eksperta. Niestety to rozwiązanie również nie jest doskonałe z uwagi na fakt, iż właściwa reprezentacja wiedzy eksperckiej w systemie komputerowym jest problemem samym w sobie.
Do wykonania w pełni automatycznej analizy wiarygodności potrzeba narzędzia, które "pozna" dziedzinę na podstawie dostarczonych przypadków, a w kolejnym kroku wskaże te elementy, które mogą być niepoprawne. Podejście to zakłada, że w analizowanym zbiorze danych przeważają rekordy poprawne. Wynikiem tej metody jest ocena wiarygodności dla każdego obiektu z badanego systemu informacyjnego.
Niewątpliwą zaletą takiego rozwiązania jest jego uniwersalność, co pozwala na szerokie zastosowanie narzędzia, niezależnie od dziedziny.
W pracy [1] autor wyjaśnia, że niemożliwym jest, aby ocena wiarygodności uzyskana w wyniku działania tak opisanego systemu (tj.
bez wsparcia wiedzy eksperta), była oceną bezwzględną. W tym celu wprowadza się współczynnik wiarygodności, pozwalający uszeregować obiekty zgodnie z rosnącą oszacowaną wiarygodnością.
2.3. Współczynnik wiarygodności
Współczynnik wiarygodności (ang. credibility coefficient) określa się jako liczbę rzeczywistą z przedziału [0, 1], gdzie 0 oznacza najmniejszą, natomiast 1 największą możliwą do uzyskania ocenę wiarygodności. Tym samym im bliższa jedności jest wartość współczynnika wiarygodności dla danego obiektu, tym wyżej ocenia się jego wiarygodność. Jest to ocena względna, związana z kontekstem całego zbioru danych. Dowolna modyfikacja tego zbioru, z wysokim prawdopodobieństwem doprowadzi do zmiany wartości współczynnika.
Istnieje szereg metod wyznaczania współczynników wiarygodności.
Należy przy tym pamiętać, że współczynniki wyznaczane różnymi metodami są między sobą nieporównywalne. Nie istnieje ogólna interpretacja współczynnika, tj. nie można traktować wartości współczynnika jako prawdopodobieństwa tego, czy dany obiekt jest wiarygodny czy też nie. Poza zakresem wartości na współczynnik wiarygodności nie nakłada się żadnych warunków.
Poniżej zaprezentowano podstawowe metody wykorzystywane podczas wyznaczania współczynników wiarygodności. Do tego celu posłużono się przykładowym systemem decyzyjnym z atrybutem decyzyjnym Grypa zaczerpniętym z pracy [2]:
Pacjent Ból głowy Ból mięśni Temperatura Grypa (kat.)
1 nie tak wysoka tak
2 tak nie wysoka tak
3 tak tak b. wysoka tak
4 nie tak b. wysoka tak
5 tak nie wysoka nie
6 nie tak normalna nie
Tabela 2.2. Przykładowy system decyzyjny.
2.3.1. Metoda statystyczno-częstotliwościowa
W metodzie statystycznoczęstotliwościowej zaproponowanej w pracy [2] wyznaczenie współczynnika wiarygodności polega na zliczeniu obiektów należących do tej samej klasy decyzyjnej co badany obiekt. Współczynnik jest tym większy, im więcej obiektów posiada te same wartości poszczególnych atrybutów, co aktualnie rozpatrywany obiekt.
Przykład 2.2. Wyznaczmy współczynnik wiarygodności dla obiektu 1 z tabeli 2.2:
Należy uwzględnić obiekty należące do tej samej kategorii (”Grypa
= tak”), co obiekt 1. Są 3 takie obiekty: 2, 3 i 4.
W następnym kroku procedury rozważamy po kolei wszystkie pozostałe atrybuty znalezionych rekordów, porównując ich wartości z obiektem, dla którego chcemy wyznaczyć współczynnik wiarygodności.
W ten sposób:
1. Dla atrybutu ”Ból głowy”:
1 spośród 3 rozważanych obiektów ma wartość atrybutu zgodną z obiektem 1. Licznik zwiększamy o .
2. Dla atrybutu ”Ból mięśni”:
2 spośród 3 rozważanych obiektów mają wartość atrybutu zgodną z obiektem 1. Licznik zwiększamy o .
3. Dla atrybutu ”Temperatura”:
1 spośród 3 rozważanych obiektów ma wartość atrybutu zgodną z obiektem 1. Licznik zwiększamy o .
Ostatecznie wartość licznika należy podzielić przez ilość atrybutów:
Wartość współczynnika wiarygodności dla obiektu 1 z systemu decyzyjnego z tabeli 2.2 wyznaczonego metodą statystyczno
częstotliwościową wynosi 0,44.
Zaprezentowana metoda cechuje się prostotą, a co za tym idzie niską złożonością obliczeniową. Znajduje zastosowanie jedynie dla atrybutów dyskretnych, natomiast nie stawia wymogu na wyróżnienie kategorii w badanym zbiorze danych.
2.3.2. Metoda oparta na przybliżeniach klas decyzyjnych
Metoda oparta na przybliżeniach klas decyzyjnych bazuje na teorii zbiorów przybliżonych. Dokładny opis pojęć wykorzystywanych w tej teorii znajduje się w pracach [4] i [5]. W szczególności użyte zostaną pojęcia obiektu konfliktowego i obiektu niekonfliktowego względem danej kategorii oraz obszaru pozytywnego i obszaru negatywnego zbioru przybliżonego obiektów tej kategorii.
Algorytm opiera się na założeniu, że obiekty niekonfliktowe powinny wyróżniać się wyższymi wartościami współczynnika
wiarygodności niż obiekty konfliktowe. Należy rozważyć wszystkie wyróżnione kategorie w kontekście analizowanego obiektu. Kategoria, względem której obiekt jest niekonfliktowy, zwiększa licznik dla tego obiektu o 1. W przeciwnym wypadku licznik zostaje zwiększony o wartość wyliczoną w podobny sposób jak w metodzie statystyczno
częstotliwościowej, jednak uwzględniając przy tym obszary pozytywne i negatywne danej klasy decyzyjnej, w odróżnieniu od przynależności obiektów do tej samej kategorii co badany obiekt.
Przykład 2.3. Zbiór przybliżony kategorii (”Grypa = tak”) tworzą obiekty {1, 2, 3, 4}. Brzegiem tego zbioru są obiekty 2, 5, ponieważ są między sobą nierozróżnialne względem dostępnych atrybutów warunków oraz należą do innych klas decyzyjnych.
Wyznaczmy współczynnik wiarygodności dla obiektu 2 z tabeli 2.2:
1. Dla kategorii (”Grypa = tak”):
Obiekt 2 jest konfliktowy i należy do kategorii, wobec tego do obliczeń wykorzystujemy obszar pozytywny (obiekty {1, 3, 4}) analizowanej kategorii. Licznik zwiększamy o:
2. Dla kategorii (”Grypa = nie”):
Obiekt 2 jest konfliktowy i nie należy do kategorii, wobec tego do obliczeń wykorzystujemy obszar negatywny (obiekty {1, 3, 4}) analizowanej kategorii. Licznik zwiększamy o:
Ostatecznie należy dokonać normalizacji, tj. podzielić wartość tymczasowego licznika przez ilość rozróżnianych kategorii:
Wartość współczynnika wiarygodności dla obiektu 2 z systemu decyzyjnego z tabeli 2.2 wyznaczonego metodą opartą na przybliżeniach klas decyzyjnych wynosi 0,22.
Łatwo zauważyć, że przedstawiona metoda ma sens jedynie w przypadku analizy zbioru danych, w którym występuje więcej niż jedna kategoria. W przeciwnym razie wyznaczenie współczynników wiarygodności nie prowadzi do uzyskania żadnej wiedzy. Podobnie jak poprzednio, metoda daje się zastosować wyłącznie do atrybutów dyskretnych.
2.3.3. Metoda zbiorów częstych
Metoda zbiorów częstych jest pierwszą metodą wyznaczania współczynników wiarygodności wykorzystującą w pełni takie dziedziny wiedzy jak eksploracja danych i odkrywanie wiedzy. Została ona dokładnie opisana w pracy [3].
Wartość wyznaczonego tą metodą współczynnika wiarygodności jest powiększana przez każdy wzorzec, do którego pasuje dany obiekt.
Czynnik przynależności podzielony przez jego długość wynosi .
Zwiększamy współczynnik badanego obiektu o tę wartość.
2. Dla wzorca "Temperatura = wysoka":
Czynnik przynależności podzielony przez jego długość wynosi . Zwiększamy współczynnik badanego obiektu o tę wartość.
Następnie należy przeskalować wartość współczynnika wiarygodności przez liczbę wszystkich pasujących wzorców do danego obiektu:
Ostatnim krokiem procedury jest podzielenie wartości współczynnika przez wartość największego wyznaczonego współczynnika wiarygodności, dla któregoś z obiektów z rozważanego zbioru danych.
Załóżmy, że ta wartość to 0,9:
Ostatecznie, przy przyjętych założeniach, wartość współczynnika wiarygodności dla obiektu 2 z systemu decyzyjnego z tabeli 2.2 wyznaczonego metodą zbiorów częstych wynosi 0,79.
Opisana metoda zbiorów częstych bezpośrednio nie nakłada ograniczeń na typ atrybutów. Warto jednak zwrócić uwagę na fakt, iż wartości wyznaczonych współczynników ściśle zależą od postaci kolekcji zbiorów częstych, którą to trzeba określić przed zastosowaniem metody.
2.3.4. Metoda reguł decyzyjnych
W metodzie reguł decyzyjnych również wykorzystuje się wcześniej zdobytą wiedzę na temat analizowanego zbioru danych. Reprezentacją tej wiedzy jest kolekcja tzw. reguł decyzyjnych. Reguła decyzyjna składa się z poprzednika (wzorca) oraz następnika (decyzji) reguły.
Przykład 2.5. Przeanalizujmy przykładową regułę decyzyjną:
”Temperatura = b. wysoka” ”Grypa = tak”⇒
Takie stwierdzenie można interpretować jako przekonanie, że jeśli dany obiekt pasuje do wzorca występującego w poprzedniku (tutaj:
obecność bardzo wysokiej temperatury) to również słuszna jest dla niego obiektu obniżać współczynnik wiarygodności o wartość średniego zaufania niezgodnych z nim reguł. Wartość współczynnika dla obiektów
a) ”Temperatura = b. wysoka” ”Grypa = tak”⇒ 100%
b) ”Ból mięśni = tak” ”Grypa = tak”⇒ 75%
c) ”Ból głowy = nie” ”Grypa = nie”⇒ 33%
Tabela 2.3. Przykładowe reguły decyzyjne.
Algorytm rozpoczynamy od poszukiwania reguł takich, że poprzednik pasuje do badanego obiektu, natomiast jej następnik jest z nim niezgodny:
1. Reguła a):
Poprzednik reguły nie pasuje do analizowanego obiektu
pomijamy.
2. Reguła b):
Poprzednik reguły pasuje do analizowanego obiektu, ale jej następnik jest zgodny z obiektem pomijamy.
3. Reguła c):
Poprzednik reguły pasuje do analizowanego obiektu i jej następnik jest zgodny z obiektem. Zwiększamy licznik reguł o 1, a do sumatora dodajemy zaufanie znalezionej reguły .
W momencie, gdy wyczerpaliśmy zbiór reguł obliczamy średnie zaufanie reguł, dla których obiekt pasuje do wzorca, ale jest niezgodny z decyzją Ostatecznie wartość współczynnika wiarygodności dla obiektu 1 z systemu decyzyjnego z tabeli 2.2 wyznaczamy jako:
System KTDA jest narzędziem do przeprowadzania analizy wiarygodności danych opartej na wyłaniających wzorcach. Przy jego pomocy możliwym staje się wygenerowanie syntetycznego zbioru danych, a następnie odkrywanie wyłaniających wzorców. Tak wykreowane wyłaniające wzorce mogą w dalszym ciągu posłużyć do klasyfikacji danych na ich podstawie.
W bieżącym rodziale przedstawiono kompleksowy spis funkcji programu, zaimplementowanych przez pierwszego autora systemu.
Kolejne podrozdziały dzielą dostępne funkcje na spójne jednostki tematyczne.
3.1. Zbiór danych
W podrozdziale znajduje się lista dostępnych operacji dotyczących zbioru danych:
wygenerowanie syntetycznego zbioru danych;
wczytanie zbioru danych z pliku. Dostępne formaty tekstowe:
ARFF,
DATA,
CSV (ang. comma separated value),
TAB;
przeglądanie zbioru danych wraz z histogramami ilustrującymi rozkład wartości poszczególnych atrybutów;
zapis zbioru danych do pliku w formacie ARFF.
3.2. System decyzyjny
W podrozdziale znajduje się lista dostępnych operacji dotyczących systemu decyzyjnego:
definiowanie systemu decyzyjnego poprzez wskazanie atrybutu decyzyjnego z wybranego zbioru danych;
dodanie do wskazanego systemu decyzyjnego wygenerowanych w sposób pseudolosowy fałszywych obiektów o zadanych parametrach;
przeprowadzenie doświadczenia z wykrywaniem dodanych, fałszywych obiektów;
zapis zbioru danych do pliku w formacie ARFF.
3.3. Wyłaniające wzorce
W podrozdziale znajduje się lista dostępnych operacji dotyczących wyłaniających wzorców:
odkrywanie wyłaniających wzorców z wybranego systemu decyzyjnego jedną z dwóch dostępnych metod:
metoda z użyciem maksymalnych częstych zbiorów,
metoda z użyciem drzewa decyzyjnego;
przeglądanie odkrytych wyłaniających wzorców wraz z ich parametrami;
przeprowadzenie klasyfikacji za pomocą algorytmu CAEP;
przeglądanie wyniku klasyfikacji.
3.5. Współczynniki wiarygodności
W podrozdziale znajduje się lista dostępnych operacji dotyczących współczynników wiarygodności:
wyznaczenie współczynników wiarygodności;
przeglądanie wyznaczonych współczynników wiarygodności w jednym z dwóch trybów:
z zaznaczonymi obiektami, których współczynnik wiarygodności jest mniejszy lub równy od pewnej zadanej wartości,
z zaznaczonymi obiektami o najmniejszych współczynnikach wiarygodności.
Niniejszy rozdział przedstawia wymagania stawiane rozbudowanemu systemowi. Zostały one podzielone na dwie kategorie (wymagania funkcjonalne i niefunkcjonalne), tj. w sposób standardowy w przypadku realizacji projektów informatycznych.
4.1. Aktorzy systemu.
W rolę aktora systemu może wcielić się pracownik naukowy bądź student chcący przeprowadzić badania z zakresu eksploracji danych i analizy wiarygodności danych. Oprogramowanie dostarcza użytkownikowi szereg przydatnych funkcji umożliwiających wygenerowanie zbioru danych, a następnie wykonanie na nim licznych eksperymentów i symulacji.
4.2. Wymagania funkcjonalne
Podrozdział ten zawiera zbiór wymagań funkcjonalnych, które powinien spełniać rozbudowany system KTDA. Każda z pozycji została opatrzona zwięzłym opisem i odpowiadającym jej przypadkiem użycia.
1. Zapis odkrytych wyłaniających wzorców.
System umożliwia zapis odkrytych wyłaniających wzorców w formacie ARFF. Poprzednia wersja programu udostępniała jedynie zapis w formie raportu tekstowego, lecz była to postać nie nadająca się do wtórnego przetwarzania.
Przypadek użycia 4.1. Zapis odkrytych wyłaniających wzorców.
6. System wyświetla okno dialogowe "Konfiguracja algorytmu"
w zależności od wybranej metody.
Przypadek użycia 4.2. Wczytanie uprzednio odkrytych wyłaniających wzorców. Zakładamy, że system decyzyjny jest dany.
Scenariusz alternatywny:
13. Jak w scenariuszu głównym.
4. Jeżeli format pliku jest niepoprawny to system wyświetla stosowny komunikat.
5. Powrót do głównego okna programu.
3. Możliwość manualnego wyboru wyłaniających wzorców użytych w dalszym procesie analizy.
Po etapie odkrywania wyłaniających wzorców użytkownik ma możliwość wyboru, które spośród nich zostaną użyte w kolejnej fazie analizy wiarygodności danych. Interakcja z systemem odbywa się poprzez okno dialogowe, wypełnione polami wyboru reprezentującymi odkryte wzorce. Poprzednia wersja programu nie przewidywała takiej elastyczności. Domyślnie wszystkie pola są zaznaczone.
Przypadek użycia 4.3. Wybór wyłaniających wzorców użytych w dalszym procesie analizy. Zakładamy, że system decyzyjny jest dany.
Scenariusz główny:
1. Użytkownik wybiera opcję "Odkryj wyłaniające wzorce".
2. System wyświetla okno dialogowe "Konfiguracja algorytmu"
w zależności od wybranej metody.
3. Użytkownik wprowadza parametry metody.
4. System tworzy obiekt "Wyłaniające wzorce".
5. Użytkownik wybiera opcję "Utwórz klasyfikator CAEP opierając się na wybranych wzorcach".
6. System wyświetla okno dialogowe "Wybór wyłaniających wzorców użytych do utworzenia klasyfikatora CAEP".
7. Użytkownik wybiera wyłaniające wzorce poprzez zaznaczenie korespondujących im pól wyboru.
8. Klasyfikator CAEP zostaje utworzony.
4.3. Wymagania niefunkcjonalne
W podrozdziale wyszczególniono wymagania niefunkcjonalne sformułowane dla opracowywanego oprogramowania.
1. Kompatybilność.
Konwencje architektoniczne, nazewnicze oraz sposób formatowania kodu źródłowego powinny być zachowane w zgodzie z regułami przyjętymi podczas powstawania systemu.
2. Przenośność.
Program powinien dać się skompilować na większości współczesnych platform sprzętowosystemowych. Wymaganym minimum są komputery działające pod kontrolą systemów operacyjnych Linux oraz Windows.
3. Łatwość użycia.
Aplikacja powinna udostępniać prosty i intuicyjny interfejs użytkownika, umożliwiający szybkie i wygodne korzystanie z funkcji programu.
4. Technologia.
Rozszerzenia programu powinny być przygotowane z wykorzystaniem dostępnych, darmowych rozwiązań informatycznych.
Ponadto zaleca się użycie jak największej liczby technologii wybranych podczas implementacji pierwotnej wersji systemu.
W tej części pracy scharakteryzowana została architektura systemu KTDA. Znajduje się tutaj opis pierwotnego sposobu organizacji kodu źródłowego oraz analiza przyjętego rozwiązania. Następnie w rozdziale zawarto esencjonalny portret architektury trójwarstwowej, skupiający się na zaletach takiej kompozycji. Ostatni fragment rozdziału stanowi raport z przeprowadzonej reorganizacji struktury programu.
5.1. Początkowa struktura programu
System KTDA w założeniu został skonstruowany z dwóch warstw:
algorytmicznej oraz warstwy składającej się na interfejs użytkownika.
Interfejs korzysta z warstwy algorytmicznej udostępniając w ten sposób użytkownikowi zaimplementowane funkcje.
Sama wartswa algorytmiczna została podzielona na pakiety zawierające moduły programu o zbieżnym zastosowaniu. Wspomniane pakiety aplikacji to: jak i rzeczywiste wartości atrybutów. Opisywany moduł jest także odpowiedzialny za obsługę odczytu i zapisu plików różnych formatów.
2. Pakiet "ep".
Pakiet ep został skonstruowany w celu przechowywania modelu wyłaniających wzorców oraz metod ich przetwarzania. Znajdują się tutaj implementacje algorytmów odkrywania wyłaniających wzorców oraz klasyfikacji za ich pomocą.
3. Pakiet "cred".
Kolejnym pakietem jest pakiet cred. Mieści się w nim moduł związany z analizą wiarygodności. Umieszczono tu algorytmy wyznaczania współczynników wiarygodności. Ponadto zaimplementowano tu również generatory syntetycznych zbiorów danych używanych podczas doświadczeń z analizą wiarygodności danych.
4. Pakiet "other".
Ostatnim z pakietów jest pakiet other. Znalazły w nim swoje miejsce moduły niezwiązane bezpośrednio z wcześniej wymienionymi pojęciami. Występują tu natomiast deklaracje metod wykorzystywanych przez pozostałe pakiety. Do opracowanych modułów m.in. należą:
generator punktów o wielowymiarowym rozkładzie normalnym, dodatkowe funkcje obsługi macierzy czy moduł zaawansowanego zarządzania pamięcią.
O ile taka organizacja kodu źródłowego wydaje się przejrzysta i zrozumiała, to po głębszej analizie udaje się dostrzec jej niedoskonałości. Przede wszystkim brak wyraźnej separacji pomiędzy składowaniem danych, a ich przetwarzaniem. Dodatkowo, wyżej wspomniana warstwa interfejsu użytkownika również nie jest niezależną całością i w wielu miejscach przenika się z innymi wartstwami systemu.
Ostatnim niedociągnięciem jest występowanie w kodzie źródłowym plików niepowiązanych z żadnym z zaprojektowanych pakietów.
W dalszej części rozdziału ukazano, jakimi środkami poradzono sobie ze wspomnianymi trudnościami oraz co było istotą refaktoryzacji.
5.2. Architektura trójwarstwowa
Architektura trójwarstwowa jest wzorcem architektonicznym typu
Architektura trójwarstwowa jest wzorcem architektonicznym typu