Przejdź do treści

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.