Softwarové a datové inženýrství

3. Softwarové a datové inženýrství

Garantující pracoviště: Katedra softwarového inženýrství
Oborový garant: Doc. RNDr. Tomáš Skopal, Ph.D.

Zaměření:

 softwarové inženýrství
 vývoj software
 webové inženýrství
 databázové systémy
 analýza a zpracování rozsáhlých dat

Absolvent má hluboké softwarově a datově inženýrské znalosti v rámci zvoleného zaměření. Tyto znalosti nesledují pouze aktuální technologické trendy, ale jejich jádro je tvořeno hlubokým teoretickým základem. Absolvováním zaměření Softwarové inženýrství absolvent umí analyzovat požadavky na kvalitu a funkcionalitu softwarových řešení, navrhovat odpovídající architekturu a řídit proces jejich vývoje. Absolvent zaměření Vývoj software je schopen vykonávat roli vedoucího týmu vývojářů se schopnostmi pokročile programovat a má přehled o současných softwarových technologiích. Znalosti oblasti vývoje internetových aplikací intenzivně zpracovávajících data pokrývá zaměření Webové inženýrství. Se zaměřením Databázové systémy je absolvent připraven navrhovat schémata v různých typech databází a na jejich základě pak implementovat a administrovat databázové aplikace. Absolvent zaměření Analýza a zpracování rozsáhlých dat se uplatní jako vědecky orientovaný odborník na dobývání znalostí z dat a jejich interpretaci uživateli; např. jako datový analytik (data scientist).

Povinné předměty

kód Předmět Kredity ZS LS
NTIN090 Základy složitosti a vyčíslitelnosti   5 2/1 Z+Zk
NTIN066 Datové struktury I   5 2/1 Z+Zk
NPRG027 Zápočet k projektu   6 0/4 Z 0/4 Z
NPRG023 Softwarový projekt   9 0/6 Z 0/6 Z
NSZZ023 Diplomová práce I   6 0/4 Z 0/4 Z
NSZZ024 Diplomová práce II   9 0/6 Z 0/6 Z
NSZZ025 Diplomová práce III   15 0/10 Z 0/10 Z

Povinně volitelné předměty

Je požadováno splnění povinně volitelných předmětů z následujícího seznamu v rozsahu alespoň 48 kreditů:

kód Předmět Kredity ZS LS
NDBI001 Dotazovací jazyky I   5 2/2 Z+Zk
NDBI006 Dotazovací jazyky II   5 2/2 Z+Zk
NDBI016 Transakce   3 2/0 Zk
NDBI019 Stochastické metody v databázích   3 2/0 Zk
NDBI021 Zákaznické preference   5 2/2 Z+Zk
NDBI023 Dobývání znalostí   9 4/2 Z+Zk
NDBI034 Vyhledávání multimediálního obsahu na webu   4 2/1 Z+Zk
NDBI040 Moderní databázové koncepty   5 2/2 Z+Zk
NDBI042 Techniky vizualizace dat   3 2/1 Z+Zk
NMAI060 Pravděpodobnostní metody   3 2/0 Zk
NPFL054 Úvod do strojového učení   5 2/2 Z+Zk
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z
NPRG024 Návrhové vzory   3 0/2 KZ
NPRG039 Pokročilé aspekty a nové trendy v XML   5 2/1 Z+Zk
NPRG042 Programování v paralelním prostředí   6 2/2 Z+Zk
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk
NPRG054 Vývoj vysoce výkonného software   5 2/2 Z+Zk
NPRG059 Praktikum z pokročilého objektového programování   2 0/1 Z
NSWI021 Počítačové sítě II   3 2/0 Zk
NSWI035 Principy distribuovaných systémů   3 2/0 Zk
NSWI026 Pokročilé aspekty softwarového inženýrství   5 2/2 Z+Zk
NSWI045 Rodina protokolů TCP/IP   3 2/0 Zk
NSWI072 Algoritmy komprese dat   3 2/0 Zk
NSWI073 Moderní síťová řešení   3 0/2 Z
NSWI080 Middleware   5 2/1 Z+Zk
NSWI101 Modely a verifikace chování systémů   6 2/2 Z+Zk
NSWI108 Sémantizace webu   5 2/2 Z+Zk
NSWI126 Pokročilé nástroje pro vývoj a monitorování software   3 0/2 Z
NSWI130 Architektury softwarových systémů   5 2/2 Z+Zk
NSWI131 Vyhodnocování výkonnosti počítačových systémů   5 2/1 Z+Zk
NSWI144 Integrace a kvalita dat   4 2/1 Z+Zk
NSWI145 Webové služby   5 2/2 Z+Zk
NSWI149 Softwarové inženýrství v praxi   3 2/0 Z
NSWI150 Virtualizace a cloud computing   3 2/0 Zk
NSWI152 Vývoj cloudových aplikací   3 0/2 Z
NSWI153 Pokročilé technologie webových aplikací   5 2/2 Z+Zk
NTIN043 Formální základy softwarového inženýrství   5 2/2 Z+Zk
NTIN067 Datové struktury II   3 2/0 Zk
NPFL114 Hluboké učení   7 3/2 Z+Zk

Státní závěrečná zkouška

Ke dvěma povinným okruhům společným pro všechny obory si student vybere tři okruhy podle zvoleného zaměření. Dva z těchto okruhů jsou povinné pro zvolené zaměření, třetí je volitelný. Celkem tedy každý student dostane pět otázek.

Zkušební okruhy

1. Analýza a architektury software (povinný pro zaměření: Softwarové inženýrství)
2. Rozšířené programování (povinný pro zaměření: Softwarové inženýrství, Vývoj software)
3. Softwarové technologie (povinný pro zaměření: Vývoj software)
4. Webové technologie (povinný pro zaměření: Webové inženýrství)
5. Databáze - formální základy a dotazovací jazyky (povinný pro zaměření: Webové inženýrství, Databázové systémy)
6. Databáze - implementace a administrace (povinný pro zaměření: Databázové systémy)
7. Zpracování rozsáhlých a nestrukturovaných dat (povinný pro zaměření: Analýza a zpracování rozsáhlých dat)
8. Data mining (povinný pro zaměření: Analýza a zpracování rozsáhlých dat)

Zkušební požadavky

1. Analýza a architektury software
Procesy vývoje SW a jejich fáze. Podnikové procesy a jejich modelování pomocí BPMN. UML a jeho využití pro analýzu a návrh struktury a chování SW. Návrhové vzory. Testování SW, dopadová a změnová analýza. Plánování SW projektů, odhad nákladů, úrovně řízení projektů. Právní aspekty SW, hlavní zákony důležité pro IT projekty. Typy pohledů na SW architekturu. Modelování a dokumentace SW architektury. Klasifikace atributů kvality SW architektury, jejich popis pomocí scénářů a taktik. Servisně orientované architektury. Algebraické metody, vícedruhové algebry, iniciální modely. Formální základy jazyka UML. OCL jako specifikační jazyk a formální základy dle specifikace. Formální základy RDF a jazyka OWL, deskripční logika.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI130 Architektury softwarových systémů   5 2/2 Z+Zk
NSWI026 Pokročilé aspekty softwarového inženýrství   5 2/2 Z+Zk
NTIN043 Formální základy softwarového inženýrství   5 2/2 Z+Zk

2. Rozšířené programování
Objektové koncepty moderních jazyků. Koncepty jazyků bez tříd. Generické programování a metaprogramování, generika a šablony, politiky, traits, type inference. Moderní konstrukce programovacích jazyků. Odkazy na objekty a jejich životnost. Pokročilé aspekty imperativních jazyků. Výjimky a bezpečné programování v prostředí s výjimkami. Implementace objektových vlastností, běhová podpora, volací konvence, garbage collection. Vliv moderních konstrukcí na výkonnost kódu. Návrhové vzory a jejich využití. Skriptovací jazyky, prototype-based jazyky. Domain Specific Languages. Funkcionální programování. Principy tvorby kvalitního kódu, doporučené postupy. Refaktorizace. Testování funkčnosti, hledání chyb, monitorování programů.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG059 Praktikum z pokročilého objektového programování   2 0/1 Z
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z
NPRG024 Návrhové vzory   3 0/2 KZ
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk

3. Softwarové technologie
Architektury operačních systémů, správa procesů, správa paměti, komunikace a synchronizace, paralelismus, virtualizace, stránkování. Souborové systémy, přístupová práva a bezpečnost. Přenositelnost a multiplatformnost aplikací. Testování a monitorování funkčnosti a výkonnosti. Architektura webových aplikací, skriptování na straně serveru a klienta, spolupráce s databázovými systémy. Architektura datového serveru, transakce, optimalizace výkonu. Cluster, Grid a Cloud. IaaS, PaaS a SaaS. MapReduce. Vyvažování zátěže, vysoká dostupnost.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI126 Pokročilé nástroje pro vývoj a monitorování software   3 0/2 Z
NSWI153 Pokročilé technologie webových aplikací   5 2/2 Z+Zk
NDBI036 Databázové systémy pro praxi   4 2/1 Z+Zk
NSWI150 Virtualizace a cloud computing   3 2/0 Zk

4. Webové technologie
Obecný přehled základní webových technologií. Síťové služby pro webové technologie. Webové služby. Architektura klient-server aplikací, skriptování na straně serveru a klienta, webové frameworky. Použití databázových systémů ve webových aplikacích, NoSQL databáze, multimediální databáze. Indexace a prohledávání dokumentů, principy fungování webových vyhledávačů. Linked Data, integrace sémantických dat do webových stránek. Zajištění bezpečnosti informačních systémů v prostředí internetu, autentizace, autorizace, bezpečnostní modely, základy šifrování, ochrana dat.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI130 Architektury softwarových systémů   5 2/2 Z+Zk
NSWI153 Pokročilé technologie webových aplikací   5 2/2 Z+Zk
NSWI145 Webové služby   5 2/2 Z+Zk
NDBI034 Vyhledávání multimediálního obsahu na webu   4 2/1 Z+Zk
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk

5. Databáze - formální základy a dotazovací jazyky
Relační kalkuly, relační algebry. Relační úplnost. Bezpečné výrazy, ekvivalence relačních dotazovacích jazyků. Věta o tranzitivním uzávěru relace. Sémantika SQL. Standardy SQL. Objektové rozšíření relačního modelu dat. SQL/XML. Databáze textů – Booleovský a vektorový model. Vyhledávání v textech: Booleovské a vektorové indexy, signatury, uspořádání odpovědí. Dotazování nad XML daty, podobnost XML dat. Datalog. Deduktivní databáze. Rekurze v SQL. Tablo dotazy. Modelování preferencí a dotazování s preferencemi, top-k algoritmy, Fuzzy Datalog, doporučující systémy. Datový model RDF, dotazovací jazyk SPARQL, podobnostní dotazy v multimediálních databázích, metrické indexační metody.

Doporučené předměty

kód Předmět Kredity ZS LS
NDBI001 Dotazovací jazyky I   5 2/2 Z+Zk
NDBI006 Dotazovací jazyky II   5 2/2 Z+Zk
NDBI021 Zákaznické preference   5 2/2 Z+Zk
NDBI040 Moderní databázové koncepty   5 2/2 Z+Zk
NDBI038 Vyhledávání na webu   4 2/1 Z+Zk

6. Databáze - implementace a administrace
Architektury databázových systému. Modely a vlastnosti transakcí: uzamykací protokoly, časová razítka. Izolace transakcí, alokace prostředků. Distribuované transakce. Zotavení z chyb, žurnály. Distribuce s horizontální fragmentací, implementace NoSQL databází, CAP teorém. Indexace relačních dat. Přístupové metody k prostorovým objektům. Algoritmy implementace relačních operací, agregačních funkcí. Vyhodnocování a optimalizace dotazů. Indexace XML dat. Zpracování dotazů v XML dotazovacích jazycích. Komprese dat: modely textu, kódování, Huffmanovo kódování, aritmetické kódování, LZ algoritmy, komprese bitových map, řídkých matic, Burrows-Wheelerova transformace.

Doporučené předměty

kód Předmět Kredity ZS LS
NDBI016 Transakce   3 2/0 Zk
NPRG039 Pokročilé aspekty a nové trendy v XML   5 2/1 Z+Zk
NSWI072 Algoritmy komprese dat   3 2/0 Zk
NSWI144 Integrace a kvalita dat   4 2/1 Z+Zk
NDBI040 Moderní databázové koncepty   5 2/2 Z+Zk
NTIN066 Datové struktury I   5 2/1 Z+Zk

7. Zpracování rozsáhlých a nestrukturovaných dat
Distribuce s horizontální fragmentací, implementace NoSQL databází, CAP teorém. Big Data management - distribuce, škálování, replikace, transakce. MapReduce. Úložiště typu klíč - hodnota. Sloupcová úložiště. Dokumentová úložiště. Modely pro fulltextové dotazování - vektorový, booleovský, pravděpodobnostní model. Komprese dat: modely textu, kódování. Podobnostní dotazy v multimediálních databázích, metrické indexační metody. Techniky vizualizace dat. RDF(S) modely splňování, deskripční a dynamická logika, webovské dotazovací jazyky, model sémantizace webu.

Doporučené předměty

kód Předmět Kredity ZS LS
NDBI040 Moderní databázové koncepty   5 2/2 Z+Zk
NDBI034 Vyhledávání multimediálního obsahu na webu   4 2/1 Z+Zk
NDBI042 Techniky vizualizace dat   3 2/1 Z+Zk
NSWI108 Sémantizace webu   5 2/2 Z+Zk

8. Data mining
Základní principy databázových systémů, datových skladů a technologie OLAP. Dobývání znalostí z databází - příprava dat a jejich předzpracování, techniky pro popis konceptů, metody pro dobývání asociativních pravidel, metody pro klasifikaci a predikci dat, metody pro klastrovou analýzu, dobývání znalostí v databázových systémech. Statistické metody pro data mining. Hledání různých typů závislostí. Bayesovská analýza, bayesovské sítě. Pravděpodobnostní modely dokumentografického informačního systému. Metody řízeného učení pro klasifikaci a regresi. Support Vector Machines a kernelové funkce. Evaluace experimentů. Techniky vizualizace dat.

Doporučené předměty

kód Předmět Kredity ZS LS
NDBI023 Dobývání znalostí   9 4/2 Z+Zk
NDBI019 Stochastické metody v databázích   3 2/0 Zk
NAIL029 Strojové učení   3 2/0 Zk
NDBI042 Techniky vizualizace dat   3 2/1 Z+Zk