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í

6 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 tří 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.

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.

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.