© jd8/Shutterstock.com
Entwickler Magazin
Grundlagen einer erfolgreichen Architektur

Softwarearchitektur: Worauf es ankommt

Die Architektur definiert die Struktur eines Softwaresystems und ist zentral für den Erfolg eines Projekts. Deswegen ist Softwarearchitektur so wichtig. Aber in Wirklichkeit ist Softwarearchitektur noch viel mehr, und eine erfolgreiche Softwarearchitektur erfordert viele, teilweise überraschende Maßnahmen.

Eberhard Wolff


Wenn man die wesentlichen Aspekte von Softwarearchitektur beschreiben soll, muss man zunächst den Begriff Softwarearchitektur an sich klären. Wikipedia und der Standard ISO/IEC 42010 definieren Softwarearchitektur als die grobgranulare Strukturierung eines Softwaresystems. Dazu passt der Begriff „Architektur“: Die Architektur eines Gebäudes gibt die groben Strukturen vor. Die meisten Architekturentwürfe zeigen dementsprechend die Aufteilung des Systems in größere Komponenten.

Ein Gedankenexperiment zeigt, inwieweit diese Definition ausreichend ist: Eine Software geht nicht in Produktion – ein Sicherheitsproblem und ein Problem mit der Compliance wurden entdeckt. Einen solchen Fehlschlag kann man wohl kaum als erfolgreiche Architektur bezeichnen. Aber das Sicherheitsproblem ist wahrscheinlich nicht auf der Ebene der Strukturierung des Systems zu erkennen. Es kann ein einfacher Programmierfehler oder eine unsichere Technologie sein, die zu dem Problem geführt hat. Also muss Softwarearchitektur etwas anderes umfassen als nur die Struktur des Systems, denn offensichtlich können auch andere Faktoren zu einem Architekturfehlschlag führen.

Martin Fowler als anerkannter Experte sieht Softwarearchitektur als die Menge aller wichtigen und schwer änderbaren Entscheidungen [1]. Das passt besser zu dem Gedankenexperiment: Offensichtlich waren die Entscheidungen im Sicherheitsbereich wichtig, denn sie haben verhindert, dass das System in Produktion ging. Und sie sind nicht einfach zu ändern, sonst wäre das Problem schnell gelöst worden. Also ist diese Definition eigentlich ganz gut. Genau genommen kann man vorab nicht wissen, welche Entscheidungen schwer zu ändern sind. Wie schwierig das ist, findet man nur dann heraus, wenn man die Entscheidung tatsächlich revidiert.

Eine andere Möglichkeit, Softwarearchitektur zu definieren, ist relativ simpel: Softwarearchitektur bedeutet, dass man eine technische Softwarelösung für das jeweilige Problem entwirft. Diese Definition ist nicht sonderlich spezifisch. Sie passt zu allen Arten von technischen Ingenieursdisziplinen. Aber sie zeigt, wie wichtig es ist, das Problem zu kennen, das gelöst werden muss. Der Hinweis auf das zu lösende Problem mag trivial erscheinen. Allerdings enthalten Architekturdokumentationen zwar fast immer eine Darstellung der grobgranularen Struktur des Systems, aber fast nie Informationen darüber, welches Problem das System eigentlich überhaupt lösen soll. So ist es schwierig, die konkreten Entscheidungen ...

Entwickler Magazin
Grundlagen einer erfolgreichen Architektur

Softwarearchitektur: Worauf es ankommt

Die Architektur definiert die Struktur eines Softwaresystems und ist zentral für den Erfolg eines Projekts. Deswegen ist Softwarearchitektur so wichtig. Aber in Wirklichkeit ist Softwarearchitektur noch viel mehr, und eine erfolgreiche Softwarearchitektur erfordert viele, teilweise überraschende Maßnahmen.

Eberhard Wolff


Wenn man die wesentlichen Aspekte von Softwarearchitektur beschreiben soll, muss man zunächst den Begriff Softwarearchitektur an sich klären. Wikipedia und der Standard ISO/IEC 42010 definieren Softwarearchitektur als die grobgranulare Strukturierung eines Softwaresystems. Dazu passt der Begriff „Architektur“: Die Architektur eines Gebäudes gibt die groben Strukturen vor. Die meisten Architekturentwürfe zeigen dementsprechend die Aufteilung des Systems in größere Komponenten.

Ein Gedankenexperiment zeigt, inwieweit diese Definition ausreichend ist: Eine Software geht nicht in Produktion – ein Sicherheitsproblem und ein Problem mit der Compliance wurden entdeckt. Einen solchen Fehlschlag kann man wohl kaum als erfolgreiche Architektur bezeichnen. Aber das Sicherheitsproblem ist wahrscheinlich nicht auf der Ebene der Strukturierung des Systems zu erkennen. Es kann ein einfacher Programmierfehler oder eine unsichere Technologie sein, die zu dem Problem geführt hat. Also muss Softwarearchitektur etwas anderes umfassen als nur die Struktur des Systems, denn offensichtlich können auch andere Faktoren zu einem Architekturfehlschlag führen.

Martin Fowler als anerkannter Experte sieht Softwarearchitektur als die Menge aller wichtigen und schwer änderbaren Entscheidungen [1]. Das passt besser zu dem Gedankenexperiment: Offensichtlich waren die Entscheidungen im Sicherheitsbereich wichtig, denn sie haben verhindert, dass das System in Produktion ging. Und sie sind nicht einfach zu ändern, sonst wäre das Problem schnell gelöst worden. Also ist diese Definition eigentlich ganz gut. Genau genommen kann man vorab nicht wissen, welche Entscheidungen schwer zu ändern sind. Wie schwierig das ist, findet man nur dann heraus, wenn man die Entscheidung tatsächlich revidiert.

Eine andere Möglichkeit, Softwarearchitektur zu definieren, ist relativ simpel: Softwarearchitektur bedeutet, dass man eine technische Softwarelösung für das jeweilige Problem entwirft. Diese Definition ist nicht sonderlich spezifisch. Sie passt zu allen Arten von technischen Ingenieursdisziplinen. Aber sie zeigt, wie wichtig es ist, das Problem zu kennen, das gelöst werden muss. Der Hinweis auf das zu lösende Problem mag trivial erscheinen. Allerdings enthalten Architekturdokumentationen zwar fast immer eine Darstellung der grobgranularen Struktur des Systems, aber fast nie Informationen darüber, welches Problem das System eigentlich überhaupt lösen soll. So ist es schwierig, die konkreten Entscheidungen ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang