Metody Informatyki Stosowanej

Wielkość: px
Rozpocząć pokaz od strony:

Download "Metody Informatyki Stosowanej"

Transkrypt

1 Polska Akademia Nauk Oddział w Gdańsku Komisja Informatyki Metody Informatyki Stosowanej Nr 3/2008 (Tom 16) Szczecin 2008

2 Metody Informatyki Stosowanej Kwartalnik Komisji Informatyki Polskiej Akademii Nauk Oddział w Gdańsku Komitet Naukowy: Przewodniczący: prof. dr hab. inŝ. Henryk Krawczyk, czł. koresp. PAN, Politechnika Gdańska Członkowie: prof. dr hab. inŝ. Michał Białko, czł. rzecz. PAN, Politechnika Koszalińska prof. dr hab. inŝ. Ludosław Drelichowski, Uniwersytet Technologiczno-Przyrodniczy w Bydgoszczy prof. dr hab. inŝ. Janusz Kacprzyk, czł. koresp. PAN, Instytut Badań Systemowych PAN prof. dr hab. Jan Madey, Uniwersytet Warszawski prof. dr hab. inŝ. Leszek Rutkowski, czł. koresp. PAN, Politechnika Częstochowska prof. dr hab. inŝ. Piotr Sienkiewicz, Akademia Obrony Narodowej prof. dr inŝ. Jerzy Sołdek, Politechnika Szczecińska prof. dr hab. inŝ. Andrzej Straszak, Instytut Badań Systemowych PAN prof. dr hab. Maciej M. Sysło, Uniwersytet Wrocławski Recenzenci: prof. dr hab. inŝ. Włodzimierz Bielecki, Politechnika Szczecińska prof. dr hab. inŝ. Ryszard Budziński, Uniwersytet Szczeciński prof. dr hab. inŝ. Andrzej CzyŜewski, Politechnika Gdańska dr hab. inŝ. Wojciech Jędruch, prof. PG, Politechnika Gdańska dr hab. Mieczysław Kula, prof. UŚ, Uniwersytet Śląski w Katowicach dr hab. inŝ. Eugeniusz Kuriata, prof. UZ, Uniwersytet Zielonogórski prof. dr hab. inŝ. Andrzej Piegat, Politechnika Szczecińska prof. dr inŝ. Jerzy Sołdek, Politechnika Szczecińska dr hab. inŝ. Alexander łariov, prof. PS, Politechnika Szczecińska prof. dr hab. inŝ. Leszek Trybus, Politechnika Rzeszowska dr hab. inŝ. Zenon Ulman, prof. PG, Politechnika Gdańska dr hab. inŝ. Antoni Wiliński, prof. PS, Politechnika Szczecińska Redaktor Naczelny: Antoni Wiliński Sekretarz redakcji: Piotr Czapiewski ISSN ISBN Wydawnictwo: Polska Akademia Nauk Oddział w Gdańsku Komisja Informatyki Adres kontaktowy: ul. śołnierska 49 p. 104, Szczecin Druk: Pracownia Poligraficzna Wydziału Informatyki Politechniki Szczecińskiej Nakład 510 egz.

3 Spis treści Piotr Andruszkiewicz METAUCZENIE A MOśLIWOŚĆ POPRAWY SKUTECZNOŚCI KLASYFIKACJI Lech Baranowski, Ilona Bluemke FRAKTALOWY MODEL KOMPONENTOWY Anna Bartkowiak, Adam Szustalewicz DISTRIBUTION OF AMINO-ACIDS CODING GENETIC INFORMATION IN YEAST ORFS Janusz Biernat, Janusz Jabłoński MINIMUM LOGIC DEPTH MODULO 2N+1 ADDERS Dariusz Burak EXPLOITING LOOP-LEVEL PARALLELISM IN THE MISTY1 ENCRYPTION ALGORITHM Krzysztof Chmiel, Anna Grocholewska-Czuryło, Przemysław Socha, Janusz Stokłosa INVOLUTIONAL SCALABLE BLOCK CIPHER Larisa Dobryakova, Evgeny Ochin THE 2D-STEGANOGRAPHY METHOD IN THE SPATIAL-FREQUENCY AREA Krystyna Dziubich, Tomasz Dziubich TWORZENIE WZORCÓW ZACHOWAŃ DLA APLIKACJI OPARTYCH O ARCHITEKTURĘ EDA Imed El Fray KONTROLOWANY I BEZPIECZNY SPOSÓB UDOSTĘPNIANA ZASOBÓW INFORMACYJNYCH POPRZEZ USŁUGI WEB XML Iwona Grobelna FORMALNA ANALIZA INTERPRETOWANYCH ALGORYTMICZNYCH MASZYN STANÓW ASM Z WYKORZYSTANIEM NARZĘDZIA MODEL CHECKER Tomasz Hyla, Jerzy Pejaś A METHOD FOR LONG-TERM EHR METADATA PRESERVATION IN HEALTHCARE SYSTEMS Wojciech Jędruch, Rafał Sienkiewicz MODELOWANIE SYSTEMÓW SAMOREPRODUKUJĄCYCH SIĘ Marcin Korzeń, Przemysław Klęsk, Andrzej Ciechanowicz, Mariusz Kaczmarczyk, Krystyna Widecka, Szymon Jaroszewicz MINING INTERESTING RULES AND PATTERNS FOR SALT SENSITIVITY OF BLOOD PRESSURE Henryk Krawczyk, Jerzy Proficz DOBÓR USŁUG WWW W ŚRODOWISKU SOA Georgy Kukharev, Andrzej Tujaka, Nguyen The Binh SYSTEM OF FACE RECOGNITION USING LDA WITH ONE TRAINING IMAGE PER PERSON Krzysztof Małecki, Jarosław Wątróbski, Marcin Warczygłowa BADANIE EFEKTYWNOŚCI NARZĘDZIA DO TESTOWANIA BEZPIECZEŃSTWA APLIKACJI INTERNETOWYCH Łukasz Mazurowski, Antoni Wiliński KONCEPCJA GENEROWANIA UTWORU MUZYCZNEGO PRZEZ MASZYNĘ AKT SZTUCZNEJ TWÓRCZOŚCI OPARTEJ NA ALGORYTMACH GENETYCZNYCH

4 4 Marek Pałkowski UPRASZCZANIE AFINICZNYCH RELACJI I ZBIORÓW W CELU PODNIESIENIA WYDAJNOŚCI GENEROWANEGO KODU RÓWNOLEGŁEGO Magdalena Szaber, Ekaterina Kamenskaya SYSTEMY ROZPOZNAWANIA TWARZY DLA OBRAZÓW WIDZIALNYCH I PODCZERWIENI Z WYKORZYSTANIEM CCA Marta Szarafińska, Agnieszka Konys, Mateusz Piwowarski MCDA MODEL APPROACH TO THE BUSINESS PROCESS MODELING METHODS EVALUATION Alexandr łariov, Galina łariova ZWEKTORYZOWANE ALGORYTMY WYZNACZANIA ILOCZYNÓW TRZECH MACIERZY Grzegorz Ulacha ALGORYTMICZNE ASPEKTY SPRZĘTOWEJ REALIZACJI KOMPRESJI OBRAZÓW W TRYBIE BEZSTRATNYM I PRAWIE BEZSTRATNYM

5 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji * Piotr Andruszkiewicz Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych Abstract: Metalearning is a technique, which enables us to improve classification accuracy in Data Mining. It uses several classifiers to compute final category for a test sample. The most popular metalearning methods are Bagging and Boosting. Effectiveness of these methods with the usage of decision tree (SPRINT) has been tested and presented in this paper. Keywords: metalearning, classification, decision tree, SPRINT 1. Wstęp Klasyfikacja staje się coraz waŝniejsza w dzisiejszym Ŝyciu. MoŜe ona być stosowana do wykrywania naduŝyć bądź do przydzielania dokumentów tekstowych do odpowiednich grup. Szczególnym przypadkiem moŝe być tu wykrywanie niepotrzebnych wiadomości elektronicznych wysyłanych na skrzynki pocztowe. WaŜne jest, aby dokonywać jej z jak najlepszą skutecznością. Do jej poprawy moŝna uŝyć metauczenia (ang. metalearning). Wykorzystuje ono wiele klasyfikatorów do podjęcia ostatecznej decyzji. Praca ta przedstawia następujące zagadnienia związane z metauczeniem. W sekcji 2 opisana jest matematyczna definicja klasyfikacji. Część 3 traktuje o metauczeniu ze szczegółowym omówieniem metod bagging i boosting. Natomiast sekcja 4 opisuje wykorzystany w eksperymentach klasyfikator SPRINT. Sekcja 5 to wyniki eksperymentów, zaś 6 przedstawia wnioski z nich płynące. 2. Zadanie klasyfikacji Zadanie klasyfikacji polega na znalezieniu dla wybranego przykładu najbardziej odpowiadającej mu kategorii [11]. Szukanie odpowiadającej kategorii jest dokonywanie na podstawie analizy zbioru trenującego zbioru przykładów, dla których kategoria jest określona. Celem analizy jest znalezienie wiedzy w jaki sposób przynaleŝność do kategorii zaleŝy od atrybutów opisujących przykład. ZałóŜmy, Ŝe istnieje nieznana funkcja c taka, Ŝe: c : X X dziedzina przykładów, C zbiór kategorii. C, gdzie: * Badania wspierane były przez grant Ministerstwa Edukacji i Nauki o numerze 3 T11C

6 6 Piotr Andruszkiewicz Ponadto posiadamy zbiór T X, nazywany zbiorem trenującym, taki Ŝe: x T c(x) jest znane. Zadanie klasyfikacji polega na znalezieniu funkcji h : X C zwanej hipotezą i spełniającej warunki: x X moŝna wyznaczyć h(x). h c, tzn. Ŝe jest małe prawdopodobieństwo, Ŝe h c. 3. Metauczenie Technika metauczenia [1] polega na wykorzystaniu wielu klasyfikatorów w celu przypisania przykładowi kategorii. Mogą one wykorzystywać inne algorytmy, które uczone będą na identycznych danych. Jeśli są to te same klasyfikatory, to otrzymują one róŝne podzbiory zbioru trenującego. KaŜdy z klasyfikatorów uczy się na dostarczonych mu danych. Podzbiory te moŝna utworzyć poprzez losowanie z całego zbioru trenującego r T przykładów dla kaŝdego klasyfikatora. Parametr r moŝe przyjmować wartości mniejsze od 2/3, choć stosowane jest takŝe próbkowanie dla r równego 1. Losowanie moŝe odbywać się zgodnie z rozkładem jednostajnym lub innym rozkładem tworzonym w poszczególnych fazach metauczenia. Innym sposobem jest podzielenie zbioru trenującego na m części i przekazaniu kaŝdemu klasyfikatorowi m-1 części. Przy wykorzystaniu jednakowych klasyfikatorów moŝna zastosować modyfikację przestrzeni atrybutów (poszczególne klasyfikatory uczą się na róŝnych zestawach atrybutów). Kolejnym podejściem moŝe być randomizacja algorytmów poprzez wprowadzenie losowości w funkcji oceny albo zastosowanie deterministycznej funkcji oceny z losowym wyborem spośród kilku najlepszych przypadków. MoŜna takŝe zastosować modyfikację kategorii kodowanie kategorii. Przykładem moŝe być opisanie kategorii za pomocą numerów i przedstawienie ich przy pomocy kodu binarnego. Wówczas kaŝdy klasyfikator określałby pojedynczy bit tego kodu. Klasyfikowanie przykładu polega na przydzieleniu mu kategorii przez wszystkie klasyfikatory, a następnie wybrania kategorii, która była najczęściej wskazywana. Takie decydowanie o wybranej kategorii nosi miano głosowania. MoŜliwe jest takŝe głosowanie waŝone. Do wybrania ostatecznej kategorii moŝna zastosować maksymalizację prawdopodobieństwa, wykorzystując do tego Naiwny Klasyfikator Bayesowski. Danymi wejściowymi będą wówczas wyjścia poszczególnych klasyfikatorów, na podstawie których klasyfikator przydzieli ostateczną kategorię. Wykorzystując tę zasadę łączenia klasyfikatorów, moŝna wprowadzić hierarchiczne łączenie klasyfikatorów. Wówczas danymi wejściowymi dla kaŝdego klasyfikatora wyŝszego rzędu będą wyjścia klasyfikatorów niŝszego rzędu. Klasyfikator znajdujący się najwyŝej w hierarchii będzie podawał ostateczną kategorię. Wyraźny wpływ na jakość klasyfikacji przy metauczeniu widać w tak zwanych algorytmach niestabilnych, dla których małe zmiany zbiorów trenujących potrafią zmienić znacząco hipotezę. Są to m.in. algorytmy tworzenia reguł decyzyjnych lub drzew decyzyjnych. Dla algorytmów stabilnych (m.in. Naiwny Klasyfikator Bayesowski) nie obserwuje się poŝądanych rezultatów.

7 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji 7 Do najczęściej stosowanych metod metauczenia naleŝą algorytmy bagging i boosting Bagging Metoda bagging [2] polega na wykorzystaniu zbioru trenującego T i algorytmu klasyfikacji A. Tworzony jest zbiór klasyfikatorów {cl 1, cl 2,.., cl n }, z których kaŝdy wykorzystuje algorytm A i trenowany jest na zbiorze trenującym T i. Zbiór trenujący T i powstaje poprzez wylosowanie przykładów (ze zwracaniem) ze zbioru T. Losowanie odbywa się zgodnie z rozkładem jednostajnym. Liczności zbioru T i T i są takie same. KaŜdy klasyfikator przydziela kategorię przykładowi. Ostateczna kategoria jest tą, która najczęściej była proponowana przez klasyfikatory Boosting Metoda boosting [4], podobnie jak bagging, zakłada stworzenie zbioru klasyfikatorów {cl 1, cl 2,.., cl n }. Klasyfikatory wykorzystują ten sam algorytm A. RóŜnica polega na sposobie wyboru przykładów z podstawowego zbioru trenującego do poszczególnych zbiorów T i, na podstawie których uczą się klasyfikatory. Bagging zakładał wybieranie przykładów ze zbioru trenującego z rozkładem jednorodnym. Boosting polega na uczeniu kolejnych klasyfikatorów przede wszystkim na podstawie przykładów, które były przez poprzednie klasyfikatory źle klasyfikowane. Przy losowaniu przykładów do zbiorów trenujących dla kolejnych klasyfikatorów próbkom źle klasyfikowanym przyznawane jest większe prawdopodobieństwo wyboru. W taki sposób kolejne klasyfikatory będą uczyły się na podstawie przykładów błędnie klasyfikowanych przez poprzedników. Przyjmijmy, Ŝe P il będzie oznaczać prawdopodobieństwo wybrania przykładu d l ze zbioru trenującego T do zbioru T i. Dla pierwszego klasyfikatora wartości tych prawdopodobieństw dla kaŝdego przykładu są takie same (sytuacja jak w bagging) 1 P il = m T = m gdzie m oznacza liczbę przykładów w zbiorze trenującym T. Przy tworzeniu kolejnych zbiorów trenujących wartości te są modyfikowane. Przy konstrukcji zbioru trenującego dla klasyfikatora cl i+1 naleŝy najpierw obliczyć sumę S i będącą sumą prawdopodobieństw tych przykładów, dla których klasyfikator cl i się pomylił. S i m = l: cli ( dl ) f ( dl ) p il f jest klasyfikacją empiryczną, a d l przykładem o indeksie l ze zbioru trenującego. Następnie wyliczany jest współczynnik korekcji α i 1 si αi = 0, 5log si Prawdopodobieństwa przykładów modyfikowane są w następujący sposób:

8 8 Piotr Andruszkiewicz i i+ 1, l = il dla przykładów, którym klasyfikator cl i przydzielił poprawną kategorię, p p e α p p e α i i+ 1, l = il dla przykładów niepoprawnie sklasyfikowanych. W dalszej kolejności są one normalizowane. Dzięki takiemu zabiegowi kolejne klasyfikatory uczone są przede wszystkim na podstawie przykładów, które zostały niepoprawnie sklasyfikowane przez poprzednie klasyfikatory. Jest to podejście wykorzystujące losowanie przykładów (ang. boosting by sampling). Drugie podejście wykorzystuje prawdopodobieństwa p i,l jako wagi (ang. boosting by weighting). MoŜna je stosować, gdy wykorzystywany algorytm klasyfikacji pozwala na bezpośrednie uŝycie waŝonego zbioru trenującego. Na kaŝdym etapie tworzenia zbioru klasyfikatorów wykorzystywany jest cały zbiór trenujący waŝony prawdopodobieństwami p i,l. Wybór klasy wypadkowej przebiega tak jak w metodzie bagging, jednak stosowane jest głosowanie waŝone przy pomocy współczynnika α i dla poszczególnych klasyfikatorów. 4. Wykorzystany klasyfikator W eksperymentach uŝyto klasyfikatora wykorzystującego drzewo decyzyjne. Zaimplementowany został algorytm SPRINT [9] z modyfikacjami Opis algorytmu Algorytm polega na rekurencyjnym tworzeniu drzewa decyzyjnego, w którego węzłach znajdują się testy na atrybutach, a w liściach określone są kategorie. Przykłady, które spełniają test przechodzą np. na lewo, a niespełniające na prawo. Test dla atrybutów nominalnych polega na sprawdzeniu czy wartość danego atrybutu zawiera się w ustalonym podzbiorze moŝliwych wartości atrybutu. Natomiast dla atrybutów ciągłych test sprawdza czy wartość znajduje się poniŝej pewnego progu. Klasyfikacja nowego przykładu polega na sprawdzeniu poszczególnych testów, przechodząc w głąb drzewa. Po dotarciu do liścia, w którym znajduje się kategoria, przypisywana jest ona klasyfikowanemu przykładowi. Kroki rekurencyjnego algorytmu budowania drzewa decyzyjnego: 1. Sprawdź czy spełnione jest kryterium stopu; a) jeśli tak, to utwórz liść i przydziel mu kategorię; b) zwróć liść. 2. Utwórz węzeł. 3. Wybierz właściwy test. 4. Odznacz, Ŝe wybrany test był juŝ uŝyty. 5. Wywołaj rekurencyjnie algorytm budowania drzewa decyzyjnego dla przykładów spełniających test. 6. Wywołaj rekurencyjnie algorytm budowania drzewa decyzyjnego dla przykładów niespełniających testu. 7. Zwróć węzeł.

9 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji 9 Kryterium stopu jest spełnione, gdy wszystkie przykłady mają tę samą kategorię, zbiór przykładów jest pusty lub wykorzystano juŝ testy na wszystkich atrybutach. Do wyboru testu uŝyta została miara Gini [10], która przyjmuje wartości od 0 do 1. Najlepszym testem jest ten, który posiada jak najmniejszą wartość tego współczynnika. Sd Gini( S) = 1 Sd S gdzie: S oznacza klasę, d 2 S d liczba przykładów naleŝących do danej klasy i spełniających test, S liczba wszystkich przykładów spełniających test. Analogicznie oblicza się wartość tego współczynnika dla przykładów, które nie spełniają testu. Końcową miarą dla danego testu (atrybut i wartość) jest indeks Gini split wyliczany jako St Sn G = s G( St ) G( Sn ) S + S all all S all liczba wszystkich przykładów S t liczba przykładów spełniających test S n liczba przykładów nie spełniających testu Przykład: Wyliczenie wartości dla testu wiek 17 i pojęciu docelowym ryzyko o wartościach wysokie i niskie. Tabela 1. Liczba przykładów spełniających test w podziale na kategorie Ryzyko wysokie niskie spełnia test (tak) 1 0 nie spełnia testu (nie) 3 2 G tak = 1 + = G nie = 1 + = G s = = Miarę tę wylicza się dla kaŝdego atrybutu i kaŝdego podzbioru wartości danego atrybutu (dla atrybutów nominalnych) albo progu (dla atrybutów ciągłych). Próg rozumiany jest jako średnia wartość między dwoma najbliŝszymi wartościami danego atry-

10 10 Piotr Andruszkiewicz butu występującymi w przykładach. Za najlepszą parę atrybut - wartość uwaŝa się tę, która ma najmniejszą wartość indeksu gini split. Wybrany test nie moŝe zostać juŝ uŝyty w ścieŝce przebiegającej w głąb drzewa. Tabela 2. Procent poprawnie sklasyfikowanych przykładów dla zbioru credit-g Alg. Bez metauczenia Bagging AdaBoost Fold 4 Liczba klasyf. Maksymalna głębokość drzewa ,690 0,708 0,703 0,690 0, ,651 0,674 0,655 0,650 0, ,682 0,718 0,684 0,685 0, ,675 0,680 0,675 0,672 0, ,701 0,718 0,706 0,675 0, ,705 0,730 0,716 0,739 0, ,660 0,688 0,673 0,660 0, ,708 0,712 0,704 0,691 0, ,694 0,740 0,703 0,720 0, ,664 0,699 0,680 0,670 0, ,720 0,717 0,708 0,693 0, ,718 0,724 0,712 0,721 0, ,673 0,697 0,663 0,655 0, ,670 0,694 0,692 0,697 0, ,705 0,705 0,701 0,711 0, ,671 0,678 0,665 0,678 0, ,680 0,713 0,696 0,696 0, ,729 0,729 0,730 0,717 0, ,677 0,697 0,659 0,665 0, ,683 0,725 0,698 0,679 0, ,709 0,738 0,692 0,702 0, Modyfikacje Ograniczenie sprawdzanych podzbiorów wartości atrybutu nominalnego pozwala na zwiększenie szybkości algorytmu generowania drzewa. Spośród wszystkich podzbiorów wartości atrybutu wybieramy tylko te, których liczność jest mniejsza bądź równa wartości całkowitej z maksymalnej liczności zbioru wartości podzielonej przez dwa. Pozostałe podzbiory są równowaŝne pod względem podziału przykładów.

11 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji 11 Ograniczenie sprawdzanych progów podziału dla atrybutów ciągłych. Progi, które leŝą między przykładami tej samej kategorii, mogą zostać pominięte, poniewaŝ dobry test nie powinien rozdzielać przykładów o jednakowej kategorii. Liczbę przykładów spełniających dany warunek (próg p i+1 ) moŝna wyliczyć jako liczbę przykładów spełniających warunek p i zwiększoną o liczbę próbek, których wartość badanego atrybutu mieści się pomiędzy tymi dwoma wartościami progowymi. Oczywiście p i+1 >p i. Tabela 3. Procent poprawnie sklasyfikowanych przykładów dla zbioru segment Alg. Bez metauczenia Bagging AdaBoost Fold 4 Liczba klasyf. Maksymalna głębokość drzewa ,921 0,685 0,861 0,920 0, ,928 0,691 0,874 0,928 0, ,930 0,699 0,876 0,929 0, ,922 0,693 0,902 0,925 0, ,942 0,662 0,909 0,932 0, ,948 0,713 0,895 0,946 0, ,922 0,671 0,869 0,925 0, ,939 0,728 0,874 0,938 0, ,951 0,697 0,904 0,948 0, ,926 0,670 0,891 0,920 0, ,938 0,716 0,897 0,945 0, ,949 0,711 0,890 0,945 0, ,917 0,718 0,873 0,915 0, ,926 0,787 0,925 0,917 0, ,931 0,755 0,945 0,924 0, ,932 0,670 0,884 0,919 0, ,921 0,738 0,936 0,928 0, ,915 0,723 0,943 0,925 0, ,920 0,707 0,861 0,918 0, ,929 0,734 0,850 0,921 0, ,928 0,777 0,813 0,933 0,923 Algorytm zakłada utworzenie dla kaŝdego atrybutu tablicy z trzema kolumnami: identyfikatorem przykładu, atrybutem i klasą. Dla atrybutów ciągłych jest to tablica posortowana według wartości danego atrybutu.

12 12 Piotr Andruszkiewicz Implementowany algorytm miał zostać uŝyty przy metauczeniu, a więc tablice te zawierają jedynie numery identyfikatorów poszczególnych przykładów. A zbiór próbek przechowywany jest tylko w jednym egzemplarzu. Nie została wykorzystana heurystyka wyznaczania najlepszego testu dla atrybutów nominalnych o duŝej liczbie moŝliwych wartości proponowana przez autorów SPRINT, gdyŝ w uŝywanych przykładach nie było atrybutów przekraczających znacznie podaną granicę dziesięciu wartości atrybutu. Brak moŝliwości uŝywania po raz kolejny testu na danym atrybucie powoduje, Ŝe czasami generowane jest drzewo, które zawiera w dwóch liściach będących dziećmi jednego testu te same kategorie. Nie wpływa to negatywnie na jakość klasyfikacji w porównaniu do drzewa z usuniętym testem i jednym liściem. Jednak pogarsza czytelność drzewa i nieznacznie czas klasyfikowania przykładu Brakujące wartości atrybutów Brakujące wartości uzupełniane są wartościami najczęściej występującymi dla danego atrybutu nominalnego. Natomiast dla atrybutów ciągłych jest to średnia arytmetyczna Ocena poprawności klasyfikacji Do określenia skuteczności klasyfikacji posłuŝył odsetek poprawnie klasyfikowanych przykładów dokładność (ang. accuracy). Dodatkowo w celu otrzymania wiarygodniejszych wyników wykorzystana została walidacja krzyŝowa (ang. cross validation) [6]. Polega ona na podzieleniu zbioru przykładów na n równolicznych podzbiorów (parametr fold). Eksperyment przeprowadza się n razy za kaŝdym razem wybierając jako zbiór testujący inny podzbiór. Pozostałe przykłady słuŝą jako zbiór trenujący. Otrzymane w ten sposób wyniki uśrednia się. 5. Wyniki eksperymentów Eksperymenty zostały przeprowadzone dla pięciu zbiorów przykładów [7]: 1) credit-g zbiór o atrybutach nominalnych i numerycznych. Liczba przykładów ) segment zbiór o 19 atrybutach rzeczywistych i atrybucie klasy. Liczba przykładów ) sick zbiór o atrybutach nominalnych i numerycznych z przykładami, w których występują brakujące wartości. Liczba przykładów ) kr-vs-kp zbiór o atrybutach wyłącznie nominalnych. Liczba przykładów ) audiology zbiór o atrybutach wyłącznie nominalnych (brakujące wartości). Liczba przykładów 226. Wszystkie tabele przedstawiają procent przykładów dobrze sklasyfikowanych przy uŝyciu walidacji krzyŝowej.

13 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji 13 Tabela 4. Procent poprawnie sklasyfikowanych przykładów dla zbioru kr-vs-kp Alg. Bez metauczenia Bagging AdaBoost Fold 4 Liczba klasyf. Maksymalna głębokość drzewa ,917 0,784 0,900 0,917 0, ,960 0,851 0,961 0,960 0, ,975 0,907 0,974 0,975 0, ,908 0,793 0,905 0,895 0, ,908 0,830 0,949 0,930 0, ,929 0,817 0,913 0,916 0, ,938 0,906 0,951 0,957 0, ,956 0,877 0,954 0,935 0, ,946 0,887 0,951 0,945 0, ,964 0,902 0,944 0,962 0, ,968 0,893 0,973 0,972 0, ,975 0,911 0,975 0,975 0, ,919 0,826 0,873 0,906 0, ,904 0,809 0,860 0,917 0, ,919 0,798 0,875 0,910 0, ,925 0,886 0,939 0,948 0, ,948 0,879 0,945 0,944 0, ,951 0,862 0,947 0,936 0, ,965 0,895 0,972 0,968 0, ,966 0,906 0,955 0,962 0, ,971 0,940 0,969 0,976 0,972 Z eksperymentów przeprowadzonych dla credit-g (Tabela 2) moŝna wywnioskować, Ŝe w większości przypadków skuteczność klasyfikacji dla drzewa bez ograniczonej głębokości jest mniejsza od drzewa z maksymalną głębokością 5. Jest to róŝnica rzędu 2-3%. Wśród przypadków, które nie spełniają tej zaleŝności (wyniki zaznaczone kursywą) jest próba przeprowadzona z AdaBoost dla fold 10 i jednego klasyfikatora. MoŜna więc wnioskować, Ŝe dla tego zbioru danych występuję nadmierne dopasowanie drzewa do danych treningowych (ang. overfitting), a przy ograniczeniu głębokości drzewa do około 5 redukowane jest nadmierne dopasowanie (zabezpieczenie przed wraŝliwością na szum w danych) i drzewo klasyfikuje lepiej na danych testowych. W celu zapobieŝenia nadmiernemu dopasowaniu moŝna posłuŝyć się przycinaniem (ang. pruning) [5], które redukuje nadmierne dopasowanie poprzez zamianę testów na liście.

14 14 Piotr Andruszkiewicz Porównując wyniki otrzymane dla róŝnej liczby tworzonych klasyfikatorów, moŝna stwierdzić, Ŝe zwiększenie liczby klasyfikatorów poprawia skuteczność klasyfikowania (tylko w nielicznych przypadkach skuteczność spada w niewielkim stopniu). Tabela 5. Procent poprawnie sklasyfikowanych przykładów dla zbioru audiology Alg. Bez metauczenia Bagging AdaBoost Fold 4 Liczba klasyf. Maksymalna głębokość drzewa ,696 0,518 0,692 0,696 0, ,679 0,473 0,665 0,679 0, ,723 0,441 0,714 0,723 0, ,603 0,545 0,656 0,638 0, ,719 0,540 0,656 0,737 0, ,705 0,661 0,701 0,674 0, ,652 0,531 0,656 0,688 0, ,701 0,634 0,723 0,714 0, ,723 0,625 0,728 0,777 0, ,695 0,550 0,659 0,714 0, ,700 0,645 0,686 0,714 0, ,755 0,645 0,727 0,741 0, ,692 0,518 0,683 0,674 0, ,679 0,594 0,625 0,670 0, ,692 0,567 0,696 0,665 0, ,647 0,558 0,612 0,665 0, ,674 0,442 0,647 0,696 0, ,768 0,549 0,665 0,705 0, ,718 0,550 0,618 0,655 0, ,709 0,545 0,655 0,741 0, ,736 0,477 0,673 0,750 0,750 Porównując wyniki dla algorytmu bagging i przypadku bez wykorzystania metauczenia, moŝna stwierdzić, Ŝe lepsze wyniki otrzymuje się przy bagging. Dla przypadku, gdy ta metoda wykorzystuje jeden klasyfikator, wyniki są zbliŝone (zdarzają się przypadki nieznacznie gorszych wyników - związane są one z jednokrotnym losowaniem przykładów ze zbioru trenującego, które nie zawsze wybiera zestaw przykładów pozwalający na poprawę jakości klasyfikowania), jednak wraz ze wzrostem liczby uŝytych klasyfikatorów rośnie skuteczność i róŝnica staje się bardziej wyraźna.

15 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji 15 Porównując skuteczność metody bagging i boosting, moŝna stwierdzić, Ŝe uzyskane rezultaty są zbliŝone. Otrzymane wyniki skuteczności klasyfikacji wahają się w przedziale 65-75%. Dla zbioru segment (Tabela 3) wyniki uzyskane dla drzewa bez ograniczenia głębokości są znacznie lepsze niŝ dla drzewa o maksymalnej głębokości równej 5. Zwiększając ten parametr do 15-20, otrzymuje się wyniki porównywalne do przypadku bez ograniczenia głębokości. Wniosek z tego, Ŝe przy poziomie głębokości drzewa około 20 uzyskuje się drzewo, które nie jest nadmiernie dopasowane do danych treningowych. Wyniki otrzymane dla bagging przy wykorzystaniu jednego klasyfikatora są, podobnie jak dla przypadku credit-g, zbliŝone do wyników, które uzyskano bez metauczenia. Zastosowanie 3 i 5 klasyfikatorów zwiększa skuteczność klasyfikacji. Metody bagging i boosting uzyskały zbliŝone wyniki. Nie moŝna stwierdzić, który algorytm lepiej klasyfikował przykłady, gdyŝ raz przewagę nieznaczną zdobywa jeden, a w innym przypadku drugi. Średnie uzyskane wyniki mieszczą się w przedziale 85-95% (pomijając przypadek z maksymalną głębokością 5). 1 0,95 0,9 0,85 0,8 0,75 0,7 0,65 audiology kr-vs-kp sick segment credit-g Bez metauczenia Bagging AdaBoost Rysunek 1. Procent poprawnie klasyfikowanych przykładów dla fold=10 i 3 klasyfikatorów przy metauczeniu W przypadku zbioru sick, który zawiera 3772 przykładów o 7 atrybutach ciągłych i 23 atrybutach nominalnych, otrzymano wyniki które róŝnią się pomiędzy sobą nie więcej niŝ o 1,1%.Nie pozwala to na rozwaŝanie przewagi jednej z uŝytych metod. Zbiór sick zawiera 6046 brakujących wartości, co stanowi 5,4% wszystkich analizowanych wartości. Otrzymana skuteczność klasyfikacji jest wysoka i wynosi ok. 98%. Algorytm generowania drzew decyzyjnych C4.5 (J48) zaimplementowany w bibliotece Weka uzyskuje podobne wyniki dla tego przykładu. Są to wartości z przedziału 98,4-98,7%. UŜycie metody bagging w bibliotece Weka daje identyczne rezultaty (98,1-98,8%). Natomiast boost uzyskał lepsze wyniki, bo mieszczące się w przedziale 98,2-99,1%.

16 16 Piotr Andruszkiewicz 1 0,95 0,9 0,85 0,8 0,75 0,7 0,65 audiology kr-vs-kp sick segment credit-g Bez metauczenia Bagging AdaBoost Rysunek 2. Procent poprawnie klasyfikowanych przykładów dla fold=10 i 5 klasyfikatorów przy metauczeniu Wyniki otrzymane dla zbioru kr-vs-kp (Tabela 4) dla drzewa o maksymalnej głębokości równej 5 są znacznie gorsze do ok. 10% niŝ dla drzewa bez ograniczeń. Zwiększanie maksymalnej głębokości pozwala osiągnąć wartości takie jak dla drzewa bez ograniczenia, a w kilku przypadkach dla maksymalnej głębokości 15 i 20 nawet nieznacznie lepsze. Algorytm bagging dla jednego klasyfikatora uzyskał zbliŝone wyniki (z wyjątkiem jednego przypadku, gdzie uzyskał zdecydowanie lepszy wynik) do przypadku, gdzie nie uŝyto Ŝadnego algorytmu metauczenia. Przy wykorzystaniu wielu klasyfikatorów otrzymane rezultaty takŝe są zbliŝone. Występują zarówno lepsze przypadki jak i gorsze wyniki. Algorytm bagging w około 75% przypadków okazał się lepszy. Nie są to jednak znaczące róŝnice. Dla zbioru audiology (Tabela 5), podobnie jak dla poprzednich przypadków, drzewo o maksymalnej głębokości równej 5 klasyfikuje gorzej. Zwiększanie głębokości drzewa pozwala na osiągnięcie rezultatów jak dla drzewa nieograniczanego. Wyniki metody bagging dla jednego klasyfikatora są nieznacznie gorsze (z wyjątkiem niewielkiego procenta przypadków) od wyników uzyskanych bez metauczenia. UŜycie 3 i 5 klasyfikatorów poprawia skuteczność klasyfikowania. Są to róŝnice rzędu 2-3%, pomijając klasyfikator o maksymalnej głębokości równej 5. Dla tego przypadku róŝnica w skuteczności klasyfikacji osiąga nawet ponad 20% (44,1 wobec 64,5%). Metoda boosting w porównaniu do bagging uzyskała gorsze wyniki zwykle około 1-3%. Wyjątek stanowi klasyfikator o maksymalnej głębokości drzewa 5, gdzie róŝnice te sięgają ok. 20%, a wynik jest zbliŝony do osiągnięć, jakie uzyskał klasyfikator bez metauczenia. Dla dwóch przypadków metoda boosting uzyskała widocznie lepsze rezultaty. Są to przypadki zaznaczone kursywą, a róŝnica w skuteczności wynosi około 9% i 5% w porównaniu do bagging.

17 Metauczenie a moŝliwość poprawy skuteczności klasyfikacji 17 Jakość klasyfikacji dla analizowanych zbiorów przestawione zostały graficznie na rysunku 1 i 2. Eksperymenty przeprowadzone zostały dla 3 i 5 klasyfikatorów oraz walidacji krzyŝowej z podziałem na 10 podzbiorów. Przedstawiają porównanie jakości przy wykorzystaniu metod bagging i boosting oraz bez metauczenia. 6. Podsumowanie Nadmierne ograniczanie maksymalnej głębokości drzewa powoduje spadek jakości klasyfikowania. Zastosowanie metauczenia z wykorzystaniem kilku klasyfikatorów pozwala na poprawienie skuteczności klasyfikowania. Wraz ze wzrostem liczby klasyfikatorów rośnie procent poprawnie klasyfikowanych przykładów. Nie jest to jednak Ŝelazna reguła. Przyrost skuteczności zaleŝy od uŝytego zbioru przykładów. Porównując metody bagging i boosting, moŝna stwierdzić, Ŝe uzyskują one podobne wyniki, wskazując jednak na korzyść metody bagging. Skuteczność klasyfikacji wyniosła dla zbiorów credit-g 65-75% audiology 45-73%. Zbiory te zawierały odpowiednio 1000 i 226 przykładów. Znacznie lepsze wyniki uzyskano dla pozostałych zbiorów (85-99%). Pozostałe zbiory zawierały co najmniej 2,3 do ponad 3,7 tyś. przykładów. W pracy [3] porównana została takŝe jakość klasyfikacji bez i przy wykorzystaniu metauczenia. UŜyty został algorytm budowy drzewa decyzyjnego C4.5. W eksperymentach zastosowano przycinanie stosowane tylko wówczas, gdy zmniejszało ono błąd klasyfikacji liczony na zbiorze testującym. W przypadku metody boosting zastosowano podejście wykorzystujące waŝony zbiór trenujący (w przeciwieństwie do niniejszej pracy, gdzie uŝyto podejścia wykorzystującego losowanie przykładów). Uzyskane wyniki, podobnie jak w niniejszej pracy, wskazywały na wyŝszość obu metod metauczenia nad budową pojedynczego klasyfikatora. Jednak [3] wskazuje (dla przypadku bez wprowadzania szumu) na wyŝszość metody boosting nad bagging. Eksperymenty przedstawione w niniejszej pracy pokazują niewielką przewagę metody bagging. RóŜnice mogą wynikać z zastosowania innych podejść przy realizacji metody boosting, odmiennych sposobów ograniczania głębokości drzewa oraz róŝnic w algorytmach budowy drzewa decyzyjnego. Mimo Ŝe stosowanie metauczenia powoduje trudniejszą interpretację zasad przydzielania przykładów do poszczególnych klas (powstaje wiele drzew decyzyjnych wykorzystywanych jednocześnie do określenia końcowej kategorii), to zastosowanie wielu klasyfikatorów pozwala na uzyskanie wyŝszej jakości klasyfikacji. Bibliografia [1] Cichosz P. Systemy uczące się, Warszawa 2000, WNT. [2] Breiman L. Bagging Predictors, Machine Learning, 24(2), 1996, s [3] Dietterich T. G. An experimental comparison of three methods for constructing ensembles of decision trees: Bagging, boosting, and randomization, Machine Learning, 40(2), 2000, s [4] Freund Y., Shapire E. Experiments with a new boosting algorithm, 13th Conf. on Machine Learning, s , 1996.

18 18 Piotr Andruszkiewicz [5] Han J., Kamber M. Data Mining: Concepts and Techiniques, New York 2001, Morgan Kaufman. [6] Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer, [7] [8] Mattison R. Data Warehousing and Data Mining for Telecommunications, 1997, Artech House Publishers. [9] Shafer J. C., Agrawal R., Mehta M. SPRINT: A Scalable Parallel Classifier for Data Mining, Proc. 22nd Int. Conf. Very Large Databases (VLDB), 1996, Morgan Kaufmann. [10] Strobl C., Boulesteix A. L., Augustin T. Unbiased split selection for classification trees based on the Gini Index, Computational Statistics & Data Analysis, Elsevier, 52(1), 2007, s [11] Witten I., Frank E. Data Mining, New York 2000, Morgan Kaufman.

19 Fraktalowy model komponentowy Lech Baranowski, Ilona Bluemke Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych Abstract: Component model is a method of components formalization and standardization. It describes components creation, usage and specification. In this paper Fractal component model is described. It contains components hierarchy, nonfunctional interfaces, optional interfaces. For this model a CASE tool Fractal Modeler was implemented. The tool enables users to create component systems and generates UML class diagram in IBM Rational Software Architect format. Keywords: software component, Component-based Software Engineering, component model 1. Wprowadzenie Komponentowa InŜynieria Oprogramowania (w skrócie CBSE z ang. Component- Based Software Engineering) to dziedzina InŜynierii Oprogramowania obejmująca projektowanie i tworzenie systemów informatycznych z komponentów. Komponenty są modułami (klockami) przeznaczonymi do wielokrotnego uŝycia w ramach wielu projektów. Wytwarza się je wewnątrz firmy, bądź kupuje na rynku. Pojedynczy system tworzy się w wyniku osadzania we wcześniej zaprojektowanej i przygotowanej architekturze komponentów. Następnie, komponenty konfiguruje się na potrzeby systemu i wzajemnej współpracy. Celem CBSE jest łatwiejsze, szybsze i tańsze budowanie systemów. Ponadto, tworzenie aplikacji z kilku duŝych modułów, zamiast z wielu drobnych elementów, zmusza twórców oprogramowania do dbania o przejrzystą architekturę, oraz do tworzenia i przestrzegania standardów co wywiera korzystny wpływ na jakość produktu. Istnieje wiele róŝnych definicji komponentu. Jedna z najczęściej przytaczanych jest definicja Clemensa Szyperskiego z 1996 roku: Komponent oprogramowania jest jednostką montaŝową, z określonymi interfejsami kontraktowymi i jawnymi zaleŝnościami kontekstowymi. Komponent oprogramowania moŝe być instalowany niezaleŝnie i podlega zestawianiu przez osoby postronne. [1] PowyŜsza definicja podkreśla cechy: niezaleŝność od kontekstu, sposób wdraŝania i interfejsy, które odróŝniają komponent od tradycyjnych modułów. Inna definicja Bill a Councill a i George a T. Heineman a zawiera pojęcie modelu komponentowego: Komponent to element oprogramowania, który spełnia załoŝenia modelu komponentowego i moŝe być niezaleŝnie wdroŝony i składany (tworzony) bez konieczności modyfikacji, bazując na odpowiednich standardach. [2] Model komponentowy definiuje czym są komponenty, jakie są nałoŝone na nie wymagania, jak są konstruowane, w jaki sposób są ze sobą łączone i integrowane

20 20 Lech Baranowski, Ilona Bluemke w ramach systemu [3]. NaleŜy jednak zaznaczyć, Ŝe szczegółowa i precyzyjna definicja modelu nie istnieje. Pojęcie modelu jest bardzo szerokie i obejmuje: technologie komponentowe szeroko stosowane w praktyce, których załoŝenia powstały na zasadzie ewolucji, a takŝe modele teoretyczne. Część modeli skupia się na strukturze komponentów, część zaś na modelowaniu interakcji między nimi [4]. Elementem, który łączy wszystkie podejścia jest chęć sformalizowania pewnych praktyk stosowanych przy wytwarzaniu komponentów i systemów na ich podstawie budowanych. Warto równieŝ zwrócić uwagę na duŝą róŝnorodność wśród istniejących modeli: część z nich ma podstawy wyłącznie inŝynierskie np.: Java- Beans [5,6] i COM [7,8], część matematyczne (mechanizmy oparte o sieci Petri [9], modele zachowań STS - Symbolic Transition Systems [10]); część jest dedykowana konkretnej dziedzinie gospodarki np. Koala [11] sprzętowi elektronicznemu, EJB [5,6] systemom biznesowym, część pozostaje uniwersalna (.NET [12]); część skupia się na strukturze i budowie komponentów (.NET, EJB), część na ich wzajemnych interakcjach (STS), inne uwzględniają oba aspekty (GRID [13]). W 2002 roku powstał fraktalowy model komponentowy (Fractal Component Model) [14] opisany w rozdziale 2. Jest to model otwarty i darmowy. Jego twórcy analizowali istniejące wcześniej modele (wprowadzenie do modelu zawiera odniesienia do modeli JavaBeans,.NET, CORBA [15]) i starali się zaadaptować najlepsze praktyki, jednocześnie starając się unikać błędów innych modeli. Model został dobrze przyjęty przez środowisko inŝynierskie, jest stosowany w projektach np. France Telecom. W Instytucie Informatyki PW zrealizowano aplikację Fractal Modeler, wspierającą model fraktalowy. Aplikacja, w skrócie opisana w rozdziale 3, pozwala na projektowanie systemów komponentowych. Zrealizowano mechanizm walidacji, pozwalający na wykrywanie błędów semantycznych związanych ze specyfikacją interfejsów. Narzędzie ma moŝliwość generacji diagramu klas dla narzędzia IBM Rational Software Architekt, co ułatwia implementację modelowanego systemu. W rozdziale 4 pokazano prosty przykład. 2. Struktura modelu Fractal W 2002 roku w wyniku współpracy francuskiej firmy komputerowej Groupe Bull, pracowników działu R&D France Telecom oraz INRIA (francuskiego narodowego instytutu badań informatycznych) powstało konsorcjum ObjectWeb. Celem jednego z pierwszych projektów było stworzenie fraktalowego modelu komponentowego (Fractal Component Model), którego pierwsza wersja została opublikowana w lipcu 2002 roku. Aktualna wersja pochodzi z roku Powodem powstania modelu Fractal [14] było ograniczone wsparcie wiodących istniejących modeli komponentowych (.NET, EJB, CORBA) dla rozszerzalności i adaptacji. PowyŜsze braki nie pozwalały między innymi na: moŝliwość dynamicznego wprowadzenia róŝnych kontrolerów własności niefunkcjonalnych komponentów, moŝliwość zmian stopnia konfigurowalności (kosztem wydajności), problemy z przenoszeniem środowisk modeli do róŝnych systemów i języków. W celu wypełnienia tej luki i bazując na dobrych cechach wymienionych modeli, projektanci wprowadzili lekki model komponentowy, znajdujący zastosowanie zarówno w niewielkich projektach, jak i w tych bardziej skomplikowanych.

21 Fraktalowy model komponentowy 21 Podstawową cechą modelu Fractal jest jego hierarchiczność. Na najwyŝszym poziomie system projektowany w oparciu o ten model składa się z jednego komponentu. Komponent ten, na niŝszych poziomach, jest dekomponowany na zestaw komponentów powiązanych zaleŝnościami interfejsowymi. Komponent nadrzędny deleguje realizację swojej funkcjonalności do odpowiednich komponentów podrzędnych. KaŜdy z komponentów podrzędnych moŝe być rozpatrywany jako komponent nadrzędny wobec swoich komponentów podrzędnych. Drugą waŝną cechą modelu jest poziom zgodności (określa jakie zalecenia modelu spełnia komponent). Poziomy zgodności zaleŝą od zestawu cech niefunkcjonalnych dostarczanych przez komponent. Wszelkie zalecenia modelu są opcjonalne model definiuje załoŝenia jakie muszą być spełnione przez obiekt by mógł on być zakwalifikowany jako komponent o odpowiednim poziomie zgodności. Zalecenia modelu są reprezentowane poprzez interfejsy, które naleŝy zaimplementować. Komponent, który implementuje odpowiedni zestaw interfejsów, realizuje dany zestaw zaleceń. Im wyŝszy poziom zgodności, tym mniejsze jest ryzyko napotkania trudności przy wykorzystaniu danego komponentu. Trzecią cechą modelu Fractal jest otwartość. śaden z mechanizmów wprowadzonych w modelu nie utrudnia dodawania i integracji nowych cech i właściwości. Model wprowadza moŝliwość współdzielenia danego komponentu przez inne komponenty. Komponent A moŝe być współdzielony (shared) przez komponenty B i C, nawet jeśli pomiędzy B i C nie ma powiązań i znajdują się one na róŝnych poziomach w hierarchii komponentów. PowyŜsza cecha sprawia, Ŝe struktura powiązań między komponentami przestaje być drzewem, a staje się grafem skierowanym bez cykli. Komponenty mogą być tworzone za pomocą fabryk komponentów (factories) specjalnych komponentów implementujących interfejsy niefunkcjonalne (interfejsy Factory, GenericFactory). Fabryki pozwalają równieŝ na tworzenie szablonów (tempalate). Szablon to rodzaj standardowej fabryki komponentów, która tworzy komponenty prawie izomorficzne względem siebie (izomorfizm nie dotyczy implementacji interfejsu fabryki). Komponenty stworzone z szablonu mają wszystkie właściwości takie jak szablon. RównieŜ ich podkomponenty są identyczne jak podkomponenty szablonu. Szczególnym przypadkiem komponentu jest komponent generujący (bootstrap component). Komponent generujący implementuje interfejs GenericFactory i moŝe tworzyć róŝne rodzaje komponentów, w tym równieŝ fabryki komponentów Interfejsy Interfejs jest zdefiniowany w modelu jako punkt dostępu do funkcjonalności komponentu. Interfejsy dzielą się na: funkcjonalne (odwołują się do wymaganej lub dostarczanej funkcjonalności), w tym: serwerowy (odbiera operacje wywołania), kliencki (wywołuje/emituje operacje wywołania), niefunkcjonalny, inaczej kontrolera (zarządza niefunkcjonalnymi aspektami komponentu).

22 22 Lech Baranowski, Ilona Bluemke Rysunek 1. Komponent Fractal jako czarna skrzynka. Źródło: [14] Na rysunku 1 pokazano komponent (ang. component) w postaci czarnej skrzynki, z widocznym interfejsem klienta (ang. client interface) oraz serwerowym (ang. server interface). Komponenty są ze sobą łączone poprzez wiązania interfejsów. Interfejs kliencki moŝe zostać połączony tylko z jednym interfejsem serwerowym (interfejs serwerowy moŝe być połączony z wieloma interfejsami klienckimi). Model definiuje aŝ dwanaście interfejsów niefunkcjonalnych, poprzez implementację których komponent realizuje odpowiednie zalecenia modelu: Component pozwala na uzyskanie informacji/referencji do pozostałych interfejsów danego komponentu. Interface dostarcza prostych mechanizmów refleksji wobec konkretnego interfejsu. AttributeController pozwala na zmianę atrybutów (właściwości) komponentu z zewnątrz (np. koloru ikonki, tekstu). BindingController dostarcza mechanizmów do zarządzania wiązaniami danego komponentu z innymi komponentami (dołączania lub odłączania). ContentController dostarcza mechanizmów do zarządzania połączeniami danego komponentu z jego pod-komponentami (dołączania lub odłączania). SuperController dostarcza metodę zwracającą referencję do rodzica danego komponentu, lub rodziców w przypadku komponentów dzielonych. NameController dostarcza metod do zarządzania lokalnymi nazwami komponentów. LifeCycleController dostarcza prostych mechanizmów do zarządzania cyklem Ŝycia komponentu. Komponent moŝe przyjmować stany: start i stop. Zmiana właściwości komponentu (w tym dołączanie pod-komponentów, wiązanie interfejsów, zmiana wartości atrybutów, itp.) moŝliwa jest tylko w stanie stop. GenericFactory pozwala na tworzenie komponentów róŝnego typu (metody które definiuje przyjmują parametry określające cechy tworzonych komponentów), jak równieŝ na tworzenie szablonów (template). Factory pozwala na tworzenie komponentów jednego określonego typu. TypeFactory pozwala na tworzenie interfejsów typu: InterfaceType i Component- Type. InterfaceType opisuje własności dowolnego interfejsu: jego nazwę, sygnaturę, liczność, opcjonalność, rolę (czy jest kliencki czy serwerowy).

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

ALGORYTM RANDOM FOREST

ALGORYTM RANDOM FOREST SKRYPT PRZYGOTOWANY NA ZAJĘCIA INDUKOWANYCH REGUŁ DECYZYJNYCH PROWADZONYCH PRZEZ PANA PAWŁA WOJTKIEWICZA ALGORYTM RANDOM FOREST Katarzyna Graboś 56397 Aleksandra Mańko 56699 2015-01-26, Warszawa ALGORYTM

Bardziej szczegółowo

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT WERSJA

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU> Załącznik nr 4.4 do Umowy nr 35-ILGW-253-.../20.. z dnia... MINISTERSTWO FINANSÓW DEPARTAMENT INFORMATYKI PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT WERSJA numer wersji

Bardziej szczegółowo

Ćwiczenie 12. Metody eksploracji danych

Ćwiczenie 12. Metody eksploracji danych Ćwiczenie 12. Metody eksploracji danych Modelowanie regresji (Regression modeling) 1. Zadanie regresji Modelowanie regresji jest metodą szacowania wartości ciągłej zmiennej celu. Do najczęściej stosowanych

Bardziej szczegółowo

Tworzenie przypadków testowych

Tworzenie przypadków testowych Tworzenie przypadków testowych Prowadząca: Katarzyna Pietrzyk Agenda 1. Wprowadzenie 2. Wymagania 3. Przypadek testowy Definicja Schemat Cechy dobrego przypadku testowego 4. Techniki projektowania Czarnej

Bardziej szczegółowo

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2 InŜynieria Rolnicza 14/2005 Michał Cupiał, Maciej Kuboń Katedra InŜynierii Rolniczej i Informatyki Akademia Rolnicza im. Hugona Kołłątaja w Krakowie DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY

Bardziej szczegółowo

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Modelowanie biznesowe jest stykiem między

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ Opis działania raportów w ClearQuest Historia zmian Data Wersja Opis Autor 2008.08.26 1.0 Utworzenie dokumentu. Wersja bazowa dokumentu. 2009.12.11 1.1

Bardziej szczegółowo

PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT WERSJA

PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU> Załącznik nr 4.6 do Umowy nr 35-ILGW-253-.../20.. z dnia... MINISTERSTWO FINANSÓW DEPARTAMENT INFORMATYKI PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT WERSJA

Bardziej szczegółowo

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne. Dodawanie i poprawa wzorców formularza i wydruku moŝliwa jest przez osoby mające nadane odpowiednie uprawnienia w module Amin (Bazy/ Wzorce formularzy i Bazy/ Wzorce wydruków). Wzorce formularzy i wydruków

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Spis treści. spis treści wygenerowany automatycznie

Spis treści. spis treści wygenerowany automatycznie Spis treści Rozdział 2.Wymagania edytorskie 2 2.1. Wymagania ogólne 2 2.2. Tytuły rozdziałów i podrozdziałów 2 2.3. Rysunki, tabele i wzory 3 2.3.1. Rysunki 3 2.3.2. Tabele 4 2.3.3. Wzory 4 2.4. Odsyłacze

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Klasyfikacja i regresja Wstęp do środowiska Weka

Klasyfikacja i regresja Wstęp do środowiska Weka Klasyfikacja i regresja Wstęp do środowiska Weka 19 listopada 2015 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików pdf sformatowanych podobnie do tego dokumentu.

Bardziej szczegółowo

technologii informacyjnych kształtowanie , procesów informacyjnych kreowanie metod dostosowania odpowiednich do tego celu środków technicznych.

technologii informacyjnych kształtowanie , procesów informacyjnych kreowanie metod dostosowania odpowiednich do tego celu środków technicznych. Informatyka Coraz częściej informatykę utoŝsamia się z pojęciem technologii informacyjnych. Za naukową podstawę informatyki uwaŝa się teorię informacji i jej związki z naukami technicznymi, np. elektroniką,

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

Bardziej szczegółowo

2. Podstawy programu Microsoft Access

2. Podstawy programu Microsoft Access 8 Wprowadzenie do projektowania baz danych 2. Podstawy programu Microsoft Access Baza danych utworzona w programie Microsoft Access składa się z wielu obiektów róŝnych typów. MoŜna podzielić je na dwie

Bardziej szczegółowo

Ćwiczenie 6 - Hurtownie danych i metody eksploracje danych. Regresja logistyczna i jej zastosowanie

Ćwiczenie 6 - Hurtownie danych i metody eksploracje danych. Regresja logistyczna i jej zastosowanie Ćwiczenie 6 - Hurtownie danych i metody eksploracje danych Regresja logistyczna i jej zastosowanie Model regresji logistycznej jest budowany za pomocą klasy Logistic programu WEKA. Jako danych wejściowych

Bardziej szczegółowo

Internetowy moduł prezentacji ofert pracy do wykorzystania na stronie WWW lub panelu elektronicznym. Wstęp

Internetowy moduł prezentacji ofert pracy do wykorzystania na stronie WWW lub panelu elektronicznym. Wstęp Internetowy moduł prezentacji ofert pracy do wykorzystania na stronie WWW lub panelu elektronicznym. Wstęp Prezentujemy Państwu propozycję modułu aplikacji internetowej słuŝącej do prezentacji ofert pracy

Bardziej szczegółowo

IBM Rational Software Architect uproszczona instrukcja użytkowania

IBM Rational Software Architect uproszczona instrukcja użytkowania IBM Rational Software Architect uproszczona instrukcja użytkowania TOMASZ ŁUKASZUK na podstawie Software Developer's Jurnal Extra Nr 18 STRESZCZENIE: Dokument przedstawia ogólne informacje na temat narzędzia

Bardziej szczegółowo

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu

Bardziej szczegółowo

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR kpt. mgr inŝ. Paweł HŁOSTA kpt. mgr inŝ. Dariusz SZABRA Wojskowy Instytut Techniczny Uzbrojenia WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR W niektórych aplikacjach mikroprocesorowych,

Bardziej szczegółowo

Sieci VPN SSL czy IPSec?

Sieci VPN SSL czy IPSec? Sieci VPN SSL czy IPSec? Powody zastosowania sieci VPN: Geograficzne rozproszenie oraz duŝa mobilność pracowników i klientów przedsiębiorstw i instytucji, Konieczność przesyłania przez Internet danych

Bardziej szczegółowo

Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji

Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji Jacek Szcześniak Jerzy Błaszczyński Roman Słowiński Poznań, 5.XI.2013r. Konspekt Wstęp Wprowadzenie Metody typu wrapper Nowe metody

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Laboratorium 6 DIAGRAM KLAS (Class Diagram) Laboratorium 6 DIAGRAM KLAS (Class Diagram) Opisuje strukturę programu (a także zależności między nimi), co znajduje odzwierciedlenie w kodzie. Charakteryzuje zależności pomiędzy składnikami systemu: klasami,

Bardziej szczegółowo

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT WERSJA

PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU> Załącznik nr 4.5 do Umowy nr 35-ILGW-253-.../20.. z dnia... MINISTERSTWO FINANSÓW DEPARTAMENT INFORMATYKI PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT WERSJA numer wersji

Bardziej szczegółowo

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie

Bardziej szczegółowo

Maciej Oleksy Zenon Matuszyk

Maciej Oleksy Zenon Matuszyk Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

Wykład 1 Inżynieria Oprogramowania Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI

Bardziej szczegółowo

Sprzętowo wspomagane metody klasyfikacji danych

Sprzętowo wspomagane metody klasyfikacji danych Sprzętowo wspomagane metody klasyfikacji danych Jakub Botwicz Politechnika Warszawska, Instytut Telekomunikacji Plan prezentacji 1. Motywacje oraz cele 2. Problemy klasyfikacji danych 3. Weryfikacja integralności

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

Testowanie modeli predykcyjnych

Testowanie modeli predykcyjnych Testowanie modeli predykcyjnych Wstęp Podczas budowy modelu, którego celem jest przewidywanie pewnych wartości na podstawie zbioru danych uczących poważnym problemem jest ocena jakości uczenia i zdolności

Bardziej szczegółowo

5. Administracja kontami uŝytkowników

5. Administracja kontami uŝytkowników 5. Administracja kontami uŝytkowników Windows XP, w porównaniu do systemów Windows 9x, znacznie poprawia bezpieczeństwo oraz zwiększa moŝliwości konfiguracji uprawnień poszczególnych uŝytkowników. Natomiast

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Komunikaty statystyczne medyczne

Komunikaty statystyczne medyczne Komunikaty statystyczne-medyczne (raporty statystyczne SWX) zawierają informację o usługach medycznych wykonanych przez świadczeniodawcę. Przekazany przez świadczeniodawcę komunikat podlega sprawdzeniu

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

KURS ACCESS 2003 Wiadomości wstępne

KURS ACCESS 2003 Wiadomości wstępne KURS ACCESS 2003 Wiadomości wstępne Biorąc c udział w kursie uczestnik zapozna się z tematyką baz danych i systemu zarządzania bazami danych jakim jest program Microsoft Access 2003. W trakcie kursu naleŝy

Bardziej szczegółowo

Narzędzia CASE dla.net. Łukasz Popiel

Narzędzia CASE dla.net. Łukasz Popiel Narzędzia CASE dla.net Autor: Łukasz Popiel 2 Czym jest CASE? - definicja CASE (ang. Computer-Aided Software/Systems Engineering) g) oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

Komunikacja Master-Slave w protokole PROFIBUS DP pomiędzy S7-300/S7-400

Komunikacja Master-Slave w protokole PROFIBUS DP pomiędzy S7-300/S7-400 PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników S7 300/S7 400, w celu stworzenia komunikacji Master Slave z wykorzystaniem sieci PROFIBUS DP pomiędzy sterownikami S7 300 i S7

Bardziej szczegółowo

Data Mining podstawy analizy danych Część druga

Data Mining podstawy analizy danych Część druga Data Mining podstawy analizy danych Część druga W części pierwszej dokonaliśmy procesu analizy danych treningowych w oparciu o algorytm drzewa decyzyjnego. Proces analizy danych treningowych może być realizowany

Bardziej szczegółowo

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty przedmiotu Stopień studiów i forma: Rodzaj przedmiotu Kod przedmiotu Grupa kursów Zaawansowane techniki analizy

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

Wykład 5. Cel wykładu. Korespondencja seryjna. WyŜsza Szkoła MenedŜerska w Legnicy. Informatyka w zarządzaniu Zarządzanie, zaoczne, sem.

Wykład 5. Cel wykładu. Korespondencja seryjna. WyŜsza Szkoła MenedŜerska w Legnicy. Informatyka w zarządzaniu Zarządzanie, zaoczne, sem. Informatyka w zarządzaniu Zarządzanie, zaoczne, sem. 3 Wykład 5 MS Word korespondencja seryjna Grzegorz Bazydło Cel wykładu Celem wykładu jest omówienie wybranych zagadnień dotyczących stosowania korespondencji

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Testy poziom po poziomie

Testy poziom po poziomie poziom po poziomie Prowadzący: Tomasz Mielnik Eliza Słonińska Agenda 1. Modele prowadzenia projektów 2. V-Model 3. Poziomy testów 4. Typy testów 5. Zadanie 1 Modele prowadzenia projektów Wodospadowy (ang.

Bardziej szczegółowo

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp Prezentujemy Państwu propozycję modułu aplikacji internetowej słuŝącej do prezentacji zaplanowanych wizyt klienta

Bardziej szczegółowo

bo od managera wymaga się perfekcji

bo od managera wymaga się perfekcji bo od managera wymaga się perfekcji MODELOWANIE PROCESÓW Charakterystyka modułu Modelowanie Procesów Biznesowych (BPM) Modelowanie procesów biznesowych stanowi fundament wdroŝenia systemu zarządzania jakością

Bardziej szczegółowo

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA PROJEKTAMI W PRZEDSIĘBIORSTWIE

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA PROJEKTAMI W PRZEDSIĘBIORSTWIE KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA PROJEKTAMI W PRZEDSIĘBIORSTWIE Seweryn SPAŁEK Streszczenie: Zarządzanie projektami staje się coraz bardziej powszechne w przedsiębiorstwach produkcyjnych, handlowych

Bardziej szczegółowo

Spis treúci. 1. Wprowadzenie... 13

Spis treúci. 1. Wprowadzenie... 13 Księgarnia PWN: W. Dąbrowski, A. Stasiak, M. Wolski - Modelowanie systemów informatycznych w języku UML 2.1 Spis treúci 1. Wprowadzenie... 13 2. Modelowanie cele i metody... 15 2.1. Przegląd rozdziału...

Bardziej szczegółowo

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2 Wyższa Szkoła Menedżerska w Legnicy Systemy informatyczne w przedsiębiorstwach Zarządzanie, ZIP, sem. 6 (JG) Modelowanie wymagań Wykład 2 Grzegorz Bazydło Cel wykładu Celem wykładu jest przekazanie wiedzy

Bardziej szczegółowo

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Wstęp Aby skorzystać z możliwości RapidMinera w zakresie analizy tekstu, należy zainstalować Text Mining Extension. Wybierz: 1 Po

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 1 Wprowadzenie do narzędzia CASE

Bardziej szczegółowo

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON Opis szkoleń z obszaru INFORMATYKA planowanych

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L, Klasyfikator Jedną z najistotniejszych nieparametrycznych metod klasyfikacji jest metoda K-najbliższych sąsiadów, oznaczana przez K-NN. W metodzie tej zaliczamy rozpoznawany obiekt do tej klasy, do której

Bardziej szczegółowo

System Kontroli Bazy Danych Topograficznych (SKBDT) zawód kartografa?

System Kontroli Bazy Danych Topograficznych (SKBDT) zawód kartografa? System Kontroli Bazy Danych Topograficznych (SKBDT) zawód kartografa? Koszalin, 15-16.05.2006 III Zawodowa Konferencja Zawód kartografa 200910151500 Agenda 1. Koncepcja SKBDT 2. Podstawowe założenia koncepcji

Bardziej szczegółowo

Proces technologiczny. 1. Zastosowanie cech technologicznych w systemach CAPP

Proces technologiczny. 1. Zastosowanie cech technologicznych w systemach CAPP Pobożniak Janusz, Dr inż. Politechnika Krakowska, Wydział Mechaniczny e-mail: pobozniak@mech.pk.edu.pl Pozyskiwanie danych niegeometrycznych na użytek projektowania procesów technologicznych obróbki za

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Podstawy obsługi aplikacji Generator Wniosków Płatniczych

Podstawy obsługi aplikacji Generator Wniosków Płatniczych Podstawy obsługi aplikacji Generator Wniosków Płatniczych 1. Instalacja programu Program naleŝy pobrać ze strony www.simik.gov.pl. Instalację naleŝy wykonań z konta posiadającego uprawnienia administratora

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Obszar pierwszy to pasek narzędzi (rys. 1) zawierający skróty do najczęściej uŝywanych funkcji. Rys. 1 Pasek Narzędzi

Obszar pierwszy to pasek narzędzi (rys. 1) zawierający skróty do najczęściej uŝywanych funkcji. Rys. 1 Pasek Narzędzi Do najwaŝniejszych zmian w CERTO v4.0 naleŝy: MoŜliwość wczytywania do programu plików graficznych zawierających rzuty lub przekroje budynku i zaznaczania na nich elementów wprowadzanych do programu CERTO.

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA

WOJSKOWA AKADEMIA TECHNICZNA WOJSKOWA AKADEMIA TECHNICZNA LABORATORIUM ANALIZA I MODELOWANIE SYSTEMÓW INFORMATYCZNYCH Stopień, imię i nazwisko prowadzącego Stopień, imię i nazwisko słuchacza Grupa szkoleniowa mgr inż. Łukasz Laszko

Bardziej szczegółowo

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Zakres wykładu. Podstawy InŜynierii Oprogramowania Zakres wykładu Pojęcia podstawowe InŜynierii Oprogramowania Proces wytwarzania oprogramowania Artefakty procesu wytwarzania i ich modele Jakość oprogramowania Literatura: [1] Sacha K., InŜynieria oprogramowania,

Bardziej szczegółowo

Komunikator internetowy w C#

Komunikator internetowy w C# PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Modeling and analysis of computer systems Kierunek: Informatyka Forma studiów: Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007 Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007 Zawartość 1 WSTĘP 2 2 BUDOWA OKNA PROGRAMU MICROSOFT OUTLOOK 2007 3 3 USTAWIENIA WIDOKU EKRANU 3 4 KORZYSTANIE Z PROGRAMU MICROSOFT

Bardziej szczegółowo

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl Testowanie według modelu (MBT) Bogdan Bereza, Victo MBT testowanie z modelu wersja 2.1 A 1 (48) Pozdrawiam Best regards Med vänliga hälsningar Bogdan Bereza bogdan.bereza@victo.eu +48 519 152 106 Skype:

Bardziej szczegółowo

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski 26.05.2011

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski 26.05.2011 Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF Tomasz Turski 26.05.2011 Plan prezentacji Architektura korporacyjna Frameworki Pryncypia Metodyka TOGAF

Bardziej szczegółowo

Załącznik Nr 1. Istotne warunki zamówienia do przetargu nieograniczonego na wykonanie pakietu usług programistycznych

Załącznik Nr 1. Istotne warunki zamówienia do przetargu nieograniczonego na wykonanie pakietu usług programistycznych Załącznik Nr 1 Do pisma IMP PAN l.dz. ZDN/1234/2007 z 2007-06-19 o ogłoszeniu przetargu nieograniczonego na pakiet usług programistycznych, których wartość nie przekracza progu, od którego obowiązuje prawo

Bardziej szczegółowo

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań Anna Manerowska, Michal Kozakiewicz 2.12.2009 1 Wstęp Jako projekt na przedmiot MEUM (Metody Ewolucyjne Uczenia Maszyn)

Bardziej szczegółowo

Rys. 1. Zestawienie rocznych kosztów ogrzewania domów

Rys. 1. Zestawienie rocznych kosztów ogrzewania domów :: Trik 1. Wykres, w którym oś pozioma jest skalą wartości :: Trik 2. Automatyczne uzupełnianie pominiętych komórek :: Trik 3. Niestandardowe sortowanie wg 2 kluczy :: Trik 4. Przeliczanie miar za pomocą

Bardziej szczegółowo

Tom 6 Opis oprogramowania

Tom 6 Opis oprogramowania Część 9 Narzędzie do wyliczania wskaźników statystycznych Diagnostyka Stanu Nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 31 maja 2012 Historia dokumentu Nazwa dokumentu Nazwa

Bardziej szczegółowo

Oprogramowanie dla biznesu Numer 11 (69) Listopad 2009 JAK SZYBKO I SKUTECZNIE ZAMKNĄĆ ROK?

Oprogramowanie dla biznesu Numer 11 (69) Listopad 2009 JAK SZYBKO I SKUTECZNIE ZAMKNĄĆ ROK? Oprogramowanie dla biznesu Numer 11 (69) Listopad 2009 JAK SZYBKO I SKUTECZNIE ZAMKNĄĆ ROK? CZY TO MOśLIWE, ABY PRZEZ PROCES ZAMKNIĘCIA ROKU W DUśEJ FIRMIE LEASINGOWEJ PRZEJŚĆ SZYBKO I BEZBOLEŚNIE? MY

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

PROGRAM WSPOMAGAJĄCY OCENĘ INWESTYCJI MECHANIZACYJNYCH DOZEM 2

PROGRAM WSPOMAGAJĄCY OCENĘ INWESTYCJI MECHANIZACYJNYCH DOZEM 2 InŜynieria Rolnicza 6/2005 Michał Cupiał, Sylwester Tabor Katedra InŜynierii Rolniczej i Informatyki Akademia Rolnicza w Krakowie PROGRAM WSPOMAGAJĄCY OCENĘ INWESTYCJI MECHANIZACYJNYCH DOZEM 2 Streszczenie:

Bardziej szczegółowo

Analiza metod wykrywania przekazów steganograficznych. Magdalena Pejas Wydział EiTI PW magdap7@gazeta.pl

Analiza metod wykrywania przekazów steganograficznych. Magdalena Pejas Wydział EiTI PW magdap7@gazeta.pl Analiza metod wykrywania przekazów steganograficznych Magdalena Pejas Wydział EiTI PW magdap7@gazeta.pl Plan prezentacji Wprowadzenie Cel pracy Tezy pracy Koncepcja systemu Typy i wyniki testów Optymalizacja

Bardziej szczegółowo