Komplexität im Software Engineering, Teil 1

Seite: 2/2

Anbieter zum Thema

Entwicklung der Software-Schnittstellen in den letzten Jahrzehnten

Komplexität zeigt sich uns heute also in Form der Schnittstellen in Kombination mit multiplen Ebenen in denen sie wirken. Nun lässt sich Komplexität in der Software schwierig darstellen. Im Grunde sind auch die bekannten Software Komplexitäts-Maße nicht mehr wirklich aussagekräftig, wenn es um Software für Systeme geht.

Zum Beispiel die (wohl bekannteste) McCabe-Metrik zur Metrisierung von Software-Komplexität versagt heute kläglich, wenn es um Systeme geht. Bereits die Auswirkungen von bedingter Compilation, mit der eventuell. die Ausprägung von Varianten dargestellt wird, ist in der Basis-Metrik nicht berücksichtigt.

Im Grunde könnte man sagen, die McCabe-Metrik ist eher ein Maß für Kompliziertheit, als ein Maß für Komplexität. (Vorausgesetzt, das Software-Modul wurde auf Basis von Teile und Herrsche ausreichend übersichtlich gestaltet.)

Wie also lässt sich der aktuelle Stand der Komplexität bildhaft darstellen? Ich werde es mit Beispielen aus dem Automotive-Umfeld versuchen. Stellvertretend für die Komplexität beziehe ich mich auf die Schnittstellen der elektronischen Komponenten.

Auf dem Bild 5 sehen Sie die Entwicklung der Bordnetze von 1950 bis 2014 an drei Beispielen. 1950 mit dem VW Käfer. 30 Jahre später, 1980 beim Opel Kadett-D, haben sich die Anzahl der elektronischen Bauteile und das Bordnetz verzehnfacht. 24 Jahre später, 2004 mit dem VW Phaeton gibt es noch einmal eine Verzehnfachung der elektronischen Komponenten und des Bordnetzes.

Bildergalerie

Was ist bei der Entwicklung des Bordnetzes gegenüber der Anzahl der Komponenten auffällig? Die Anzahl der elektronischen Komponenten hat sich von 1950 bis 1980 verzehnfacht, und Gewicht und Länge des Kabelbaums sind linear mit gewachsen.

Von 1980 bis 2004 hat sich wiederum die Anzahl der elektronischen Komponenten verzehnfacht, jedoch haben sich Gewicht und Länge des Kabelbaums nur knapp verdoppelt. Die für die Kommunikation der Komponenten notwendigen Signale haben sich mit Sicherheit ebenso verzehnfacht. Wie werden sie übertragen?

Des Rätsels Lösung finden wir in den 1990er Jahren. Zu diesem Zeitpunkt haben die Bussysteme in die Bordnetze Einzug gehalten, allen voran der CAN Bus. Bis dahin konnte über ein Kabel immer nur ein Signal übertragen werden. Mit den Bus-Technologien können nun bis zu 2.500 Signale (zumindest theoretisch und heute sogar noch mehr) über zwei Kabel übertragen werden.

In der Abbildung Nr. 3 (siehe Bildergalerie) ist noch einmal in einem Diagramm dargestellt, wie die Anzahl der Interfaces weiterhin rasant ansteigt, jedoch der Kabelbaum in den 90er Jahren ein vorläufiges Maximum erlebt, ja sogar leicht rückläufig ist, um dann erst wieder leicht anzusteigen. Das Wachstum der Signale ist also ungebremst, aber ab den 90er Jahren werden sie über Bussysteme übertragen.

Jetzt kommt die spannende Frage, wie werden denn die Busse angesteuert? Ja richtig, von der Software. Wir können also davon ausgehen, dass seit den 90er Jahren 80% des Wachstums der Komplexität in die Software mündet. Wir können auch getrost davon ausgehen, dass sich von 2004 bis heute die Komplexität in unseren Systemen noch einmal verzehnfacht hat.

Die Entwicklung dieser Software auf Basis von Hochsprachen, und das auch noch in verteilten Teams, erreicht zunehmend die Grenze der Leistungsfähigkeit der Gehirne der Ingenieure. Denken Sie bitte auch immer an die multifachen Ebenen, auf denen sich das Beziehungsgeflecht auswirkt (in dieser Betrachtung erst einmal vernachlässigt).

In den letzten Jahrzehnten ist der Großteil der Komplexität in die Software geflossen. Auch dort ist Teile und Herrsche der meist eingesetzte Mechanismus, um ihr zu begegnen, mit demselben Effekt, die Komplexität wirkt sich am stärksten in Bezug auf die Interfaces aus.

Die Fortsetzung des Beitrags folgt in Teil 2

* Andreas Willert ist Geschäftsführer der Willert Software Tools GmbH. Mit freundlicher Genehmigung wurde dieser Beitrag dem Tagungsband Embedded Software Engineering Kongress 2014 entnommen.

(ID:43693627)