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.

Monolithische_Architektur_1

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.

Monolithische_Architektur_2

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.

Skalierung

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.

Spezialisierung_1

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.

Spezialisierung_2

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.

Softwarearchitektur

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.

Schreiben Sie einen Kommentar

(wird nicht veröffentlicht)

  * Pflichtfelder



Kontakt

kontakt@techscout-berlin.de

Telefon: 030 622 051 90
Fax:        030 622 051 88

Pettenkofer-Str. 16-18
10247 Berlin