Aus der IT-Forschung: Fehler in Software vermeiden

Sonntag, 04. Juni 2017  / Alter: 112 Tage

Informatiker forschen an der Universität Hildesheim an Techniken, wie Software effizient weiterentwickelt werden kann. Mit ihrer Forschung wollen die Wissenschaftler um Professor Klaus Schmid dazu beitragen, Fehler in Software zu vermeiden. Nun setzen sie ihre Arbeit in einem internationalen Forschungsprojekt fort.

Aus dem Innenleben eines Computers: Rückseite einer Grafikkarte; Ausschnitt des Motherboards, die Hauptplatine im Rechner, die alle Komponenten miteinander verbindet. Professor Klaus Schmid erforscht am Institut für Informatik der Universität Hildesheim, wie in Software Fehler vermieden werden können. Sascha El-Sharkawy ist wissenschaftlicher Mitarbeiter im internationalen Forschungsprojekt „REVaMP²". Fotos: Isa Lange/Uni Hildesheim

Wie Softwaresysteme effizient produziert werden können, damit befasst sich Professor Klaus Schmid auf dem IT-Campus am Samelsonplatz der Universität Hildesheim. „Unternehmen entwickeln oft eine Menge ähnlicher Systeme. Wenn hier Software-Produktlinienansätze genutzt werden, können viele Teile wiederverwendet werden. Dies führt zu enormen Kosteneinsparungen bei gleichzeitig verbesserter Qualität“, sagt der Informatiker.

Ein Team um Klaus Schmid nimmt derzeit die Arbeit im internationalen Forschungsprojekt „REVaMP²" auf. 31 Partner aus sechs Ländern kooperieren in den kommenden drei Jahren in dem Projekt. Die Hildesheimer Informatiker arbeiten dabei mit renommierten Forschungseinrichtungen wie der University Pierre and Marie Curie, der University of Gothenburg, dem Forschungszentrum Informatik und der Université Paris 1 Panthéon Sorbonne sowie großen Industriepartnern wie ABB, Bosch, Saab, Scania und Siemens zusammen.

„Wir beschäftigen uns in dem Projekt mit der automatisierten Erstellung von Software-Produktlinien, die auf bereits existierenden Produkten aufbauen“, sagt Sascha El-Sharkawy, Informatiker an der Universität Hildesheim. „Die effiziente Entwicklung von Software-Produktlinien ist ein Bereich des Software Engineerings. Dabei teilen sich die Produkte einer Produktlinie eine gemeinsame Basis, grenzen sich aber auch durch individuelle Funktionalitäten voneinander ab. Durch eine hohe Wiederverwendung der gemeinsamen Artefakte über die verschiedenen Produkte hinweg soll die Qualität erhöht, Kosten gesenkt und die Entwicklungszeit stark verkürzt werden.“

Aufgrund des Investitionsaufwands zur Planung und Erstellung einer Software-Produktlinie setzen viele Firmen im Alltag häufig noch immer auf „Clone and Own“, sagt El-Sharkawy. „Dieses Prinzip lockt mit einer ebenfalls schnellen Erstellung von ersten Produkten, führt aber in der weiteren Entwicklung zu einem immensen Wartungsaufwand, da ‚geklonte‘ Artefakte nicht systematisch und gemeinsam gewartet werden können. Im REVaMP²-Projekt wollen wir diese Situation verbessern, indem wir den Aufwand zur Migration zu einer Produktlinie reduzieren.“

Das Forschungsprojekt läuft drei Jahre. Das Gesamtprojekt „Round-trip Engineering and Variability Management Platform and Process“ („REVaMP²“) wird im Rahmen des ITEA3-Programms gefördert. Das Bundesministerium für Bildung und Forschung fördert die Forschung in Hildesheim.

Wer Fragen zu der Forschung hat, kann sich an Prof. Dr. Klaus Schmid wenden (schmid(at)sse.uni-hildesheim.de).

Internationales Forschungsprojekt „REVaMP²“

 

Nachgefragt

„Es geht um Qualität“

Professor Klaus Schmid über die Bedeutung von Software im Alltag:

„Softwaresysteme werden immer komplexer, je größer sie werden. Wir gehen in unserer Forschung in Hildesheim der Frage nach, wie gute Software effizienter entwickelt werden kann. Es geht am Ende immer um die Qualität von Software. IT ist so fundamental in unserer Gesellschaft –  wir haben unsere Welt in den letzten Jahrzehnten so gestaltet, dass sie ohne Computer kaum noch existieren kann. Man muss sich einmal bewusst machen, an wie vielen Tausend Stellen IT-Systeme verborgen sind. Das Auto ist ein fahrendes Rechenzentrum. Computersysteme sind mitten in unserem Alltag.

Wer hier an der Universität in Hildesheim ausgebildet wird und später in der Wirtschaft Softwaresysteme baut, hat Verantwortung. Wenn eine Spiele-App abstürzt ist das nicht so schlimm. Aber wenn das Online-System der Bahn aufgrund von Fehlern abstürzen würde, dann können Sie keinen Zug mehr buchen. Oder ein Student ist plötzlich exmatrikuliert, weil ein Softwarefehler im System steckt. Es ist eine Illusion zu glauben, Menschen arbeiten fehlerfrei. Komplexe Betriebssysteme haben oft Tausende von Fehlern. Einige Softwaretechniken sind relativ fragil, ein Semikolon verändert im Extremfall, was das Programm tut.

Software ist erst einmal nicht greifbar, ist abstrakt – anders als bei klassischen Ingenieurberufen. Das macht es aber auch schwieriger, Fehler zu erkennen. Denn man sieht nicht einfach, wenn ein Trägerbalken am Haus schief ist. Wir arbeiten daher auch mit Verifikationsansätzen, dabei wird mathematisch bewiesen ob bestimmte Arten von Fehlern da sind, oder nicht. Wir stehen aber immer vor einem Dilemma: Es gibt keine absolute Sicherheit. Ich kann nie sicher sein, dass ich alle Fehler in einer Software finde. Deshalb müssen Entwickler von vornherein die Qualität sichern und nicht erst nach dem Programmieren versuchen, Fehler herauszutesten. Für die Ausbildung in der Universität hat dies folgen: Wir befassen uns ab dem ersten Semester mit der Frage: Wie entwickele ich überhaupt Software und reduziere die Fehlerwahrscheinlichkeit? Die Studentinnen und Studenten  sehen nicht nur den Programmcode auf dem Papier sondern müssen verstehen: Was tut die Maschine? Zwei Drittel unserer Studierenden haben vor dem IT-Studium noch nicht programmiert – sie lernen im Studium das Programmieren von Anfang an – und das intensiv. Da kommt man nicht drum herum.“

 

Interview

Nachgefragt bei Sascha El-Sharkawy, Informatiker an der Universität Hildesheim

Software ist mitten in unserem Alltag, oder?

Sacha El-Sharkawy: In der heutigen Zeit ist Software allgegenwärtig um Arbeitsabläufe zu automatisieren und Maschinen zu verbessern. So stecken in einem Auto 30 bis 70 kleine Computer – zur Steuerung des Motors, für Assistenzsysteme bis hin zum Multimediaautoradio mit integriertem Navigationssystem.  Weitere Beispiele sind Produktempfehlungen, mit denen Online-Versandhändler arbeiten oder die Überweisungen im Onlinebanking, die teilweise noch am selben Tag zwischen zwei Banken verarbeitet werden.

Sie beschäftigen sich in der Forschung mit der Frage, wie man Fehler in Software vermeiden kann – warum ist das wichtig? Fehler sollten also möglichst erst gar nicht entstehen, weil man sie schlecht wieder loswird?

Softwarefehler, die spät in der Entwicklung gefunden werden, lassen sich sehr schwer wieder entfernen ohne neue Fehler in das System einzubringen. So können zu Projektende gefundene Fehler rund 100 Mal teurer sein, als Fehler die gleich zu Projektanfang gefunden und beseitigt wurden.

Und wenn die Fehler während der Entwicklung nicht entdeckt werden?

Nicht alle Fehler werden während der Entwicklung gefunden. Fehler in ausgelieferten Produkten können zu immensen Schäden führen: Angefangen von einem Imageschaden, wenn Kunden einem Produkt oder Hersteller nicht mehr vertrauen, über wirtschaftliche Schäden, zum Beispiel in einer fehlerhaften Banking Software, bis hin zu Personenschäden, zum Beispiel in einer fehlerhaften Fahrzeugsteuerung oder Flugzeugsoftware.

Die Fragen stellte Isa Lange. 

Kurz erklärt: Arbeitsgruppe Softwareentwicklung

Informatiker forschen an der Universität Hildesheim an Techniken, wie Software effizient weiterentwickelt werden kann.

Seit 2005 arbeitet die Arbeitsgruppe „Software Systems Engineering“ um Professor Klaus Schmid an der Universität Hildesheim an Methoden und Techniken, wie Software effizient weiterentwickelt werden kann. Die Informatikerinnen und Informatiker wollen Fehler frühzeitig in Software erkennen und vermeiden.

Häufig fließt mehr Aufwand in die Weiterentwicklung von Software, als in die ursprüngliche Entstehung. „Weiterentwicklung ist notwendig, wenn eine Software um Funktionen erweitert oder Fehlverhalten korrigiert werden muss. Geschieht dies nicht, veralten die Systeme oder funktionieren nicht, wie vom Kunden gewünscht. Der Verlust dieser Kunden, Imageschäden, und letztendlich finanzielle Einbrüche sind die logische Konsequenz“, sagt Kröher.

Die Arbeitsgruppe ist an verschiedenen nationalen und internationalen Forschungskooperationen beteiligt. Die Forschung wurde von der Deutschen Forschungsgemeinschaft (DFG) gefördert.  So haben sich die Hildesheimer Informatiker mit Softwaretechnikern der Universität Bremen in den letzten Jahren in der Forschung auf Softwareproduktlinien konzentriert. Dabei handelt es sich „um eine Menge verwandter Produkte mit einer gemeinsamen Infrastruktur“, sagt der Informatiker Christian Kröher. Die Herausforderung bei deren Weiterentwicklung sei – anders als beim einzelnen Produkt – die „enge Verknüpfung der Produkte und die längere Lebensdauer der Produktlinie. Jede Änderung muss in der Gesamtheit betrachtet werden.“

Informatikerinnen und Informatiker an der Universität Hildesheim arbeiten in Themengebieten wie Software Engineering, Maschinelles Lernen und Data Analytics, intelligente Informationssysteme und „Information Retrieval“.

Medienkontakt: Pressestelle der Universität Hildesheim (Isa Lange, 05121.883-90100, presse@uni-hildesheim.de)

Von: Pressestelle, Isa Lange [erstveröffentlicht am 13.04.2017]

Aus dem Innenleben eines Computers: Rückseite einer Grafikkarte; Ausschnitt des Motherboards, die Hauptplatine im Rechner, die alle Komponenten miteinander verbindet. Professor Klaus Schmid erforscht am Institut für Informatik der Universität Hildesheim, wie in Software Fehler vermieden werden können. Sascha El-Sharkawy ist wissenschaftlicher Mitarbeiter im internationalen Forschungsprojekt „REVaMP²". Fotos: Isa Lange/Uni Hildesheim