© DrHitch/Shutterstock.com
Agile Architektur mit .Net

1 Einführung Softwarearchitektur


Mit dem Begriff der Softwarearchitektur sind oftmals ganz unterschiedliche Vorstellungen und Ansichten verbunden. Was ist die Architektur eines Systems? Welche Teile gehören dazu und welche Aufgaben umfaßt deren Erstellung und Pflege? Das folgende Kapitel versucht, diese Fragen zu klären. Darüber hinaus werden Begriffe und die verschiedenen Ebenen, auf denen Architektur stattfinden kann, vorgestellt und erläutert.

1.1 Architekturdefinition

Es gibt keine einheitlich anerkannte Definition davon, was Softwarearchitektur überhaupt ist, bzw. welche Aufgabenfelder sie konkret umfasst. Aktuell existieren dutzende verschiedene Definitionen. Das Software Engineering Institute der Carnegie Melon University pflegt auf seiner Webseite [1] die wohl umfangreichste Sammlung von Definitionen für Softwarearchitektur.

Eine nicht ganz ernst gemeinte, aber sehr einfache Definition von Kent Beck lautet wie folgt:

„Software Architecture is what software architects do.“

Das stimmt natürlich, gibt aber keine Auskunft darüber, welche Einflussgrößen Softwarearchitektur wirklich ausmachen. Eine weitere sehr interessante Definition ist die von Philippe Kruchten, dem Autor von „The Rational Unified Process“:

„Software Architektur beschäftigt sich mit Abstraktion, mit Zerlegung und Zusammenbau, mit Stil und Ästhetik.“

Diese Definition sagt schon etwas mehr über Softwarearchitektur aus, ist allerdings noch ein wenig unspezifisch. Hervorzuheben ist hier aber die Aussage, dass Softwarearchitektur einem Stil folgen und ästhetisch sein sollte, d. h. nicht bloß die rein technischen Belange spielen eine Rolle, sondern auch die Ausgestaltung der Struktur einer Anwendung.

Versucht man, die Kernaussagen der verschiedenen existierenden Definitionen zusammenzufassen, so lassen sich zwei wesentliche Aspekte bestimmen:

  1. Softwarearchitektur basiert auf Entscheidungen, die im Folgenden nur schwer wieder geändert oder rückgängig gemacht werden können. Das Problem hierbei ist, dass diese Entscheidungen meist ohne vollständige Kenntnisse der Randbedingungen getroffen werden müssen und damit oftmals suboptimal sind. Oder mit den Worten von Philippe Kruchten:
    „The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark.“
  2. Eine Architektur besteht aus – oder wird beschrieben durch – Schnittstellen und Komponenten

Darüber hinaus definiert sich eine konkrete Architektur durch die auf sie wirkenden Umweltfaktoren (technische, organisatorische, ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang