Ein Angebot von

Komplexität im Software Engineering, Teil 1

| Autor / Redakteur: Andreas Willert* / Martina Hafner

Bild 3: Komplexität fließt seit den 90er Jahren zu 80% in die Software.
Bild 3: Komplexität fließt seit den 90er Jahren zu 80% in die Software. (Bild: Willert Software Tools)

Firma zum Thema

Wenn ich in meinen Vorträgen auf Kongressen in die Runde der Zuhörer die Frage stelle, wer NICHT vom Wachstum der Komplexität betroffen ist, bekomme ich lediglich vereinzelt ein oder zwei Meldungen. Wir können davon ausgehen, die Komplexität in unserer Gesellschaft wächst, und das sogar mit zunehmender Geschwindigkeit.

Was ist eigentlich Komplexität? Folgende Aussage findet man unter Anderem auf Wikipedia:

Der Ökonom Peter Ulrich bezeichnet die Komplexität einer Situation mit der Vielfalt der einwirkenden Faktoren und dem Ausmaß ihrer gegenseitigen Interdependenzen und charakterisiert diese als Merkmal schlecht strukturierbarer Entscheidungssituationen. Komplexität ist eine mögliche Form eines Gegenteils von Einfachheit, Determinierbarkeit und der Überschaubarkeit.

Wie konkret zeigt sich Komplexität im Software- und Systems-Engineering, und welche Hilfestellungen (Techniken) haben wir, um ihr zu begegnen? Darum geht es im folgenden.

Wie wirkt sich Komplexität in unserem Umfeld aus?

Es ist unglaublich, als was ich mein iPhone in Kombination mit verschiedensten Apps alles nutzen kann. Angefangen von einer Wasserwaage bis hin zu einem komplexen Audio Signal Analyser, der auf Basis einer FFT die genauen Frequenzanteile analysiert. Der Kreativität scheint keine Grenzen gesetzt zu sein.

Aber wenn ich eine Telefonnummer anrufen möchte, die ich z.B. in einer Mail zugeschickt bekommen habe und die wie folgt aufgeschrieben wurde: +49 (0) 5722 9678 60, treibt mich das iPhone dicht an den Wahnsinn. Das iPhone erkennt sofort, dass es sich um eine Telefonnummer handelt, wählt aber die (0) mit und lässt mir in der Telefon-App keine Möglichkeit die Nummer zu editieren. Der Workaround Kopieren der Nummer in eine andere App und dortiges Editieren, hört sich simpel an, ist aber in Kombination der Touchscreen-Bedienung und der Motorik meiner Finger immer wieder eine echte Herausforderung und Geduldsprobe für mich.

Wie kann es angehen, dass ein Produkt, was im ureigensten Sinn ja immer noch ein Telefon sein sollte, inzwischen Millionen von erweiterten Diensten bereitstellt, aber das Telefonieren in manchen Situationen komplizierter macht, als je zuvor? Es liegt nicht an der technischen Machbarkeit, es ist die Komplexität, die immer häufiger dazu führt, dass Systeme verschlimmbessert werden.

Immer häufiger kommen Systeme in Situationen, in der die Kombination von Zusammenhängen und deren Auswirkungen bei der Entwicklung nicht mehr überblickt werden. Die Systeme reagieren dann undefiniert bis fehlerhaft. Müssen wir zukünftig damit leben, dass wir unsere Mobile Devices zwar für nahezu alles Erdenkliche nutzen können, diese aber nur noch gelegentlich funktionieren?

Ich denke nein. Es gibt bereits betriebsbewährte Techniken, auf deren Basis wir der wachsenden Komplexität begegnen können. Bevor wir uns diesen widmen, möchte ich die Komplexität noch einmal etwas durchleuchten.

Inhalt des Artikels:

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43693627 / Betrieb & Wartung)