Uniwersytet Warszawski University of Warsaw
Wyszukiwarka
 W bieżącym katalogu

Wydział Matematyki, Informatyki i Mechaniki

 

Magisterskie Studia Uzupełniające
na kierunku informatyka

 

Program zajęć - ROK II

Semantyka języków programowania

Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: M. Grabowski
Sylabus:

  1. Ogólna informacja o metodzie denotacyjnej, dziedziny syntaktyczne i semantyczne, równania semantyczne.
  2. Informacja o równaniach dziedzinowych; iteracja, rekursja jako punkty stałe.
  3. Pojęcia pamięci, stanu, środowiska. Wartości oznaczane, pamiętane i wyrażalne. Formalna semantyka procedur jako przykład.
  4. Semantyka statyczna i dynamiczna procedur oraz konstrukcji "let".
  5. Kontynuacje instrukcji i przykłady struktur sterowania (różne powroty z procedur).
  6. Formalna semantyka wyjątków.
  7. Elementarne informacje o języku SML i przykład zaimplementowania w SML formalnej semantyki denotacyjnej prostego języka.
  8. Metodologia stukturalnej semantyki operacyjnej. Semantyka operacyjna przykładowego języka funkcyjnego.
  9. Typowanie jako część syntaktyki języka. Typy proste i pojęcie typu głównego.
  10. Płaskie typy polimorficzne i algorytm Milnera.
Literatura:
  1. Gordon, "Denotacyjny opis jezyków programowania".
  2. Plotkin, "A structural approach to operational semantics".

Formalne specyfikacje

Rodzaj: wykład (20), egzamin, V trymestr
Autorzy programu: M. Engel
Sylabus:

  1.  Wstęp. Przegląd różnych metod specyfikacji programów: metody algebraiczne, transformacyjne, teorio-mnogościowe, logiki programów (przypomnienie z MAT-I i rozszerzenie).
  2. Metody algebraiczne. Algebry uniwersalne. Homomorfizm algebr. Kongruencje. Algebra ilorazowa. Algebra termów. Algebra początkowa.
  3. Specyfikacje równościowe. Semantyka. Wyrażalność.
  4. Mechanizmy strukturalne. Operacje na specyfikacjach. Parametryzacja modułów.
  5. Prezentacja wybranego języka specyfikacji algebraicznej, przykłady specyfikacji struktur danych.
  6. Konstruowanie programów metodą kolejnych uściśleń. Rachunek Dijkstry najmocniejszych warunków wstępnych dla programów iteracyjnych.
  7. Specyfikacje programów współbieżnych. Logiki temporalne. Dowodzenie własności żywotności i zapewniania.
  8. Metody specyfikacji programów rozproszonych i systemów czasu rzeczywistego. Przykłady specyfikacji protokołów komunikacyjnych.
  9. Walidacja specyfikacji. Techniki sprawdzania "trafności" specyfikacji. Animacja, prototypowanie,
  10. Narzędzia wspomagające proces specyfikowania i weryfikacji oprogramowania.
Literatura:
  1. C.B. Jones, "Konstruowanie oprogramowania metodą systematyczną", WNT, 1983.
  2. A. Pnueli, Z. Manna, "The Temporal Logic for Reactive and Concurrent Systems. Specification", Springer-Verlag, 1991.
  3. E. Dijkstra, "Umiejętność programowania", WNT, 1978.

Algorytmy sekwencyjne II

Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: K. Diks, B. Chlebus
Sylabus:

  1. Algorytmy randomizowane:
  • algorytmy Las Vegas i Monte Carlo,
  • probabilistyczne struktury danych: listy z przeskakiwaniem, treaps,
  • problem minimalnego przekroju w grafie.
  • Algorytmy aproksymacyjne:
    • aproksymowanie ze stałą,
    • schematy aproksymacyjne,
    • problemy bez efektywnych algorytmów aproksymujących.
  • Algorytmy optymalizacji:
    • implementacja algorytmu Kruskala,
    • algorytm Dijkstry dla najkrótszych ścieżek,
    • algorytmy znajdujące maksymalne przepływy w sieciach,
    • skojarzenia w grafach dwudzielnych, algorytm Hopcrofta-Karpa.
  • Algorytmy on-line:
    • analiza kompetytywności,
    • stronicowanie, serwery, metryczne systemy zadań.
  • Algorytmy odporne na wady
    • wyszukiwanie pomimo kłamstw (problem Ulama),
    • problem bizantyjskich generałów.
    Literatura:
    1. R.K. Ahuja, T.L. Magnanti, J.B. Orlin, "Network Flows", Prentice Hall, 1993.
    2. M. Garey, D.S. Johnson, "Computers and Intractability: A Guide to the Theory of NP-Completeness", W.H. Freeman, 1979.
    3. D.S. Hochbaum (Ed.), "Approximation Algorithms for NP-Hard Problems", PWS, 1995.
    4. R. Motwani, P. Raghavan, "Randomized Algorithms", Cambridge University Press, 1995.

    Algorytmy równoległe i rozproszone

    Rodzaj: wykład (20), egzamin, V trymestr
    Autorzy programu: K. Diks, B. Chlebus
    Sylabus:

    1. Obwody logiczne:
    • obliczanie ciągu prefiksów operacji łącznej,
    • obwody dodające,
    • obwody mnożące.
  • Sieci komparatorów:
    • sieci sortujące Batchera,
    • sieci periodyczne.
  • Sieciowe architektury równoległe:
    • tablica procesorów, sieć motylkowa, hiperkostka,
    • sortowanie i trasowanie.
  • Obliczenia równoległe w modelu PRAM:
    • sumy prefiksowe, podwajanie,
    • klasa NC, P-zupełność,
    • probabilistyczny algorytm obliczania maksymalnego zbioru niezależnego, derandomizacja.
  • Rozproszone algorytmy synchroniczne:
    • wybór lidera: pierścień (algorytmy Hirshberga-Sinclaira i Petersona), dolna granica dla algorytmów porównujących,
    • minimalne drzewa rozpinające: algorytm GHS.
  • Rozproszone algorytmy asynchroniczne:
    • wybór lidera na pierścieniu (algorytmy Hirschberga i Petersona),
    • wybór lidera w dowolnym grafie,
    • problemy ścieżkowe (BFS, najkrótsze ścieżki),
    • minimalne drzewa rozpinające (algorytm Gallagera, Humbleta i Spiry).
    Literatura:
    1. T.H. Cormen, C.E. Leiserson, R.L. Rivest, "Wprowadzenie do algorytmów", WNT, Warszawa, 1997.
    2. J. JaJa, "An Introduction to Parallel Algorithms", Addison-Wesley, 1992.
    3. F.T Leighton, "Parallel algorithms and architectures", Morgan-Kaufman, 1992.
    4. N.A. Lynch, "Distributed algorithms", Morgan-Kaufmann, 1996.

    Wytwórstwo oprogramowania

    Rodzaj: wykład (20), egzamin, V trymestr
    Autorzy programu: W. M. Turski
    Sylabus:

    1. Różnice między przemysłowym tworzeniem produktów programistycznych a programowaniem w małej skali, specyfika tworzenia dużych systemów informatycznych.
    2. Cykl życia i modele ewolucji oprogramowania. Rozkład nakładów na oprogramowanie w cyklu jego życia.
    3. Wydajność pracy programistów. Zależność od  wyposażenia w narzędzia ułatwiające prace programistyczne. Miary produktywności: liczba wierszy kodu i liczba punktów funkcyjnych.
    4. Organizacja, standaryzacja i formalizacja procesu projektowania, dokumentowania, wytwarzania i pielęgnacji oprogramowania.
    5. Organizacja zespołów programistycznych, podział ról i zadań, bieżące zarządzanie pracami programistycznymi.
    6. Problematyka kontroli jakości oprogramowania, standardy i normy (ISO, IEEE).
    7. Organizacja inspekcji wewnętrznej i zewnętrznej. Klasyfikacja poziomu jakości firm programistycznych wg SEI.
    8. Organizacja nadzoru nad wersjami i konfiguracjami oprogramowania.
    9. Prawne aspekty wytwarzania oprogramowania, sposoby konstruowania umów z klientami, aspekty prawa autorskiego w odniesieniu do oprogramowania, ochrona praw osobistych (ustawa).
    10. Organizacja uslug serwisowych i gwarancyjnych, proces zbierania informacji o błędach, metodyczne podejście do reakcji na wykryte błędy.
    Literatura:
    1. W. S. Humphrey, "Managing the Software Process", Addison-Wesley, 1989.
    2. J. Barta i R. Markiewicz, "Główne problemy prawa komputerowego", WNT, 1993.

    Organizacja i zarządzanie produkcją oprogramowania

    Rodzaj: wykład (20), egzamin, IV trymestr
    Autorzy programu: Z. Jurkiewicz, M. Benke
    Sylabus:

    Podstawy zarządzania projektami informatycznymi. Planowanie. Sieci PERT, ścieżka krytyczna. Diagramy Gantta, wykorzystanie zasobów. Rachunek kosztów. Szacowanie ryzyka. Szacowanie pracochłonności. Microsoft Project.


    Systemy informatyczne zarządzania

    Rodzaj: wykład (20) z ćwiczeniami lub laboratorium (20), egzamin, V trymestr
    Autorzy programu:  M. Benke , A. Szałas
    Sylabus:

    1. Pojęcie systemu informacyjnego i informatycznego, specyfika działania dużych przedsiębiorstw i podstawowe problemy informatyczne w nich występujące.
    2. Klasyfikacja informatycznych systemów zarządzania.
    3. Podstawowe obszary działania przedsiębiorstwa i odpowiadające im elementy (moduły) oprogramowania, pojęcie systemu zintegrowanego, księgowość, dystrybucja, gospodarka magazynowa.
    4. Komputerowe wspomaganie modelowania struktury przedsiębiostwa i zachodzących  w nim procesów (np. ARIS lub narzędzia SAP).
    5. Zasady tworzenia systemów informowania kierownictwa.
    6. Przegląd najważniejszych zintegrowanych systemów zarządzania wdrażanych w dużych przedsiębiorstwach (SAP, IFS, BAAN, itp.).
    7. Wprowadzenie do zasad wdrażania i programowania wybranego systemu.

    Ćwiczenia będą poświęcone dogłębniejszemu zapoznaniu słuchaczy z wybranym (i dostępnym na wydziale) zintegrowanym systemem zarządzania.


    Sieci komputerowe I

    Rodzaj: wykład (20), egzamin, IV trymestr
    Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S. Kurpiewski, J. Deminet)
    Sylabus:

    1. Protokoły warstwy fizycznej i łącza:
    • protokół Ethernet,
    • protokół Ethernet Netware Proprietary,
    • protokół 802.3,
    • protokół 802.3 SNAP.
  • Protokoły warstwy fizycznej i łącza:
    • sieci z krążącym znacznikiem,
    • przełączany Ethernet.
  • Protokół IP:
    • adresowanie w intersieci,
    • opis ramki IP,
    • mechanizmy fragmentacji i defragmentacji pakietów,
    • opcje IP.
    Protokół ICMP -komunikaty o problemach w sieci:
    • typy komunikatów,
    • opis ramki ICMP,
    • wykorzystanie komunikatów ICMP.
  • Protokoły transportowe UDP i TCP:
    • porty, kolejki, klient i serwer usługi sieciowej,
    • opis ramki UDP,
    • aplikacje oparte na protokole UDP.
    Protokół TCP - mechanizmu bezpiecznej transmisji:
    • transmisja z gwarancją dostarczenia danych,
    • transmisja z potwierdzaniem,
    • kontrola przepływu danych.
    Protokół TCP - algorytm działania modułu TCP:
    • opis ramki TCP,
    • operacje i stany TCP.
  • Protokół IP 6.
  • Novell Netware:
    • opis używanych protokołów sieciowych.
  • Novell Netware:
    • możliwości współpracy z innymi systemami.
  • Microsoft Network:
    • opis używanych protokołów sieciowych.
  • Microsoft Network:
    • możliwości współpracy z innymi systemami.
  • Usługi katalogowe: NDS, LDAP, DCE itd.
  • Literatura:
    1. D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
    2. RFC 1122: "Requirements for Internet hosts - communication layer".
    3. RFC 1123: "Requirements for Internet hosts - application and support".
    4. RFC 1700: "Internet number".
    5. RFC 826: "Address Resolution Protocol".
    6. RFC 903: "A Reverse Address Resolution Protocol".
    7. RFC 791,760: "Internet Protocol".
    8. RFC 792,777: "Internet Control Message Protocol".
    9. RFC 768: "User Datagram Protocol".
    10. RFC 793: "Transmission Control Protocol".

    Sieci komputerowe I

    Rodzaj: laboratorium (20), zaliczenie na ocenę, IV trymestr
    Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S. Kurpiewski, J. Deminet)
    Sylabus:

    1. Protokoły warstwy łącza:
    • obsługa ramek protokołu Ethernet,
    • obsługa ramek protokołu Ethernet Netware Proprietary.
  • Protokoły warstwy łącza:
    • obsługa ramek protokołu 802.3,
    • obsługa ramek protokołu 802.3 SNAP.
  • Protokół ARP:
    • obsługa pakietów protokołu ARP.
  • Protokół IP:
    • obsługa pakietów protokołu IP.
  • Protokół ICMP:
    • obsługa pakietów protokołu ICMP.
  • Protokół UDP:
    • obsługa pakietów protokołu UDP.
  • Protokół TCP:
    • obsługa pakietów protokołu TCP.
  • Protokół TCP:
    • obsługa połączeń TCP.
  • Novell Netware:
    • analiza stosu sieciowego,
    • konfigurowanie usług sieciowych.
  • Microsoft Network   - analiza stosu sieciowego:
    • konfigurowanie usług sieciowych,
    • łącza WAN w systemach Unix/Novell/Microsoft.

    Literatura:

    1. D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
    2. RFC 1122: "Requirements for Internet hosts - communication layer".
    3. RFC 1123: "Requirements for Internet hosts - application and support".
    4. RFC 1700: "Internet number".
    5. RFC 826: "Address Resolution Protocol".
    6. RFC 903: "A Reverse Address Resolution Protocol".
    7. RFC 791,760: "Internet Protocol".
    8. RFC 792,777: "Internet Control Message Protocol".
    9. RFC 768: "User Datagram Protocol".
    10. RFC 793: "Transmission Control Protocol".

    Sieci komputerowe II

    Rodzaj: wykład (20), egzamin, V trymestr
    Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S. Kurpiewski, J. Deminet)
    Sylabus:

    1. Łącza szeregowe - omówienie protokołów:
    • protokół SLIP,
    • protokół PPP,
    • protokoły do komunikacji modemowej V.xx.
  • Szybkie łącza szeregowe:
    • SDH/SONET,
    • ISDN.
  • Protokół X.25, X.400, X.500; Frame Relay; FTAM:
    • opis cech protokołu,
    • enkapsulacja IP.
  •  
  • Protokół ATM:
    • opis cech protokołu,
    • enkapsulacja IP,
    • LAN emulation,
    • sieci wirtualne.
  • Protokół SNA.
  • Protokół AppleTalk.
  • Podstawowe problemy bezpieczeństwa.
  • Literatura:
    1. D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
    2. RFC 1122: "Requirements for Internet hosts - communication layer".
    3. RFC 1123: "Requirements for Internet hosts - application and support".
    4. RFC 1700: "Internet number".
    5. RFC 826: "Address Resolution Protocol".
    6. RFC 903: "A Reverse Address Resolution Protocol".
    7. RFC 791,760: "Internet Protocol".
    8. RFC 1331: "The Point-to-Point Protocol for the Transmission of Multi-Protocol Datagrams Over Point-to-Point Links".
    9. RFC 1661: "The Point-to-Point Protocol".
    10. RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Concepts and methods".
    11. RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Detailed specification".
    12. http://www.atmforum.com.
    13. http://www.frforum.com.


    Sieci komputerowe II

    Rodzaj: laboratorium (20), zaliczenie na ocenę, V trymestr
    Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S. Kurpiewski, J. Deminet)
    Sylabus:

    1. Oprogramowanie modemu (protokół Hayesa).
    2. Łącza szeregowe:
    • konfigurowanie łącza SLIP,
    • analiza pakietów.
  • Łącza szeregowe:
    • konfigurowanie łącza PPP,
    • analiza przesyłanych pakietów.
  • Protokół X.25:
    • konfigurowanie łącza X.25.
  • ATM:
    • konfigurowanie łącza ATM,
    • analiza ramek ATM.
  • ATM:
    • konfigurowanie sieci wirtualnych.
  • ATM:
    • konfigurowanie usługi QoS (Quality of Service).
  • ATM:
    • enkapsulacja innych protokołów sieciowych.
  • Rezerwa.
  • Literatura:
    1. D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
    2. RFC 1122: "Requirements for Internet hosts - communication layer".
    3. RFC 1123: "Requirements for Internet hosts - application and support".
    4. RFC 1700: "Internet number".
    5. RFC 826: "Address Resolution Protocol".
    6. RFC 903: "A Reverse Address Resolution Protocol".
    7. RFC 791,760: "Internet Protocol".
    8. RFC 1331: "The Point-to-Point Protocol for the Transmission of Multi-Protocol Datagrams Over Point-to-Point Links".
    9. RFC 1661: "The Point-to-Point Protocol".
    10. RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Concepts and methods".
    11. RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Detailed specification".
    12. http://www.atmforum.com.

    Rozproszone systemy operacyjne

    Rodzaj: wykład (20), egzamin, VI trymestr
    Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S. Kurpiewski)
    Sylabus:

    1. Wstęp do systemów rozproszonych:
    • co to jest system rozproszony,
    • cele, wady, zalety,
    •  przegląd architektur, wieloprocesor a wielokomputer,
    •  system sieciowy a system rozproszony,
    •  kwestie projektowe: przezroczystość, elastyczność, niezawodność, wydajność, skalowalność,
    •  komunikacja w systemach rozproszonych (komunikaty, model klient-serwer, protokoły, komunikacja grupowa, rozgłaszanie),
    •  typowe zagadnienia systemów rozproszonych.
  • Synchronizacja:
    •  synchronizacja zegarów logicznych,
    •  synchronizacja zegarów fizycznych,
    •  algorytmy wzajemnego wykluczania i elekcji,
    •  transakcje atomowe (własności, implementacja, kontrola współbieżności),
    •  zastój w systemach rozproszonych (wykrywanie, zapobieganie).
  • Procesy i procesory w systemach rozproszonych:
    •  procesy i wątki,
    •  modele przetwarzania w systemach z wieloma procesorami (stacje robocze, pula procesorów, podział obciążenia a równoważenie obciążenia),
    • migracja procesów (statyczna, dynamiczna),
    • algorytmy przydziału procesora,
    • odporność na błędy,
    • systemy rozproszone czasu rzeczywistego.
  • Rozproszone systemy plików I:
    • nazewnictwo i przezroczystość,
    • współdzielenie plików,
    • zdalny dostęp do plików, pamięć podręczna, tworzenie kopii,
    • serwer plików: stanowy, bezstanowy.
  • Rozproszone systemy plików II:
    • NFS,
    • Andrew File System,
    • Coda.
  • Rozproszona pamięć dzielona I:
    • modele zgodności pamięci,
    • pamięć dzielona w systemach wieloprocesorowych:
      • wieloprocesor z pojedynczą szyną (np. podsłuchująca pamięć podręczna),
      • wieloprocesor w pierścieniu (np. Memnet),
      • wieloprocesor z wieloma połączeniami (np. Dash),
      • wieloprocesor typu NUMA, UMA.
  • Rozproszona pamięć dzielona II:
    • pamięć dzielona w systemach wielokomputerowych (typu NORMA):
      • DSM ze stronami,
      • DSM ze wspólnymi zmiennymi (np. Munin, Midway),
      • DSM z obiektami (np. Linda, Orca).
  • Przykład: Chorus.
  • Przykład: Mach.
  • Przykład: QNX.
  • Literatura:
    1. A. Tanenbaum, "Rozproszone systemy operacyjne", PWN, 1997.
    2. G. Coulouris, J. Dollimore, T. Kindberg, , "Distributed Systems: Concepts and Design", Addison-Wesley, 1994. (Ukaże się nakładem WNT).
    3. R. Chow, T. Johnson, "Distributed Operating Systems & Algorithms", Addison-Wesley, 1997.
    4. K. Sacha, "QNX", X-system, Warszawa 1995.
    5. W. Lerch, "System operacyjny QNX", Quantum Corp., 1994.
    6. QNX Software Systems, "QNX Operating System. System Architecture", 1997.

    Bezpieczeństwo sieci komputerowych

    Rodzaj: wykład (20), egzamin, VI trymestr
    Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer, R. Maron (S. Kurpiewski, J. Deminet)
    Sylabus:

    1. Protokoły SNMP v2 i v3, zastosowanie do monitorowania i konfiguracji sieci, istniejące narzędzia w środowisku systemu Linux; protokół DHCP --- konfiguracja serwera i klientow.
    2. Wykorzystanie szyfrowania z kluczem publicznym do bezpiecznej komunikacji z serwerem za pomocą poczty elektronicznej (wysyłanie poleceń w listach) --- konfiguracja przykładowego serwera (uwaga na różne metody ataków!).
    3. Podpisy cyfrowe w poczcie elektronicznej, zastosowanie do przyjmowania listów tylko od osob, których tożsamość można potwierdzić (baza kluczy publicznych, PGP5 i publiczne serwery kluczy).
    4. Konfiguracja bezpieczeństwa kont w systemie Unix z wykorzystaniem biblioteki PAM (pluggable authentication modules):
    • zwykłe konta,
    • mechanizm shadow,
    • wymuszanie długości haseł,
    • cracklib (pasywna ochrona),
    • konfiguracja ograniczeń wykorzystania zasobów.
  • Sieciowy system hasel NIS - konfiguracja, korzystanie, problemy:
    • NIS,
    • NIS+,
    • słabości, metody włamań.
  • System przepustek elektronicznych Kerberos: konfiguracja, zastosowania do kontroli dostępu i uwierzytelniania w sieci.
  • Konfiguracja systemu Linux do zastosowania w roli rutera - konfiguracja jądra systemu i usług systemowych, maskarady.
  • Tunelowanie protokołów - zastosowania do bezpiecznego przesyłania danych w sieci:
    • SSL (Secure Socket Layer) - konfiguracja, serwery, interfejsy klienckie,
    • tunelowanie protokołów przez SSH (secure shell) - techniki tunelowania protokołów POP, NNRP, informacja o niemożliwości tunelowania FTP.
  • Mechanizm pośredników (proxy):
    • system Linux jako serwer proxy HTTP,
    • bezpieczeństwo i oprogramowanie SOCKS (konfiguracja serwera i klientów).
  • Ściany ogniowe z filtrowaniem IP:
    • konfiguracja wybranego pakietu filtrującej ściany ogniowej,
    • filtry pakietów w jądrze systemu Linux i ich konfiguracja.
    Literatura:
    1. B. Schneier, "Bezpieczeństwo poczty elektronicznej", WNT 199?.
    2. W. Stallings, "Ochrona danych w sieci i intersieci", WNT 1997.

    Projektowanie systemów informacyjnych

    Rodzaj: wykład (20), egzamin, IV trymestr
    Autorzy programu: Z. Jurkiewicz
    Sylabus:

    1. Przegląd faz budowy systemu. Rola metodologii. Podejście strukturalne i obiektowe. Prototypy. Narzędzia wspomagające (CASE). Problem przestarzałych systemów. Reverse engineering i jego wspomaganie.
    2. Wprowadzenie do analizy, podstawowe zasady.  Organizacja na przykładzie SSADM 4. Faza rozpoznania (studium wykonalności). Katalog wymagań. Kategorie użytkowników (role). Hierarchia funkcji. Zdarzenia.
    3. Przegląd zagadnień analizy strukturalnej, budowa kompletnej specyfikacji. Aspekty modelowania: funkcje, dane i sterowanie. Słowniki danych, repozytoria.
    4. Diagramy przepływu danych, dekompozycja funkcji i ich opisy. Warunki poprawności. Diagramy związków encji, macierz funkcje/encje. Uogólnione sieci przejść (diagramy Harela).
    5. Podejście obiektowe (UML). Klasy i dziedziczenie. Rodzaje zwiazków. Scenariusze (use cases).
    6. Budowa specyfikacji. Model środowiskowy (kontekstowy) systemu i model zachowania.  Ograniczenia implementacyjne narzucone przez użytkownika.
    7. Projektowanie. Globalna architektura systemu, kategorie. Dekompozycja na podsystemy. Diagramy struktury modulow. Schematy dialogów. Wzorce projektowe. Projektowanie baz danych. Konwencje nazywania.
    8. Implementacja. Budowa i testowanie programow, generatory aplikacji. Lokalizacja. Narzędzia do pielegnacji kodow żródłowych i wynikowych. Testowanie regresyjne.  Testowanie obciążalności.
    9. Narzędzia do automatyzacji testowania. Optymalizacja. Testy akceptacyjne, badanie zgodności ze specyfikacją.
    10. Wdrożenie systemu.  Plan przejścia.  Dokumentacja użytkowa i systemowa. Konwersja danych.  Szkolenie użytkowników.  Pielęgnacja systemu.
    11. Rezerwa.
    Literatura:
    1. E. Yourdon, "Współczesna analiza strukturalna", WNT, Warszawa 1996.
    2. J. Rumbaugh et al., "Object-Oriented Modeling and Design", Prentice Hall, Englewood Cliffs, 1991.

    Zaawansowane metody dostępu do baz danych

    Rodzaj: wykład (20), egzamin, V trymestr
    Autorzy programu: Z. Jurkiewicz
    Sylabus:

    1. Zdalny dostęp do baz danych. Dostęp do heterogenicznych baz danych, architektura wspólnego interfejsu. Pośrednictwo ODBC JDBC.
    2. Dostęp do baz danych z przeglądarek. Protokół CGI. Serwer WWW Oracle jako przykład.
    3. Transakcje. Tolerowanie defektów. Odtwarzanie bazy danych. Dziennik systemowy. Synchronizacja współbieżnego dostępu.
    4. Kategorie transakcji. Realizacja przez blokady. Monitory transakcji.
    5. Rozproszone bazy danych. Dwufazowe potwierdzanie transakcji.
    6. Obiektowe bazy danych, CORBA.

    Bazy danych w bankowości i zarządzaniu

    Rodzaj: wykład (20), egzamin, VI trymestr
    Autorzy programu: Z. Jurkiewicz
    Sylabus:

    1. Tekstowe bazy danych.  Dokumenty elektroniczne.  Modelowanie obiegu dokumentów.  Systemy workflow.
    2. Bazy danych do przetwarzania analitycznego.  Pojęcie hurtowni danych. Fazy budowy.  Usuwanie niezgodności.
    3. Projektowanie hurtowni danych.  Denormalizacja.  Model gwiazdy.
    4. Pojęcie wymiaru.  Kostki wielowymiarowe.  Poziomy agregacji danych. Zwijanie i rozwijanie po wymiarach.
    Literatura:
    1. W.H. Inmon, R.D. Hackharthon, "Using the Data Warehouse".
    2. R. Kimball, "The Data Warehouse Toolkit", J.Wiley & Sons, 1996.
    3. M.H. Bracket, "The Data Warehouse Challange".
    4. Dokumentacja do Oracle Express.

    Projekt duzej bazy danych

    Rodzaj: laboratorium (20 + 20 + 20), zaliczenie na ocenę, IV, V i VI trymestr
    Autorzy programu: Z. Jurkiewicz
    Sylabus:
    Projekt duzej bazy danych z użyciem Case i aplikacjami w Internecie, poczynając od analizy systemowej.