PV293 Software Architectures

Faculty of Informatics
Autumn 2025
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)
Ing. Lukáš Grolig (lecturer)
Ing. Erik Báča (seminar tutor)
Filip Kaštovský (seminar tutor)
Bc. Jakub Košvanec (seminar tutor)
Ing. Josef Krušina (seminar tutor)
Ing. Marek Mišík (seminar tutor)
Ing. Adam Zálešák (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
Fri 19. 9. to Fri 19. 12. Fri 8:00–9:50 A217
  • Timetable of Seminar Groups:
PV293/01: Tue 16. 9. to Tue 16. 12. Tue 18:00–19:50 A321, E. Báča
PV293/02: Wed 17. 9. to Wed 17. 12. Wed 10:00–11:50 A220, J. Košvanec
PV293/03: Thu 18. 9. to Thu 18. 12. Thu 18:00–19:50 A321, J. Krušina
PV293/04: Mon 15. 9. to Mon 15. 12. Mon 18:00–19:50 A321, F. Kaštovský
PV293/05: Tue 16. 9. to Tue 16. 12. Tue 18:00–19:50 C408, M. Mišík
PV293/06: Mon 15. 9. to Mon 15. 12. Mon 18:00–19:50 C408, A. Zálešá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: 93/60, only registered: 8/60, only registered with preference (fields directly associated with the programme): 6/60
fields of study / plans the course is directly associated with
there are 22 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, Java).
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 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 two tests, which include knowledge from lectures and exercises. In addition, there is a project focusing on the design and implementation of key parts of a selected 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. Project is delivered in milestones. All milestones must be fufilled.
The course is also listed under the following terms Autumn 2023, Autumn 2024.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2025/PV293