SoftwareArchitektur
Softwarearchitektur beschreibt die grundlegende Organisation eines Softwaresystems auf einer hohen Abstraktionsebene. Sie legt die Subsysteme, deren Komponenten, deren Schnittstellen und die Kommunikations- sowie Laufzeitstrukturen fest. Architektur dient als Rahmen, der spätere Entscheidungen über Technologie, Plattform und Implementierung leitet und die Komplexität auf zentrale Prinzipien reduziert.
Ziele sind Qualitätseigenschaften wie Skalierbarkeit, Wartbarkeit, Zuverlässigkeit, Leistungsfähigkeit, Sicherheit und Portabilität. Gutes Architekturdesign unterstützt Frühphasen-Entscheidungen, erleichtert
Architektur umfasst verschiedene Perspektiven oder Ansichten, zum Beispiel Struktur-, Laufzeit- und Verteilungsansichten. Architekturdokumentation enthält Architekturentscheidungen (ADRs),
Typische Architekturstile oder Muster sind Layered Architecture, Microservices, Serviceorientierte Architektur, Event-getriebene Architekturen, client-server und modulare Monolithen.
Die Architektur ist iterativ und fortlaufend dokumentiert. Architekturen werden durch Reviews, Risikoanalysen, Metriken für Qualität und