diff --git a/.gitignore b/.gitignore
index 4e7cc61c5c38f407499b0c204bd89395970a3e56..bf69acdd32bbc0d642066a056ea6f2eb90b4f2f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,3 +55,23 @@ com_crashlytics_export_strings.xml
 crashlytics.properties
 crashlytics-build.properties
 fabric.properties
+
+# macOS gitignore
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
\ No newline at end of file
diff --git a/website/assignments/Softwarearchitektur.md b/website/assignments/Softwarearchitektur.md
new file mode 100644
index 0000000000000000000000000000000000000000..4a59eb9e5e6407dc268528e892b16ed18798e626
--- /dev/null
+++ b/website/assignments/Softwarearchitektur.md
@@ -0,0 +1,26 @@
+# Ãœbungen Software-Entwicklung 3: Software-Architektur
+
+## Ausgangslage
+Nachdem Sie letzte Woche sich überlegt haben, welches Thema Sie bearbeiten wollen, sollen Sie nun in erste Umsetzungen starten. 
+
+## Aufgabe
+* Überlegen Sie sich welche Teilkomponenten für Ihre Projektaufgabe notwendig sind.
+* Identifzieren Sie zusammengehörige Komponenten und bündeln diese. Erstellen Sie für z.B. ein Klassendiagramm.
+* Definieren Sie, wie die Kommunikation zwischen diesen Komponenten stattfinden soll. Achten Sie auf Austauschbarkeit und Erweiterbarkeit.
+* Denken Sie darüber nach, welche Teile Ihres Projekts besonders verlässlich bzgl. der Schnittstelle sind.
+* Unterteilen Sie Ihr Projekt in `packages`. Nutzen Sie zur Zugriffssteuerung die verschiedenen Sichtbarkeiten für Klassen.
+* Nutzen Sie `Interfaces` und `Factories` zur Kapselung und Modularisierung.
+
+## Tipps
+* Beginnen Sie mit der einfachsten Umsetzung Ihrer Kernanforderungen. Fangen Sie erst im Anschluss mit der Strukturierung/Modularisierung Ihres Projekts an
+* Schauen Sie in das [Vorlesungsprojekt](https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022projekt). Hier finden Sie eine Möglichkeit wie Sie ihr Projekt untergliedern und modularisieren können.
+* **Wichtig für später**: Erstellen Sie Ihr Java-Projekt mit Maven.
+* Stellen Sie sich vor, dass Ihre Module als einzelne Artefakte deploybar sein sollen.
+* Wenn Sie möchten, schauen Sie sich Informationen zu Java Modules an und überlegen sich, ob sie diese für Ihr Projekt einsetzen wollen.
+
+## Ziele
+* Grundstruktur Ihres Projekts steht.
+* Aufteilung in modulare Einheiten.
+* Nutzen von Interfaces statt konkreter Implementierung.
+* Nutzung von Factories.
+
diff --git a/website/img/softwarearchitektur/big_ball_of_mud.png b/website/img/softwarearchitektur/big_ball_of_mud.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7624fc09e7894b851ab7581e1c3b7753d9d9f7f
Binary files /dev/null and b/website/img/softwarearchitektur/big_ball_of_mud.png differ
diff --git a/website/img/softwarearchitektur/saturn_v_collage.jpg b/website/img/softwarearchitektur/saturn_v_collage.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b2ad747f321fe25b93e3b5bba755aac5d7345afc
Binary files /dev/null and b/website/img/softwarearchitektur/saturn_v_collage.jpg differ
diff --git a/website/img/software_product_quality.png b/website/img/softwarearchitektur/software_product_quality.png
similarity index 100%
rename from website/img/software_product_quality.png
rename to website/img/softwarearchitektur/software_product_quality.png
diff --git a/website/index.html b/website/index.html
index 428fd71f8fcfa9a819eafbd3b3add86c19ba9d4a..4a8eb532cf03815b066c23ec734b0d172df71634 100644
--- a/website/index.html
+++ b/website/index.html
@@ -17,6 +17,7 @@
     <h3>Vorlesungnotizen</h3>
     <ul>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220321.md" target="_blank">Vorlesungsnotizen - 21.03.2022</a></li>
+        <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220328.md" target="_blank">Vorlesungsnotizen - 28.03.2022</a></li>
     </ul>
 
     <h3>Projekt</h3>
@@ -25,6 +26,7 @@
         <li><a href="projektideen.html" target="_blank">Projektideen/ Vorschläge</a></li>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/Projektbeschreibung.md" target="_blank">Projektbeschreibung</a> </li>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/Anforderungsanalyse.md" target="_blank">Ãœbung: Anforderungsanalyse</a> </li>
+        <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/Softwarearchitektur.md" target="_blank">Ãœbung: Softwarearchitektur</a> </li>
     </ul>
 
     <h3>Organisatorisches</h3>
diff --git a/website/lecturenotes/20220328.md b/website/lecturenotes/20220328.md
new file mode 100644
index 0000000000000000000000000000000000000000..9a53a60bb8514d6b8b0bb984ca78013c5e3a6e49
--- /dev/null
+++ b/website/lecturenotes/20220328.md
@@ -0,0 +1 @@
+# Vorlesungsnotizen - 28.03.2022
\ No newline at end of file
diff --git a/website/softwarearchitektur.html b/website/softwarearchitektur.html
index 3bf2dca9419aa54d8713ed06603319c462f2d883..db321d5f437ccac1d0320ea6fe2d24674d6be772 100644
--- a/website/softwarearchitektur.html
+++ b/website/softwarearchitektur.html
@@ -1,8 +1,9 @@
 <!DOCTYPE html>
 <html>
   <head>
-    <title>Title</title>
+    <title>Softwarearchitektur</title>
     <meta charset="utf-8">
+    <link href="css/hdm.css" rel="stylesheet"></link>
     <style>
       @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
       @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@@ -19,7 +20,7 @@
   <body>
     <textarea id="source">
 
-class: center, middle
+class: center, middle, first
 
 # Software-Entwicklung 3
 
@@ -30,8 +31,10 @@ class: center, middle
 # Agenda
 
 1. Recap
-
-Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Architekturmuster, Wie wird Code strukturiert?, Wie Code dokumentiert und warum ist das wichtig? UML-Klassendiagramme
+2. Warum Softwarearchitektur?
+3. Grundfertigkeiten Softwarearchitekt:innen
+4. Basisprinzipien
+5. Praktische Umsetzung im Demo-Projekt
 
 ---
 
@@ -43,6 +46,8 @@ Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Arch
 * Methoden zur Anforderungsanalyse
 * Projektarbeit
 
+> Blick ins [Repository](https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022projekt)
+
 ---
 
 # Recap: SE1 & SE2
@@ -55,9 +60,18 @@ Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Arch
 
 ---
 
+# Beispiel: Lego Saturn V
+
+<img src="img/softwarearchitektur/saturn_v_collage.jpg" width="80%"/>
+---
+
 # Warum ist Softwarearchitektur notwendig?
 
-(Bild einfügen: "Big ball of mud")
+
+![Big Ball of Mud](img/softwarearchitektur/big_ball_of_mud.png)
+
+
+_(nach "Software-Architektur", O. Vogel, I. Arnold et al., Springer, 2009)_
 
 ---
 
@@ -68,7 +82,7 @@ Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Arch
 * Aggregation
 * Generalisierung/Spezialisierung
 * Realisierung
-
+---
 # Warum ist Softwarearchitektur notwendig?
 
 **Komplexität beherrschen**
@@ -87,6 +101,8 @@ Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Arch
 * Beziehung zwischen den Bestandteile
 * Gerüst auf dem Anforderungen umgesetzt werden
 
+> Problem: Softwarearchitektur meistens nicht von "außen" ersichtlich.
+
 ---
 
 # Grundfertigkeiten Softwarearchitekt:innen
@@ -94,16 +110,11 @@ Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Arch
 * Generalisierung: Abstraktionsvermögen
 * Zusammenhänge erkennen
 * Muster kennen und erkennen
+* Entwicklungserfahrung
 * Spezialisierung: Zerlegung in Teilprobleme
-* Zuhören
 * Erfahrungsschatz: Aus Erfolgen und Fehlern lernen
-* Kommunikationsfähigkeit
-
----
-
-# Beispiel: Lego Saturn V
-
-(Bilder einfügen)
+* Kommunikationsfähigkeit und zuhören können
+* Implizites explizit machen
 
 ---
 
@@ -111,9 +122,9 @@ Was ist Softwarearchitektur?, Design Pattern Ãœberblick, Systemarchitektur, Arch
 
 ## Software Product Quality
 
-![Software Product Quality](img/software_product_quality.png)
+<img alt="Software Product Quality" src="img/softwarearchitektur/software_product_quality.png" width="110%"/>
 
-_nach: ISO/IEC 25010, https://iso25000.com/index.php/en/iso-25000-standards/iso-25010_
+_nach: "Software Product Quality", ISO/IEC 25010, https://iso25000.com/index.php/en/iso-25000-standards/iso-25010_
 
 ---
 
@@ -125,7 +136,7 @@ _nach: ISO/IEC 25010, https://iso25000.com/index.php/en/iso-25000-standards/iso-
 * Herangehensweisen:
   * Top-Down ("Teile und Herrsche")
   * Bottom-up
-  * Design to test
+  * Design to test (TDD)
 
 ---
 
@@ -133,7 +144,9 @@ _nach: ISO/IEC 25010, https://iso25000.com/index.php/en/iso-25000-standards/iso-
 
 * Wer kommuniziert mit wem?
 * Wie ist die Kommunikationsrichtung zwischen Modulen?
+* Identifikation von "stabilen" Komponenten: Zählen von eingehenden Abhängigkeiten.
 * Wahrung von Austauschbarkeit
+* **Bitte vermeiden**: Zirkuläre Abhängigkeiten
 
 
 ---
@@ -175,7 +188,6 @@ MyInterface a = new MyImplementation();
 ```
 
 * Welche Variante ist besser? Warum?
-* Wie heißt das Prinzip?
 
 ---
 
@@ -209,18 +221,26 @@ public Person getPerson(int personId){
 
 ---
 
-# Basisprinzip: Loose Coupling and Strong Cohesion
-
+# Projekt: Praktische Umsetzung
 
----
+* Klassendiagramm als Ausgangslage
+* Identifikation möglicher Komponenten
+* Pattern: (Abstract) Factory
 
-# Basisprinzip: Dependency Injection
-
-* Objekte erzeugen ihre Abhängigkeiten nicht selbst
-* Dies wird von einem sog. `Injector` übernommen
-* Ziel ist die Reduktion und Zentralisierung von Abhängigkeiten
+> Blick ins [Repository](https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022projekt)
 
+---
+# Notes
 
+* Umsetzen der Anforderungen in Code
+* Einteilen in Packages
+* Ggf. Java Modules
+* Richtiges Maven Projekt wählen
+* In einzeln deploybare Artefakten denken
+* Stabile Teile im Code: Zählen von Abhängigkeiten
+* Nach außen mit Interfaces kommunizieren
+* Abstract Factory
+* Issues mit Code verlinken
 
     </textarea>
     <script src="https://remarkjs.com/downloads/remark-latest.min.js">