Logo webu
Láká tě studium na Unicorn University? Přihlas se na den otevřených dveří a zjisti více informací.

Architektura cloudových aplikací

12 kreditů
Bakalářské
Česky | Anglicky
George Feuerlicht

Rozšíříte si znalosti programování z předmětu Základy softwarového vývoje a naučíte se vyvíjet cloudové aplikace s využitím moderních technologií NodeJS, ExpressJS a React. Předmět se skládá ze čtyř bloků:

Architektura

Seznámení s typickou softwarovou architekturou cloudových aplikací, architekturou MVC (Model-view-controller), běžnou strukturou aplikace a způsobem dokumentace. Poznáte základní funkčnosti a služby, které jsou poskytovány aplikačním serverem, možnosti ukládání dat nebo způsoby komunikace a přenosu dat mezi cloudovými aplikacemi.
Analýza a návrh

Získáte základní znalosti z oblasti analýzy a návrhu softwaru. V průběhu roku se také seznámíte s klíčovými produkty v rámci životního cyklu vývoje softwaru a se základními principy a typologií požadavků na software. V souvislosti s tím si přiblížíte i nejpoužívanější diagramy UML (Unified Modeling Language), jako je use case diagram, sekvenční diagram, diagram aktivit, komponentový diagram, package diagram, ale i základní notace a uuBML. Zároveň získáte kontextové znalosti, osvojíte si základní terminologii a zorientujete se v oblasti datových úložišť a ve způsobu jejich modelování.
Programování

Naučíme vás pokročilejší práci pomocí metod s běžně používanými datovými typy a kolekcemi. S tím souvisí i znalost základů objektově orientovaného programování, ale i náročnější práce s funkcemi. Samozřejmostí je i ošetření chyb pomocí výjimek a práce se soubory primárně ve formátu JSON. Na závěr se seznámíte se zásadami tvorby dokumentace zdrojového kódu.
Algoritmizace

Osvojíte si nejznámější typy algoritmů při řešení implementačních úloh, naučíte se teoretické základy algoritmizace, datovou strukturu a metodu vyhledávání a třídění.

Studijní okruhy

Architektura

Architektura cloudových aplikací
Třívrstvá architektura, architektura MVC, topologie aplikace v rámci uuAppServer, Use Case driven development, controller, model (logika aplikace), DAO (persistence dat).
Komunikace aplikací
Základy REST, strojově čitelné formáty dat a datové struktury pro komunikaci (JSON, XML, CSV).
Aplikační server
Služby (uuCMDs), perzistence (model/dao/data), routing, validace, výjimky, autentizace, autorizace, logování, testování, …).
Uživatelské rozhraní
Základní struktura, komponentový přístup, přehled technologií a frameworků.
Persistence dat
Typy, terminologie, základní principy, základy SQL vs NoSQL databází, praktické ukázky jejich využití. DAO metody a indexy.
Práva v aplikaci
Profily pro UseCase a autorizace v aplikaci, autentizace uživatele přes identitu, hromadná správa uživatelů a práv, možnosti rozšíření.
Logování
Co a jak logovat v aplikacích,  úrovně logování, přístup k logům aplikace.
Práce s binárními daty
Upload a download binárních dat (např. obrázky), persistence binárních dat.
Nasazení aplikace
Základní principy, proces nasazení, produkční vs. vývojové prostředí, nasazení aplikace v nejběžnějších PaaS platformách, nástroje pro podporu nasazení.

Analýza a návrh

Životní cyklus návrhu a vývoje cloudové uuApp
Zadání, HLC, design, implementace, nasazení, provoz.
Objektově orientovaná analýza a návrh
Základní principy, terminologie, UML, rozdíl mezi analýzou a návrhem, kategorizace požadavků (FURPS+).
Vizuální modelování
Formální vs. neformální modelování, notace UML, notace uuBML.
Diagramy UML
Představení jednotlivých typů diagramů, třídní diagram, use case diagram, aktivity diagram, stavový diagram, sekvenční diagram, package a komponentový diagram.
Modelování datového úložiště
Základní principy, typy relací, rozdíl v přístupu modelování mezi SQL a NoSQL.

Algoritmizace

Výpočetní složitost
Časová složitost, prostorová složitost, asymptotická složitost.
Turingův stroj
Zavedení turingova stroje, jeho použití pro výpočetní složitost.
Třídění
Základní principy třídění (stabilita, složitost, atd.), jednoduché třídící metody (selection sort, insertion sort, bubble sort, atd.).
Vyhledávání
Vyhledávací struktura, vyhledávací operace nad seznamem a polem (včetně binárního a interpolačního vyhledávání), binární vyhledávací strom, AVL strom a jeho vlastnosti.
Bitové operace a hashování
Bitové operace, interpretace binárních čísel, hashování a odpovídající datová struktura.

Programování

Opakování a rozšíření základní syntaxe JavaScriptu
Zopakování programovacích konstrukcí, seznámení se s dalšími syntaktickými prostředky jazyka JavaScript pro jejich implementaci, základy práce s dokumentací JavaScriptu.
Objektově orientované programování
Třídy, konstruktory, dědičnost, polymorfismus a rozhraní, možnosti vícenásobné dědičnosti (mixiny), objekty a klíčové slovo this.
Modulárnost aplikace
Dělení aplikace do modulů (require vs import, export), viditelnost proměnných, objektů a funkcí, práce s moduly.
Práce se soubory, datovými typy a pokročilá asynchronnost
Moduly Node.js pro práci se soubory, pokročilá práce s asynchronními úlohami (async/await, Promise), JSON formát.
Pokročilá práce s kolekcemi
Práce s poli, asociativními poli a množinami pomocí vestavěných metod. Immutabilita a reference.
Výjimky a zpracování chyb
Úvod do práce s výjimkami, bloky try-catch-finally.
Pokročilejší práce s řetězci
Pokročilejší práce s řetězci pomocí vestavěných metod, regulární výrazy, použití regulárních výrazů v JavaScriptu.
Testování a dokumentace
Typy testů, proces testování (příprava testu, provedení a vyhodnocení), tvorba unit testů a zásady dokumentace zdrojového kódu.
document_check.svg
Na těchto webových stránkách používáme soubory cookies k zajištění jejich funkčnosti a dále k personalizaci reklam, a to výhradně s vaším souhlasem a v souladu s našimi Pravidly pro užívání cookies.

Kliknutím na tlačítko „Přijmout soubory cookies“ udělujete souhlas s využívaním vybraných souborů cookies a souhlasíte s předáním údajů o chování na našich webových stránkách pro zobrazení cílené reklamy na sociálních a reklamních sítích. Můžete si zvolit, které informace s námi chcete sdílet kliknutím na tlačítko Nastavení cookies.