Themen
Wie entsteht eine Softwarearchitektur?
Veröffentlicht am 14. Mai, 2010 von Peter Ihme
Eine gute Softwarearchitektur ist eine Frage der Organisation. Die meisten Anwendungen sollen verschiedene Aufgaben lösen. Bevor es Computer gab, wurden diese Aufgaben von Menschen erledigt. Bei komplexen Aufgaben wurde die Arbeit gern auf mehrere Köpfe verteilt. Es gab klare Zuständigkeiten und damit die Möglichkeit der Spezialisierung.
Eine Softwarearchitektur entsteht unter sehr ähnlichen Gesichtspunkten: Die Anwendung wird in Module mit klaren Aufgabenbereichen zerlegt, die Schnittstellen zwischen den Modulen werden beschrieben und die benötigten Informationen werden identifiziert.
Stellen wir uns einmal vor, wir hätten keinen Computer, sondern ein Team von Mitarbeitern. Wir sind in einer kleinen Firma und unser Ziel ist es, die Arbeit dieser Mitarbeiter möglichst effizient zu organisieren. Also fangen wir mit der einfachsten Architektur an.
Monolithische Architektur
Es gibt einen Mitarbeiter der für alles verantwortlich ist und er hat freien Zugang zu allen Dokumenten.

Dies ist ein klassisches Beispiel für eine monolithische Architektur. Allerdings haben wir ein ziemliches Chaos was die Dokumente betrifft – sie landen alle in einem dicken Ordner, der schlicht und einfach mit „Dokumente“ beschriftet ist. Also sollten wir bei den Dokumenten präziser werden.

Das ist schon besser. Nun wissen wir, mit welchen Dokumenten unser Mitarbeiter arbeitet und wir haben eine Vorstellung davon, in welchem Ordner wir welche Informationen finden.
Leider ist unser Mitarbeiter schnell überlastet. Die Arbeit wird ihm einfach zuviel. Also stellen wir weitere Mitarbeiter ein.
Skalierung
Jetzt haben wir drei Mitarbeiter. Alle sind hochgradig qualifiziert und alle machen alles.

Und wieder gibt es ein Problem. Alle haben die gleichen Aufgaben und konkurrieren um die gleichen Dokumente. Mal liegt die Kundenkartei bei Mitarbeiter A, während die zugehörige Bestellung bei Mitarbeiter C auf dem Schreibtisch liegt. Und Mitarbeiter B sucht sich einen Wolf. Die Mitarbeiter sind unzufrieden mit dem Chaos im Büro und rufen eine Besprechung ein, um die Arbeit und die Zuständigkeiten besser aufzuteilen.
Spezialisierung
In einem ersten Schritt soll Mitarbeiter C die alleinige Verantwortung für die Kundenkartei übernehmen.

Das neue System funktioniert großartig. Mitarbeiter C kann sich voll und ganz auf die Pflege der Kundenkartei konzentrieren und das Team Bestellabwicklung kann sich voll und ganz auf die Bearbeitung der Bestellungen konzentrieren.
Die Kommunikation im Team ist gut und die Arbeitsteilung entlastet alle. Beflügelt durch die guten Ergebnisse, gibt es ein zweites Team-Meeting, um die Arbeit noch besser aufzuteilen.

Durch die neue Organisation der Arbeit steigt die Moral. Jeder Mitarbeiter hat klare Aufgaben, auf die er sich konzentrieren kann. Es gibt klare Arbeitsabläufe und klare Kommunikationswege.
Softwarearchitektur
Jetzt wollen wir diese Lösung, und die gefundene Arbeitsteilung in einer Softwareanwendung implementieren.

Die Arbeit unserer Mitarbeiter wird jetzt zu einem großen Teil von Softwaremodulen der Anwendung übernommen. Die Dokumente werden elektronisch erstellt und verwaltet.
Wir haben eine Top-Level Architektur für unsere Anwendung entworfen. Wir wissen welches Modul welche Teilaufgaben übernimmt, und welche Informationen die Module benötigen. Und wir kennen die Schnittstellen zwischen den Modulen.
Tags: Softwarearchitektur

Schreiben Sie einen Kommentar