Nächstes Semester

Softwarearchitektur

Dozent:innen: Dr. Mohammad Sadeq Dousti
Kurzname: Softwarearchitektur
Kurs-Nr.: 08.079.382
Kurstyp: Vorlesung/Übung
Format: online

Voraussetzungen / Organisatorisches

Unbedingt Einführung in die Programmierung, Einführung in die Softwareentwicklung und Software-Engineering/Software-Technik

Empfohlene Literatur


  1. Len Bass, Paul Clements, and Rick Kazman. Software Architecture in Practice, 3rd Edition, Pearson Education Inc., 2013.
  2. Chris Richardson. Microservices Patterns with Examples in Java, Manning, 2019.
  3. Amy Brown, Greg Wilson, Tavish Armstrong, and Michael DiBernardo (Eds.). The Architecture of Open-Source Applications. Four volumes, available at https://aosabook.org.

Inhalt

This course covers material based on the following three objectives:

• Building a solid theoretical understanding of software architecture: The students will learn the definition and importance of software architecture, and how to look at it from four contextual lenses: Technical, Project, Professional, and Business. The technical context covers various quality attributes, such as availability, performance, and security — and how software architecture should address them. The project context looks at software architecture within the software’s lifecycle, such as architecture in agile projects. The professional and business contexts investigate the relation of software architecture to the organization and the industry within which the organization operates.

• Introducing microservice architecture: Although the concept of breaking down software into multiple components that provide service to each other is not new, the microservices architecture has proved to be a quite challenging yet fruitful endeavor. In this part of the course, the students will get acquainted with the advantages and disadvantages of the microservice architecture, as well as its supporting techniques and technologies such as asynchronous messaging, sagas, domain-driven design, event storming, event sourcing, and CQRS. The concepts will be illustrated via a hypothetical case study.

• Investigating the architecture of real-world software: During the tutorial classes, the students will get the chance of looking into the architecture of real-world software, such as Firefox, Moodle, Git, and Eclipse. By brainstorming their architectures through questions like “why” and “what if”, they will learn the impact of architectural decisions on the software’s quality attributes.

Termine

Datum (Wochentag) Zeit Ort
16.04.2021 (Freitag) 12:00 - 14:00 Online
23.04.2021 (Freitag) 12:00 - 14:00 Online
30.04.2021 (Freitag) 12:00 - 14:00 Online
07.05.2021 (Freitag) 12:00 - 14:00 Online
14.05.2021 (Freitag) 12:00 - 14:00 Online
21.05.2021 (Freitag) 12:00 - 14:00 Online
28.05.2021 (Freitag) 12:00 - 14:00 Online
04.06.2021 (Freitag) 12:00 - 14:00 Online
11.06.2021 (Freitag) 12:00 - 14:00 Online
18.06.2021 (Freitag) 12:00 - 14:00 Online
25.06.2021 (Freitag) 12:00 - 14:00 Online
02.07.2021 (Freitag) 12:00 - 14:00 Online
09.07.2021 (Freitag) 12:00 - 14:00 Online
16.07.2021 (Freitag) 12:00 - 14:00 Online