Zastosowanie Metod Formalnych do Specyfikacji oraz Weryfikacji Systemów Agentowych

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

Download "Zastosowanie Metod Formalnych do Specyfikacji oraz Weryfikacji Systemów Agentowych"

Transkrypt

1 Zastosowanie Metod Formalnych do Specyfikacji oraz Weryfikacji Systemów Agentowych Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Informatyki Autor: mgr inż. Sławomir Maludziński Promotor: dr hab inż. Grzegorz Dobrowolski, prof. AGH Kraków, 2011

2

3 Chciałbym złożyć wyrazy podziękowania mojemu promotorowi, prof. Grzegorzowi Dobrowolskiemu za wyrozumiałość i wiele godzin, które poświęcił na dyskusje ze mna o tej rozprawie. Szczególne podziękowania składam również mojej rodzinie, która wspierała mnie w trakcie studiów doktoranckich oraz podczas tworzenia niniejszej pracy. Dziękuję również wszystkim, którzy mi kibicowali i trzymali za mnie kciuki. Sławomir Maludziński

4

5 Fortitudine vincimus

6

7 Spis treści Spis treści Spis rysunków Spis tablic v ix xi 1 Wprowadzenie Metody formalne w inżynierii oprogramowania Systemy agentowe Teza pracy Zawartość dysertacji Weryfikacja aspektów systemów agentowych Weryfikacja przez model Stosowalność weryfikacji do systemów agentowych Weryfikacja aspektów systemów agentowych Aspekt środowiska Aspekt zasobów Aspekt komunikacji Aspekt rozumowania Aspekt współpracy Aspekt integralności funkcjonalnej Aspekt mobilności Przegląd narzędzi do weryfikacji przez model SPIN NuSMV MCK VerICS MCMAS v

8 vi Spis treści MABLE MOCHA AgentSpeak(F) Przegląd logik temporalnych Logika czasu liniowego LTL Logika drzew obliczeniowych CTL Logika epistemiczna CTLK Logika czasu naprzemiennego ATL Semantyka formuł języka logiki temporalnej Bezstronność Przegląd algorytmów weryfikacji i optymalizacji Konstrukcja modelu Algorytmy weryfikacji Optymalizacje struktury Krippkego Złożoność obliczeniowa Przegląd metod specyfikacji systemów Ogólna charakterystyka metod specyfikacji Specyfikacja w algebrach procesów Algebra join-calculus Uzasadnienie wyboru algebry join-calculus Studium weryfikacji aspektów systemów agentowych Podsumowanie analizy obszaru badawczego Projekt narzędzia do weryfikacji Założenia konstrukcyjne narzędzia Tryb przetwarzania języka Język specyfikacji Białe znaki Komentarze Stałe Słowa kluczowe Identyfikatory Typy danych Wyrażenia Instrukcje Etykiety instrukcji Reguły reakcji Wyrażenia logiki CTL Niezmienniki Bezstronność Zakres widzialności nazw Semantyka wywołań reguł reakcji Przekazywanie wiadomości przez parametr Kompilacja

9 Spis treści vii 3.8 Konstrukcja automatu Interpreter Powstawanie procesów Konstrukcja modelu Wybór algorytmów weryfikacji i optymalizacji Źródła eksplozji stanów Normalizacja formuł logiki CTL Podsumowanie Przykłady specyfikacji aspektów systemów agentowych Przeplot instrukcji Wymiana wiadomości Przemieszczanie nazw kanałów komunikacyjnych Przemieszczanie kodu Przemieszczanie agentów Przemieszczanie środowisk wykonawczych Specyfikacja systemów w bibliotece JADE Podsumowanie Przykłady weryfikacji systemów agentowych Synchroniczne wysłanie komunikatu Asynchroniczne wysłanie komunikatu Przeplot instrukcji Semafor Rendezvous Rozmiar i czas weryfikacji Problematyka syntezy systemów agentowych Problematyka syntezy oprogramownia Platformy i języki programowania systemów agentowych Język programowania JoCAML Język programowania join-calculus Biblioteka programowa JADE Inne systemy implementacji Podsumowanie 147 A Przykłady specyfikacji metod synchronizacji i protokołów 151 A.1 Bufor A.2 Semafor A.3 Bariera A.4 Kanał asynchroniczny A.5 Kanał synchroniczny A.6 Rendezvous

10 viii Spis treści A.7 Obliczenie współbieżne A.8 Aplet A.9 Protokół z przemiennym bitem B Elementy implementacji narzędzia 161 B.1 Generacja kodu B.1.1 Skaner B.1.2 Parser B.1.3 Drzewo wyprowadzenia B.1.4 Kontrola zakresu widzialności nazw B.1.5 Kontrola typów B.1.6 Pozostałe kontrole semantyczne B.1.7 Generacja kodu interpretera B.1.8 Normalizacja formuł logiki CTL B.1.9 Kompilacja formuł logiki CTL B.2 Weryfikacja kodu B.2.1 Przydział pamięci B.2.2 Automatyczne zarządzanie pamięcią B.2.3 Interpreter B.2.4 Zarządca procesów B.2.5 Światy i struktura Krippkego B.2.6 Budowa struktury Krippkego B.2.7 Weryfikacja formuł logiki CTL B.2.8 Poszukiwanie kontrprzykładów C Podręcznik narzędzia 183 C.1 Zawartość pakietu oraz instalacja C.2 Opis kodów błędów C.3 Licencja D Gramatyka narzędzia do weryfikacji 187 Bibliografia 191

11 Spis rysunków 2.1 Spełnialność formuł LTL Spełnialność formuł CTL Algorytm konstrukcji struktury Krippkego Diagram decyzji binarnych Pętla w strukturze Krippkego Podstawowa algebra join-calculus Reguły chemiczne algebry join-calculus Gramatyka rozproszonej algebry join-calculus Reguły chemiczne rozproszonego RCHAM Rozszerzenie algebry join-calculus o środowisko i wiedzę Reguły chemiczne algebry join-calculus z uwzględnieniem środowiska i wiedzy Tryb przetwarzania języka Wzorzec wiadomości, łącza, procesu oraz reguły reakcji Struktury danych interpretera Uruchomiony proces wraz z wiązaniami sterowania i dostępu do danych Przykład działania interpretera, struktury danych oraz wiązania sterowania i dostępu do danych A.1 Protokół transmisji z naprzemiennym bitem B.1 Moduły narzędzia do weryfikacji B.2 Przykład umieszczenia komunikatów w przegródkach B.3 Budowa struktury Krippkego D.1 Gramatyka języka stosowanego w narzędziu do weryfikacji ix

12

13 Spis tablic 2.1 Przykład specyfikacji w języku PROMELA (SPIN) Przykład specyfikacji w narzędziu NuSMV Przykład specyfikacji w narzędziu MCK Przykład specyfikacji w języku ISPL (MCMAS) Przykład specyfikacji w języku REACTIVEMODULES (MOCHA) Weryfikacja klas własności poprawności Definicja zmiennej Definicja rendezvous Definicja aktora Definicja apletu Studium weryfikacji przez model aspektów systemów agentowych Priorytet i łączność operatorów Widzialność leksykalna Możliwe wywołania reguł reakcji Zwrócenie nazw wzorców wiadomości Przekazanie nazwy wzorca wiadomości jako parametru Instrukcje stosowane przez interpreter Przykład działania interpretera, specyfikacja Algorytm konstrukcji struktury Krippkego Konto, przeplot instrukcji Kod bajtowy interpretera Wymiana wiadomości Przemieszczanie nazw kanałów komunikacyjnych Przemieszczanie kodu Przemieszczanie agentów Przemieszczanie środowisk wykonawczych Wysłanie i odbiór wiadomości xi

14 xii Spis tablic 4.9 Skrytka pocztowa Deklaracja agenta Zatrzymanie kontenera Synchroniczne wysłanie komunikatu Sekwencja tworzenia stanów struktury Krippkego (komunikat synchroniczny) Asynchroniczne wysłanie komunikatu Sekwencja tworzenia stanów struktury Krippkego (komunikat asynchroniczny) Przeplot instrukcji Przeplot instrukcji. Przykład EF (i == 1000) Przeplot instrukcji. Przykład EF (i == 2500) Przeplot instrukcji. Przykład EF (i == 3500) Przeplot instrukcji. Przykład 1 EF (i! = 2500) Przeplot instrukcji. Przykład 2 EF (i! = 2500) Sekcja krytyczna. Semafor - weryfikacja Semafor. Przykład EF (total == 1000) Semafor. Przykład EF (total == 2500) Semafor. Przykład EF (total == 3500) Rendezvous. Weryfikacja Rendezvous. Przykład 1 AG (value == 156) Rendezvous. Przykład 2 AG (value == 156) Rendezvous. Kontrprzykład 1 AG (value! = 156) Rendezvous. Kontrprzykład 2 AG (value! = 156) Rozmiar i czas weryfikacji Deklaracja zmiennej w języku programowania join-calculus Deklaracja łączy w języku programowania join-calculus Translacja lokalizacji A.1 Specyfikacja bufora dwuelementowego A.2 Specyfikacja semafora A.3 Specyfikacja bariery A.4 Specyfikacja kanału asynchronicznego A.5 Specyfikacja kanału synchronicznego A.6 Specyfikacja rendezvous A.7 Przykład obliczenia współbieżnego A.8 Przykład specyfikacji apletu A.9 Przykład specyfikacji protokołu z przemiennym bitem B.1 Kod skanera B.2 Kod parsera B.3 Struktury danych listy B.4 Normalizacja formuł logiki CTL

15 Spis tablic xiii B.5 Kompilacja formuł logiki CTL B.6 System automatycznego zarządzania pamięcią B.7 Przykład struktury interpretera B.8 Interpretacja kodu bajtowego B.9 Permutacje dopasowań wiadomości do łączy B.10 Struktura Krippkego B.11 Algorytm budowy struktury Krippkego B.12 Weryfikacja CTL - operator EU B.13 Poszukiwanie kontrprzykładów

16

17 R O Z D Z I A Ł Wprowadzenie 1 Szczególnie istotnym zagadnieniem podczas wytwarzania oprogramowania jest zapewnienie jego poprawności. Nawet najmniejsze błędy, które pojawią się w systemach komputerowych, mogą prowadzić do poważnych awarii i znaczących strat. Jednym z głównych celów inżynierii oprogramowania jest zatem dostarczenie metod oraz narzędzi pozwalających na konstruowanie systemów komputerowych pozbawionych wad. Koncepcją rozwijaną przez ośrodki naukowe, która ma umożliwić realizację tego postulatu, jest zastosowanie metod formalnych. Użycie metod formalnych nie gwarantuje wprost zupełnej poprawności, jednak zwiększa rozumienie funkcjonowania systemu poprzez odkrywanie niespójności, niejednoznaczności i niekompletności, które w innym przypadku mogłyby pozostać przeoczone. Bardzo interesującą metodologią wytwarzania systemów informatycznych jest ich budowa z wykorzystaniem paradygmatu agentowego. Współcześnie nabiera ona coraz większego znaczenia, albowiem znaczna ilość systemów informatycznych posiada cechy systemów agentowych, takich jak osadzenie w środowisku, autonomiczność, zdolność do współpracy czy mobilność. Traktując systemy agentowe jako szczególny rodzaj systemów informatycznych, w niniejszej pracy podjęto próbę wykazania, w jaki sposób stosować metody formalne do zapewnienia ich prawidłowego działania. W konsekwencji zaś, w opinii autora, przyczynić się do zwiększenia niezawodności takich systemów. 1.1 Metody formalne w inżynierii oprogramowania Metody formalne oparte są o dyscypliny matematyczne, takie jak teoria zbiorów, algebra, logika matematyczna, teoria automatów i języków formalnych. Można stosować je na każdym z etapów procesu wytwarzania oprogramowania, począwszy 1

18 2 1. Wprowadzenie od specyfikacji wymagań, poprzez ich analizę, projekt systemu, implementację lub syntezę czy weryfikację. Do metod formalnych należą: Specyfikacja. Specyfikacja jest procesem mającym na celu opis budowanego systemu wraz z jego pożądanymi własnościami. Zazwyczaj używa do tego celu języka z formalnie zdefiniowaną syntaktyką oraz semantyką. Specyfikacji może podlegać działanie, wydajność, ograniczenia czasowe, bezpieczeństwo czy architektura. Obszarem największego zainteresowania jest specyfikacja działania. Rezultatem specyfikacji jest dostarczenie opisu systemu, który może służyć w dalszych etapach produkcji oprogramowania. Sam może być również analizowany czy weryfikowany. Specyfikacja jest także użyteczna jako środek komunikacji pomiędzy osobami zaangażowanymi w procesie wytwarzania oprogramowania, takimi jak klient, analityk, architekt, programista czy tester. Przykładami metod umożliwiających specyfikację programów sekwencyjnych są Specyfikacja Z [96], VDM [17] czy Larch [47], definiowane przy pomocy struktur matematycznych, takich jak zbiory, relacje bądź funkcje. Przejścia pomiędzy stanami opisywane są przy pomocy pre- i post- warunków (ang. pre-, postconditions). Inne metody, takie jak CSP [50], CCS [73], Lotos [52, 53], logiki temporalne [60] umożliwiają specyfikację systemów współbieżnych. Weryfikacja. Celem weryfikacji jest wykazanie poprawności systemów informatycznych. Weryfikacja odbywa się poprzez sprawdzenie poprawności specyfikacji mogącej obejmować między innymi wymagania, projekt czy implementację. Zarówno ich wewnętrznej spójności, jak też niesprzeczności wobec pozostałych dokumentów. Na przykład projektu wobec wymagań, czy implementacji wobec projektu. Dwiema dobrze określonymi metodami formalnymi weryfikacji są weryfikacja przez model oraz automatyczne dowodzenie twierdzeń. Weryfikacja przez model. Weryfikacja przez model [34] bazuje na budowie skończonego modelu systemu i sprawdzeniu, czy reguła poprawności jest w nim spełniona. Sprawdzenie to odbywa się w przestrzeni stanów i kończy się, gdyż założona ilość stanów podlegających weryfikacji jest skończona. Po dostarczeniu odpowiedniego opisu działania systemu oraz reguł poprawności, które mają być przezeń spełnione, weryfikacja taka jest procesem całkowicie automatycznym i nie wymaga udziału inżyniera. Metoda ta znajduje zastosowanie głównie do weryfikacji protokołów, układów elektronicznych, a ostatnio programów komputerowych [5, 51]. Prowadzone są również badania nad jej zastosowaniem do weryfikacji systemów agentowych. Dowodzenie twierdzeń. W metodzie tej logiki matematyczne są wykorzystywane zarówno w celu specyfikacji systemu, jak i jego reguł poprawności. Dowód

19 Systemy agentowe 3 poprawności odbywa się z wykorzystaniem aksjomatów oraz reguł wnioskowania w odpowiedniej logice. Proces ten ma na celu wykazanie spełnialności formuły, świadczącej o poprawności systemu. W przeciwieństwie do weryfikacji przez model, dowodzenie twierdzeń pozwala na rozważanie systemów, których przestrzeń stanów jest nieskończona. W ogólności automatyczne dowodzenie twierdzeń jest niemożliwe, gdyż dla wielu logik pytanie czy dana formuła posiada dowód, jest nierozstrzygalne. Do konstrukcji dowodu stosuje się narzędzia, które umożliwiają automatyczne lub wspomagane przez inżyniera dowodzenie danej formuły. Proces ten jest więc wolniejszy, a poprzez zaangażowanie w nim człowieka może prowadzić do niepoprawnych rezultatów. Przykładami takich rozwiązań są: PVS [78], Prover9 [70], E [92] czy rozwijany w Polsce system Mizar [98]. Synteza. Synteza oprogramowania polega na wygenerowaniu kodu lub jego fragmentów na podstawie specyfikacji [11, 69]. Dzięki takiemu podejściu unika się konieczności sprawdzania poprawności implementacji względem przedstawionych wymagań, gdyż przekształcenie takie jest zawsze poprawne. Rozważania teoretyczne dotyczą możliwości generowania kodu systemów informatycznych z ich specyfikacji wyrażonych za pomocą logik temporalnych. Współcześnie istniejące rozwiązania umożliwiają utworzenie szkieletu oprogramowania odpowiedzialnego za synchronizację procesów w systemach współbieżnych. W ten sposób uzyskuje się kod, który jest trudny do wytworzenia przez człowieka, jednocześnie mając pewność, iż jest poprawny względem specyfikacji. Wadą tej metody jest duża złożoność obliczeniowa. Co więcej, w przypadku niepoprawności lub niekompletności specyfikacji, wygenerowany kod będzie nieodpowiedni. 1.2 Systemy agentowe Historia badań nad systemami agentowymi liczy ponad 30 lat [101]. W trakcie tego okresu powstało wiele publikacji, które rozszerzały uniwersalną definicję agenta oraz systemów agentowych. Prace te czerpią między innymi z dziedzin takich jak filozofia, nauki przyrodnicze, logika matematyczna, ekonomia. Rozszerzenie spektrum zagadnień spowodowało znaczny rozwój tej dziedziny nauki. Z drugiej zaś strony, pojęcie agenta oraz systemów agentowych uległo rozmyciu. Dlatego też konieczne jest określenie podstawowych cech, jakie musi spełniać system agentowy. Pomimo różnych istniejących propozycji definicji agenta, istnieje kilka cech, które niewątpliwie wyróżniają i charakteryzują zarówno samych agentów, jak i tworzone przez nie systemy agentowe. Ich dokładny opis został ujęty między innymi w pracach [20, 101, 104], tutaj zostały przytoczone najważniejsze stwierdzenia. Osadzenie w środowisku. Agenci są w stanie obserwować otaczające ich środowisko przy pomocy sensorów. Dzięki możliwości wykonywania akcji mają na

20 4 1. Wprowadzenie nie również wpływ. Zmiany te są realizowane przy pomocy efektorów. Pomiędzy obserwacją środowiska, a wpływem na nie zachodzi proces decyzyjny specyficzny dla danego agenta. W zależności od sposobu jego realizacji wyróżnia się typy agentów. Autonomia. Możliwe jest wiele poziomów autonomii, od bardzo małej do zupełnej swobody w podejmowaniu decyzji. W przypadku agentów postuluje się, aby mogły one samodzielnie decydować o wyborze akcji, tak aby osiągnąć zamierzony cel. Proaktywność. Zakłada się, iż agenci będą samorzutnie podejmować akcje, aby osiągnąć zamierzony cel. Założenie to rozróżnia pojęcie agenta od pojęcia obiektu w modelach obiektowych, którego metody są wykonywane po otrzymaniu żądania ich realizacji (wiadomości). Reaktywność. Reaktywność oznacza umiejętność odpowiedzi na zmiany w środowisku. W przypadku zaistnienia takich zmian, na przykład na skutek działań innych agentów, musi istnieć możliwość podjęcia innych, odpowiedniejszych akcji, tak aby osiągnąć zamierzony cel. W szczególnym przypadku może zostać podjęta decyzja o porzuceniu realizacji danego celu i wyborze innego. Zdolności społeczne. Agenci przebywający w środowisku wykonują zobowiązania, które odpowiadają możliwościom określonym przez ich algorytm działania. Dodatkowo, poprzez umiejętność wymiany komunikatów, mogą wchodzić w interakcję z innymi agentami i realizować bardziej skomplikowane przedsięwzięcia, których samodzielnie nie mogliby zrealizować. Umiejętność ta określana jest jako zdolności społeczne. Jej rozwinięcie doprowadziło do zdefiniowania metod, które umożliwiają wypełnienie zobowiązań przy współudziale innych agentów. Wśród najważniejszych wymieniane są możliwość planowania oraz kontroli wykonania podzadań. Ze względu na konieczność zachowania autonomii agentów mogą oni prowadzić negocjacje, takie jak licytacje czy aukcje dotyczące wyboru agentów mających wykonać zadania. Mobilność. Poza wymienionymi cechami, w teorii systemów agentowych rozważa się również zagadnienia związane z mobilnością. Może być ona definiowana jako wymiana wiadomości, przemieszczanie nazw kanałów, które mogą być użyte do komunikacji, przemieszczanie kodu lub agentów względem środowisk wykonawczych, w których agenci operują [42, 62].

21 Teza pracy Teza pracy W przedstawionej dysertacji postanowiono wykazać, w jaki sposób możliwym jest stosowanie metod formalnych do zapewnienia poprawności systemów agentowych. Współcześnie, dzięki nasilonemu rozwojowi metod specyfikacji oraz weryfikacji, wykonalnym staje się badanie coraz bardziej złożonych systemów informatycznych. Prace w tym zakresie pozwalają nie tylko na weryfikowanie poprawności protokołów komunikacyjnych czy układów elektronicznych, ale również programów komputerowych. Wśród nich, jako szczególnej klasy, systemów agentowych. Aktualnie prowadzone prace koncentrują się na badaniu ich szczególnych aspektów. Powstające rozwiązania zezwalają na formalną specyfikację i weryfikację aspektów, takich jak środowisko, zasoby, komunikacja, działanie, integralność w ujęciu zasobowym i funkcjonalnym, mobilność. Praca ta podejmuje próbę określenia, które z wymienionych aspektów podlegają weryfikacji, a które wymagają dodatkowych narzędzi które pozwolą na badanie ich poprawności. Interesujące są zarówno te aspekty systemów agentowych, które są najczęściej weryfikowane, jak i te, które obecnie nie podlegają weryfikacji. Ze względu na rozległość dziedzin metod formalnych, w pracy tej największy nacisk położono na metody specyfikacji oraz weryfikacji przez model. Wyróżnienie metody weryfikacji przez model wynika ze znacznego jej rozwoju w ostatnim czasie. Jej w pełni automatyczne działanie pozwala na znajdowanie nietrywialnych błędów w oprogramowaniu, a przez to jest bardzo interesujące z praktycznego punktu widzenia. Stosowanie weryfikacji wiąże się z koniecznością opisu systemu, a więc specyfikacji jego działania oraz własności poprawności, które mają być spełnione. Synteza została uwzględniona w niniejszej pracy w celu zapewnienia kompletności przeglądu metod formalnych oraz przedstawienia możliwości jej zastosowania przy wytwarzaniu systemów agentowych. Jej użycie ma przyczynić się do zmniejszenia całkowitych nakładów pracy, związanych ze stosowaniem metod formalnych poprzez generowanie kodu. Tym samym również do zwiększenia możliwości stosowania metod formalnych. Systemy agentowe mogą być traktowane jako szczególna klasa systemów informatycznych. Wyniki badań dotyczących systemów informatycznych mogą być stosowane do badań systemów agentowych. Wzajemnie, wyniki uzyskane przy zapewnianiu poprawnego działania systemów agentowych - przy badaniu poprawności systemów informatycznych. Ta wzajemność jest dodatkowym czynnikiem, który miał wpływ na podjęcie badań opisanych w niniejszej pracy. Przedstawione powyżej przesłanki doprowadziły do sformułowania tezy niniejszej pracy: Objęcie metodami specyfikacji i weryfikacji szczególnych aspektów systemów agentowych wspomaga wytwarzanie poprawnych systemów tej klasy. Wykazanie tezy będzie polegało na przeprowadzeniu szeregu zadań badawczych i wykonawczych.

22 6 1. Wprowadzenie Pierwszym zadaniem badawczym będzie określenie, w jaki sposób możliwa jest weryfikacja przez model specyficznych aspektów systemów agentowych za pomocą narzędzi, które zbudowano dotychczas. Zadanie to zmierza ku wykazaniu, iż możliwym jest stosowanie weryfikacji przez model do badania poprawności systemów agentowych. W następnym kroku ku wyróżnieniu specyficznych aspektów systemów agentowych, takich jak środowisko, zasoby, komunikacja, współpraca, integralność w ujęciu zasobowym i funkcjonalnym oraz mobilność. Są to aspekty najczęściej wymieniane przy definiowaniu systemów agentowych. Zadanie to ma na celu określenie dziedziny badań i wyszczególnienie, które z aspektów mogą być weryfikowane, a które nie są nią objęte. Następnym zadaniem badawczym będzie przegląd istniejących rozwiązań w zakresie metod formalnych, w tym metod specyfikacji, algorytmów weryfikacji oraz logik temporalnych w celu wyboru najodpowiedniejszych do budowy autorskiego narzędzia umożliwiającego weryfikację aspektów wybranych w poprzednim zadaniu badawczym. Wydaje się, iż narzędzie powinno dostarczać metody specyfikacji oraz weryfikacji współbieżnych algorytmów działania agentów. Szczególnie niewystarczająco objęte weryfikacją są przejawy mobilności w systemach agentowych, dla których współczesne narzędzia proponują badanie jedynie niektórych cech. Badania w tym zakresie wydają się istotne, gdyż współcześnie tworzy się coraz więcej systemów wykorzystujących wymianę wiadomości, mobilność kodu lub środowisk wykonania. Kolejne zadanie badawcze stanowić będzie projekt autorskiego narzędzia pozwalającego weryfikować poprawność wybranych aspektów systemów agentowych. Jego budowa wymaga realizacji kilku zadań pomocniczych: określenia metody specyfikacji, wybrania odpowiednich algorytmów weryfikacji i przedstawienia innych rozwiązań technicznych. W rozprawie tej postuluje się, aby metoda specyfikacji wywodziła się z metod formalnych, tak aby jej semantyka operacyjna była formalnie zdefiniowana. Pozwoli to poprawną analizę własności w ten sposób specyfikowanego systemu. Praktyczna realizacja narzędzia do weryfikacji przez model wymaga implementacji kilku jego modułów. W pierwszej kolejności zostaną opracowane gramatyka języka specyfikacji, metoda weryfikacji syntaktyki oraz poprawności semantycznej systemu. W następnym kroku zostanie opisane, jak interpretować wykonanie systemu oraz reprezentować jego stan. Przedstawienia wymaga również algorytm konstrukcji podlegającej weryfikacji struktury Krippkego. Kolejnym poruszonym zagadnieniem są algorytmy weryfikacji oraz optymalizacji, które pozwalają na zmniejszenie przestrzeni stanów. Praca wskazuje, jakie algorytmy weryfikacji mogą być stosowane dla wybranej metody specyfikacji oraz metody reprezentacji struktury Krippkego. W celu pokazania możliwości specyfikacji systemów agentowych w proponowanym narzędziu, następnym zadaniem badawczym będzie przedstawienie przykładów specyfikacji metod synchronizacji procesów, działania, mobilności, protokołów komunikacyjnych oraz możliwości weryfikacji systemów agentowych zrealizowanych w oparciu o bibliotekę JADE. Ponadto, w celu demonstracji

23 Zawartość dysertacji 7 przydatności proponowanego narzędzia, zostaną zaprezentowane przykłady weryfikacji wybranych systemów. Aby zapewnić kompletność spojrzenia na systemy agentowe z perspektywy metod formalnych, w pracy tej zostanie wskazana możliwość zastosowania do systemów agentowych metody syntezy oprogramowania. Wyniki uzyskane w tym zadaniu badawczym mogą być przydatne w dalszej przyszłości przy inicjowaniu prac w tym zakresie. Ostatnim zadaniem badawczym będzie wyciągnięcie wniosków i podsumowanie przeprowadzonych prac badawczych. 1.4 Zawartość dysertacji Praca składa się z siedmiu rozdziałów oraz czterech dodatków. Rozpoczyna się niniejszym wprowadzeniem, które przedstawia ogólnie jej zakres, tezę wraz z komentarzem a także niniejszy przewodnik. Kolejną część stanowi studium możliwości weryfikacji aspektów systemów agentowych przy pomocy istniejących narzędzi do weryfikacji przez model. Rozdział ten zawiera również krótką prezentację opisywanych w pracy narzędzi. Dodatkowo w rozdziale umieszczono przegląd współczesnych osiągnięć teoretycznych, których opracowanie jest niezbędne przy projekcie narzędzia do weryfikacji przez model. Są to opisy metod specyfikacji własności poprawności, ze szczególnym uwzględnieniem logik temporalnych, oraz przegląd współczesnych struktur danych i algorytmów używanych przy weryfikacji, optymalizacji oraz generowaniu kontrprzykładu. Został również umieszczony opis metod specyfikacji systemów. Celem tego rozdziału jest wyszczególnienie obszarów obecnie badanych oraz tych, które wymagają dalszych prac. Rozdział kończy się przedstawieniem uzasadnienia wyboru algebry join-calculus w proponowanym w dysertacji narzędziu. Rozdział 3 prezentuje autorski projekt narzędzia do weryfikacji, które ma umożliwić badania działania systemów agentowych wraz z aspektem mobilności. W ramach pracy doktorskiej zostały zaimplementowane moduły opisywanego rozwiązania. Następna część (rozdział 4) opisuje przykłady specyfikacji systemów, które mogą podlegać weryfikacji przy pomocy proponowanego narzędzia. Przykłady i rezultaty działania zaprojektowanego i zaimplementowanego narzędzia zostały ujęte w rozdziale 5. Wstępne wyniki badań dotyczące syntezy oprogramowania ze specyfikacji są umieszczone w rozdziale 6. Ostatnią częścią pracy jest podsumowanie, w którym przedstawiono osiągnięte wyniki oraz zakreślono dalsze kierunki badań. W pracy zamieszczono również cztery dodatki. Dodatek A przedstawia przykłady specyfikacji metod synchronizacji oraz protokołów w środowisku rozproszonym.

24 8 1. Wprowadzenie Jest on rozszerzeniem rozdziału 4. Kolejny (dodatek B) opisuje elementy implementacji zrealizowanych modułów narzędzia. Stanowi on opis technicznej implementacji projektu przedstawionego w rozdziale 3. Dodatek C jest krótkim przewodnikiem po instalacji oraz zawartości dostarczonego wraz z pracą oprogramowania. Wreszcie dodatek D prezentuje gramatykę języka specyfikacji opisywanego w pracy narzędzia.

25 R O Z D Z I A Ł 2 Weryfikacja aspektów systemów agentowych Czynnością, która musi poprzedzić realizację narzędzia do weryfikacji systemów agentowych, jest analiza osiągniętych rezultatów teoretycznych oraz istniejących rozwiązań praktycznych. Zestawienie to ma na celu określenie tych aspektów systemów agentowych, które można obecnie weryfikować jak i tych, które obecnie nie są objęte weryfikacją przez model. Interesującym jest wyszczególnienie zarówno najczęściej, jak i najrzadziej weryfikowanych aspektów. Zaproponowanie rozwiązania umożliwiającego weryfikację powszechnie badanych aspektów stanowi o jego potencjalnym szerokim zastosowaniu. Z kolei weryfikacja aspektów dotychczas nie podlegających weryfikacji, umożliwia badanie poprawności nowej klasy systemów agentowych i zarazem świadczy o jego innowacyjności. Niezbędnym jest również przegląd algorytmów i struktur danych pozwalający na wybranie tych najbardziej odpowiednich do realizacji praktycznej narzędzia. Pozwala on również na określenie spodziewanych rezultatów i potencjalnych możliwości narzędzia. W celu usystematyzowania przeglądu wyszczególniono kilka zagadnień dotyczących metod specyfikacji i weryfikacji systemów agentowych, które są zawarte w kolejnych sekcjach poniższego rozdziału. Pierwszym poruszanym zagadnieniem jest przedstawienie samej metody weryfikacji przez model wraz z umotywowaniem, iż metoda ta może być stosowana do weryfikacji systemów agentowych. Kolejnym rozpatrywanym zagadnieniem jest przedstawienie aspektów systemów agentowych, które mogą być weryfikowane przy pomocy dostępnych narzędzi. W sekcji zawierającej opis wymienianych aspektów systemów agentowych znajdują się odnośniki do nazw narzędzi oraz logik temporalnych, których dokładniejsze przedstawienie jest zamieszczone w kolejnych podrozdziałach. Oprócz rozwiązań praktycznych przedstawiono przegląd logik temporalnych, które służą do formułowania reguł poprawności. Kolejnym zagadnieniem jest opracowanie współcześnie stosowanych algorytmów i struktur danych służących do reprezentacji oraz optymalizacji struktury Krippkego. Informacje te służą 9

26 10 2. Weryfikacja aspektów systemów agentowych jako podwalina przy projekcie oraz implementacji rozwijanego w niniejszej pracy narzędzia do weryfikacji. Poruszanym w następnej części zagadnieniem jest przegląd formalnych metod specyfikacji, które mają służyć do opisu systemów agentowych, jakie proponuje się w tej dysertacji. Ostatnia część tego rozdziału syntetyzuje informacje o możliwości weryfikacji aspektów systemów agentowych. Ponadto uzasadniono wybór algebry join-calculus do specyfikacji aspektów systemów agentowych, których nie da się badać przy pomocy istniejących narzędzi. 2.1 Weryfikacja przez model Weryfikacja przez model [34,57,85,100] jest jedną z metod formalnych służących do sprawdzania poprawności skończonych systemów współbieżnych. W porównaniu z tradycyjnymi technikami, takimi jak testowanie rezultatu działania algorytmu dla zadanych parametrów początkowych, umożliwia rozpatrzenie wszystkich możliwych przypadków wykonania procesów składowych. W ten sposób metoda ta analizuje możliwe wykonania systemu współbieżnego, a nie tylko te arbitralnie wybrane do testów. Co więcej, w przypadku algorytmów współbieżnych wynik ich działania może zależeć od kolejności wykonania instrukcji, która nie jest bezpośrednio określona. W przypadku systemów reaktywnych, a więc takich, których wykonanie nigdy się nie kończy, tradycyjne metody testowania mają dodatkowo ograniczone użycie. Z oczywistych względów niemożliwe jest proste sprawdzenie odpowiedzi systemu na zadane parametry początkowe. Weryfikacja poprzez model nie posiada takiego ograniczenia. Dana reguła poprawności jest sprawdzana dla wszystkich możliwych wykonań, pomimo iż działanie systemu nigdy się nie kończy. Jest to niewątpliwą zaletą opisywanej tu metody. Z chwilą, gdy reguła poprawności nie jest spełniona dla danej sekwencji wykonań procesów, podawany jest kontrprzykład pokazujący kolejne instrukcje procesów prowadzące do tego niepoprawnego stanu. Rozpatrywanie wszystkich wykonań systemu współbieżnego, będące zaletą tej metody, jest również jej największym mankamentem. Prowadzi do wykładniczego wzrostu możliwych stanów systemu, które muszą być rozpatrzone wraz ze zwiększającą się liczbą procesów. Przyrost ten zwany jest eksplozją stanów. W celu jej ograniczenia stosuje się optymalizacje dotyczące reprezentacji stanów [57, 71], jak i pomijania pewnych stanów nieistotnych ze względu na rozpatrywaną regułę poprawności przypadków [39, 45, 72]. Inne techniki wprowadzają ograniczenie co do głębokości przeszukiwań. Przykładem takiej techniki może być weryfikacja przez model z ograniczeniem [29] lub wprowadzenie założeń co do kolejności wykonywania procesów. Zastosowanie weryfikacji poprzez model składa się z trzech etapów. Pierwszym z nich jest specyfikacja modelu. W celu ograniczenia przestrzeni stanów pomija się pewne nieistotne ze względu na weryfikowaną własność szczegóły, prowadząc do rozpatrzenia pewnego uproszczenia systemu. Kolejnym krokiem jest specyfikacja

27 Weryfikacja przez model 11 reguł poprawności. Ważnym jej elementem jest kompletność specyfikacji, która powinna obejmować wszystkie własności, jakie powinny zostać sprawdzone. Ostatnim krokiem jest sprawdzenie modelu ze względu na reguły poprawności za pomocą narzędzia do automatycznej weryfikacji. W wyniku uruchomienia narzędzia może zostać wygenerowany kontrprzykład. W takim razie należy poprawić model systemu w celu usunięcia błędu. Działanie narzędzia może zakończyć się niepoprawnie w wyniku wyczerpania dostępnej pamięci wynikającej ze zbyt dużej ilości stanów. W takim przypadku należy dokonać zmniejszenia modelu poprzez pominięcie pewnych nieistotnych szczegółów lub spróbować zastosować inne parametry narzędzia do weryfikacji, takie jak dotyczące stosowanych optymalizacji przestrzeni stanów. Specyfikacja modelu oraz reguł poprawności mogą zostać dokonane za pomocą automatów stanowych lub logik temporalnych. Najczęściej stosowanym rozwiązaniem jest przedstawienie modelu przy pomocy automatów skończonych wyrażonych w pseudojęzykach programowania [25, 51] czy sieciach Petriego [76]. Reguły poprawności są wyrażane przy pomocy logik temporalnych. Rozwiązanie to zwane jest temporalną weryfikacją przez model (ang. temporal model checking). Drugą możliwością jest specyfikowanie modelu oraz jego własności za pomocą automatów stanowych skończonych lub nieskończonych. Rozwiązanie to jest stosowane przy implementacji narzędzi do weryfikacji, gdzie formuły logiki temporalnej zamieniane są na automaty nieskończone (automaty Büciego) [34]. Cykl akceptujący automatu świadczy o spełnieniu formuły. Kolejną grupą są narzędzia pozwalające na specyfikację zarówno modelu systemu, jak i jego własności przy pomocy logik temporalnych [19]. Wreszcie ostatnią z możliwości jest specyfikacja systemu przy pomocy logik temporalnych, a jego własności przy użyciu automatów stanowych. Rozwiązanie to nosi nazwę odwróconej weryfikacji przez model (ang. reversed model checking). Chociaż teoretycznie możliwe, ze względów praktycznych, takich jak łatwość specyfikacji badanego systemu, nie jest spotykane w literaturze. Weryfikacja względem reguł poprawności jest przeprowadzana dla wszystkich stanów systemu, w jakich może się on znajdować. Stan systemu jest odzwierciedleniem wartości zmiennych modelu w pewnym momencie czasu. Ulega on zmianie wraz z wykonaniem pewnych akcji (instruckji), prowadząc do kolejnych stanów systemu. Przejście pomiędzy stanami definiuje relację, która również charakteryzuje wykonanie systemu. Graf składający się ze stanów systemu utrwalonych w momencie czasu oraz przejść pomiędzy nimi zwany jest strukturą Krippkego. Dodatkowo wprowadza się funkcję, która dla każdego stanu przypisuje zbiór formuł spełnialnych w danym stanie. Ścieżki grafu odpowiadają możliwym obliczeniom systemu. Pomimo swojej prostoty, sposób ten jest wystarczający do przedstawienia najważniejszych aspektów wykonania systemu i do weryfikacji jego własności.

28 12 2. Weryfikacja aspektów systemów agentowych 2.2 Stosowalność weryfikacji do systemów agentowych Przedstawiony w sekcji 1.2 paradygmat agentowy w bezpośredni sposób nie określa możliwości stosowania weryfikacji przez model do badania poprawności. Można przypuszczać, iż systemy agentowe, podobnie jak inne systemy informatyczne, mogą podlegać weryfikacji, jednak w celu wykazania tej tezy należy przytoczyć definicję agenta oraz systemu agentowego. Praca [31] formalizuje definicję agenta jako następującą n-tkę uporządkowaną. Definicja Agentem Λ nazywamy trójkę: Λ = {A,S, F S A S} A skończony zbiór akcji (działań elementarnych) agenta, S skończony zbiór stanów wewnętrznych agenta, F trójczłonowa relacja określajaca możliwe następstwa stanów i akcji agenta, interpretowana w następujacy sposób: w określonym stanie agent może wykonać akcję (drugi człon relacji), która odpowiednio zaprowadzi go do nowego stanu (trzeci człon relacji). Zachowanie zwiazków przyczynowo-skutkowych wymaga, aby F była taka, że zachodzi (s, a, s 1 ) F (s, a, s 2 ) F s 1 = s 2 Relacja F opisuje możliwe akcje i przejścia do kolejnych stanów. Stan agenta implikuje podzbiór akcji (niepodzielnych) możliwych do wykonania. Wybór i wykonanie którejkolwiek z dopuszczalnych akcji ze zbioru A następuje w wyniku realizacji algorytmu wyboru, w który agent jest wyposażony. Akcja może być wykonywana wielokrotnie. Definicja ta dopuszcza wykonanie kilku akcji w danym stanie s. Działanie agenta jest ciągiem realizowanych akcji, które wynikają z mechanizmu wyboru i odpowiednich stanów wewnętrznych agenta, na które poprzez percepcję mają wpływ inni agenci oraz środowisko. System agentowy jest skończonym zbiorem agentów oraz relacją współdziałania określającą potencjalne możliwości współdziałania agentów w obrębie systemu. Definicja ta określa, iż działanie agenta może zostać określone jako dyskretne. Poszczególne jego stany zmieniają się w wyniku wykonania przez niego akcji. Również działanie systemu agentowego, będącego zbiorem agentów, bedzie dyskretne, gdyż stanem systemu agentowego jest zbiór stanów poszczególnych agentów. Definicja ta umożliwia więc budowę struktury Krippkego odpowiadającej możliwym stanom agentów i zarazem systemu agentowego. Zatem stan struktury Krippkego będzie odpowiadał stanowi systemu agentowego w danej chwili czasu. Przejścia pomiędzy stanami struktury Krippkego będą powstawały w wyniku

29 Weryfikacja aspektów systemów agentowych 13 rozważenia wszystkich akcji, jakie mogą zostać podjęte przez agentów w danych stanie systemu agentowego. Weryfikacja przez model może być stosowana jedynie do struktur Krippkego o skończonych rozmiarach. Definicja agenta oraz systemu agentowego niestety nie rozstrzyga, czy odpowiadająca mu struktura Krippkego będzie miała skończony rozmiar. Skończone działanie systemu agentowego prowadzi do skończonego rozmiaru omawianej struktury. Z kolei nieskończone działanie może powodować zarówno skończony, jak i nieskończony jej rozmiar. Pierwsza ewentualność sprawia, iż możliwa jest weryfikacja systemów, których wykonanie nigdy się nie kończy. Niestety w przypadku nieskończonej struktury Krippkego, nie jest możliwe jej zastosowanie. Dyskretne przedstawienie systemu agentowego, widzianego jako naprzemienny ciąg stanów agentów oraz wykonywanych przez nich akcji, umożliwia zatem stosowanie weryfikacji przez model. Na założeniu tym opierają się wszystkie metody opisane w dalszej części tego rozdziału. Podobne rozumowanie oraz postulaty, aby weryfikacją objąć jedynie systemy agentowe, dla których możliwa jest konstrukcja struktury Krippkego, znajduje się w pracy [103]. 2.3 Weryfikacja aspektów systemów agentowych W niniejszej sekcji przedstawiono aspekty systemów agentowych, które mogą być specyfikowane oraz weryfikowane przy użyciu znanych autorowi narzędzi. Kolejne sekcje przedstawiają możliwe ujęcia zastosowania weryfikacji dla systemów agentowych Aspekt środowiska Agent jest osadzony wewnątrz środowiska, na które ma wpływ. Również środowisko oddziałuje na agenta. Rusell oraz Norvig w publikacji [86] klasyfikują wymienione poniżej własności środowiska. Dostępność. Środowisko dostępne to takie, o którego stanie agenci mogą uzyskać kompletną i dokładną informację. Autorzy [86] wyróżniają również środowisko efektywnie dostępne, o którego stanie agent może pozyskać wystarczająco dokładną informację w celu podjęcia właściwych działań. Przeciwieństwem środowiska dostępnego jest środowisko niedostępne. Dostępność środowiska ma wpływa na stopień skomplikowania implementacji agentów. Im dostępność jest większa, tym łatwiejsza jest konstrukcja agentów, którzy w nim przebywają.

30 14 2. Weryfikacja aspektów systemów agentowych Determinizm. Determinizm środowiska jest rozpatrywany przez skutki, jakie powodują działania agenta. W przypadku, gdy kolejny stan środowiska jest jedynie wynikiem jego poprzedniego stanu oraz akcji podjętych przez agenta, mamy do czynienia ze środowiskiem deterministycznym. Przy określaniu aktualnego stanu takiego środowiska nie występuje niepewność. Jeśli zaś działania agenta niekoniecznie prowadzą do zamierzonej zmiany stanu środowiska, jest ono określane jako niedeterministyczne. Epizodyczność. Epizodem w działaniu agenta jest ustalenie przez niego stanu środowiska oraz podjęcie pewnych akcji. Zmiany, które zachodzą w środowisku, mogą być zatem rozpatrywane jako efekt działań podjętych przez agenta w ramach danego epizodu. W przypadku, gdy aktualny stan środowiska nie zależy od działań podjętych przez agenta w poprzednich epizodach, środowisko takie określane jest jako epizodyczne. W przeciwnym zaś przypadku, gdy działania agentów w ramach kolejnych epizodów mają na siebie wpływ, środowisko takie klasyfikowane jest jako nieepizodyczne. Rozróżnienie to pozwala na stwierdzenie, iż w przypadku środowisk epizodycznych przebywający w nich agenci nie muszą prowadzić rozumowania w celu określenia stanów środowiska w kolejnych epizodach. Dynamiczność. Środowisko może zmieniać swój stan podczas procesu podejmowania akcji przez agenta. W zależności czy w tym czasie zachodzą jego zmiany, wyróżniane jest środowisko statyczne lub dynamiczne. Skończoność. W zależności od ilości stanów oraz działań, jakie mogą być podejmowane w środowisku, można je sklasyfikować jako skończone lub nieskończone. Środowisko jest skończone, jeśli istnieje skończona liczba akcji jakie mogą być wykonane na środowisku oraz stanów, w jakich może się ono znaleźć. W przeciwnym przypadku środowisko jest określane jako nieskończone. W zależności od kombinacji wyżej wymienionych cech, środowisko będzie mniej lub bardziej skomplikowane. Najbardziej skomplikowanymi będą środowiska niedostępne, niedeterministyczne, nieepizodyczne, dynamiczne oraz nieskończone. Ze względów praktycznych weryfikacja bardziej skomplikowanych środowisk prowadzi do zwiększenia liczby stanów, które muszą zostać zweryfikowane. W rezultacie powoduje to zmniejszenie rozmiarów systemów, jakie mogą być weryfikowane w praktyce. Narzędzia do weryfikacji oferują możliwość zdefiniowania środowiska. Narzędzie MCK (2.4.3) definiuje środowisko jako zbiór zmiennych, które mogą być modyfikowane przez agentów. Agenci mają dostęp do wybranego podzbioru zmiennych, których wartość mogą odczytywać lub zapisywać. W ten sposób określa się ograniczoną do niego dostępność. Przypisanie wartości do zmiennych jest deterministyczne i określone poprzez protokół, jakim posługują się agenci.

31 Weryfikacja aspektów systemów agentowych 15 Narzędzie MABLE (2.4.6) poprzez instrukcję do umożliwia wykonanie akcji, która modyfikuje zmienne zewnętrzne. Pozostałe narzędzia umożliwiają zdefiniowanie środowiska jako specjalnego agenta. W tym przypadku osadzenie w środowisku jest specyfikowane jako wymiana komunikatów z takim agentem. Rozwiązanie to jest stosowane w narzędziu MCMAS (2.4.5). W ten sposób możliwe jest wyspecyfikowanie środowisk o innych cechach niż dostępność i determinizm. Na przykład możliwe jest przedstawienie niedeterminizmu czy dynamiczności. Ujęcie problemu specyfikacji środowiska w ten sposób sprawia, iż możliwe jest jego przedstawienie we wszystkich narzędziach służących do weryfikacji Aspekt zasobów Jednym z możliwych rozszerzeń modelu systemów agentowych jest wprowadzenie pojęcia zasobów. Dzięki takiej modyfikacji staje się możliwym rozważanie systemów, w których następuje produkcja oraz konsumpcja pewnych dóbr. Dobra te mogą pochodzić spoza systemu, być produkowane lub konsumowane przez agentów. Dodatkowo zasoby te mogą być wymieniane pomiędzy agentami, być koniecznymi do wykonania pewnych akcji, bądź umieszczane lub usuwane ze środowiska. Spektrum możliwości oraz podejść zależy od przyjętego konkretnego modelu. W najogólniejszym ujęciu zasoby mogą być wprowadzone dla agentów, systemu agentowego oraz otaczającego ich środowiska. Celem takiego rozszerzenia jest ujęcie zjawisk, jakie mogą się pojawić w systemie agentowym w odniesieniu do istnienia lub braku pewnych zasobów. Możliwe jest formalne rozszerzenie definicji agenta oraz systemu agentowego o pojęcie zasobów. Praca [31] wprowadza taką definicję (definicja 2.3.1). Definicja Agentem z zasobami Λ R, nazywamy rozszerzenie agenta Λ, majace postać: Λ R = {Λ, R Λ, T Λ A R Λ R} R Λ skończony zbiór zasobów, zwiazanych z akcjami agenta T Λ trójczłonowa relacja, określajaca dla akcji agenta, które zasoby (drugi człon relacji) i jakiej ilości (R - zbiór liczb rzeczywistych) sa konsumowane (wartości ujemne) lub produkowane (wartości dodatnie) w wyniku jej realizacji W przypadku programowych systemów agentowych, zasoby są reprezentowane przy pomocy zmiennych binarnych, całkowitych lub rzeczywistych. Dzięki takiemu ujęciu możliwe jest wyprowadzenie równań obrazujących bilans zasobów dla działania agenta oraz systemów agentowych. Wzory te określają produkcję oraz

Praktyczne metody weryfikacji

Praktyczne metody weryfikacji Praktyczne metody weryfikacji Sławomir Lasota Uniwersytet Warszawski semestr zimowy 06/07. p.1/?? I. Motywacja czyli po co?. p.2/?? czerwiec 1996. p.3/?? nieobsłużony wyjatek szacunkowy koszt: 600 mln

Bardziej szczegółowo

Systemy Agentowe główne cechy. Mariusz.Matuszek WETI PG

Systemy Agentowe główne cechy. Mariusz.Matuszek WETI PG Systemy Agentowe główne cechy Mariusz.Matuszek WETI PG Definicja agenta Wiele definicji, w zależności od rozpatrywanego zakresu zastosowań. Popularna definicja: Jednostka obliczeniowa (program, robot),

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej. Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-

Bardziej szczegółowo

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW WYDZIAŁ KIERUNEK z obszaru nauk POZIOM KSZTAŁCENIA FORMA STUDIÓW PROFIL JĘZYK STUDIÓW Podstawowych Problemów Techniki Informatyka technicznych 6 poziom, studia inżynierskie

Bardziej szczegółowo

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

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017 Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język

Bardziej szczegółowo

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych Grupa efektów kierunkowych: Matematyka stosowana I stopnia - profil praktyczny (od 17 października 2014) Matematyka Stosowana I stopień spec. Matematyka nowoczesnych technologii stacjonarne 2015/2016Z

Bardziej szczegółowo

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA Symbol Efekty kształcenia dla kierunku studiów INFORMATYKA, specjalność: 1) Sieciowe systemy informatyczne. 2) Bazy danych Absolwent studiów I stopnia kierunku Informatyka WIEDZA Ma wiedzę z matematyki

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami. Kierunkowy efekt kształcenia - opis

1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami. Kierunkowy efekt kształcenia - opis EFEKTY KSZTAŁCENIA (INFORMATYKA I ST) 1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami Kierunkowy efekt kształcenia - symbol Kierunkowy efekt kształcenia - opis Odniesienie

Bardziej szczegółowo

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol KIERUNKOWE EFEKTY KSZTAŁCENIA Wydział Informatyki i Zarządzania Kierunek studiów INFORMATYKA (INF) Stopień studiów - pierwszy Profil studiów - ogólnoakademicki Projekt v1.0 z 18.02.2015 Odniesienie do

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Podniesienie poziomu wiedzy studentów z inżynierii oprogramowania w zakresie C.

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW33/01 KARTA PRZEDMIOTU Nazwa w języku polskim : INŻYNIERIA OPROGRAMOWANIA Nazwa w języku angielskim: SOFTWARE ENGINEERING Kierunek studiów (jeśli

Bardziej szczegółowo

miejsca przejścia, łuki i żetony

miejsca przejścia, łuki i żetony Sieci Petriego Sieć Petriego Formalny model procesów umożliwiający ich weryfikację Główne konstruktory: miejsca, przejścia, łuki i żetony Opis graficzny i matematyczny Formalna semantyka umożliwia pogłębioną

Bardziej szczegółowo

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1. Tryby komunikacji między procesami w standardzie Message Passing Interface 2. HTML DOM i XHTML cel i charakterystyka 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Metoda Tablic Semantycznych

Metoda Tablic Semantycznych Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA Nazwa kierunku studiów: Informatyczne Techniki Zarządzania Ścieżka kształcenia: IT Project Manager, Administrator Bezpieczeństwa

Bardziej szczegółowo

Podsumowanie wyników ankiety

Podsumowanie wyników ankiety SPRAWOZDANIE Kierunkowego Zespołu ds. Programów Kształcenia dla kierunku Informatyka dotyczące ankiet samooceny osiągnięcia przez absolwentów kierunkowych efektów kształcenia po ukończeniu studiów w roku

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Sieci Petriego. Sieć Petriego

Sieci Petriego. Sieć Petriego Sieci Petriego Sieć Petriego Formalny model procesów umożliwiający ich weryfikację Główne konstruktory: miejsca, przejścia, łuki i żetony Opis graficzny i matematyczny Formalna semantyka umożliwia pogłębioną

Bardziej szczegółowo

UCHWAŁA NR 71/2017 SENATU UNIWERSYTETU WROCŁAWSKIEGO z dnia 31 maja 2017 r.

UCHWAŁA NR 71/2017 SENATU UNIWERSYTETU WROCŁAWSKIEGO z dnia 31 maja 2017 r. UCHWAŁA NR 71/2017 SENATU UNIWERSYTETU WROCŁAWSKIEGO z dnia 31 maja 2017 r. zmieniająca uchwałę w sprawie efektów kształcenia dla kierunków studiów prowadzonych w Uniwersytecie Wrocławskim Na podstawie

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI dr inż. Grażyna Hołodnik-Janczura W8/K4 CO SIĘ MOŻE DZIAĆ PODCZAS WYKONYWANIA BIZNESOWEJ FUNKCJI

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

Bardziej szczegółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy Informatyki. Algorytmy i ich poprawność Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania

Bardziej szczegółowo

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań TABELA ODNIESIEŃ EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA PROGRAMU KSZTAŁCENIA DO EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA OBSZARU KSZTAŁCENIA I PROFILU STUDIÓW PROGRAM KSZTAŁCENIA: POZIOM KSZTAŁCENIA: PROFIL KSZTAŁCENIA:

Bardziej szczegółowo

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Grupy pytań na egzamin inżynierski na kierunku Informatyka Grupy pytań na egzamin inżynierski na kierunku Informatyka Dla studentów studiów dziennych Należy wybrać dwie grupy pytań. Na egzaminie zadane zostaną 3 pytania, każde z innego przedmiotu, pochodzącego

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

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści wspólnych z kierunkiem Matematyka, moduł kierunku obowiązkowy Rodzaj zajęć: wykład, ćwiczenia I KARTA PRZEDMIOTU CEL

Bardziej szczegółowo

Proces badawczy schemat i zasady realizacji

Proces badawczy schemat i zasady realizacji Proces badawczy schemat i zasady realizacji Agata Górny Zaoczne Studia Doktoranckie z Ekonomii Warszawa, 23 października 2016 Metodologia i metoda naukowa 1 Metodologia Metodologia nauka o metodach nauki

Bardziej szczegółowo

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa Jacek Skorupski pok. 251 tel. 234-7339 jsk@wt.pw.edu.pl http://skorupski.waw.pl/mmt prezentacje ogłoszenia konsultacje: poniedziałek 16 15-18, sobota zjazdowa 9 40-10 25 Udział w zajęciach Kontrola wyników

Bardziej szczegółowo

Podstawy metodologiczne symulacji

Podstawy metodologiczne symulacji Sławomir Kulesza kulesza@matman.uwm.edu.pl Symulacje komputerowe (05) Podstawy metodologiczne symulacji Wykład dla studentów Informatyki Ostatnia zmiana: 26 marca 2015 (ver. 4.1) Spirala symulacji optymistycznie

Bardziej szczegółowo

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wykład Ćwiczenia Laboratorium Projekt Seminarium WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1.Tryby komunikacji między procesami w standardzie Message Passing Interface. 2. HTML DOM i XHTML cel i charakterystyka. 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Recenzja rozprawy doktorskiej mgr Bartosza Rymkiewicza pt. Społeczna odpowiedzialność biznesu a dokonania przedsiębiorstwa

Recenzja rozprawy doktorskiej mgr Bartosza Rymkiewicza pt. Społeczna odpowiedzialność biznesu a dokonania przedsiębiorstwa Prof. dr hab. Edward Nowak Uniwersytet Ekonomiczny we Wrocławiu Katedra Rachunku Kosztów, Rachunkowości Zarządczej i Controllingu Recenzja rozprawy doktorskiej mgr Bartosza Rymkiewicza pt. Społeczna odpowiedzialność

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE EFEKTY KSZTAŁCENIA WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA I STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Załącznik 2. Symbol efektu obszarowego. Kierunkowe efekty uczenia się (wiedza, umiejętności, kompetencje) dla całego programu kształcenia

Załącznik 2. Symbol efektu obszarowego. Kierunkowe efekty uczenia się (wiedza, umiejętności, kompetencje) dla całego programu kształcenia Załącznik 2 Opis kierunkowych efektów kształcenia w odniesieniu do efektów w obszarze kształcenia nauk ścisłych profil ogólnoakademicki Kierunek informatyka, II stopień. Oznaczenia efektów obszarowych

Bardziej szczegółowo

M T E O T D O ZI Z E E A LG L O G R O Y R TM

M T E O T D O ZI Z E E A LG L O G R O Y R TM O ALGORYTMACH I METODZIE ALGORYTMICZNEJ Czym jest algorytm? Czym jest algorytm? przepis schemat zestaw reguł [ ] program ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające

Bardziej szczegółowo

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami Politechnika Gdańska Wydział Zarządzania i Ekonomii Katedra Zastosowań Informatyki w Zarządzaniu Zakład Zarządzania Technologiami Informatycznymi Model referencyjny Open Source dla dr hab. inż. Cezary

Bardziej szczegółowo

EFEKTY UCZENIA SIĘ DLA KIERUNKU INŻYNIERIA DANYCH W ODNIESIENIU DO EFEKTÓW UCZENIA SIĘ PRK POZIOM 6

EFEKTY UCZENIA SIĘ DLA KIERUNKU INŻYNIERIA DANYCH W ODNIESIENIU DO EFEKTÓW UCZENIA SIĘ PRK POZIOM 6 EFEKTY UCZENIA SIĘ DLA KIERUNKU INŻYNIERIA DANYCH W ODNIESIENIU DO EFEKTÓW UCZENIA SIĘ PRK POZIOM 6 studia pierwszego stopnia o profilu ogólnoakademickim Symbol K_W01 Po ukończeniu studiów pierwszego stopnia

Bardziej szczegółowo

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM SZKOŁA GŁÓWNA HANDLOWA w Warszawie STUDIUM MAGISTERSKIE Kierunek: Metody ilościowe w ekonomii i systemy informacyjne Karol Walędzik Nr albumu: 26353 Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Kierunek: Informatyka Modeling and analysis of computer systems Forma studiów: Stacjonarne Rodzaj przedmiotu: obowiązkowy w ramach specjalności:

Bardziej szczegółowo

Metodyka projektowania komputerowych systemów sterowania

Metodyka projektowania komputerowych systemów sterowania Metodyka projektowania komputerowych systemów sterowania Andrzej URBANIAK Metodyka projektowania KSS (1) 1 Projektowanie KSS Analiza wymagań Opracowanie sprzętu Projektowanie systemu Opracowanie oprogramowania

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

Bardziej szczegółowo

Kierunkowe efekty kształcenia (wiedza, umiejętności, kompetencje) Kierunek Informatyka

Kierunkowe efekty kształcenia (wiedza, umiejętności, kompetencje) Kierunek Informatyka Załącznik 2 Opis kierunkowych efektów kształcenia w odniesieniu do efektów w obszarze kształcenia nauk ścisłych profil ogólnoakademicki Kierunek informatyka, I stopień tryb stacjonarny. Oznaczenia efektów

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Proces badawczy schemat i zasady realizacji

Proces badawczy schemat i zasady realizacji Proces badawczy schemat i zasady realizacji Agata Górny Zaoczne Studia Doktoranckie z Ekonomii Warszawa, 14 grudnia 2014 Metodologia i metoda badawcza Metodologia Zadania metodologii Metodologia nauka

Bardziej szczegółowo

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki Jednostka prowadząca kierunek studiów Nazwa kierunku studiów Specjalności Obszar kształcenia Profil kształcenia Poziom kształcenia Forma kształcenia Tytuł zawodowy uzyskiwany przez absolwenta Dziedziny

Bardziej szczegółowo

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE Efekty uczenia się Kierunek Informatyka Studia pierwszego stopnia Profil praktyczny Umiejscowienie kierunku informatyka w obszarze kształcenia: Obszar wiedzy: nauki

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Wykład 2. Poprawność algorytmów

Wykład 2. Poprawność algorytmów Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm

Bardziej szczegółowo

Efekt kształcenia. Wiedza

Efekt kształcenia. Wiedza Efekty dla studiów drugiego stopnia profil ogólnoakademicki na kierunku Informatyka na specjalności Przetwarzanie i analiza danych, na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie oznacza

Bardziej szczegółowo

PROGRAM KSZTAŁCENIA NA STUDIACH III STOPNIA Informatyka (nazwa kierunku)

PROGRAM KSZTAŁCENIA NA STUDIACH III STOPNIA Informatyka (nazwa kierunku) PROGRAM KSZTAŁCENIA NA STUDIACH III STOPNIA Informatyka (nazwa kierunku) 1. OPIS ZAKŁADANYCH EFEKTÓW KSZTAŁCENIA: 1) Tabela odniesień kierunkowych efektów kształcenia (EKK) do obszarowych efektów kształcenia

Bardziej szczegółowo

Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu

Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu Załącznik nr 1 do Uchwały nr 9/12 Rady Instytutu Inżynierii Technicznej PWSTE w Jarosławiu z dnia 30 marca 2012r Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu EFEKTY KSZTAŁCENIA DLA KIERUNKU

Bardziej szczegółowo

Załącznik 2. Symbol efektu obszarowego. Kierunkowe efekty uczenia się (wiedza, umiejętności, kompetencje) dla całego programu kształcenia

Załącznik 2. Symbol efektu obszarowego. Kierunkowe efekty uczenia się (wiedza, umiejętności, kompetencje) dla całego programu kształcenia Załącznik 2 Opis kierunkowych efektów kształcenia w odniesieniu do efektów w obszarze kształcenia nauk ścisłych profil ogólnoakademicki Kierunek informatyka, II stopień, tryb niestacjonarny. Oznaczenia

Bardziej szczegółowo

Tworzenie języków specyfikacji dla zagadnień numerycznych

Tworzenie języków specyfikacji dla zagadnień numerycznych Tworzenie języków specyfikacji dla zagadnień numerycznych prof. dr hab. inż. Norbert Sczygiol dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 11 września

Bardziej szczegółowo

JAKIEGO RODZAJU NAUKĄ JEST

JAKIEGO RODZAJU NAUKĄ JEST JAKIEGO RODZAJU NAUKĄ JEST INFORMATYKA? Computer Science czy Informatyka? Computer Science czy Informatyka? RACZEJ COMPUTER SCIENCE bo: dziedzina ta zaistniała na dobre wraz z wynalezieniem komputerów

Bardziej szczegółowo

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz Wykład 8 Testowanie w JEE 5.0 (1) Autor: 1. Rola testowania w tworzeniu oprogramowania Kluczową rolę w powstawaniu oprogramowania stanowi proces usuwania błędów w kolejnych fazach rozwoju oprogramowania

Bardziej szczegółowo

Pojęcie bazy danych. Funkcje i możliwości.

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU OPIS PRZEDMIOTU Nazwa przedmiotu Systemy rozproszone Kod przedmiotu Wydział Wydział Matematyki, Fizyki i Techniki Instytut/Katedra Instytut Mechaniki i Informatyki Stosowanej Kierunek Informatyka Specjalizacja/specjalność

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga

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

OGÓLNOAKADEMICKI. Kierunek studiów ASTRONOMIA o profilu ogólnoakademickim należy do obszaru kształcenia w zakresie nauk ścisłych.

OGÓLNOAKADEMICKI. Kierunek studiów ASTRONOMIA o profilu ogólnoakademickim należy do obszaru kształcenia w zakresie nauk ścisłych. Załącznik do uchwały nr 243 Senatu Uniwersytetu Zielonogórskiego z dnia 28 lutego 2018 r. I. EFEKTY KSZTAŁCENIA 1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami EFEKTY KSZTAŁCENIA

Bardziej szczegółowo

Systemy zdarzeniowe - opis przedmiotu

Systemy zdarzeniowe - opis przedmiotu Systemy zdarzeniowe - opis przedmiotu Informacje ogólne Nazwa przedmiotu Systemy zdarzeniowe Kod przedmiotu 11.9-WE-AiRD-SD Wydział Kierunek Wydział Informatyki, Elektrotechniki i Automatyki Automatyka

Bardziej szczegółowo

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe Modelowanie i Analiza Systemów Informatycznych Logika Temporalna i Automaty Czasowe (7) Automaty czasowe NuSMV Paweł Głuchowski, Politechnika Wrocławska wersja 2.3 Treść wykładu NuSMV NuSMV symboliczny

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNKOWE EFEKTY KSZTAŁCENIA Wydział: Matematyki Kierunek studiów: Matematyka i Statystyka (MiS) Studia w j. polskim Stopień studiów: Pierwszy (1) Profil: Ogólnoakademicki (A) Umiejscowienie kierunku

Bardziej szczegółowo

Eksploracja danych. KLASYFIKACJA I REGRESJA cz. 2. Wojciech Waloszek. Teresa Zawadzka.

Eksploracja danych. KLASYFIKACJA I REGRESJA cz. 2. Wojciech Waloszek. Teresa Zawadzka. Eksploracja danych KLASYFIKACJA I REGRESJA cz. 2 Wojciech Waloszek wowal@eti.pg.gda.pl Teresa Zawadzka tegra@eti.pg.gda.pl Katedra Inżynierii Oprogramowania Wydział Elektroniki, Telekomunikacji i Informatyki

Bardziej szczegółowo

Informatyka, studia I stopnia (profil ogólnoakademicki) - wersja

Informatyka, studia I stopnia (profil ogólnoakademicki) - wersja Informatyka, studia I stopnia (profil ogólnoakademicki) - wersja 120327 Obszar kształcenia: nauki techniczne. Dziedzina: nauki techniczne. Dyscyplina: Informatyka. MNiSW WI PP Symb. Efekty kształcenia

Bardziej szczegółowo

O ISTOTNYCH OGRANICZENIACH METODY

O ISTOTNYCH OGRANICZENIACH METODY O ISTOTNYCH OGRANICZENIACH METODY ALGORYTMICZNEJ Dwa pojęcia algorytmu (w informatyce) W sensie wąskim Algorytmem nazywa się każdy ogólny schemat procedury możliwej do wykonania przez uniwersalną maszynę

Bardziej szczegółowo

Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka

Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Test kwalifikacyjny obejmuje weryfikację efektów kształcenia oznaczonych kolorem szarym, efektów: K_W4 (!), K_W11-12, K_W15-16,

Bardziej szczegółowo

WIEDZA T1P_W06. K_W01 ma podstawową wiedzę o zarządzaniu jako nauce, jej miejscu w systemie nauk i relacjach do innych nauk;

WIEDZA T1P_W06. K_W01 ma podstawową wiedzę o zarządzaniu jako nauce, jej miejscu w systemie nauk i relacjach do innych nauk; SYMBOL Efekty kształcenia dla kierunku studiów: inżynieria zarządzania; Po ukończeniu studiów pierwszego stopnia na kierunku inżynieria zarządzania, absolwent: Odniesienie do obszarowych efektów kształcenia

Bardziej szczegółowo

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 1) Oprogramowanie to: 2) Produkty oprogramowania w inżynierii oprogramowania można podzielić na: 3) W procesie wytwarzania oprogramowania

Bardziej szczegółowo

Kierunek Zarządzanie II stopnia Szczegółowe efekty kształcenia i ich odniesienie do opisu efektów kształcenia dla obszaru nauk społecznych

Kierunek Zarządzanie II stopnia Szczegółowe efekty kształcenia i ich odniesienie do opisu efektów kształcenia dla obszaru nauk społecznych Kierunek Zarządzanie II stopnia Szczegółowe efekty kształcenia i ich odniesienie do opisu efektów kształcenia dla obszaru nauk społecznych Objaśnienie oznaczeń: Z efekty kierunkowe dla Zarządzania W wiedza

Bardziej szczegółowo

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura

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

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera Autorzy scenariusza: 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

Bardziej szczegółowo

[1] [2] [3] [4] [5] [6] Wiedza

[1] [2] [3] [4] [5] [6] Wiedza 3) Efekty dla studiów drugiego stopnia - profil ogólnoakademicki na kierunku Informatyka w języku angielskim (Computer Science) na specjalności Sztuczna inteligencja (Artificial Intelligence) na Wydziale

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE EFEKTY KSZTAŁCENIA WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA I STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina

Bardziej szczegółowo

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia Nazwa przedmiotu: Kierunek: Rodzaj przedmiotu: obowiązkowy dla wszystkich specjalności Rodzaj zajęć: wykład, ćwiczenia Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Algorytmy i programowanie Algorithms and Programming Kierunek: Zarządzanie i Inżynieria Produkcji Rodzaj przedmiotu: kierunkowy Poziom studiów: studia I stopnia forma studiów: studia

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Tabela odniesień efektów kierunkowych do efektów obszarowych (tabele odniesień efektów kształcenia)

Tabela odniesień efektów kierunkowych do efektów obszarowych (tabele odniesień efektów kształcenia) Załącznik nr 7 do uchwały nr 514 Senatu Uniwersytetu Zielonogórskiego z dnia 25 kwietnia 2012 r. w sprawie określenia efektów kształcenia dla kierunków studiów pierwszego i drugiego stopnia prowadzonych

Bardziej szczegółowo

Zaawansowane programowanie w języku C++

Zaawansowane programowanie w języku C++ Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa Autorzy scenariusza: 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

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

Zasady organizacji projektów informatycznych

Zasady organizacji projektów informatycznych Zasady organizacji projektów informatycznych Systemy informatyczne w zarządzaniu dr hab. inż. Joanna Józefowska, prof. PP Plan Definicja projektu informatycznego Fazy realizacji projektów informatycznych

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy oólny Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK

Bardziej szczegółowo

ECDL Podstawy programowania Sylabus - wersja 1.0

ECDL Podstawy programowania Sylabus - wersja 1.0 ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy

Bardziej szczegółowo

Logika Matematyczna (1)

Logika Matematyczna (1) Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl 4 X 2007 Jerzy Pogonowski (MEG) Logika Matematyczna (1) 4 X 2007 1 / 18 Plan konwersatorium Dzisiaj:

Bardziej szczegółowo

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia Mariusz Urbański Instytut Psychologii UAM Mariusz.Urbanski@.edu.pl Metoda tabel syntetycznych (MTS) MTS

Bardziej szczegółowo

Proces badawczy schemat i zasady realizacji

Proces badawczy schemat i zasady realizacji Proces badawczy schemat i zasady realizacji Agata Górny Wydział Nauk Ekonomicznych UW Warszawa, 28 października 2014 Najważniejsze rodzaje badań Typy badań Podział wg celu badawczego Kryteria przyczynowości

Bardziej szczegółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW NAUCZANIE MATEMATYKI I INFORMATYKI

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW NAUCZANIE MATEMATYKI I INFORMATYKI EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW NAUCZANIE MATEMATYKI I INFORMATYKI poziom kształcenia profil kształcenia tytuł zawodowy uzyskiwany przez absolwenta studia drugiego stopnia ogólnoakademicki magister

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo