CTU FEE Moodle
Object-oriented design and Modeling
B241 - Winter 2024/2025
This is a grouped Moodle course. It consists of several separate courses that share learning materials, assignments, tests etc. Below you can see information about the individual courses that make up this Moodle course.
Object-oriented design and Modeling - B6B36OMO
Main course
Credits | 6 |
Semesters | Winter |
Completion | Assessment + Examination |
Language of teaching | Czech |
Extent of teaching | 2P+2C+4D |
Annotation
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
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 outlines
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
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
None
Requirements
Základní znalost programování, základní znalosti matematiky, schopnost exaktního myšlení.
Object-oriented Design and Modeling - BD6B36OMO
Credits | 6 |
Semesters | Winter |
Completion | Assessment + Examination |
Language of teaching | undefined |
Extent of teaching | 14KP+6KC |
Annotation
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
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 outlines
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
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
None
Requirements
Základní znalost programování, základní znalosti matematiky, schopnost exaktního myšlení.