Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2025/2026

Architectural and Design Patterns

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
ANIE-ADP Z,ZK 5 2P+1C anglicky
Garant předmětu:
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra softwarového inženýrství
Anotace:

The objective of this course is to provide students with both work knowledge about the underlying foundations of object-oriented design and analysis as well as with understanding of the challenges, issues, and tradeoffs of advanced software design.

In the first part of the course, the students will refresh and deepen their knowledge of object-oriented programming and get familiar with the commonly used object-oriented design patterns that represent the best practices for solving common software design problems. In the second part the students will be introduced to the principles of software architecture design and analysis. This includes the classical architectural styles, component based systems, and some advanced software architectures used in large-scale distributed systems.

Požadavky:
Osnova přednášek:

1. Increasing complexity of problems in an OO paradigm, recapitulation of OOP and UML.

2. Good and bad design. Basic principles of object design (DRY, KIS, SoC, YAGNI, LoD, ZOI, SOLID).

3. Classification of design patterns. Patterns necessary for implementation of a semester project.

4. Presentation of patterns for creating objects.

5. Presentation of structural patterns.

6. Presentation of patterns for object behavior.

7. Patterns for functional programming.

8. Patterns for concurent programming.

9. Principles of software architectures and component systems. Languages for describing architectures.

10. Basic architectural patterns.

11. Advanced architectural patterns.

12. Map-Reduce and autonomous systems.

13. Reactive programming and actor model.

Osnova cvičení:

bude doplněno

Cíle studia:

The objective of this course is to provide students with both work knowledge about the underlying foundations of object-oriented design and analysis as well as with understanding of the challenges, issues, and tradeoffs of advanced software design.

In the first part of the course, the students will refresh and deepen their knowledge of object-oriented programming and get familiar with the commonly used object-oriented design patterns that represent the best practices for solving common software design problems. In the second part the students will be introduced to the principles of software architecture design and analysis. This includes the classical architectural styles, component based systems, and some advanced software architectures used in large-scale distributed systems.

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 English.

Další informace:
https://courses.fit.cvut.cz/NI-ADP/index.html
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 25. 12. 2025
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet8579006.html