“Architecture is about the important stuff. Whatever that is.”
Martin Fowler
Es gibt leider keine allgemein anerkannte Definition für den Begriff “Softwarearchitektur”. Doch lassen sich einige wenige Aspekte ausmachen, die immer wieder in den zahlreichen Definition, was Softwarearchitektur ist:
- Strukturierung und Zerlegung eines System in Teile, Festlegung von funktionalen Verantwortlichkeiten
- Funktional bedingtes Zusammenspiel der Teile sowie Definition von Schnittstellen zwischen den Teilen
- Entscheidungen (inklusive Begründungen), die sich nachträglich sehr schwer ändern lassen.
Wir verstehen im Folgenden die Softwarearchitektur als die Summe aller Architekturentscheidungen, wobei eine Architekturentscheidung als eine fundamentale Entscheidung zu verstehen ist, die im weiteren Verlauf nur schwer zurückgenommen werden kann.
Die hier getroffene Auslegung des Begriffs Softwarearchitektur bedeutet, dass eine Architekturdokumentation, die im Rahmen einer modellgetriebenen Softwareentwicklung als Modell erstellt wird, sämtliche Entscheidungen nachvollziehbar festhalten muss. Dies ermöglichen die folgenden Dokumentationsmittel.
Dokumentationsmittel
- Systemkontext
- Folgen bald … Randbedingungen, Qualitätsziele, Qualitätsszenarien, Stakeholder, Fallbeispiele, Bausteinsicht, Laufzeitsicht, Verteilungssicht, Entwurfsentscheidungen, Technische Risiken, Glossar