Cele
Cel:
Kształcenie w zakresie inżynierii oprogramowania, baz danych i systemów rozproszonych (w tym technologii Internetowych).
Prowadzenie prac magisterskich w w/w zakresie.
Kształcenie jest przede wszystkim nastawione na zdobycie wiedzy i umiejętności inżynierskich bezpośrednio przydatnych praktycznie w późniejszej pracy zawodowej.
Kształcenie dotyczy także ważnych aspektów teoretycznych, których praktyczna wartość została zweryfikowana w wiarygodny sposób.
Akademickie teorie nie zweryfikowane praktycznie (w tym matematyczne metody specyfikacji i weryfikacji oprogramowania, niektóre modele formalne w bazach danych, formalne podstawy tzw. „baz wiedzy”, itp.) nie będą nauczane i promowane. Wynika to z pragmatycznej orientacji tej specjalności.
Perspektywa Pracy:
Obecna oferta pracy dla absolwentów tej specjalności jest ogromna i wyjątkowa. Jak dotąd, popyt na specjalistów z tego zakresu znacznie przewyższa podaż.
Początkowe uposażenie absolwenta tej specjalności w firmach komercyjnych jest na ogół nie niższe niż 3000 PLN netto (często jest wyższe).
Absolwenci będą mogli znaleźć pracę w przedsiębiorstwach przemysłowych, firmach programistycznych, przedsiębiorstwach telekomunikacyjnych, bankach, urzędach centralnych i administracji państwowej, spółkach handlowych, itd.
Bardziej ambitni absolwenci mogą podjąć się pracy dydaktyczno-naukowej oferowanej przez uczelnie prywatne i państwowe oraz instytuty naukowe.
Absolwenci tej specjalności łatwo znajdą pracę w krajach zachodnich i USA, w tym w przedstawicielstwach firm zachodnich i amerykańskich w Polsce.
Charakter pracy: analiza i projektowanie dużych systemów informatycznych, konstrukcja oprogramowania, prace badawcze, kształcenie w zakresie oprogramowania, kierowanie projektami informatycznymi, audyt i zarządzanie jakością oprogramowania, pielęgnacja oprogramowania, projektowanie aplikacji Internetowych, w tym e-commerce oraz portale biznesowe (B2B), itd
Szczegółowe informacje
Przebieg Studiów Inżynieria Oprogramowania
Zgodnie z regulaminem, studia magisterskie trwają 4 semestry i kończą się obroną pracy magisterskiej.
Warunkiem ukończenia jest uzyskanie absolutorium, tj. zaliczenie lub zdanie egzaminu ze wszystkich przedmiotów obowiązkowych oraz uzyskanie odpowiedniej ilości punktów ze wszystkich przedmiotów.
Na tej specjalności każda praca magisterska powinna być poparta działającą implementacją. Wyjątkiem mogą być niektóre prace z analizy i projektowania oprogramowania oraz prace teoretyczne.
Seminarium magisterskie jest prowadzone przez 4 semestry, przy czym w ostatnim semestrze liczba godzin jest podwójna (z czego połowa ma być poświęcona na prezentowanie, prowadzenie i sprawdzanie prac magisterskich).
Prace magisterskie są wykonywane indywidualnie. Mogą być również prace wykonywane przez dwie osoby lub więcej osób, z wyraźnym podziałem pracy na części i/lub tematy wykonywane przez poszczególne osoby.
Przykładowe Tematy Prac Magisterskich:
Trójwarstwowa architektura zarządzania treścią w aplikacjach internetowych
Systemowe zarządzanie jakością w cyklu wytwarzania oprogramowania
Interfejs do zarządzania konfiguracją oprogramowania
Personalizacja w serwisach internetowych
Język zapytań dla obiektów CORBA
Narzędzia analityczne w systemach zarządzania wiedzą
Narzędzia wspomagające pracę sklepu internetowego typu zShop
Generyczne repozytorium dokumentów
Tematyka 1
Niżej znajduje się lista przykładowych tematów, które są lub mogą być przedmiotem kształcenia i/lub prac magisterskich. Lista nie jest zamknięta.
Analiza i projektowanie SI;
Metodyki analizy i projektowania; notacje; w tym MUL, OPEN, BON, encja -związek, itd.;
Modelowanie pojęciowe; narzędzia i języki wspomagające modelowanie pojęciowe;
Narzędzia CASE; narzędzia wspomagające zarządzanie projektem;
Inżynieria oprogramowania w rozbiciu na fazy cyklu życia oprogramowania (analiza, projektowanie, konstrukcja, testowanie, wdrożenie, pielęgnacja, itd.);
Zarządzania przedsięwzięciem programistycznym; zarządzanie ryzykiem; audyt i zarządzanie jakością oprogramowania;
Miary złożoności i jakości oprogramowania;
Tematyka 2
Ponowne użycie oprogramowania, dokumentacji i procesów wytwarzania oprogramowania;
Wzorce projektowe, szkielety aplikacji;
Graficzne interfejsy użytkownika;
Rozproszone i federacyjne bazy danych; replikacje w rozproszonych bazach danych, migracja obiektów; przetwarzanie zapytań w rozproszonych bazach danych;
Architektury systemów oprogramowania, w tym architektury klient-serwer, architektury wielowarstwowe, itd.;
Oprogramowanie middleware’owe i komponentowe;
Interoperacyjność (współdziałanie) systemów heterogenicznych i/lub rozproszonych; odwzorowanie heterogenicznych ontologii; mediatory i osłony;
Tematyka 3
Standardy w zakresie rozproszonych obiektów, w tym standardy CORBA/IIOP, JavaBeans, RMI i COM/DCOM/ActiveX; brokery (ORB) zbudowane wg tych standardów, np. Orbix, Visibroker, i inne;
Zarządzanie przepływem prac (workflow); technologie mobilnych agentów;
Obiektowe i obiektowo-relacyjne bazy danych: anatomia, projektowanie, pielęgnacja, użycie;
Standardy obiektowych baz danych, w tym standard ODMG; systemy zbudowane wg tych standardów, np. ObjectStore, Versant, Poet, O2;
Fizyczna organizacja składów trwałych obiektów, repozytoria multimediów, dane temporalne i przestrzenne (geograficzne), optymalizacja dostępu do danych multimedialnych, temporalnych i przestrzennych;
Optymalizacja fizycznej organizacji i dostępu do danych, organizacja indeksów, buforowanie danych, przemiana wskaźników (pointer swizzling);
Systemy obiektowo-relacyjne, w tym Oracle-8, Informix Dynamic Server, DB/2 Universal Server, Sybase, i inne; standard SQL3 i jego następcy;
Tematyka 4
Teoria i konstrukcja obiektowych języków zapytań do baz danych;
Integracja języków zapytań z językami programowania;
Tranzytywne domknięcia, zadania rekurencyjne, bill-of-material (BOM);
Języki programowania baz danych (z trwałymi zmiennymi lub obiektami), w tym SQL, Java z trwałością; interfejsy ODBC, JDBC i SQLJ;
Języki czwartej generacji (4GL), narzędzia RAD i RAP;
Teoria typów, w tym typów polimorficznych; nowe typy danych;
Optymalizacja obiektowych języków zapytań;
Teoria obiektowych wirtualnych i zmaterializowanych perspektyw;
Hurtownie danych, kostki danych, przetwarzanie analityczne (OLAP);
Przetwarzanie transakcji, rozproszone transakcje, monitory transakcji;
Aktywne reguły, aktywne bazy danych, programowanie zdarzeniowe;
Tematyka 5
Przetwarzanie transakcji, rozproszone transakcje, monitory transakcji;
Aktywne reguły, aktywne bazy danych, programowanie zdarzeniowe;
Technologie WWW, w tym WAP i technologie oparte na XML; repozytoria XML, języki zapytań dla XML, perspektywy w XML, odwzorowania na/z XML, w tym XSLT;
Bazy danych w Internecie; systemy zarządzania treścią (content management);
Repozytoria danych sformatowanych, tekstowych i multimedialnych;
Systemy pracy grupowej (CSCW), w tym wspomaganie grup współpracujących poprzez Internet;
Pełno-tekstowe bazy danych; wyszukiwanie w danych pełnotekstowych; Internetowe wyszukiwarki informacji w pełnym tekście;
Przetwarzanie danych półstrukturalnych; języki zapytań i repozytoria danych półstrukturalnych;
Tematyka 6
Projektowanie i programowanie generycznych aplikacji; szablony (templates), programowanie poprzez refleksję lingwistyczną;
Bezpieczeństwo i ochrona danych i systemów; prywatność i autoryzacja dostępu; ochrona przed wirusami, wandalizmem, sabotażem, odmową płatności;
Elektroniczna komercja, sklepy internetowe, portale biznesowe;
Internetowe systemy wspomagania dziedzin życia i gospodarki (vortale): ochrona zdrowia, handel, telekomunikacja, bankowość, giełda, mała i średnia przedsiębiorczość, szkolnictwo, ubezpieczenia, finanse, leasing, usługi, itd.;
Biblioteki cyfrowe; systemy wspomagania dużych archiwów dokumentów.
Zarządzanie konfiguracjami i wersjami; dokumentowanie oprogramowania i procesów wytwarzania oprogramowania;