Softwarearchitektur
Aus LexiDict
Eine Softwarearchitektur ist eine der Architekturtypen in der Informatik und beschreibt die grundlegenden Komponenten und deren Zusammenspiel innerhalb eines Softwaresystems. Eine Definition von Helmut Balzert beschreibt den Begriff als „eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen“ (Literatur: Balzert, S. 716). Die Architekturkomponenten bilden eine Zerlegung des Gesamtsystems, was bedeutet dass jedes Softwareelement mindestens einer Architekturkomponente zugeordnet ist.
Dabei enthält eine Beschreibung der Software-Architektur nicht nur Informationen über die Struktur ("Komponentisierung") eines Software-Systems, sondern auch Informationen über die Kommunikation zwischen Komponenten, sowie deren Abbildung auf Hardware- oder Software-Ressourcen (Verteilung und Deployment).
Software-Architektur-Beschreibungen können über den gesamten Lebenszyklus eines Software-Systems genutzt werden. Dazu gehört neben der Entwicklung insbesondere auch die Software-Evolution, Software-Installation, Software-Betrieb. Ebenso profitierten neben technischen Tätigkeiten auch Projektmanagement-Tätigkeiten, wie Kostenschätzung, Meilensteinplanung, Planung projektübergreifender Software-Wiederverwendung und die Organisation verteilter Software-Entwicklung von einer guten Architekturbeschreibung.
Die Softwarearchitektur ist Teil des Softwareentwurfs (siehe SWEBOK), innerhalb dessen sie als Grobgliederung der Komponenten entsteht. Während der Softwareentwurf sich auch auf lokale Aspekte innerhalb des architektonischen Rahmens der Software bezieht und deshalb sehr detailliert sein kann, ist die Softwarearchitektur eine globale Eigenschaft des Gesamtsystems.
Im Rahmen der Softwareentwicklung repräsentiert die Softwarearchitektur die früheste Softwaredesign-Entscheidung (Architekturentwurf). Sie wird wesentlich durch Softwarequalitätskriterien, also nicht-funktionale Eigenschaften wie Modifizierbarkeit, Wartbarkeit, Sicherheit oder Performance bestimmt (siehe beispielsweise FURPS). Eine einmal eingerichtete Softwarearchitektur ist später nur mit hohem Aufwand abänderbar. Die Entscheidung über ihr Design ist somit eine der kritischsten und wichtigsten Punkte im Entwicklungsprozess einer Software.
Zur grafischen Visualisierung von Softwarearchitekturen werden unterschiedliche Werkzeuge eingesetzt. Beispielsweise:
Der Wert von rein grafischen Darstellungen von Softwarearchitekturen ist ebenso umstritten wie der Wert von rein textuellen Darstellungen.
Mit der Bewertung von Softwarearchitekturen befasst sich die Softwarearchitekturbewertung. Ein wichtiges Qualitätsmerkmal von Softwarearchitektur ist ihre Stetigkeit in Bezug auf Änderungen an dem durch die Software zu lösenden Problem. Kleine Änderungen am Problem sollen zu nur kleinen Änderungen in der Softwarearchitektur führen. Das zentrale Qualitätsmerkmal für die Arbeit eines Softwarearchitekten aus wirtschaftlicher Sicht aber ist ob er in nützlicher Frist eine Softwarearchitektur definiert mit der sich zum einen das gestellte Problem lösen lässt, und welche zum anderen die für die Realisierung der Lösung real verfügbaren Softwareentwickler dazu befähigt zu besseren Ergebnissen zu kommen als ohne die Hilfe des Softwarearchitekten.
Weblinks
- http://www.fg-swa.gi-ev.de/ (Fachgruppe Software-Architektur der Gesellschaft für Informatik)
Dieser Artikel basiert auf dem Artikel Softwarearchitektur aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.












