FI:PV293 Softwarové architectures - Course Information
PV293 Softwarové architectures
Faculty of InformaticsAutumn 2024
- Extent and Intensity
- 0/2/1. 3 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
In-person direct teaching - Teacher(s)
- doc. Ing. RNDr. Barbora Bühnová, Ph.D. (lecturer)
Ing. Lukáš Grolig (lecturer)
Bc. Erik Báča (seminar tutor)
Filip Kaštovský (seminar tutor)
Bc. Josef Krušina (seminar tutor)
Ing. Dominik Lašo (seminar tutor)
Ing. Marek Mišík (seminar tutor)
Ing. Petr Šlézar (seminar tutor) - Guaranteed by
- Ing. Lukáš Grolig
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Wed 25. 9. to Wed 18. 12. Wed 18:00–19:50 D2
- Timetable of Seminar Groups:
PV293/02_CSharp: Tue 24. 9. to Tue 17. 12. Tue 16:00–17:50 B204, E. Báča
PV293/03_CSharp: Tue 24. 9. to Tue 19. 11. Tue 18:00–19:50 C511, Tue 26. 11. to Tue 17. 12. Tue 18:00–19:50 S209, P. Šlézar
PV293/04_Typescript: Thu 26. 9. to Thu 21. 11. Thu 18:00–19:50 C511, Thu 28. 11. to Thu 19. 12. Thu 18:00–19:50 S209, F. Kaštovský
PV293/05_Typescript: Tue 24. 9. to Tue 17. 12. Tue 18:00–19:50 B204, J. Krušina
PV293/06_Java_Kotlin: Tue 24. 9. to Tue 17. 12. Tue 18:00–19:50 B410, M. Mišík - Prerequisites
- Basic knowledge of software engineering, databases, and experience with object-oriented and functional programming are expected for successful completion of the course. Students should be familiar with C#, Java, Javascript and the React framework.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 60 student(s).
Current registration and enrolment status: enrolled: 64/60, only registered: 15/60, only registered with preference (fields directly associated with the programme): 11/60 - fields of study / plans the course is directly associated with
- there are 21 fields of study the course is directly associated with, display
- Course objectives
- The course aims to introduce students to the process of designing software system architectures with an understanding of the impact of architectural decisions on the resulting system, and to teach them to use Domain Driven Design (DDD). Students will learn about architectural patterns, their variations and characteristics such as scalability, reliability, tunability, monitoring, cost of operation and implementation complexity. For each pattern, students will be able to formulate implementation recommendations and identify potential problems. During the course, students will practice implementing each architecture and important components in a specific language (C#, Javascript/Typescript).
- Learning outcomes
- Upon completion of the course, the student will be able to:
- apply the principles of DDD, DDD-based software design and their impact on implementation
- assess the advantages and disadvantages of specific architectures
- select the appropriate architecture and approaches for a given system
- determine the expected characteristics of the system according to the chosen architecture
- understand agile approaches to application architecture - Syllabus
- - Introduction to large-scale application architecture: architectural process, roles and tasks of the architect.
- - Domain Driven Design (DDD):
- - a. Strategic design
- - b. Tactical design
- - Monolithic Architecture:
- - a. Layered architecture
- - b. Pipeline architecture
- - c. Microkernel architecture
- - d. Plug-in architecture
- - Service-oriented architectures:
- - a. Service-based architecture
- - b. Microservices
- - c. Sidecar architecture
- - d. Service mesh architecture
- - Event-driven architectures
- - Serverless architecture
- Teaching methods
- Teaching is done through pre-recorded videos (replacing the lecture) that cover individual topics. Exercises take the form of group sessions (group exercises) focused on a specific programming language, where the tutor demonstrates the implementation of the architecture in that language (groups by language). Students will master the material through interactive online exercises, tests and project implementation.
- Assessment methods
- The evaluation of students consists in the continuous preparation of five tests (max. 35 points), which include knowledge from lectures and exercises. In addition, a project focusing on the design and implementation of key parts of the selected system is assessed, which consists of an essay part (25 points) and an implementation part (40 points). The essay focuses on reflections on the proposed system, while the implementation part assesses the execution of important parts of the system.
- Language of instruction
- Czech
- Further comments (probably available only in Czech)
- Study Materials
The course is taught annually. - Teacher's information
- The course assumes a considerable amount of extra independent work in studying the technologies used, their (English written) specifications and other resources. Materials are available in Czech and English. In the final project, the essay will be graded first, and then the student can proceed to implementation.
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2024/PV293