Research Software Engineering
Vom 30. Mai - 2. Juni 2019 fand im ZKM und in der Hochschule für Gestaltung (HfG) die GPN19 statt. Dort traf Sebastian auf Carina Haupt, die schon auf der GPN18 von der öffentlich finanzierten Wissenschaft forderte: Publish Your Research!
Carina Haupt studierte Informatik an der Hochschule Bonn-Rhein-Sieg. Aktuell befasst Sie sich wissenschaftlich mit Forschungssoftware, die meist von Wissenschaftlerinnen und Wissenschaftlern nur geringfügiger Kenntnis von Softwaretechnik oder unter Aspekten von Nachhaltigkeit entwickelt wird, da die Software nur als Mittel zum Zweck gesehen wird. Ziel der Wissenschaftlerinnen und Wissenschaftlern ist es schließlich Forschung zu betreiben und nicht Software zu entwickeln.
Dabei zeigt die anhaltende Replication Crisis, die darin besteht, dass etliche publizierte wissenschaftliche Arbeiten nicht reproduzierbar sind, und somit alle abgeleiteten Arbeiten auf unsicheren Füßen stehen und eigentlich unter den geänderten Voraussetzungen wiederholt werden müssten.
Eine Herausforderung ist, dass für viele Forschende, wie beispielsweise in der Mathematik, oft die Software nur zur Verifikation der eigentlichen wissenschaftlichen Aussagen verwendet wird, und daher eine deutlich geringere Wertschätzung erfährt. Auch wird ein Reputationsverlust befürchtet, wenn die Softwarequalität nicht den Ansprüchen im Kernbereich der Forschung entspricht, so dass oft von einer veröffentlichung des Source Codes und der Daten abgesehen wird. Dabei muss die Offenlegung der verwendeten Verfahren und Daten ein Grundanliegen ernsthafter Forschung sein und eine Kennzeichnung von Software beispielsweise als Proof-of-Concept sollte einen angemessenen Anspruch an die Software sicherstellen.
Am Deutschen Zentrum für Luft- und Raumfahrt (DLR), leitet Carina eine Gruppe zum Software Engineering und ist dort mit ihren Kolleginnen und Kollegen für 40 Institute an 20 Standorten Ansprech- und Kooperationspartnerin für Softwareentwicklung unter anderem im wissenschaftlichen Umfeld von Luft- und Raumfahrt, Energie und Verkehr. Inzwischen ist dort ihr Enthusiasmus für Open Source, und Forschenden in der Softwareentwicklung zu unterstützen, zu ihrem eigenen Forschungsgebiet geworden.
Bevor sie zum DLR kam, war sie beim Fraunhofer-Institut für Algorithmen und Wissenschaftliches Rechnen (SCAI) im Bereich der Bioinformatik und dem Semantic Web, sowie in der Industrie und nebenberuflich bei der Froscon tätig, bis sie dem Ruf von Andreas Schreiber in ihre aktuelle Gruppe folgte.
Um Außenstehenden einen schnellen und sehr unterhaltsamen Einstieg in und wichtige Motivation für das Software Engineering bei der DLR zu bieten, hat sie auf der GPN18 einen Vortrag Software-Fehler in der Raumfahrt: Disintegrating Rockets mit großem Anklang gehalten.
Aber kann die Publikation von Forschungsdaten bei Auswirkungen der Replikationskrise wie der Analyse, dass über die Hälfte von Psychologiepapern nicht nachvollzogen werden können, helfen? Auf jeden Fall hätte die Veröffentlichung schon frühere Diskussionen und Verbesserungen der Ergebnisse ermöglicht, da abgeleitete Arbeiten statt der geschriebenen Darstellung auf den echten Daten ihre erweiterten Analysen hätten durchführen können.
Soweit die Theorie, praktisch muss man sich eingehend damit befassen, was genau erforderlich ist, um eine Reproduzierbarkeit schon auf Seiten der Daten und Software zu ermöglichen. Das Befassen mit diesen Themen führt von einer Erstellung einer Publikation zum Begriff der Open Science oder offener Wissenschaft, die unter anderem Open Access, Open Data als auch Open Source betrifft. Hier konzentriert sich Carina in ihrer Forschung besonders auf den letzten Teil, insbesondere wie Erkenntnisse aus der Softwaretechnik dazu beitragen können, dem großen Ziel der Reproduzierbarkeit auch über die Zeit hinweg zumindest näher zu kommen.
Wichtig ist auch den Entstehensprozess von Software zu betrachten. Die Fernseh-Show Bares für Rares demonstriert, wie die Wertigkeit eines Objekts durch eine nachgewiesene Herkunft signifikant beeinflusst wird. Dies erfolgt durch Nachweis der sogenannten Provenience. Der Begriff Provenience bedeutet die Aufzeichnung der Geschichte der Entstehung eines Objektes. Dies läßt sich auf Software übertragen. Die Wertigkeit und Qualität von einer Software-Publikation könnte zum Beispiel dadruch evaluiert werden indem der Build- und Entwicklungsprozess aufgezeichnet, und mit dem PROV W3C-Standards dokumentiert.
Neben der Dokumentation liegt der nächste Schritt für reproduzierbare Software (vgl. E. Heitlinger: Reproduzierbarkeit – Wissenschaftliche Arbeit als Software-Projekt) darin, die erforderlichen zusätzlichen Bestandteile auch zur Verfügung zu stellen. Die nachhaltige Softwareentwicklung befasst sich in besonderem Maße damit, dass die Software von anderen sowohl genutzt als auch in Zukunft weiterentwickelt werden kann. Natürlich sollten wissenschaftliche Veröffentlichungen grundsätzlich die Wissensgewinnung und Validierung genau beschreiben, nur ist dies im gängigen Rahmen und Form normaler Publikationsformen weder in Form noch im Umfang abzubilden. Daher fordern viele Journals und Konferenzen, die Daten und Methoden in der Form von ausführbaren, web-basierten Jupyter Notebooks zur Verfügung zu stellen.
Ein neuer Ansatz ist eine "Software Zitierbarkeit" zu ermöglichen, also sowohl die Form mit Weblinks und Versionierung, also auch mit Infrastruktur wie dem Dienst Zenodo, das einen Digital Object Indentifier (DOI) für Software mit einem Langzeitarchiv bereitstellt. Das ist ein Service, der in etwas weniger spezialisierter Form für unterschiedliche Medien auch von vielen Hochschulbibliotheken angeboten wird.
Am DLR widmet sich die Software Engineering Initiative mit vielen Ansätzen, um Forschenden zu helfen nachhaltige Software zu entwickeln. Ein wichtiger Bestandteil sind hier Trainings, wie beispielsweise Repositories verwendet werden sollten:
- Hinweise für sinnvolle Commit-Messages verwenden.
- Wie sollten Versionen vergeben werden?
- Neben den eigentlichen Sourcen sollte auch der Build-Prozess und Testdaten im Repository sein
- Sinnvolle Struktur von Dateibäumen und sprechende Bennenung von Dateien
- Jedes Repository sollte eine README-Datei haben, die am Anfang kurz die Funktion der Sourcen beschreibt und in welchem Scope und in welchen Constraints die Ziele erreicht werden sollen, wie sie installiert, ausgeführt und getestet wird und wie sollte die Software zitiert werden?
- Unter welcher Lizenz steht die Software?
Unterstützung gibt es auch durch zentrale Infrastruktur, die vom DLR beispielsweise durch eine eigene GitLab bald zur Verfügung stehen wird, und allen Forschenden einen eigenen persönlichen Bereich anbieten, sowie Projekten sofort entsprechende Strukturen bereitstellen.
Die im Gespräch erwähnte SHA1-Kollision Shattered hatte einen Stillstand der für mehrere Browser grundlegende WebKit-Entwicklung zur Folge, da deren Subversion-Repository nicht mit der Hash-Kollision zurecht gekommen ist.
Es gibt vielseitige Motivationsgründe für Forschende die Unterstützung der Software Engineering Initiative anzunehmen: Entweder sind sie aus einem füngeren universitären Umfeld schon mit der Thematik vertraut, oder haben Probleme durch fehlene Softwarequalität schon kennengelernt, lassen sich von Beispielen überzeugen oder Qualitätsanforderungen überreden, oder es wird ihnen durch Vorgesetzte nahe gelegt.
Ein Mittel zur Motivation sind insbesondere die am DLR entwickelten Software Engineering Guidelines, die Kolleginnen und Kollegen zur Verfügung gestellt werden können. Darin sind sowohl Begründungen für das Vorgehen, aber auch einfach zur verfolgende Entscheidungsbäume und Checklisten, die je nach Größe und Kritikalität von Projekt unterschiedlich aufwendige Empfehlungen vorschlagen. Dies kann von einer TODO-Datei bis zur Integration eines vollständigen Issue-Tracker gehen, der in der höchsten Qualitätsstufe auch mit dem kompletten Code-Management integriert werden sollte. Diese Guidelines sind am DLR in eine Qualitätsinitiative integriert, bei der in jedem Institut ein Qualitätsbeauftragter oder eine Qualitätsbeauftragte zumindest erfassen sollte, warum bestimmte Empfehlungen nicht entsprochen wird, oder idealerweise das Institut dabei dazu zu motivieren diese einfach genau so umsetzen.
Die erforderliche Bereitstellung digitaler Infrastruktur durch Organisationen spielt für Hochschulen neben den Bereichen des Software Engineerings auch in der Lehre eine wichtige Rolle:
"Wenn technische Möglichkeiten wie Vorlesungsaufzeichnungen auch im Rahmen obligatorischer Lehrveranstaltungen genutzt werden sollen, müssen Hochschulen daher auch aus datenschutzrechtlichen Gründen entweder eine eigene Infrastruktur aufbauen oder datenschutzkonforme Dienstleistungen gegen Entgelt in Anspruch nehmen."
A. Lauber-Rönsberg in Videocampus Sachsen – Machbarkeitsuntersuchung.
Was alles bei der Nutzung mit Software-Repositories am Beispiel von GIT passieren kann, erzählt Sujeevan Vijayakumaran im GPN19-Vortrag Dämliche Dinge mit git anstellen.
Grundlage für viele Aktivitäten der Software Engineering Group basieren auf Software Carpentries, beispielsweise mit einer GIT Einführung, die auch auf die Nachhaltigkeit abzielt.
In der Helmholtz-Gesellschaft wurde das HIFIS-Projekt (Helmholtz Infrastructure for Federated ICT Services) gestartet, um die Initiativen und Erfahrungen in der Bereitstellung von Infrastrukturen innerhalb der Helmholtz Gesellschaft zu bündeln. Hier geht es nicht nur um den Betrieb der Software, sondern auch um das Training für die Services und im Allgemeinen. Dazu sollen Communities für Software Engineering und weiteren Themen gebildet werden, damit der Austausch über Erfahrungen und Wissen leichter ablaufen kann.
Die Initiativen im Bereich der Research Software Engineers werden im neu gegründeten Verein DE-RSE e.V. gegründet, der vom 4.-6. Juni im Potsdam die erste
Konferenz für ForschungssoftwareentwicklerInnen in Deutschland deRSE19 veranstaltet. Der Ursprung dieser Initiative liegt im WSSSPE Workshop (Working towards sustainable software for science: practice and experiences) und der Konferenz der Research Software Egineers Association. Die #deRSE19 wird auch besonders durch die TIB, dem Leibniz-Informationszentrum, Technik und Naturwissenschaften, Universitätsbibliothek, unterstützt.
In der Zukunft muss es auch darum gehen, Infrastrukturen bereit zu stellen, über gute Verfahren zu informieren und auch Anreize für Forschenden zu schaffen, die verschiedenen Ansätze aufnehmen. Der Verein und das HIFIS-Projekt möchten hier mit unterschiedlichen Ansätzen dazu beitragen die Situation zu verbessern, und insbesondere die aktuelle Dynamik in Richtung Open Journals, Open Data, Open Source und Open Science zu nutzen.
Für einzelne Gruppen und Instituten sollte die Wichtigkeit sich mit Open Source Lizenzen nicht unterschätzt werden: Es kann sonst zu Inkopatibilitäten zwischen verschiedenen Lizenzen kommen, oder es fehlen Einverständniserklärungen von einzelnen, nicht vertraglich verbundenen Personen. Diese können beispielsweise Studierende sein, die im Rahmen einer Abschlussarbeit an einem Projekt mitgearbeitet haben. Hier muss ein Contributor Licence Agreement bereit sein, die von sonst nicht vertraglich gebunden Beitragenden unterschrieben werden kann.
Literatur und weiterführende Informationen
- C. Haupt, T. Schlauch: The Software Engineering Community at DLR—How We Got Where We Are, Proceedings of the Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE5. 1), 2017.
- A. Schreiber, C. Haupt: Raising awareness about open source licensing at the German aerospace center, 2018 IEEE Aerospace Conference. IEEE, 2018.
- D. A. Almeida, G. C. Murphy, G. Wilson, M. Hoye: Do software developers understand open source licenses?, Proceedings of the 25th International Conference on Program Comprehension (pp. 1-11), IEEE Press, 2017.
- R. Krishnamurthy, M. Meinel, C. Haupt, A. Schreiber, P. Mäder: DLR secure software engineering: position and vision paper. Proceedings of the 1st International Workshop on Security Awareness from Design to Deployment (pp. 49-50). ACM, 2018.
Podcasts
- M. Fromm, K. Förstner: Open Science Radio
- C. Haupt, S. Janosch, K. Förstner: Voices from de-RSE Conference 2019, Open Science Radio, OSR171, 2019.
- C. Haupt, S. Druskat, K. Förstner: de-RSE Association and Conference for Research Software Engineers in Germany, Open Science Radio, OSR140, 2019.
- S. Janosch, K. Förstner: Forschungssoftware in Deutschland, Open Science Radio, OSR091, 2017.
GPN19 Special
- P. Packmohr, S. Ritterbusch: Neural Networks, Data Science Phil, Episode 16, 2019.
- P. Packmohr, S. Ritterbusch: Propensity Score Matching, Gespräch im Modellansatz Podcast, Folge 207, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2019. http://modellansatz.de/propensity-score-matching
- C. Haupt, S. Ritterbusch: Research Software Engineering, Gespräch im Modellansatz Podcast, Folge 208, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2019. http://modellansatz.de/research-software-engineering
GPN18 Special
- D. Gnad, S. Ritterbusch: FPGA Seitenkanäle, Gespräch im Modellansatz Podcast, Folge 177, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2018. http://modellansatz.de/fpga-seitenkanaele
- B. Sieker, S. Ritterbusch: Flugunfälle, Gespräch im Modellansatz Podcast, Folge 175, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2018. http://modellansatz.de/flugunfaelle
- A. Rick, S. Ritterbusch: Erdbebensicheres Bauen, Gespräch im Modellansatz Podcast, Folge 168, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2018. http://modellansatz.de/erdbebensicheres-bauen
GPN17 Special
- Sibyllinische Neuigkeiten: GPN17, Folge 4 im Podcast des CCC Essen, 2017.
- A. Rick, S. Ritterbusch: Bézier Stabwerke, Gespräch im Modellansatz Podcast, Folge 141, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. http://modellansatz.de/bezier-stabwerke
- F. Magin, S. Ritterbusch: Automated Binary Analysis, Gespräch im Modellansatz Podcast, Folge 137, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. http://modellansatz.de/binary-analyis
- M. Lösch, S. Ritterbusch: Smart Meter Gateway, Gespräch im Modellansatz Podcast, Folge 135, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2017. http://modellansatz.de/smart-meter
GPN16 Special
- A. Krause, S. Ritterbusch: Adiabatische Quantencomputer, Gespräch im Modellansatz Podcast Folge 105, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/adiabatische-quantencomputer
- S. Ajuvo, S. Ritterbusch: Finanzen damalsTM, Gespräch im Modellansatz Podcast, Folge 97, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/finanzen-damalstm
- M. Fürst, S. Ritterbusch: Probabilistische Robotik, Gespräch im Modellansatz Podcast, Folge 95, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/probabilistische-robotik
- J. Breitner, S. Ritterbusch: Incredible Proof Machine, Gespräch im Modellansatz Podcast, Folge 78, Fakultät für Mathematik, Karlsruher Institut für Technologie (KIT), 2016. http://modellansatz.de/incredible-proof-machine