Arvutiteaduse instituut
Courses.cs.ut.ee Arvutiteaduse instituut Tartu Ülikool
  1. Kursused
  2. 2026/27 sügis
  3. Turvaline tarkvaraarhitektuur (LTAT.05.044)
EN
Logi sisse

Turvaline tarkvaraarhitektuur 2026/27 sügis

  • Main
  • Lectures
  • Project
  • References

Secure Software Architecture

  • Code: LTAT.05.044 (6 EAP)
  • Language: English
  • Lectures: Fridays 12:15-14:00, Narva mnt 18 - 1021
  • Practical sessions: Fridays 14:15-16:00, Narva mnt 18 - 2045
  • Lecturers: Eduardo Ribas Brito, Margus Freudenthal, Andres Ojamaa, Mart Oruaas, Ahto Truu

Secure Software Architecture teaches software architecture with an explicit focus on security. The course is about architectural decision-making, documentation, trade-off analysis, and security reasoning for modern distributed software systems.

Students work in teams on a semester-long architecture project. The goal is not to implement production code. The goal is to produce a coherent architecture package that could guide an implementation team: diagrams, decision records, interface specifications, risk analysis, threat modeling, and deployment/operations reasoning.

Learning outcomes

After completing the course, students should be able to:

  • identify architectural drivers, quality attributes, constraints, and security goals;
  • produce architecture documentation using appropriate views, including C4-style diagrams;
  • design identity, authentication, authorization, and access-control mechanisms for distributed systems;
  • reason about distributed systems trade-offs involving consistency, availability, fault tolerance, and security;
  • design stable and evolvable APIs or event interfaces;
  • apply security requirements, threat modeling, and architectural risk analysis to architecture work;
  • relate architecture to deployment, observability, recovery, and incident response concerns;
  • explain and defend architecture decisions and trade-offs.

Course format

  • Weekly lecture.
  • Weekly practical project session.
  • Project checkpoint presentations.
  • Final architecture package.
  • Oral exam.

Practical sessions are working sessions where students apply the lecture topic to their team project and receive instructor feedback.

Project

The course project is the architecture of a security-critical distributed software system.

The default scenario is a Citizen Services Portal: a single digital entry point for residents to access government services. The system integrates multiple agencies and registries, supports strong digital identity, and must be highly available, auditable, privacy-preserving, and evolvable.

Teams produce architecture and design documentation. No production implementation is required.

Main final artifacts:

  • architecture description;
  • C4 context, container, and selected component views;
  • key architectural mechanisms;
  • API specifications for important interfaces;
  • architecture decision records;
  • risk register;
  • security goals, trust boundaries, and threat model;
  • deployment and observability plan.

Grading

ComponentWeight
Project final documentation50%
Project presentations15%
Oral exam35%

Weekly schedule

Lectures take place on Fridays 12:15-14:00 in Narva mnt 18 - 1021. Practical sessions take place on Fridays 14:15-16:00 in Narva mnt 18 - 2045.

WeekDateLecture focusPractical session focus
104.09Course introduction, software architecture, architectural driversTeam formation, GitHub fork setup, initial discovery
211.09Architecture in the process, risk-based development, Conway's law, microservicesInitial risk register and iteration plan
318.09Architectural requirements, quality attributes, security goalsBusiness goals, NFRs, quality attribute scenarios
425.09Describing architecture, viewpoints, C4, documentation qualityC4 context and container diagrams, documentation skeleton
502.10Distributed systems I: scaling, consistency, transactionsData ownership, consistency model, failure modes
609.10Identity and naming in distributed systemsIdentity model, identifiers, entity lifecycle
716.10Authentication, authorization, access control, delegationAuthN/AuthZ architecture, access-control matrix, threat sketches
823.10Distributed systems II: distributed security and feature interactionThreat modeling distributed features and invariants
930.10Interface design I: API principles, leaky abstractions, HTTP contractsKey API specs and event contracts
1006.11Interface design II: evolvability and API securityInterface change request with compatibility constraints
1113.11Security process, touchpoints, architectural risk analysisARA practice, mitigations, roadmap
1220.11Systems architecture I: deployment, environments, cloudDeployment model, trust boundaries, SLO drafts
1327.11Systems architecture II: observability, backups, recoveryMetrics, logs, traces, backup and restore, incident playbook
1404.12Systems evolution: technical debt, migrations, deprecationDebt register, evolution plan, risk reassessment
1511.12Guest lecture: supply chain security / SBOM / attestationsApply guest topic to the project
1618.12Final presentations and oral exam preparationFinal package submission and cross-team review

Contact

For course content and organizational questions, contact the course lecturers.

For technical problems with the Courses environment, contact the Courses support channel.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused