Bild nicht mehr verfügbar.

Die Stahlproduktion besteht nicht nur aus "Hardware", sondern wird von elaborierten Softwaresystemen gesteuert.

Foto: APA / Hans Klaus Techt

Auch ein Stahlwerk besteht nicht nur aus "Hardware": In industriellen Anlagen vom Hochofen bis zum Walzwerk, von der Sinter- bis zur Gießanlage sorgen heute hunderttausende Zeilen Softwarecode dafür, dass Prozesse reibungslos funktionieren und dass am Ende des Produktionsweges die richtigen Stahl- und Eisensorten und -legierungen in der gewünschten Form vorliegen.

Jede einzelne Anlage ist für sich allein ein komplexes System, das sich eventuell grundlegend von weiteren Systemen in einer Industrieanlage unterscheidet. Die spezifische Software hat vielleicht schon 20 Jahre auf dem Buckel und wurde über lange Zeit hinweg entsprechend den Anforderungen der Produktion angepasst und weiterentwickelt. Trotzdem müssen die Komponenten im Orchester einer industriellen Produktionsanlage mit vielen anderen Systemen zusammenspielen. Systeme werden zu Teilkomponenten größerer Systeme.

In großen Industrieanlagen ergibt sich dadurch eine sehr heterogene Softwarelandschaft mit vielen verschiedenen, individuell weiterentwickelten Systemen unterschiedlichen Alters und Entwicklungsstands. Softwarearchitekten und Programmierer müssen inmitten von Millionen Codezeilen aber dennoch den Überblick bewahren.

Um die Evolution sehr großer Softwarearchitekturen systematisch vorantreiben zu können und um eventuell weitreichende Auswirkungen von Eingriffen und Veränderungen abschätzen zu können, braucht es entsprechende Methoden und Werkzeuge - Hilfsmittel, die das neueröffnete Christian-Doppler-(CD)-Labor für "Monitoring and Evolution of Very-Large-Scale Software Systems" an der Johannes-Kepler-Universität (JKU) Linz entwickeln soll.

Bei den Softwaresystemen handle es sich oft um "sehr spezielle Lösungen, in denen jahrzehntelang angesammeltes Wissen drinnensteckt", sagt Laborleiter Paul Grünbacher vom Institut für Systems Engineering und Automation.

Hohe Variantenvielfalt

Er und sein Team arbeiten im vom Wirtschaftsministerium ko-finanzierten CD-Labor mit den Unternehmenspartnern Siemens VAI, Keba und Compuware zusammen, um das Wissen in Modellen zu systematisieren. Bei manchen Softwarelösungen, etwa bei der Maschinensteuerung von Spritzgussanlagen, gibt es sehr viele Varianten, erklärt Grünbacher, angefangen von einer Basisplattform über eine Branchenlösung, die darauf aufbaut, bis hin zum konkreten Produkt, das die Branchenlösung adaptiert, und zur Maschine, die beim Kunden vor Ort angepasst wird.

Die Entwicklung der Software verteilt sich dabei auf den ganzen Globus. Externe und interne Entwickler arbeiten bei solchen Softwaresystemen zusammen. "Wenn man dann an der zugrunde liegenden Plattform Änderungen vornimmt, muss man wissen, wo es überall Auswirkungen gibt." Eigene Modellierungswerkzeuge sollen die Variantenvielfalt abbilden und Gemeinsamkeiten und Unterschiede zwischen verwandten Systemen aufzeigen. Ganze "Softwareökosysteme" sollen so abgebildet werden.

Eingriffe, die in bestehende Systeme getätigt werden, führen zu einer ganzen Reihe von Fragen: Entspricht das System nach einer Änderung noch den Kundenforderungen? Welche Systemteile sind betroffen und müssen angepasst werden? Welche Teile eines Systems sind für die Abweichung von der gewünschten Performance verantwortlich?

Um die Softwaresysteme effektiv zu durchleuchten, braucht es geeignete Strategien. "Es ist einfach nicht möglich, alle Möglichkeiten der Programmausführung zu analysieren", sagt Grünbacher. Man müsse gezielt Sonden platzieren, die feststellen, ob es Abweichungen vom gewünschten Verhalten gebe.

Den "Flaschenhals" suchen

Auch Flugbuchungssysteme im Internet sind riesige Softwarearchitekturen, bei denen tausende Server involviert sind. Die Zeit, die für die Hintergrundprozesse, während deren Ablauf verschiedene Komponenten Daten austauschen, benötigt wird, kann gemessen werden. Protokolle zeichnen auf, welche Ereignisse abgelaufen sind. Und eigene Fehlerdiagnoseprogramme durchforsten die Protokolle auf Ungereimtheiten und stöbern so einen möglichen "Flaschenhals", eine Engstelle im System, auf.

Was passieren kann, wenn die hochspezialisierte Software eines Unternehmens außer Kontrolle gerät, haben die Probleme beim Online-Banking der Bank Austria Ende 2012 eindrucksvoll gezeigt. "Wenn ich aber eines im Umgang mit Software gelernt habe, dann ist das eine gewisse Demut", sagt Grünbacher. Man solle nicht nur die Fehler sehen, sondern auch das, was die Leute leisten. (Alois Pumhösel, DER STANDARD, 27.03.2013)