Reproduzierbarkeit


Wie stelle ich Reproduzierbarkeit der von meiner Software produzierten Daten sicher?

Generell gibt es hierfür zwei Wege, die sich aber in letzter Konsequenz widersprechen. Einerseits die möglichst unveränderte Konservierung des Programmcodes. Bei diesem Vorgehen besteht praktisch keine Gefahr, dass sich die von der Software produzierten Daten ändern, allerdings ist die Ausführbarkeit auf lange Sicht nicht mehr garantiert. Der andere Weg wäre die kontinuierliche Pflege der Software, die zumindest Anpassungen an sich verändernde Betriebssysteme und Laufzeitumgebungen erfordert; idealerweise ist hiermit auch eine Weiterentwicklung verbunden.

Konservierung des Programmcodes

Dieses Vorgehen kann unter Umständen auch zu Dokumentationszwecken erforderlich sein (z.B. wenn die Software Teil einer Veröffentlichung ist).

Archivieren

Wie stelle ich sicher, dass mein Quellcode 10 Jahre lang lesbar (und ausführbar) bleibt?

Kontinuierliche Pflege

Hierfür ist Reviewing, konsequentes Testen (auch automatisiert) und Dokumentation (auch in Form einer Versionsverwaltung) unbedingt erforderlich.

Welche Standards gibt es für das Reviewing wissenschaftlicher Software (fachspezifisch oder generisch)

Beispiele

Konsequentes Testen

Wie lassen sich Regressionstests automatisieren?

Drei Bewertungen entsprechender Software (https://www.rainforestqa.com/blog/regression-testing-tools, https://www.softwaretestinghelp.com/regression-testing-tools/, https://theqalead.com/tools/best-regression-testing-tools/). Als Schnittmenge ergibt sich (in alphabetischer Reihenfolge):

Bisher ist nichts davon über die Lizenzliste der MPDL (SoLi) verfügbar, evtl. Vorschläge einreichen

In jedem Fall unabdingbar: Dokumentation (Software und Hardware!)

  • in letzter Konsequenz bleibt nur die textbasierte Dokumentation des Algorithmus, unabhängig von der Programmierasprache (wäre aber extrem aufwändig)
  • Kompromiss: Quellcode inklusive aller relevanten Bibliotheken ebenfalls als Quellcode (vor allem bei mathematischen Berechnungen)
  • Bezüglich Dokumentationstools für Software siehe auch die FAQ zu Dokumentation.

Links