Forschungssoftware archivieren

Um Software nachnutzbar über längere Zeit zur Verfügung zu stellen, muss sie ausführbar gehalten und verständlich beschrieben werden.

Software ist meist stark abhängig von der Rechenumgebung (Betriebssystem, Compiler, Hardware, Software-Bibliotheken), für die sie erstellt wurde. Durch das schnelle Voranschreiten des technischen Fortschritts ändern sich Rechenumgebungen schnell.  Schon nach wenigen Jahren kann es sein, dass vorhandene Software nicht mehr ausgeführt werden kann oder das genutzte Speichermedium von keinem Computer mehr gelesen werden kann. Für die Langzeitarchivierung von Software reicht es also nicht unbedingt aus, Quelltext und/oder ausführbare Dateien zu speichern. Vielmehr muss auch überprüft und sichergestellt werden, dass die Software ausführbar und damit nutzbar ist. Ansätze dafür sind zum Beispiel die Emulation von Rechenumgebungen, die zusätzlich zum eigentlichen Programm auch noch den ausführenden Rechner inklusive Betriebssystem nachbildet.

Zusätzlich muss die Forschungssoftware so beschrieben werden, dass sie von potentiellen Nachnutzern gefunden und verstanden werden kann.



Ansätze

Emulation

Ziel der Emulation ist es, eine ganze Rechenumgebung mit Hilfe eines anderen Computers nachzubilden und damit die enthaltenen Programme langfristig lauffähig zu halten.

Encapsulation

Ziel der Kapselung (Encapsulation) ist die Zusammenfassung eines digitalen Objektes mit allen Abhängigkeiten und mit Metadaten, die für den Zugriff auf dieses Objekt erforderlich sind. In den Metadaten sollten Informationen enthalten sein zur Referenz, Darstellung, Provenienz, Fixierung und zum Kontext.



Projekte

Das Software Heritage Projekt hat sich zum Ziel gesetzt, öffentlich verfügbaren Quellcode zu archivieren. Quellcode aus öffentlichen Repositorien (wie zum Beispiel bei GitHub) wird automatisiert archiviert. Somit besteht die Möglichkeit einzelne Teile des Quellcodes gezielt und dauerhaft zu zitieren.

Die Unversität Freiburg hat mit Emulation as a Service zum Beispiel Computerspiele emuliert.

Das Software Preservation Network der Universität Yale emuliert im großen Stil Softwareumgebungen.



Literatur

Holzmann, H., Sperber, W. & Runnwerth, M. (2017). Archiving Software Surrogates on the Web for Future Reference. doi:10.1007/978-3-319-43997-6_17, arxiv:1702.01163

Matthews, B., Shaon, A., Bicarregui, J. & Jones, C. (2010). A Framework for Software Preservation. IJDC, 5, 91-105. doi: 10.2218/ijdc.v5i1.145