Architektonické a návrhové vzory
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
MI-ADP.16 | 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ů.
Od B201 je vypisována nová, ekvivalentní verze předmětu - NI-ADP.
- 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
- Osnova 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).
8 . 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.
- Osnova cvičení:
-
Práce na MVC hře
- 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ů.
Od B201 je vypisována nová, ekvivalentní verze předmětu - NI-ADP.
- Studijní materiály:
-
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
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://moodle-vyuka.cvut.cz/course/view.php?id=2255.
Tento předmět obsahově navazuje na bakalářský předmět Object-Oriented Programming
Vypisována nová, ekvivalentní verze předmětu NI-ADP.
- Další informace:
- https://miadp.fit.cvut.cz
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Mgr. obor Znalostní inženýrství, 2016-2017 (volitelný předmět)
- Mgr. obor Počítačová bezpečnost, 2016-2019 (volitelný předmět)
- Mgr. obor Počítačové systémy a sítě, 2016-2019 (volitelný předmět)
- Mgr. obor Návrh a programování vestavných systémů, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Informační systémy a management, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2016-2019 (povinný předmět zaměření)
- Mgr. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. program Informatika, pro fázi studia bez oboru, 2016-2019 (VO)
- Mgr. obor Systémové programování, zaměření Systémové programování, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Teoretická informatika, 2016-2017 (volitelný předmět)
- Mgr. obor Znalostní inženýrství, 2018-2019 (volitelný předmět)