Architektonické a návrhové vzory
| Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
|---|---|---|---|---|
| ANI-ADP | Z,ZK | 5 | 2P+1C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra softwarového inženýrství
- Anotace:
-
Cílem tohoto předmětu je poskytnout studentům praktickou znalost základních principů objektově orientovaného návrhu a jeho analýzy, společně s pochopením výzev, otázek a kompromisů spojených s pokročilým softwarovým návrhem. V první části předmětu si studenti zopakují a prohloubí znalosti týkající se objektově orientovaného programování a seznámí se s nejčastěji používanými návrhovými vzory, které představují nejlepší praktiky řešení typických problémů softwarového návrhu. V druhé části předmětu budou studenti seznámeni s principy návrhu a analýzy softwarové architektury zahrnující klasické architektonické vzory, komponentové systémy a některé pokročilé softwarové architektury rozsáhlých distribuovaných systémů.
Kombinace přednášek a cvičení s využitím e-learningového portálu pro zadávání úloh a školního GitLabu s podporou CI/CD. Důraz je kladen na osvojení praktických dovedností v programování a řešení úloh.
- Požadavky:
-
Pro získání zápočtu je třeba dostatek bodů ze semestrální práce. Zkouška má povinnou písemnou a ústní část.
- Osnova přednášek:
-
1. Rostoucí složitost problémů v kontextu objektově orientovaného paradigmatu, rekapitulace OOP, rekapitulace UML.
2. Charakteristiky dobrého a špatného návrhu. Základní principy objektového návrhu (DRY, KIS, SoC, YAGNI, LoD, ZOI, SOLID).
3. Klasifikace návrhových vzorů. Prezentace vzorů nutných pro implementaci semestrálního projektu.
4. Prezentace vzorů pro vytváření objektů.
5. Prezentace strukturálních vzorů.
6. Prezentace vzorů pro chování objektů.
7. Vzory pro funkcionální programování.
8. Vzory pro konkurentní programování.
9. Principy softwarových architektur a komponentových systémů. Jazyky pro popis architektur.
10. Základní architektonické vzory.
11. Pokročilé architektonické vzory.
12. Map-Reduce a autonomní systémy.
13. Reaktivní programování a aktorový model.
- Osnova cvičení:
-
bude doplněno
- Cíle studia:
-
Cílem tohoto předmětu je poskytnout studentům praktickou znalost základních principů objektově orientovaného návrhu a jeho analýzy, společně s pochopením výzev, otázek a kompromisů spojených s pokročilým softwarovým návrhem. V první části předmětu si studenti zopakují a prohloubí znalosti týkající se objektově orientovaného programování a seznámí se s nejčastěji používanými návrhovými vzory, které představují nejlepší praktiky řešení typických problémů softwarového návrhu. V druhé části předmětu budou studenti seznámeni s principy návrhu a analýzy softwarové architektury zahrnující klasické architektonické vzory, komponentové systémy a některé pokročilé softwarové architektury rozsáhlých distribuovaných systémů.
- Studijní materiály:
-
1. Robert Martin: Clean Architecture: A Craftsman's Guide to Software Structure and Design. Pearson, 2017. ISBN 978-0134494166.
2. Suyanarayana, G. - Smarthyam, G. - Sharma, T.: Refactoring for Software Design Smells: Managing Technical Debt. Elsevier, 2014. ISBN 13: 978-9351073055.
3. Bass, L. - Clements, P. - Kazman, R.: Software Architecture in Practice (3rd Edition). Addison-Wesley, 2012. ISBN 978-0321815736.
4. Buschmann, F. - Meunier, R. - Rohnert, H. - Sommerlad, P. - Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley, 1996. ISBN 978-0-471-95869-7.
- Poznámka:
-
Information about the subject and teaching materials can be found at https://courses.fit.cvut.cz/MI-ADP/ Range: 2p + 1c This course is presented in Czech.
- Další informace:
- https://courses.fit.cvut.cz/MI-ADP
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů: