
Softwarearchitektur ist ein wichtiger Bestandteil der Softwareentwicklung. Es geht darum, Entscheidungen zu treffen, die zukunftssicher sind und teuer werden können, wenn sie falsch sind. Die Qualität der Software spielt hierbei eine entscheidende Rolle. ISO 25010 bietet eine gute Checkliste für die Softwarequalität, die Aspekte wie Selbstbeschreibung, Verfügbarkeit, Wiederherstellbarkeit, Kapazität, Integrität, Änderbarkeit und Testbarkeit umfasst.
Es gibt keine perfekte Architektur, immer müssen Kompromisse eingegangen werden. Ein Beispiel hierfür ist die Abwägung zwischen Sicherheit und Benutzerfreundlichkeit oder zwischen Verfügbarkeit und Kosten. Trade-off-Analysen können helfen, die beste Lösung auszuwählen. Dabei spielen auch organisatorische und geschäftliche Faktoren eine Rolle, wie die Entwicklererfahrung, Kosten, Unterstützung und Lizenzkosten.
Entscheidungen sollten klar dokumentiert werden, am besten in Form von Architektur-Entscheidungsaufzeichnungen (ADR). Diese strukturierten Dokumente beinhalten Titel, Status, Zusammenfassung, Stakeholder, Kontext der Entscheidung, Anforderungen und Optionen. Durch die Dokumentation und Gewichtung der Optionen können Entscheidungen besser nachvollzogen und bei Bedarf reevaluiert werden.
Es ist wichtig, dass Entscheidungen in der Softwarearchitektur transparent, logisch und objektiv getroffen werden und von den richtigen Stakeholdern unterstützt sind. Aristokraten, die nur ihre perfekte Entscheidung verteidigen, oder Polder-Modelle mit endlosen Meetings sollten vermieden werden. Stattdessen sollten Entscheidungen auf einer fundierten Analyse basieren und von einem klaren Prozess begleitet werden.
Quelle: https://reinout.vanrees.org/weblog/2025/06/13/software-architecture.html