PV293 Softwarové architectures

Faculty of Informatics
Autumn 2023
Extent and Intensity
0/2/1. 3 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
Teacher(s)
doc. Ing. RNDr. Barbora Bühnová, Ph.D. (lecturer)
Ing. Lukáš Grolig (lecturer)
Guaranteed by
doc. Ing. RNDr. Barbora Bühnová, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable of Seminar Groups
PV293/01: Tue 16:00–17:50 A217, L. Grolig
PV293/02: Tue 18:00–19:50 A217, L. Grolig
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: 55/60, only registered: 2/60, only registered with preference (fields directly associated with the programme): 2/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.
The course is also listed under the following terms Autumn 2024.
  • Enrolment Statistics (Autumn 2023, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2023/PV293