Zakres specjalistyczny, studia II stopnia — Inżynieria oprogramowania
Obszar inżynieria oprogramowania w ramach sylwetki inżynieria oprogramowania, procesów biznesowych i baz danych koncentruje się na metodycznym i narzędziowym wsparciu wytwarzania, wdrażania i eksploatacji oprogramowania, podejmując m.in. następujące zagadnienia:
— metodyki wytwarzania oprogramowania,
— zastosowanie modelowania w analizie i projektowaniu oprogramowania,
— testowanie oprogramowania,
—architektura oprogramowania,
— zarządzanie konfiguracją i miary oprogramowania,
— zastosowania ram programistycznych oraz języków specyficznych dla dziedziny,
— budowa systemów zarządzania przepływem pracy (workflow),
— języki zapytań i środowiska nierelacyjnych baz danych (NoSQL),
— wizualne interfejsy dla źródeł danych,
— aplikacje rozproszone wykorzystujące dedykowane urządzenia (IoT),
— budowa aplikacji WWW,
— zastosowania inżynierii lingwistycznej.
Przedmioty obieralne wymagane lub rekomendowane przy zakresie w obszarze inżynierii oprogramowania:
—Zarządzanie projektami (wymagany, o ile podobne zagadnienia nie były realizowane w ramach ukończonych studiów pierwszego stopnia)
— Zaawansowane modelowanie i analiza systemów informatycznych (wymagany)
— Grafy i ich zastosowania (rekomendowany)
— Systemy rozproszone i integracja usług (rekomendowany; tylko studia niestacjonarne)
— Inżynieria lingwistyczna (rekomendowany)
Szczególnie cenionymi elementami oryginalnymi prac dyplomowych są generyczność opracowanych rozwiązań, jak też trafność doboru metod i narzędzi dla obranego problemu szczegółowego.
Tematyka zrealizowanych prac magisterskich w ramach obszaru inżynierii oprogramowania:
- Implementacja obiektowego języka zapytań.
- Choreografia usług WWW oparta na obiektowym modelu procesu.
- Wrappery do różnego rodzaju źródeł danych (relacyjnych, XML, pełnotekstowych, itp.) dla wizualnego środowiska eksploracji danych
- Narzędzia dla wizualnego projektowania schematów baz danych
- Narzędzia inżynierii odwrotnej analizujące kod źródłowy.
- Optymalizacja zapytań w systemie zarządzania bazami danych
- Konstrukcja języka specyficznego dla dziedziny (domain-specific language) dla wybranego obszaru problemowego
- Projekt i implementacja rozszerzenia dla popularnego IDE lub narzędzia wspierającego proces rozwoju oprogramowania.
- Narzędzie zwiększające produktywność budowy warstwy prezentacyjnej aplikacji WWW.
- Budowa specjalizowanego narzędzia typu Web-scrapping.
- Rozszerzenie istniejącego języka programowania oparte na preprocessingu.
- Budowa systemu CMS (content management system).
- Dedykowana aplikacja dla urządzeń mobilnych ułatwiająca zarządzanie wybranym systemem on-line.
- Narzędzie wspomagające ocenę użyteczności aplikacji WWW.
- Opracowanie założeń frameworku i/lub portalu umożliwiającego rozwiązanie wybranego ogólnego problemu.
- Rozwiązania realizujące ideę IoT (Internet of Things) oparte na wybranej platformie.
- Generyczne rozwiązanie umożliwiające podłączenie mikrokontrolera (np. Arduino) do Sieci/Chmury.
- Poparta implementacją przykładu analiza porównawcza określonych narzędzi lub wzorców architektonicznych z punktu widzenia założonego zastosowania.
- Rozwiązania dla tworzenia oprogramowania (prawie) bez pisania kodu (Low-Code Development Platform – LCDP, No-Code Development Platform – NCDP).
- Automatyczne streszczanie dokumentów tekstowych
- Automatyczne rozpoznawanie nazw i grupowanie tematyczne dokumentów
- Automatyczne odpowiedzi na pytania tekstowe
- Sentencer – program do dzielenia tekstu na zdania uwzgledniający bardzo różne typy tekstów, dialogi, wiersze, teksty specjalistyczne
- TermExtractor – program do identyfikacji w tekście terminologii (często pojawiających się fraz rzeczownikowych związanych z daną dziedziną)
- TermClusterer – program do grupowania terminów na podstawie występowania w takich samych kontekstach tekstowych (i innych wybranych cech)
- Program do automatycznej poprawy tekstów (uwzględniający dane z aktualnie przetwarzanego tekstu, a nie tylko ze słownika wszystkich form)
- Budowa tekstowego języka modelowania specyficznego dla dziedziny
- Budowa wizualnego języka modelowania specyficznego dla dziedziny
- Język dziedzinowy wspierający projektowanie schematu bazy danych / hurtowni danych
- Język dziedzinowy wspierający implementację funkcjonalności wybranego rodzaju aplikacji
- Środowisko do projektowania systemów sterowania ruchem z wykorzystaniem języka dziedzinowego.
Lista potencjalnych promotorów prac magisterskich – Katedra Inżynierii Oprogramowania:
— Prof. dr hab. inż. Kazimierz Subiet
— Prof. dr hab. inż. Maria Orłowska
— dr hab. inż. Piotr Habela
— dr hab. Agnieszka Mykowiecka
— dr inż. Tomasz Pieciukiewicz
— dr inż. Mariusz Trzaska
Wybór zakresu na Wydziale Informatyki następuje po wypełnieniu ankiety.
Ankietę wypełniają studenci drugiego roku, studiów II stopnia na Wydziale Informatyki.