Die Anforderungen an die Struktur und Langlebigkeit von Softwaresystemen haben sich mit wachsender Systemkomplexität und zunehmender Teamgröße deutlich verschärft. Software Architektur beschäftigt sich mit den grundlegenden Entscheidungen, die bestimmen, wie ein System aufgebaut, erweitert und gewartet werden kann. Architekturentscheidungen haben weitreichende Konsequenzen für die Qualität, Skalierbarkeit und Kostenstruktur eines Systems.
Kursinhalt1. Architekturstile und Strukturmuster
- Monolith, Microservices und modulare Architekturen im Vergleich
- Schichtenarchitektur und Hexagonale Architektur
- Event-driven Architecture und CQRS-Grundkonzepte
2. Entwurfsprinzipien und SOLID
- Bedeutung der SOLID-Prinzipien für die Systemgestaltung
- Separation of Concerns und Dependency Inversion
- Auswirkungen von Kopplung und Kohäsion auf Wartbarkeit
3. Dokumentation und Kommunikation von Architekturen
- Architekturdiagramme mit dem C4-Modell erstellen
- Entscheidungsdokumentation mit Architecture Decision Records
- Kommunikation von Architekturentscheidungen im Team
4. Qualitätsmerkmale und Architektur-Trade-offs
- Skalierbarkeit, Verfügbarkeit und Fehlertoleranz als Designziele
- Abwägung konkurrierender Qualitätsanforderungen
- Technische Schulden erkennen und strukturiert abbauen
Berufliche Relevanz
- Architekturkenntnisse sind Voraussetzung für Rollen als Lead Developer, Solution Architect oder technische Projektverantwortliche
- Das Verständnis von Architekturentscheidungen befähigt Entwicklerinnen und Entwickler, langfristig tragfähige Systeme zu gestalten
- Die Fähigkeit, Systementwürfe zu kommunizieren und zu dokumentieren, ist in teamübergreifenden Projekten ein wesentlicher Erfolgsfaktor