Software-Architektur

Die Software-Architektur definiert die Komponenten eines Software-Systems und beschreibt die Verbindungen, die zwischen den Komponenten bestehen. Im Rahmen der Erstellung einer Software-Architektur werden zunächst einmal grundlegende Entscheidungen für den weiteren Systementwurf wie die Wahl der Plattform und die Auswahl von Entwicklungssystemen und die evtl. einzusetzende Datenbank getroffen.


Bei der Erstellung einer Software-Architektur werden die Zusammenhänge des abzubildenden Software-Systems und den diesbezüglichen Anforderungen abgebildet; keinesfalls wird dadurch ein detaillierter Entwurf für ein Software-System generiert. Dabei ist es auch für spätere Systembetrachtungen hilfreich, basisrelevante Entwurfsentscheidungen ausführlich niederzulegen. Dies auch deshalb, weil diese Entscheidungen nachhaltigen Einfluss auf die nicht-funktionalen, qualitativen Eigenschaften des resultierenden Systems haben. Eine weite Unterstützung bei der Strukturierung von Software-Systemen leisten eingeführte Architekturmuster beispielsweise das klassische Muster Model-View-Controller (MVC).

Die Software-Architektur zerlegt ein Gesamtsystem in seine zu erstellende Komponenten und bereitet die Informationen auf, die zwischen diesen Komponenten ausgetauscht werden müssen. Ein Ziel dabei ist es, die Kopplung der Komponenten möglichst zu minimalisieren. Darüber hinaus wird deren Verteilung auf die zu verwendenden Hardware- und Software-Ressourcen abgebildet. Ein Beispiel dafür sind Client-Server-Architekturen, wo das gesamte Software-System entsprechend in separierten Komponenten den verfügbaren Hardware-Systemen zuzuordnen ist. Damit realisiert die Definition einer Software-Architektur bereits in einem sehr frühen Stadium eines Prozesses Kriterien zur Bestimmung der Software-Qualität hinsichtlich deren nicht-funktionaler Eigenschaften wie Sicherheit, Modifizierbarkeit, Wartbarkeit oder Performance. So globalisiert die Software-Architektur die Charakteristika des Gesamtsystems. Das bedeutet beispielsweise konkret, dass gute Software-Architekturen sich hinsichtlich ihrer Stetigkeit bei späteren Änderungen auszeichnen. Ein im Zusammenhang mit Software-Architekturen und deren Qualität häufig verwandtes Akronym ist FURPS.

Die Beschreibung von Software-Architekturen

Eine lebhafte Diskussion wird hinsichtlich der Stilmittel zur Beschreibung von Software-Architekturen geführt. Hier existieren neben den traditionellen textlichen Beschreibungen graphische Werkzeuge zur Visualisierung von Strukturen, Komponenten und Verbindungen im Rahmen einer Software-Architektur. Die Entscheidung ist letztendlich auf den spezifischen Anwendungsfall auszurichten. Wesentliche graphische Entwicklungswerkzeuge sind: Häufig werden Software-Architekturen nach dem Strukturierungsprinzip der Schichtenbildung im Rahmen eines Schichtenmodells entworfen. Bekannt in diesem Zusammenhang sind die Three-Tier-Architecture oder Multi-Tier-Architecture.

Die explizite Trennung der Software-Architektur vom eigentlichen Entwicklungsprozess hat aber auch eine wirtschaftliche Dimension. Letztendlich definiert man in komplexen Projekten zusätzlich die separate Rolle eines Software-Architekten. Dessen Zielstellung ist es, Software-Architekturen zu erstellen, damit die zugrundeliegende Problemstellung besser und schneller gelöst werden können sowie der gesamte darauf aufbauende Software-Lebenszyklus einschließlich der der Software-Installation und der Betrieb der Software abgesichert wird. Daneben finden die aus der Software-Architektur gewonnenen Erkenntnisse Eingang in die Planung und Organisation verteilter Software-Entwicklung und dienen als Ausgangspunkt für die Erstellung von Software-Metriken.

Eine ergänzende Wissenschaft stellt die Bewertung von Softwarearchitekturen dar - die sogenannte Software-Architektur-Bewertung.

Informationen zum Artikel
Deutsch: Software-Architektur
Englisch: software architecture
Veröffentlicht: 26.07.2018
Wörter: 457
Tags: #Software-Technologien
Links: Akronym, Architekturmuster, Client-Server-Architektur, Datenbank, Dimension