Softwarearchitektur
aus Wikipedia, der freien Enzyklopädie
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.
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.
Inhaltsverzeichnis |
[Bearbeiten] Beispiel
Eine Architekturbeschreibung umfasst etwa im Falle einer Web-Anwendung den Aufbau des Systems aus Datenbanken, Web-/Application-Servern, E-Mail- und Cachesystemen − siehe etwa Wikipedia selbst.
[Bearbeiten] Siehe auch
[Bearbeiten] Literatur
- Helmut Balzert: Lehrbuch der Software-Technik. 2. Auflage. Spektrum Akademischer Verlag, 2001, ISBN 3-8274-0301-4
- Band 1: Software-Entwicklung, ISBN 3-8274-0480-0
- Band 2: Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung, ISBN 3-8274-0065-1
- Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice. Addison Wesley, Reading 1998, ISBN 0-201-19930-0
- Torsten Posch, Klaus Birken, Michael Gerdom: Basiswissen Softwarearchitektur. dpunkt Verlag, Heidelberg 2004, ISBN 3-89864-270-4
- Ralf Reussner, Wilhelm Hasselbring: Handbuch der Software-Architektur, dpunkt Verlag, 2006, ISBN 3-89864-372-7
- Johannes Siedersleben: Moderne Software-Architektur, dpunkt Verlag, 2004, ISBN 3-89864-292-5
- Gernot Starke: Effektive Software-Architekturen: Ein praktischer Leitfaden, Carl-Hanser-Verlag, 3. Auflage 2008, ISBN 978-3446412156
- Oliver Vogel, Ingo Arnold, Arif Chughtai, Markus Völter: Software-Architektur. Grundlagen - Konzepte - Praxis, Spektrum Akademischer Verlag, 2005, ISBN 3-8274-1534-9
[Bearbeiten] Weblinks
- http://www.fg-swa.gi-ev.de/ (Fachgruppe Software-Architektur der Gesellschaft für Informatik)

