Subject description - B6B36OMO
Summary of Study |
Summary of Branches |
All Subject Groups |
All Subjects |
List of Roles |
Explanatory Notes
Instructions
B6B36OMO | Object-oriented design and Modeling | ||
---|---|---|---|
Roles: | PZ, P | Extent of teaching: | 2P+2C+4D |
Department: | 13136 | Language of teaching: | CS |
Guarantors: | Kadleček D. | Completion: | Z,ZK |
Lecturers: | Kadleček D. | Credits: | 6 |
Tutors: | Too many persons | Semester: | Z |
Web page:
https://cw.fel.cvut.cz/wiki/courses/B6B36OMOAnotation:
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.Study targets:
Porozumění základním principům objektového přístupu, schopnost jejich správné aplikace ve středně složitých situacích.Course outlines:
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 |
Exercises outline:
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 |
Literature:
Requirements:
Základní znalost programování, základní znalosti matematiky, schopnost exaktního myšlení. Subject is included into these academic programs:Program | Branch | Role | Recommended semester |
BPSIT | Common courses | P | 3 |
BPOI3_2018 | Software | PZ | 3 |
BPSIT_2021 | Common courses | P | 3 |
BPSIT4_2021 | Technologie internetu věcí | P | 3 |
BPSIT3_2021 | Business informatics | P | 3 |
BPSIT2_2021 | Technologie pro multimédia a virtuální realitu | P | 3 |
BPSIT1_2021 | Enterprise systémy | P | 3 |
Page updated 21.11.2024 09:52:34, semester: Z/2024-5, L/2023-4, Z/2025-6, L/2024-5, Send comments about the content to the Administrators of the Academic Programs | Proposal and Realization: I. Halaška (K336), J. Novák (K336) |