Popis předmětu - BD6B36OMO
| BD6B36OMO | Objektový návrh a modelování | ||
|---|---|---|---|
| Role: | P | Rozsah výuky: | 14KP+6KC |
| Katedra: | 13136 | Jazyk výuky: | |
| Garanti: | Zakončení: | Z,ZK | |
| Přednášející: | Kreditů: | 6 | |
| Cvičící: | Semestr: | Z | |
Webová stránka:
https://cw.fel.cvut.cz/wiki/courses/BD6B36OMOAnotace:
V dnešní době se ukazuje, že neexistuje jediný správný přístup pro modelování a implementaci softwarové aplikace. Namísto toho je vhodné problém dekomponovat a na jednotlivé moduly, vrstvy, podproblémy aplikovat pro ně vhodné přístupy. Tento předmět ukazuje jak využít objektového a funkcionálního programování, principů z mikroservisních a reaktivních architektur pro návrh moderních aplikací, které nejen fungují, ale splňují i nefunkční požadavky na modularitu, flexibilitu, rozšiřitelnost, škálovatelnost, performance a vysokou dostupnost.Cíle studia:
Porozumění základním principům objektového přístupu, schopnost jejich správné aplikace ve středně složitých situacích.Osnovy přednášek:
| 1. | Klíčové koncepty modelování software - funkcionální versus objektový přístup, reprezentace, dekompozice, abstrakce, hierarchie | |
| 2. | Abstraktní datové typy, imutabilita | |
| 3. | Objektově orientovaný přístup pro modelování - třídy, dědičnost, kompozice, polymorfismus | |
| 4. | Funkcionální přístupy pro modelování unkcionálního programování - pure funkce a funkce vyššího řádu, lambda expressions, closures, currying, transparentnost reprezentace | |
| 5. | Objektově orientované návrhové vzory pro vytváření objektů | |
| 6. | Objektově orientované návrhové vzory pro reprezentaci struktury objektů | |
| 7. | Objektově orientované návrhové vzory pro chování objektů | |
| 8. | Návrhové vzory pro reprezentaci a práci s datovými strukturami | |
| 9. | Map, filter, reduce v Java | |
| 10. | Map, filter, reduce pattern v NoSQL světě | |
| 11. | Návrhové vzory v mikroservisním světě - agregace, orchestrace, eventuální konzistence, sága, event sourcing, materialized view | |
| 12. | Návrhové vzory pro reaktivní architekturu - circuit breaker, backpreassure, CQRS, promisy a monády | |
| 13. | Generika v Java | |
| 14. | Specifikace a návrh API - Api gateway, rest, swagger, graphQL |
Osnovy cvičení:
| 1. | Úvod | |
| 2. | Jak v Java na Objekty, Třídy, instance a atributy | |
| 3. | Polymorfismus a dědičnost v Java, modularita | |
| 4. | Skládání vs. Dědičnost, implementace objektového návrhu | |
| 5. | Návrhový vzor adaptér a iterátor | |
| 6. | Návrhový vzor state a strategy | |
| 7. | Návrhový vzory abstract factory, factory method a dependency injection | |
| 8. | Návrhový vzor Interpreter a visitor | |
| 9. | Návrhový vzor Observer | |
| 10. | Map, filter, reduce | |
| 11. | Generika | |
| 12. | Specifikace API a swagger | |
| 13. | CQRS a event sourcing |
Literatura:
Požadavky:
Základní znalost programování, základní znalosti matematiky, schopnost exaktního myšlení.Poznámka:
| https://cw.fel.cvut.cz/wiki/courses/bd6b36omo/start |
Předmět je zahrnut do těchto studijních plánů:
| Plán | Obor | Role | Dop. semestr |
| BKSIT | Před zařazením do oboru | P | 3 |
| Stránka vytvořena 13.11.2025 12:51:06, semestry: Z,L/2026-7, Z/2025-6, L/2024-5, L/2025-6, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: I. Halaška (K336), J. Novák (K336) |