Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Objektový návrh a modelování

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B6B36OMO Z,ZK 6 2P+2C+4D česky
Garant předmětu:
David Kadleček
Přednášející:
David Kadleček
Cvičící:
Daniel Groschup, Miroslav Jarý, David Kadleček, Martin Mašata, Jiří Šebek, Jan Vanke, Jan Zídek, Jan Zubr
Předmět zajišťuje:
katedra počítačů
Anotace:

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.

Požadavky:

Základní znalost programování, základní znalosti matematiky, schopnost exaktního myšlení.

Osnova 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

Osnova 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

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.

Studijní materiály:
Poznámka:

https://cw.fel.cvut.cz/wiki/courses/b6b36omo/start

Další informace:
https://cw.fel.cvut.cz/wiki/courses/B6B36OMO
Rozvrh na zimní semestr 2024/2025:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
místnost T2:H1-130
Jarý M.
09:15–10:45
(přednášková par. 1
paralelka 105)

Dejvice haly
AlgDejvice - Veřejná
místnost KN:E-311
Šebek J.
18:00–19:30
(přednášková par. 1
paralelka 109)

Karlovo nám.
Lab K311
místnost T2:H1-130
Jarý M.
Zídek J.

12:45–14:15
(přednášková par. 1
paralelka 103)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Jarý M.
Zídek J.

14:30–16:00
(přednášková par. 1
paralelka 104)

Dejvice haly
AlgDejvice - Veřejná
místnost KN:E-311
Šebek J.
16:15–17:45
(přednášková par. 1
paralelka 106)

Karlovo nám.
Lab K311
St
místnost KN:E-107
Kadleček D.
14:30–16:00
(přednášková par. 1)
Karlovo nám.
Zengerova posluchárna K1
Čt

místnost T2:H1-130
Groschup D.
09:15–10:45
(přednášková par. 1
paralelka 101)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-130
Groschup D.
11:00–12:30
(přednášková par. 1
paralelka 102)

Dejvice haly
AlgDejvice - Veřejná
místnost T2:H1-131
Zubr J.
Zídek J.

09:15–10:45
(přednášková par. 1
paralelka 107)

Dejvice haly
AlgDejvice
místnost T2:H1-131
Zubr J.
Zídek J.

11:00–12:30
(přednášková par. 1
paralelka 108)

Dejvice haly
AlgDejvice
Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 5. 10. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet3129906.html