Softwarearchitektur

Softwarearchitektur

Eine Softwarearchitektur ist eine der Architekturtypen in der Informatik und beschreibt die grundlegenden Komponenten und deren Zusammenspiel innerhalb eines Softwaresystems.

Inhaltsverzeichnis

Definition

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ören neben der Entwicklung insbesondere auch Software-Evolution, Software-Installation und Software-Betrieb. Ebenso profitieren 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 einer 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.

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.

Kontext der Softwarearchitektur

Eine Softwarearchitektur ist in ihrer wirtschaftswissenschaftlichen Perspektive sehr stark von den Aspekten eines Software-Projekts abhängig, welche die Softwarearchitektur umgeben. Deswegen benötigt eine Softwarearchitektur, um erfolgreich funktionieren zu können, eine geeignete Abstimmung mit den wichtigsten übrigen Faktoren des Software-Projekts. Auf der Seite der Benutzer und der Betroffenen des Software-Projekts gibt eine gut konstruierte Softwarearchitektur leicht ein grundlegendes Verständnis des Systems für alle Betroffenen.

Wichtige Faktoren, die auf die Eignung der Softwarearchitektur Einfluss nehmen, sind:

Abwägungen bei Entwicklung und Aufbau einer Softwarearchitektur

Bei der Entwicklung und dem Aufbau einer Softwarearchitektur in einem Unternehmen sind im Allgemeinen unter anderem folgende Abwägungen durchzuführen:

Form Funktion
Interne Anforderungen Externe Anforderungen
Strenge Kontrolle Flexible Änderungen
Geld- und Zeitkosten Zusätzliche Funktionen
Komplexität Verständlichkeit
Neue Technologien Bewährte Technologien
Top-Down-Planung Bottom-Up-Planung
Fortlaufende Verbesserung Stabilität
Knappe Integration Wenige Interfaces

Siehe auch

Literatur

  • Helmut Balzert: Lehrbuch der Software-Technik. 2. Auflage. Spektrum Akademischer Verlag, Heidelberg 2001, ISBN 3-8274-0301-4.
  • 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. 2. Auflage. dpunkt Verlag, Heidelberg 2008, ISBN 978-3-89864-559-1.
  • Johannes Siedersleben: Moderne Software-Architektur. dpunkt Verlag, Heidelberg 2004, ISBN 3-89864-292-5.
  • Gernot Starke: Effektive Software-Architekturen: Ein praktischer Leitfaden. 3. Auflage. Carl-Hanser-Verlag, München 2008, ISBN 978-3-446-41215-6.
  • Oliver Vogel, Ingo Arnold, Arif Chughtai, Markus Völter: Software-Architektur. Grundlagen - Konzepte - Praxis. Spektrum Akademischer Verlag, Heidelberg 2005, ISBN 3-8274-1534-9.

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Modul (Softwarearchitektur) — Ein Modul ist eine abgeschlossene Komponente einer Software, bestehend aus einer Folge von Verarbeitungsschritten und Datenstrukturen. Inhalt eines Moduls ist häufig eine wiederkehrende Berechnung oder Bearbeitung von Daten, die mehrfach… …   Deutsch Wikipedia

  • Modul Softwarearchitektur — Ein Modul ist eine abgeschlossene Komponente einer Software, bestehend aus einer Folge von Verarbeitungsschritten und Datenstrukturen. Inhalt eines Moduls ist häufig eine wiederkehrende Berechnung oder Bearbeitung von Daten, die mehrfach… …   Deutsch Wikipedia

  • Szenariobasierte Softwarearchitekturbewertung — Die szenariobasierte Architekturbewertung stellt einen Ansatz zur Bewertung von Softwarearchitekturen dar. Inhaltsverzeichnis 1 Betrachtungsebene 2 Vorgehen 3 Einsatz von Szenarios 4 Operationalisierung von Qualitätsmerkmalen durch Szenarios …   Deutsch Wikipedia

  • Architekturentwurf (Softwareentwicklung) — 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… …   Deutsch Wikipedia

  • Software-Architektur — 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… …   Deutsch Wikipedia

  • Software-Entwurf — 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… …   Deutsch Wikipedia

  • Softwarearchitekturen — 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… …   Deutsch Wikipedia

  • Szenariobasierte Architekturbewertung — Die szenariobasierte Architekturbewertung stellt einen Ansatz zur Bewertung von Softwarearchitekturen dar. Inhaltsverzeichnis 1 Betrachtungsebene 2 Vorgehen 3 Einsatz von Szenarios …   Deutsch Wikipedia

  • Lose Kopplung — bezeichnet in der Informatik einen geringen Grad der Abhängigkeit mehrerer Hard oder Software Komponenten untereinander. Bei loser Kopplung eines Systems lassen sich Änderungen einzelner Komponenten oftmals einfacher durchführen, da die Änderung… …   Deutsch Wikipedia

  • Softwarearchitekturbewertung — Die Softwarearchitekturbewertung ist ein Teilgebiet des Software Engineering und befasst sich mit der Bewertung von Softwarearchitekturen. Ziel der Softwarearchitekturbewertung Ziel der Softwarearchitekturbewertung ist es, eine… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”