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 | — |