# **NSWI130** Architektury softwarových systémů

<{Box(infobox)}>
|-----|-----|
| **Učitel:** | [prof. Mgr. Martin Nečaský, Ph.D.](https://www.mff.cuni.cz/cs/fakulta/organizacni-struktura/lide?hdl=3277) |
| **Odkaz do SISu:** | [NSWI130](https://is.cuni.cz/studium/predmety/index.php?do=predmet&kod=NSWI130) |
| Kredity | 5 (Zk + Z) |
| Zkouška | písemná (90 min) |
<{/Box}>

## Studijní materiály
### Záznamy
- [Záznamy přednášek](https://cunicz-my.sharepoint.com/shared?id=%2Fpersonal%2F11165798%5Fcuni%5Fcz%2FDocuments%2FNSWI130%2FNSWI130%2Dstudents%2D25%2Flectures&listurl=%2Fpersonal%2F11165798%5Fcuni%5Fcz%2FDocuments&shareLink=1&ga=1)
- ![Souhrn pdf](/NSWI130/Architektury_softwarovych_systemu_exam.pdf)

## Zakončení předmětu
### Zápočet
V průběhu semestru se pracuje v týmech po 5/6 lidech na architektuře přiděleného modulu studijního informačního systému, zápočet je udělen po splnění obou milestones, také je potřeba oba milestones odprezentovat 
<{Details(Milestone 1)}>
Documentation of your architecture in the repository:
- title and a short description of your system
- N different features, where N is the number of members of the team, for each feature:
    - title, user story
    - user story breakdown into user-system interaction
    - responsibilities based on the breakdown
- C4 model of the architecture with the following diagrams:
    - one L1 diagram, one L2 diagram (can be split into more if necessary)
    - one L3 diagram for each container from L2
    - one dynamic diagram for each feature (i.e. N dynamic diagrams)
    - two deployment diagrams (one is development or testing, one is production)
- Assignment of the responsibilities to containers/components in the C4 architecture documentation

Presentation of your architecture (12-13mins long):
- start with the name of your project and the names of the team members
- present an overview of the features (2mins)
    - show who worked on what features (no need to explain, just show it on the slides with the features)
- present an overview of the responsibilities based on the features (2mins)
    - present them grouped logically based on the groupings from the practicals
- present your architecture in the C4 model
    - start with L1, then continue to L2, explain all containers and relationships between them (4mins)
        - show who worked on what at the L2 level (no neet to explain, just show it on the slides)
    - select one or two most interesting containers from L2 and explain their components at L3 (2mins)
    - show one dynamic diagram and explain it shortly, show who worked on it (1mins)
    - show one deployment diagram and explain it shortly, show who worked on it (2mins)
<{/Details}>
<{Details(Milestone 2)}>
Documentation of the quality requirements and architectural changes in your repository:
Describe 2*n quality requirement scenarios for at least n quality dimensions.
- n = number of team members
- \>= n/2 quality requirement scenarios in design-time attributes (modifiability, testability, interoperability)
- <= 3*n/2 quality requirement scenarios in run-time attributes (performance, availability, scalability, security)

For each scenario, decide if the architecture needs to be updated.
- Use the architectural styles and tactics from the lecture.
- If yes, update the C4 model and explain
- If not, explain why the current architecture can fulfill the scenario

Presentation:
- start with the name of your previous project and the new project + the names of the team members
- present n quality requirement scenarios, one per team member, and for each explain:
    - what quality attribute it is
    - who worked on it (only have it on the slide, do not read it)
    - show and explain the scenario
    - explain its impact on the architecture (Is there an impact? If no, why? If yes, show the updated part of the architecture and explain)
<{/Details}>
### Zkouška
Zkouška je formou písemného testu, na který je 90 minut. Asi polovina otázek je na teoretické znalosti z přednášek, zbývající část ověřuje spíše praktičtější dovednosti ze cvičení, typicky nadesignovat architekturu malého systému a jeho quality requirements

#### 2025/2026
- [Nečaský 3.2. 2026](/NSWI130/Zkouška%20Nečaský%203.2.%202026)
- [Nečaský 20.1. 2026](/NSWI130/Zkouška%20Nečaský%2020.1.%202026)
- [Nečaský 13.1. 2026](/NSWI130/Zkouška%20Nečaský%2013.1.%202026)
