Wenn Forschungssoftware Ergebnisse verfälscht

In fast allen wissenschaftlichen Bereichen kommt spezielle Software zum Einsatz. Ihre Qualität ist nicht immer gut. (Foto: Markus Breig, KIT)

In der medizinischen Forschung ist sorgfältig programmierte Software entscheidend. Fehler können hier im schlimmsten Fall sogar zu falschen wissenschaftlichen Ergebnissen führen. Mithilfe eines Tools können Verantwortliche nun die Qualität dieser Software checken. 

Wo große Mengen Forschungsdaten anfallen und schnell verarbeitet werden müssen, ist zuverlässige, sorgfältig entwickelte Software entscheidend, um sie zu analysieren und richtig zu interpretieren. Unsichere Finanzierung und Zeitdruck bei der Entwicklung und Wartung wissenschaftlicher Software können diese erforderliche Qualität mindern.

„Das Einhalten von Codierungsstandards wird bei wissenschaftlicher Software viel zu selten berücksichtigt, obwohl das sogar zu falschen wissenschaftlichen Ergebnissen führen kann“, sagt Professor Alexandros Stamatakis, der sowohl am HITS als auch am Institut für Theoretische Informatik (ITI) des KIT tätig ist. Um die Softwarequalität automatisiert zu bewerten, haben Informatiker des Karlsruher Instituts für Technologie (KIT) sowie des Heidelberger Instituts für Theoretische Studien (HITS) das Tool SoftWipe entworfen.

Hilfe im Auswahlprozess

Das Open-Source-Tool SoftWipe bewertet Software-Entwicklungsstandards automatisiert. „SoftWipe kann auch im Begutachtungsprozess von wissenschaftlicher Software verwendet werden und den Auswahlprozess unterstützen“, sagt Adrian Zapletal. Der Masterstudent und sein Kommilitone Dimitri Höhler haben maßgeblich zur Entwicklung des Tools beigetragen. Bei der Auswahl der Bewertungskriterien orientierten sie sich an bereits bestehenden Standards. Diese Standards werden in sicherheitskritischen Bereichen, wie beispielsweise bei der NASA oder am CERN, eingesetzt. 

So funktioniert das Tool

SoftWipe ist eine in der Programmiersprache Python3 geschriebene Pipeline. Sie verwendet mehrere überwiegend frei verfügbare statische und dynamische Code-Analyzer, um die Codequalität von in C/C++ geschriebener Software zu bewerten. Dabei kompiliert SoftWipe die Software und führt diese aus, um auch Programmierfehler während der Ausführung zu erkennen. Anhand der Ausgabe der verwendeten Tools zur Code-Analyse berechnet SoftWipe einen Qualitätsscore zwischen 0 (schlecht) und 10 (sehr gut). Daraus erstellt es dann eine Gesamtbewertung. 

Enorme Qualitätsunterschiede

Neben dem Tool selbst haben die Informatiker ein Ranking von 48 wissenschaftlichen Softwares aus verschiedenen Forschungsbereichen erstellt und dabei bewertet, ob die Codierungsstandards eingehalten wurden. Ihre Ergebnisse haben sie im Nature Scientific Reports Journal veröffentlicht. „In unseren Untersuchungen haben wir enorme Unterschiede in der Softwarequalität festgestellt“, sagt Mitautor Professor Carsten Sinz vom ITI. Viele Programme, wie beispielsweise covid-sim, das in Großbritannien zur mathematischen Modellierung der Infektionskrankheit COVID-19 eingesetzt wird, wiesen einen sehr niedrigen Qualitätsscore auf und schnitten so im Ranking schlecht ab. Die Wissenschaftler empfehlen, dass Programme wie SoftWipe standardmäßig im Auswahl- und Begutachtungsprozess für Software im wissenschaftlichen Bereich eingesetzt werden sollten.