Ansprechpartnerin: Marion Wiese
Martin Fowler definiert Software Architektur knapp als die Entscheidungen, die wichtig und im Nachhinein nur schwer zu ändern sind. [Martin Fowler. „Who needs an architect?“. In: IEEE Software 20 (2003), pp. 11-13]
Dies ist der Grund, warum der Software Architektur insbesondere beim Start eines Projektes oder einer Feature-Entwicklung eine besondere Rolle zukommt. Zur Entscheidung für eine bestimmte Software-Architektur müssen die nicht-funktionalen Anforderungen für das Projekt bestimmt und bewertet werden. Bei der Feature-Entwicklung kommt hinzu, dass sich das Feature in die bestehende Architektur integrieren können muss. Auch weitere Randbedingungen können bei der Auswahl eine Rolle spielen. Eine gute Software Architektur ist somit die Basis für eine hohe Softwarequalität, eine Schlechte die Basis für schmerzhafte technische Schulden (architecture technical debt).
Wichtige Elemente einer guten Architekturarbeit sind nicht nur das Definieren der Architektur (architecture decision making), sondern auch das Kommunizieren und Dokumentieren der Architektur (architecture knowledge management), sowie die Überwachung der Einhaltung der festgelegten Architekturregeln (architecture conformance checking).
Nur weil die Architektur schwer zu ändern ist, bedeutet dies nicht, dass sie nicht geändert werden kann oder sollte. Der Bereich Architektur Evolution (architecture evolution) beschäftigt sich mit der Frage, wie dies mit möglichst wenig Aufwand gelingen kann. Neue Technologien insbesondere auch im Hardwarebereich, sowie die Forschung und Erfahrung im Bereich Software Engineering ermöglichen neue Wege, Möglichkeiten und Ansätze in der Software Architektur. Auch aus diesem Grund werden ältere Systeme überarbeitet und die Architektur wird migriert (re-architecting).
---
In diesem Bereich gibt es Möglichkeiten sich mit neuen Architekturstilen, wie Microservices, SaaS, etc. zu beschäftigen, diese zu bewerten, sinnvolle Einsatzgebiete für diese zu definieren, und z.B. Migrationspfade zu entwickeln.
Analysen zur Übertragung von Architekturstilen zwischen verschiedenen Einsatzbereichen sind möglich.
Tools zur Unterstützung der Architekturarbeit können verglichen, optimiert oder neu entwickelt werden.
Die Entscheidungsfindung im Team und weitere soziale Aspekte können mittels empirischer Studien untersucht werden. Untersuchungen und Bewertungen der Architekturarbeit in Organisationen mit verschiedenen Management-Methoden, also agilem (Scrum, Kanban, Minimum Viable Product) oder klassischem (Wasserfall- / V-Modell) Vorgehen, sind ebenso möglich.