Software ist sowohl ein zentraler Bestandteil als auch ein wichtiges Ergebnis der modernen akademischen Forschung. Sie sollte langlebig und nachvollziehbar nutzbar sein und besitzt aufgrund kontinuierlichen Ausbaus mittlerweile oft eine hohe Komplexität.
Forschungssoftware umfasst alle Formen von Beschreibungen, Dokumentation, ausführbaren Modellen, Konfigurationsdateien, darin eingebettete Datensätze, Skripte und daraus generierte ausführbare Programme, die im Rahmen der Forschung oder für Forschungszwecke entwickelt und genutzt werden. [GKL+21]
Research Software Engineering ist die Verwendung von Software Engineering (SE)-Praktiken für Forschungssoftware, d. h. Software, die für wissenschaftliche Forschungsprojekte erstellt wurde und hauptsächlich in diesen verwendet wird. [Wikipedia]
An der RWTH Aachen hat sich eine Regionalgruppe der RSE zusammengefunden, die das Thema RSE adressiert und RSE-Themen behandelt.
Die RSE-Gruppe der RWTH Aachen beschreibt eine Reihe von technischen und organisatorischen Unterstützungsaktivitäten zur effizienten Entwicklung von Forschungssoftware an der RWTH Aachen die von mehreren Institutionen der RWTH zur Verfügung gestellt werden.
RSE adressiert die organisatorische, fachliche und methodische Einbettung effizienter und qualitativ hochwertiger Softwareentwicklung in den Forschungsprozess. Das bedeutet, dass alle jeweils relevanten Entwicklungsaktivitäten unter der Berücksichtigung der wissenschaftlichen-technischen Zielsetzung und jeweiliger Richtlinien und Normen so gewählt werden, dass die Qualität des Ergebnisses und Effizienz der Entwicklung (also Arbeitszeit pro Output) adäquat adressiert werden.
Dies beinhaltet die professionelle Qualifikation der Entwickelnden, um gegebenenfalls Projektplanung, fachliche Anforderungen, fachliche und mathematische Korrektheit, Architektur, Entwurf, Modellierung, Konstruktion/Programmierung, Qualitätssicherung, Optimierung, Evolution, Wartung, Versionierung, Bereitstellung in Varianten und Nachnutzung ökonomisch und ökologisch effizient zu managen und damit zu nachhaltiger Forschungssoftware beizutragen. Hervorzuheben sind Aktivitäten wie:
Projektmanagement,
Architektur und Entwurf, also die Strukturierung der Funktionalität in modulare, wiederverwendbare und parallel entwickelbare Einheiten, sowie die kluge Einbeziehung bereits entwickelter (möglicherweise externer) Software-Komponenten,
das Erfassen und Festlegen der funktionalen und technischen Anforderungen von allen Stakeholdern (Entscheidende, Fördermittelgeber*innen, Nutzende und Entwickler*innen) an die Software, sowie
Qualitätssicherung, also Verifikation und Validierung (u. a. Korrektheit, Nutzbarkeit, Wartbarkeit) der Software und damit der wissenschaftlichen Erkenntnisse.
Die von der RWTH Aachen verabschiedete RWTH Leitlinie für die effiziente Entwicklung von Forschungssoftware“ (im Folgenden auch „RWTH-Leitlinie) enthält eine genauere Beschreibung aller in diesem Kontext von der RWTH Aachen angebotenen Services.
Für deren konkrete Ausgestaltung findet sich auf dieser Webseite zusätzliches Material sowie weiterführende Links. Über Updates wird via der moderierten Mailing Liste der RSE Community informiert.
Beratung im Umgang mit (Open-Source)-Lizenzen,
Bereitstellung, Betrieb und Wartung technischer Ressourcen,
Veröffentlichung von Software und
weitere Aspekte, bspw. Datenschutzfragen.
Gute und effiziente Softwareentwicklung benötigt gute Entwicklungsskills weit jenseits des reinen “Codings”. Die RWTH Aachen bietet deshalb kontinuierlich verbesserte und ausgebaute Angebote, die die Entwicklung und die Verbesserung der Skills der Entwickler*innen unterstützen. Dazu gehören
Konzeptionierung, Entwicklung, Weiterentwicklung und Wartung von Forschungssoftware durch professionelle Research Software Engineers des RSE-Centers in Zusammenarbeit mit Forschenden, also den Mitentwickelnden und gleichzeitig Nutzenden von Forschungssoftware,
die technische Aufwertung vorhandener Forschungssoftware durch Verbesserungsmaßnahmen (Architektur, Security, Safety, User Experience, etc.),
organisatorische, fachliche und methodische Beratung für die Softwareentwicklung durch einen Expert*innen-Pool und
Weiterbildung der in Forschungssoftware involvierten Personen und Teams.
Die RSE-Gruppe bietet bei Bedarf und auf Anfrage Kontakte zu entsprechenden Expertinnen und Experten an, die auch in konkreten Projekten zu zur Unterstützung On-the-Job zur Verfügung stehen würden. In diesen Kontext wird darauf hingewiesen, kann man das die DFG-Anträge zum Beispiel spezielle RSE-Anteile integriert werden können.
Das kann zum Beispiel genutzt werden für eine fachliche Unterstützung für dezentrale Forschungseinheiten, die sich eine eigene RSE-Stelle nicht leisten können oder wollen (siehe unten).
Wichtige technische Services stellt die RWTH Aachen via ihren IT-Services zur Verfügung (siehe unten).
(siehe auch Kapitel 4 der RWTH-Leitlinie)
Um die effiziente Entwicklung von Forschungssoftware mit hohen Qualitätsstandards zu unterstützen, gestaltet die RWTH Aachen den regulatorischen Rahmen aus und stellt Beratungs-, Unterstützungs- und Weiterbildungsangebote bereit. Für Details sind die RWTH Aachen Leitlinie zu konsultieren. Außerdem sind auch alle gesetzlichen und/oder fachspezifischen, weiterführenden Richtlinien und technischen Normen zu beachten, z. B.
[DFG22] Deutsche Forschungsgemeinschaft e.V. Leitlinien zur Sicherung guter wissenschaftlicher Praxis, Version 1.1., 2022.
Ansprechpartnerin für die wirtschaftliche Verwertung ist die RWTH Innovation GmbH.
Die Veröffentlichung von Software als Open Source ist ein zentrales Element der wissenschaftlichen Verwertung. Die RWTH Aachen empfiehlt die Auswahl der passenden Lizenz stets nach den Anforderungen des Projekts bzw. der eigenen Softwareentwicklung auszurichten. Die Open Source Initiative bietet mit diversen anerkannten Lizenzen einen wichtigen Wegweiser für diese Auswahl:
Die Vergabe von proprietären Lizenzen für die wirtschaftliche Verwertung wird durch die RWTH Innovation begleitet, die bei der Vertragsgestaltung, den Verhandlungen und der Festlegung der Lizenzbedingungen eng mit den Softwareentwickler*innen und den beteiligten Lehrstühlen zusammenarbeitet und dabei eine strukturierte Unterstützung anbietet, die folgenden Aktivitäten umfasst, soweit kein standardisierter Verwertungsweg verfügbar ist:
1. Erstgespräch: Bei Interesse an einer wirtschaftlichen Verwertung ein persönliches Beratungsgespräch.
2. Softwaremeldung: alle wesentlichen Informationen für den geplanten Verwertungsweg werden erfasst über die Softwaremeldung zur Unterstützung einer Software-Verwertung
3. Folgegespräch und Vertragsauswahl oder Vertragsgestaltung. Es werden offene Fragen und Unklarheiten beseitigt und Rahmenbedingungen, Lizenzkonditionen und mögliche Vertragsinhalte festgelegt. Die RWTH Innovation übernimmt hierbei die Verhandlungsführung und das Vertragsmanagement.
4. Abschluss des Lizenzvertrags: Er regelt alle Aspekte der Rechteeinräumung, etc. Auch der Abschluss eines Lizenzvertrags mit einem Spin-off wird hierdurch geregelt. Informationen zu IP-Verträgen mit Ausgründungen stehen im RWTH IP-Leitfaden.
Die Wahl der Lizenz obliegt dabei der Inhaber*in der Nutzungs- und Verwertungsrechte. Je nach Projektkontext sind dies die RWTH Aachen oder die Urheber*innen selbst, z. B. im Falle eines verbeamteten Hochschullehrenden mit eigenem Forschungsfeld bei freien Entwicklungen ohne Projektbezug und/oder Auftrag [BMBF23]. Wenn Studierende oder Forschende ohne Anstellungsverhältnis oder vertragliche Regelung mit der RWTH Aachen in die Entwicklung eingebunden werden, werden vorab Vereinbarungen mit der RWTH Aachen getroffen, mit denen die für den Projektkontext notwendigen Nutzungs- und Verwertungsrechte der RWTH Aachen eingeräumt werden. Diese stellen sicher, dass die RWTH Aachen ihren Verpflichtungen den Projektpartner*innen gegenüber vollumfänglich nachkommen kann.
Das Recht der Lizenzwahl und der Veröffentlichung wird dabei standardmäßig an die Projektverantwortlichen bzw. Führungskräfte delegiert. Ist die Delegation mit den Lehrstuhlinhaberinnen, Inhaberinnen des Lehr- und Forschungsgebiets oder Juniorprofessorinnen bzw. Institutsverantwortlichen abgestimmt, bedarf es keiner weiteren formalen Delegation. Bei Fragen und Unklarheiten zur Weitergabe von Software oder zur Lizenzwahl können sich Software-Entwicklerinnen und Projektbeteiligte an die auf der RSE-Webseite genannten Ansprechpersonen der RWTH Innovation wenden, um gemeinsam die jeweilige Situation zu analysieren und die bestmögliche Lösung zu finden.
Regelungen zu Verwertungsrechten der Beitragenden an der Software in Kooperationsprojekten können in einem Contributor License Agreement (CLA) festgelegt werden. Für derartige Vereinbarungen mit Dritten bietet die RWTH Innovation Standards an.
Es gibt freizügige (permissive) Open Source Lizenzen, (restriktive) Copyleft Open Source Lizenzen sowie proprietäre Lizenzen.
BSD 2-Clause License (FreeBSD/Simplified): Diese Version erlaubt nahezu jede Nutzung, solange der Lizenztext und der Urheberrechtshinweis erhalten bleiben.
BSD 3-Clause License (Modified/New BSD): Diese hat eine zusätzliche Klausel, welche verbietet, den Namen des*der Urhebers*in oder der Organisation für Werbezwecke ohne vorherige schriftliche Zustimmung zu verwenden.
MIT License erfordert lediglich, dass der Lizenztext in allen Kopien oder substantiellen Teilen der Software enthalten ist. Wesentliche Merkmale sind Einfachheit und Breite.
Apache License 2.0 hat als wesentliche Merkmale:
Patentschutz: Sie gewährt explizit automatisch Patentlizenzen von den Beitragenden an die Nutzenden.
Schutz vor Markenansprüchen: Sie verbietet Nutzenden die Verwendung markengeschützter Aspekte zu Werbezwecken.
Zustandsänderungen: Änderungen am Code müssen in modifizierten Dateien dokumentiert werden.
Copyleft Lizenzen vergeben ähnliche Rechte wie die permissiven Lizenzen, sichern aber, dass der Code und seine Derivate frei zugänglich bleiben.
GNU General Public License (GPL) Version 3 erlaubt es, die Software frei zu verwenden, verlangt aber, dass abgeleitete Werke unter derselben Lizenz weitergegeben werden. Wesentliche Merkmale der GPL v3 sind:
Starkes Copyleft: Alle modifizierten Versionen der Software sowie Software, welche diese einbindet, müssen im Falle der Weitergabe ebenfalls unter der GPL lizenziert werden.
Schutz vor Tivoisierung: Die Lizenz verbietet, dass Maßnahmen ergriffen werden, so dass modifizierte Versionen nicht genutzt werden können (zum Beispiel bei Hardware, die das Ausführen modifizierter Versionen verhindert).
Patentrechte: Die GPL v3 gewährt explizit Patentlizenzen von den Beitragenden an alle Nutzenden der Software.
GNU Lesser General Public License (LGPL) ist etwas weniger streng und speziell für Softwarebibliotheken geeignet. Diese können in nicht-freien Programmen verwendet werden, solange Änderungen an der LGPL-Komponente selbst unter der LGPL bleiben. Wesentliche Merkmale der LGPL sind:
Schwaches Copyleft: Nur die LGPL-Komponente selbst muss bei Modifikationen unter der LGPL bleiben; das Gesamtprogramm kann unter einer anderen Lizenz stehen.
Förderung der Nutzung: Sie ermöglicht die Nutzung von Open Source Bibliotheken in sonst proprietären, nicht-freien Softwareprojekten.
Die AGPL ist der GPL sehr ähnlich, fügt jedoch eine Klausel für Software, die über ein Netzwerk ausgeführt wird, hinzu:
Wird eine stärker individuell ausgestaltete Lizenz angestrebt, wird empfohlen dafür entweder nur eine einzige proprietäre Lizenz zu verwenden oder im Rahmen des Dual-Licensing eine solche neben einer Open Source Lizenz anzubieten. Hier hilft die RWTH Innovation GmbH.
Die Erstellung und Verhandlung jeglicher Lizenzverträge, die eine proprietäre Nutzung einräumen, wird an der RWTH Aachen federführend von der RWTH Innovation verantwortet. Hier empfiehlt sich eine Beratung durch die RWTH Innovation. Im Rahmen von Forschungs- und Entwicklungsprojekten, in denen die Entwicklung von Software durch die RWTH Aachen Hauptvertragsbestandteil ist, bietet das Sachgebiet Wirtschaft der Abteilung 4.2 -Drittmittelmanagement der RWTH Aachen Standard-Vorschläge in drei unterschiedlichen Vertragsmodulen an:
Lizenzierungsvariante: Der Quellcode der Software bleibt bei der RWTH Aachen, während Auftraggeber*innen spezifizierte Nutzungsrechte eingeräumt werden.
Übertragungsvariante: Alle Rechte an der Software werden vollumfänglich an Auftraggeber*innen übertragen.
Übertragungsvariante agil: Auch hier werden alle Rechte an der Software vollumfänglich an Auftraggeber*innen übertragen, jedoch erfolgt die Entwicklung in agiler Zusammenarbeit mit Auftraggeber*innen.
(siehe auch Abschnitte 5.1., 5.2. der RWTH-Leitlinie)
Aus Effizienzgründen und Gründen der Qualität ist es ggf. sinnvoll sich temporäre Beratungs- und Unterstützungsleistungen zu suchen in den Bereichen
der Konzeptionierung, Entwicklung und Weiterentwicklung von Forschungssoftware durch professionelle, ausgebildete Research Software Engineers in Zusammenarbeit mit Forschenden,
der technischen Aufwertung vorhandener Forschungssoftware durch Verbesserung der Performanz und Einbindung etablierter Praxis (z. B. durch Test-Abdeckung, Continuous Integration, Modularisierung),
der Verbesserung der Nutzbarmachung von Forschungssoftware durch Generalisierung, Benutzeroberflächen, breitflächiger Verfügbarkeit (Einrichten eines Servers und Webinterface zum Hosten und Nutzen der Software), Verbesserung der Dokumentation, Publikation der Software sowie Verbesserung der Reproduzierbarkeit von virtuellen Experimenten durch, z. B. Containerisierung.
Die RSE-Gruppe kann hier mit Kontakten zu verschiedenen Lehrstühlen vermitteln, um ggf. solche Unterstützung durch Fachexperten zu erfragen oder diese in einen Drittmittel-Antrag zu integrieren.
Zur konkreten personellen Unterstützung von RSE-Projekten sind denkbar:
Organisatorische, fachliche und methodische Beratung für die Softwareentwicklung.
Kapazität zur konstruktiven Mithilfe bei der Entwicklung.
Auf Basis studentischer Projekte sind Praktika, Bachelor- und Master-Arbeiten von Studierenden entsprechender Studiengänge mit Entwicklungsanteil für Forschungssoftware denkbar.
Mithilfe bzw. Übernahme der langfristigen Pflege von Software z. B. die Veränderung des Software-Stacks, die Integration von neuen Schnittstellen, extern entwickelte Erweiterungspakete, neue Nachbarsysteme, aber auch Regularien und Cybersecurity erfordern aktive Pflege. Damit soll Software langfristig lauffähig und damit nachnutzbar gehalten werden.
(siehe auch Abschnitt 5.3. der RWTH-Leitlinie)
Die konkrete Ausgestaltung von angebotenen Schulungen ist noch zu definieren. Eine allererste sehr unvollständige Sammlung an aktuellen Angeboten ist hier zu finden:
(siehe auch Abschnitt 5.4. der RWTH-Leitlinie)
Über die moderierte Mailing Liste der RSE Community der RWTH, können u. a. Research Software Engineers sich verbinden und RSE Events werden angekündigt.
Vernetzung in der RSE Community durch gemeinsame Events.
(siehe auch Abschnitt 5.6. der RWTH-Leitlinie)
Software-Services, Computing-Kapazitäten und Rechner-Infrastruktur stehen gegebenenfalls kostenlos oder im IT Center auch gegen eigene Aufwandskosten für die wissenschaftliche Softwareentwicklung zur Verfügung.
Aufgrund der Vielzahl an sinnvollen und vor allem wegen Kooperationen mit anderen Universitäten und Forschungseinrichtungen notwendigen Services kann natürlich das IT Center keine vollumfängliche Sammlung zur Verfügung stellen.
Die Infrastruktur des IT Centers bietet unter Beachtung der DSGVO und notwendiger Sicherheitsaspekte deshalb bestimmte, häufig angefragte Services im Netz an, andere Services sind direkt beim Anbieter zu nutzen und selbst auf DSGVO-Konformität und Sicherheit zu achten:
Kollaboratives Arbeiten mit Versionskontrollsystemen und Kontrolle unterschiedlicher Varianten git.rwth-aachen.de,
Runner für Continuous Integration verschiedener OS git.rwth-aachen.de, ggf. mit Kosten verbunden.
Dokumentation von Software git.rwth-aachen.de,
Ticketsystem git.rwth-aachen.de,
Projektmanagement git.rwth-aachen.de,
Publikation und Archivierung von Software
Im Internet finden sich mittlerweile eine Vielzahl weiterer, oft kostenloser, aber manchmal auch kostenpflichtiger Services, die sich in der Wissenschaftscommunity bewährt haben. Hier eine Auswahl (die wir auch dynamisch ergänzen):
Für einzelne Services, insbesondere die Nutzung von GitLab für das kollaborative Schreiben von Anträgen, Dokumenten oder Programmen, für das Projektmanagement, etc. werden regelmäßig Kusre bzw. Seminare angeboten.
(siehe auch Abschnitt 5.8. der RWTH-Leitlinie)
Weitere durch die Universität angebotene Unterstützungsleistungen umfassen (nach Verfügbarkeit):
Beratung und Hilfestellung bei der Publikation von Forschungssoftware. Die Bibliothek und das RSE-Center bieten Hilfe bei der Veröffentlichung von Forschungssoftware, von der Vorbereitung der Bereitstellung über die Auswahl des geeigneten Publikationsmediums bis zu domänenspezifischen Publikationsplattformen.
Bereitstellung, Weiterbildung und Unterstützung im Erstellen sowie Umsetzung von Softwaremanagement-Plänen (SMPs): SMPs dienen der Projektplanung, aber auch den Berichtspflichten, denen Forschende nachkommen müssen. Die Universität stellt die Plattform RDMO zur Erstellung neuer SMPs bzw. Nutzung von SMPs-Templates zur Verfügung.
Die Datenschutzbeauftragten sind unter https://www.rwth-aachen.de/Datenschutz erreichbar.
Ethische Fragen können u. a. an die fakultätsübergreifende Ethikkommission gestellt werden.
Diese Webseite wird aktuell maintained von
Suported by: Constantin Buschhaus, Alexander Hellwig, Alexander Lüpges, Lukas Netz, David Schmalzing, Lucas Wollenhaupt.