Softwarové systémy

4. Softwarové systémy

Garantující pracoviště: Katedra distribuovaných a spolehlivých systémů
Oborový garant: Prof. Ing. Petr Tůma, Dr.

Zaměření:

 systémové programování
 spolehlivé systémy
 výkonné systémy

Absolvent má hluboké znalosti z oblasti programovacích jazyků a počítačových systémů podle zvoleného zaměření. Těmito zaměřeními jsou Systémové programování, které vybaví absolventa znalostmi o moderních operačních systémech a souvisejících technologiích (middleware, virtual machines), Spolehlivé systémy, které se soustředí na metody systematické konstrukce systémů s vysokou spolehlivostí, a konečně Výkonné systémy, které kladou důraz na znalosti potřebné pro vývoj software na moderních paralelních a distribuovaných systémech. Znalosti jsou vnímány ve vzájemných souvislostech a podporují navazující odborné dovednosti.

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
NMAI060 Pravděpodobnostní metody   3 2/0 Zk
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk
NPRG059 Praktikum z pokročilého objektového programování   2 0/1 Z
NSWI126 Pokročilé nástroje pro vývoj a monitorování software   3 0/2 Z
NSWI150 Virtualizace a cloud computing   3 2/0 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ň 30 kreditů:

kód Předmět Kredity ZS LS
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z
NPRG042 Programování v paralelním prostředí   6 2/2 Z+Zk
NPRG054 Vývoj vysoce výkonného software   5 2/2 Z+Zk
NPRG056 Vývoj aplikací pro mobilní zařízení   3 0/2 Z
NSWE001 Vestavěné systémy a systémy reálného času   6 2/2 Z+Zk
NSWI029 Moderní trendy v informatice   2 0/2 Z 0/2 Z
NSWI035 Principy distribuovaných systémů   3 2/0 Zk
NSWI026 Pokročilé aspekty softwarového inženýrství   5 2/2 Z+Zk
NSWI054 Softwarové inženýrství pro spolehlivé systémy   3 0/2 Z
NSWI080 Middleware   5 2/1 Z+Zk
NSWI101 Modely a verifikace chování systémů   6 2/2 Z+Zk
NSWI109 Konstrukce překladačů   4 2/1 Z+Zk
NSWI131 Vyhodnocování výkonnosti počítačových systémů   5 2/1 Z+Zk
NSWI132 Analýza programů a verifikace kódu   6 2/2 Z+Zk
NSWI161 Pokročilé operační systémy   3 2/0 Zk
NSWI164 Modelem řízený vývoj   1 0/1 Z

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

Ke dvěma povinným okruhům společným pro všechny obory student dostane po jedné otázce ze tří zkušebních okruhů podle zvoleného zaměření. Celkem tedy každý student dostane pět otázek.

Zaměření: Systémové programování

Zkušební okruhy

1. Systémové aspekty počítačů (SP)
2. Paralelní a distribuované systémy (SP)
3. Moderní koncepty programování (SP)

Zkušební požadavky

1. Systémové aspekty počítačů (SP)
Paralelismus, synchronizace a komunikace. Hierarchie paměti. Podpora virtualizace. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG042 Programování v paralelním prostředí   6 2/2 Z+Zk
NPRG054 Vývoj vysoce výkonného software   5 2/2 Z+Zk
NSWI161 Pokročilé operační systémy   3 2/0 Zk

2. Paralelní a distribuované systémy (SP)
Komunikace a koordinace v distribuovaném prostředí, algoritmy a technologie (konkrétní technologie pro RPC, DSM, messaging podle aktuálního vývoje).

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI035 Principy distribuovaných systémů   3 2/0 Zk
NSWI080 Middleware   5 2/1 Z+Zk

3. Moderní koncepty programování (SP)
Moderní objektové koncepty, metaprogramování, reflexe, aspekty. Konstrukce moderních programovacích jazyků (například anotace, iterátory, generika, lambda funkce). Metriky kvality kódu, dokumentace, refaktoring, testování a ladění. Návrhové vzory. Vše v kontextu soudobých programovacích jazyků.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z

Zaměření: Spolehlivé systémy

Zkušební okruhy

1. Systémové aspekty počítačů (SS)
2. Paralelní a distribuované systémy (SS)
3. Formální metody (SS)

Zkušební požadavky

1. Systémové aspekty počítačů (SS)
Embedded a real time systémy (RTES), real time plánování, návrh a modelování RTES, operační systémy pro RTES. Mobilní zařízení, návrh a distribuce software pro mobilní zařízení, správa prostředků.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWE001 Vestavěné systémy a systémy reálného času   6 2/2 Z+Zk
NPRG056 Vývoj aplikací pro mobilní zařízení   3 0/2 Z

2. Paralelní a distribuované systémy (SS)
Synchronizace v paralelních systémech. Kauzalita a konsensus v distribuovaném prostředí. Komunikace, koordinace, replikace a mobilita v distribuovaném prostředí, algoritmy a technologie (konkrétní technologie pro RPC, DSM, messaging podle aktuálního vývoje).

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI035 Principy distribuovaných systémů   3 2/0 Zk
NSWI080 Middleware   5 2/1 Z+Zk

3. Formální metody (SS)
Modelování chování programů, formální nástroje (timed automata, LTS, Kripke Structure, svazy, LTL, CTL, bisimulace). Verifikace kódu proti kontraktům. Statická analýza (princip, základní algoritmy). Model checking, state explosion, infinite state model checking, compositional reasoning, bounded model checking, CEGAR, symbolická exekuce, runtime analýza, abstraktní interpretace.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI101 Modely a verifikace chování systémů   6 2/2 Z+Zk
NSWI132 Analýza programů a verifikace kódu   6 2/2 Z+Zk

Zaměření: Výkonné systémy

Zkušební okruhy

1. Distribuované systémy (VS)
2. Programování paralelních aplikací (VS)
3. Systémové aspekty počítačů (VS)

Zkušební požadavky

1. Distribuované systémy (VS)
Kauzalita a konsensus v distribuovaném prostředí. Komunikace, koordinace, replikace a mobilita v distribuovaném prostředí, algoritmy a technologie (konkrétní technologie pro RPC, DSM, messaging, deployment podle aktuálního vývoje).

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI035 Principy distribuovaných systémů   3 2/0 Zk
NSWI080 Middleware   5 2/1 Z+Zk

2. Programování paralelních aplikací (VS)
Moderní hierarchie paměti (multiprocesory, GPU, NUMA), vztah efektivity přístupu a umístění dat. Transformace úloh na datově paralelní, paralelní řešení nehomogenních úloh. Efektivní paralelní implementace základních algoritmů. Synchronizace, vyvažování zátěže.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG042 Programování v paralelním prostředí   6 2/2 Z+Zk
NPRG054 Vývoj vysoce výkonného software   5 2/2 Z+Zk

3. Systémové aspekty počítačů (VS)
Hierarchie paměti. Podpora virtualizace. Metriky výkonnosti systému a metody jejich měření. Metodiky měření výkonnosti moderních systémů. Modelování výkonnosti systému. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI131 Vyhodnocování výkonnosti počítačových systémů   5 2/1 Z+Zk
NSWI150 Virtualizace a cloud computing   3 2/0 Zk