Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2 značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
MI-ADP.16 | Architektonické a návrhové vzory | Rozsah kontaktní výuky: | 2P+1C | ||
---|---|---|---|---|---|
Vyučující: | Způsob zakončení: | Z,ZK | |||
Zodpovědná katedra: | 18102 | ECTS Kredity: | 5 | Semestr: | Z |
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ů.
Od B201 je vypisována nová, ekvivalentní verze předmětu - NI-ADP.
Osnovy přednášek:
1. | Základy objektově orientovaného programování. | |
2. | Charakteristiky dobrého a špatného návrhu. Základní principy objektového návrhu (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion). | |
3. | Klasifikace návrhových vzorů. Prezentace vytvářecích vzorů (Factories, Builder, Prototype, Singleton). | |
4. | Prezentace strukturálních vzorů (Adapter, Bridge, Composite, Decorator, Facade, Proxy). | |
5. | Prezentace vzorů pro chování objektů (Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template method, Visitor). | |
6. | Principy softwarových architektur a komponentových systémů. | |
6. | Jazyky pro popis architektur. Architektonické návrhové vzory pro distribuované aplikace. | |
7. | Základní architektonické vzory (Monolithic application, Client-server, Multi-tiers, Component-based, Event-driven, Pipes and filters, Peer-to-peer, Plug-ins). |
9. | Pokročilé architektonické vzory (Service-oriented, Blackboard, Data-centric application, Representational state transfer - REST, Shared nothing architecture, Space-based architecture). | |
10. | Specializované návrhové vzory (Map-Reduce). | |
11. | Reaktivní architektury. | |
12. | Autonomické architektury. |
Osnovy cvičení:
Práce na MVC hře
Literatura:
1. | Gamma, E. - Helm, R. - Johnson, R. - Vlissides, J. M.: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994, ISBN 0201633612 | |
2. | Buschmann, F. - Meunier, R. - Rohnert, H. - Sommerlad, P. - Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns, Wiley, 1996, ISBN 978-0321815736 | |
3. | Bass, L. - Clements, P. - Kazman, R.: Software Architecture in Practice (3rd Edition), Addison-Wesley, 2012, ISBN 978-03218157364. | |
4. | Martin, R. C.: Agile Software Development, Principles, Patterns, and Practices, Prentice Hall, 2002, ISBN 0135974445 |
Požadavky:
Předpokládá se znalost práce s operačními systémy typu Unix/Linux a MS Windows na běžné uživatelské úrovni, aktivní znalost nějakého programovacího jazyka, schopnost algoritmického popisu řešení problému a základní znalost UML. # Materiály pro výuku předmětu během semestru jsou na webové stránce https://courses.fit.cvut.cz/MI-ADP
|
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 19. 4. 2024, semestry: Z/2021-2, Z/2023-4, Z/2022-3, Z/2019-20, Z/2024-5, L/2021-2, L/2020-1, L/2022-3, L/2023-4, Z/2020-1, L/2019-20, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: J. Novák, I. Halaška |