Auch beim Einsatz bzw. der Einbindung von Code, dessen Nutzungsrechte nicht (ausschließlich) beim Forschungszentrum Jülich, sondern bei Dritten, z.B. Kooperationspartnern, liegen (Fremdsoftware) müssen Rechte durch den Urheber bzw. dessen Arbeitgeber eingeräumt werden. Dabei sind auch zwingend die Lizenzbedingungen der eingesetzten (Open-Source) Software zu beachten, da eine Nichtbeachtung eine Vertragsverletzung darstellt und zu Schadensersatzforderungen führen kann. Dies gilt auch, wenn lediglich Programmbestandteile oder Teilsequenzen in eine eigene Software integriert werden. Dann bedarf es einer intensiven Prüfung, inwieweit die verschiedenen Lizenzen der zu integrierenden Drittsoftware inkompatible Regelungen enthalten. Das kann dazu führen, dass die eigene Software nicht unter der beabsichtigten OpenSource-Lizenz veröffentlicht werden kann. Zudem kann die Open-Source-Lizenz der eingesetzten Software erlöschen, wenn die Lizenzbedingungen nicht eingehalten werden.
Eigene Software nutzt zumeist fremde Softwarekomponenten, -Bibliotheken, -Infrastrukturen und gilt daher als “abgeleitetes Werk”. Die Lizenzbedingungen fremder Software und insbesondere auch von Open-Source-Software sind zu berücksichtigen, da eine Nichtbeachtung eine Vertragsverletzung darstellt und zu Schadensersatzforderungen führen kann. Dies gilt auch, wenn lediglich Programmbestandteile oder Teilsequenzen in eine eigene Software integriert werden. Das kann dazu führen, dass die eigene Software nicht unter der beabsichtigten OpenSource-Lizenz veröffentlicht werden kann, sondern eine vorgegebene Lizenz zu nehmen ist. Anmerkung: Es besteht jedoch die technische Möglichkeit, die eigene Software als unabhängiges Delta zu lizenzieren, das allerdings nur funktionsfähig ist, wenn die Nutzer eine entsprechende Lizenz der darunterliegenden Software selbst erwerben.
Agile Softwareentwicklung ist ein Entwicklungsprozess, der einen zeitnahen Einsatz der Software zum Ziel hat. Die Software wird iterativ entwickelt, wobei in jedem Entwicklungsschritt unter Rücksprache mit den Nutzern die kurz- und langfristige Zielsetzung überprüft und gegebenenfalls angepasst wird. In der agilen Entwicklung besetzen die Mitglieder des Entwicklerteams verschiedene Rollen, wobei in dem speziellen Fall der Entwicklung von Forschungssoftware oft eine Person mehrere Rollen belegt.
Artifical Intelligence (dt. Künstliche Intelligenz) steht für intelligentes Handeln durch Maschinen, und bezeichnet ein Teilgebiet der Informatik, welches auf Automatisierung und maschinellem Lernen basiert.
Ein Algorithmus ist eine eindeutige Beschreibung von Handlungen zur Lösungen von Problemen bzw. einer Menge von Problemen. Siehe auch hier.
Mit Alpha-Version wird die Version einer Software bezeichnet, die durch die eigenen Entwickler bereits getestet ist, und zum Testen durch weitere, den Entwicklern thematisch nahestehenden Personen zur Verfügung gestellt wird. Die Alpha-Version einer Software ist oft noch stark fehlerbehaftet und nur unter größter Vorsicht eingesetzt werden.
Anwendungsklassen dienen zur Kategorisierung von Software und legen dazugehörige Regeln und Empfehlungen in Bezug auf eine angemessene Softwareentwicklungspraxis und Dokumentation fest. Sie erleichtern die Prüfung der Regeln und die Kommunikation zu den dazugehörigen Themen. Weitere Informationen zum Begriff können dem Dokument „Software-Engineering-Empfehlungen des DLR“ (ab Seite 7) entnommen werden. Darin befindet sich eine exemplarische Definition von aufeinander aufbauenden Anwendungsklassen. Die beschriebene „Anwendungsklasse 1“ legt beispielsweise minimale Empfehlungen für kleine, unkritische Software (z. B. Datenauswertungsskripte) fest und ist kompatibel zur der in diesem Dokument festgelegten Minimalpraxis in Bezug auf Entwicklung und Dokumentation.
Eine API beschreibt eine Schnittstelle, mit der bereitgestellte Funktionalitäten aus anderer Software bspw. Bibliotheken von Dritten programmatisch (d.h., über den Quellcode) wiederbenutzt werden kann. Archivierung: Eine Archivierung der am Forschungszentrum Jülich programmierten Software trägt zur Nachhaltigkeit der Softwareentwicklung bei. Dabei dient die Archivierung primär der Sicherung von Versionen zu Nachweis-, Provenienz- und Reproduzierbarkeits-Zwecken im Kontext wissenschaftlicher Ergebnisse. Die Archivierung erfolgt inklusive begleitender Daten (z. B. Metadaten, Dokumentation, ggf. Laufzeitumgebung und Testdaten). Zusätzlich muss eine Einhaltung von Speicherfristen entsprechend der Regeln guter wissenschaftlicher Praxis in den Fachdisziplinen eingehalten werden. Möglichkeiten zur Archivierung können je nach Anforderungen und Anwendungsklasse unter anderem sein: Repositorien (Zenodo, Jülich DATA, etc ), Software-Journale und das Software Heritage Archive. Nähere Informationen dazu finden sich in den Best Practices und auf dem RSE-Portal. Nachhaltige Software setzt voraus, dass auch inaktive oder archivierte Software nachnutzbar bleibt. Die Schnelllebigkeit der Technologien im Software-Umfeld stellt im Hinblick auf die Archivierung von Software eine Herausforderung dar. Software-Entwickler:innen, Projektleiter:innen und Führungskräfte müssen bei der Planung, Umsetzung und Verwertung von selbstprogrammierter Software gemeinsam anhand der Anwendungsklasse entscheiden, wie im konkreten Einzelfall zu handeln ist. Die entsprechenden (langfristigen) Ressourcen dafür sind durch die Projektverantwortlichen von Beginn an einzuplanen.
ToDo
ToDo
Eigenschaft von Software bzgl. des Ressourcenverbrauchs (bspw. Speicher, Rechenzeit)
ToDo
Die Beta-Version einer Software bezeichnet eine Version, die bereits von weiteren Personen als den Entwicklern selbst getestet wurde. Die Beta-Version enthält oftmals noch Fehler und sollte nur unter großer Vorsicht für Produktionszwecke genutzt werden.
ToDo
ToDo
ToDo
Ein Branch beschreibt in einem Versionskontrollsystem einen separaten Entwicklungs- und Versionierungsstrang.
Ein Bug beschreibt einen Softwarefehler, welcher sich durch unterschiedliche Symptome bspw. dem Absturz der Software, Performance-Probleme, sicherheitskritischen Lücken bemerkbar machen kann. Siehe auch https://de.wikipedia.org/wiki/Programmfehler
Bug-Fixing beschreibt den manuellen oder automatisierten Prozess durch Entwicklende einen Bug so zu beheben, sodass die negativen Symptome nicht mehr bestehen und keine neuen Bugs integriert werden.
ToDo
ToDo
ToDo
ToDo
Ein Contributor Agreement oder Contributor License Agreement (CLA), ist ein Dokument, in dem die Bedingungen beschrieben sind, unter denen geistiges Eigentum zu einem Projekt oder Vorhaben beigetragen werden kann; meist handelt es sich um ein Software-Projekt unter einer Open-Source-Lizenz. Das Forschungszentrum Jülich stellt eine geprüfte Vorlage über das RSE-Portal zur Verfügung, welche den externen Beitragenden vorgelegt werden kann Contributor Agreement: Ein Contributor Agreement oder Contributor License Agreement (CLA), ist ein Dokument, in dem die Bedingungen beschrieben sind, unter denen geistiges Eigentum eines Contributors zu einem Projekt oder Vorhaben beigetragen werden kann. Zumeist handelt es sich um ein Software-Projekt- unter einer Open-Source-Lizenz. [[Die Universität | Hochschule | das Forschungszentrum]] stellt eine geprüfte Vorlage auf [[der RSE-Webseite]] zur Verfügung, welche den externen Beitragenden, zum Beispiel Studierenden, vorgelegt werden sollte.
Der Begriff Commit basiert auf dem Versionskontrollsystem git und beschreibt allgemein das Speichern von Änderungen von Daten in einem Repository und somit die Erstellung von Softwareversionen. Siehe auch https://de.wikipedia.org/wiki/Commit
Ein Compiler beschreibt ein Programm, das Quellcode von einer höheren Programmiersprache in eine maschinenlesbarer(e) Sprache umwandelt. Siehe auch https://de.wikipedia.org/wiki/Compiler
CI/CD bezeichnet den kontinuierlichen Einbau von Aenderungen in die Produktionsversion der Software (CI), sowie das automatische Deployment der neuesten Version (CD). Hierdurch werden neueste Entwicklungen und Korrekturen der Software zeitnah an den Nutzer weitergegeben, gleichzeitig aber der Produktionszustand der Software nicht unterbrochen.
ToDo
ToDo
ToDo
ToDo
Eine Datenstruktur beschreibt eine konkrete Organisations- und Speicherungsform von Daten als auch mögliche Verhaltensweisen auf Basis dieser Struktur. Siehe auch https://de.wikipedia.org/wiki/Datenstruktur
de-RSE e.V. - Gesellschaft für Forschungssoftware
ToDo
DevOps beschreibt ein Kofferwort aus Development (dt. Softwareentwicklung) und Operations (dt. Softwarebetrieb) und umfasst den Prozess sowie zugehörige Techniken, die die Softwareentwicklung und dessen Betrieb enger mit einander verzahnt, um Anpassungen am Quellcode schneller in die operative Software zu überführen und Änderungsbedarfe aus dem Betrieb an die Entwicklung zurückzuspielen.
Eine Software-Dokumentation erklärt Nutzern/Anwendern und Entwicklern, wie die Software installiert, genutzt und modifiziert werden kann, sowie den Anwendungsbereich und Funktionsweise der Software. Eine Dokumentation kann verschiedene Ausprägungen annehmen, angefangen von Kommentaren im Code zu umfangreichen Tutorials und Handbüchern. Es existieren Tools zur automatisierten Erstellung von Dokumentation.
Die Software wird z.B. unter einer Copyleft und einer kommerziellen Lizenz veröffentlicht. Möchte der Nutzer das Copyleft umgehen, muss er eine Lizenz käuflich erwerben. Verwandte Konzepte sind Functional Source Licensing und Open Core.
ToDo
Eigenschaft der Softwareerstellung bezogen auf die inkludierten Prozesse bzw. beteiligten Personen im Sinne von Ressourcenverbrauch (bspw. Arbeitszeit)
ToDo
ToDo Evolution / Evolutionäre Weiterentwicklung ist die Sammlung aller Aktivitäten zur Modifikation von Software in Form einer Gemeinschaftsleistung um neue Funktionen, Algorithmen, Modelle, Daten und andere Formen von ausführbaren Wissen hinzuzufügen, die Ausführungseffizienz zu optimieren, die Nutzungsoptionen zu verallgemeinern, oder vorhandene Fehler zu beheben. Evolutionäre Weiterentwicklung ist zeitlich aufwändig und bedarf anderer methodischer Vorgehensweisen wie die initiale Erstellung. Exportkontrolle: Sobald Personen aus Staaten außerhalb der EU oder gleichgestellten Staaten (UK, USA, JP,…) am Projekt beteiligt sein sollen, kann eine außenwirtschaftsrechtliche Prüfung des Projekts erforderlich sein. Ob dies für das eigene Projekt notwendig ist, kann [[in Absprache mit Abteilung … | anhand einer Checkliste auf der RSE-Webseite]] ermittelt werden. FAIR-Prinzipien (Findable, Accessible, Interoperable, Reusable) wurden zuerst für Forschungsdaten entwickelt und später für andere Forschungsergebnisse wie Software neu gefasst. Die FAIR Prinzipien für Forschungssoftware sollen sowohl für die Software als auch für ihre Metadaten wie Dokumentation gelten.
Findable, Accessible, Interoperable, Reusable
ToDo
ToDo
ToDo
FDM beinhaltet die Datenaquisition, Transformation, Dokumentation, und Bereitstellung sowie Archivierung von Daten. Ziel von FDM ist es, Daten möglichst umfassend nachnutzbar und reproduzierbar zu halten.
sind alle Formen von Quellcode, Beschreibungen, Dokumentation, ausführbaren Modellen, Konfigurationsdateien, darin eingebettete Datensätze, Scripte und daraus generierte ausführbare Programme, die im Rahmen der Forschung und für Forschungszwecke entwickelt werden.
ToDo
ToDo
Einen Schutz eigener wirtschaftlicher Interessen trotz Open Source Lizenz kann die Functional Source License bieten.
Gesellschaft für Informatik e.V.
Git ist ein Versionskontrollsystem, mit dem man verfolgen kann, wer wann welche Änderungen am Code vorgenommen hat. Git bietet Optionen zur einfachen Aktualisierung einer freigegebenen oder öffentlichen Version eines Codes auf GitHub.
grafische Nutzerschnittstelle, vgl. User Interface
ToDo
High-Performance Computing (dt. Hochleistungsrechnen) ToDo
ToDo
ToDo
Eine Klasse beschreibt ein Konzept aus der objektorientierten Programmierung, in der in Form von Quellcode die generelle Struktur und das Verhalten von Objekten beschrieben wird. Siehe auch hier
ToDo
Lizenz: Eine Lizenz ist eine formelle Erlaubnis oder ein Recht zur Nutzung von urheberrechtlich geschützten Werken, Software, Patenten, Marken oder anderen Formen des geistigen Eigentums unter bestimmten Bedingungen, die einer Person oder Organisation gewährt werden.
ToDo
Ein Merge beschreibt in einem Versionskontrollsystem die Zusammenführung von Branches bspw. um einen Entwicklungszweig für ein Softwarefeature in den Hauptentwicklungszweig zurückzuspielen.
Eine Methode beschreibt ein typischerweise gekapseltes Verhalten, das in Form von Quellcode beschrieben wird und dessen Verhalten sowohl auf Eingabedaten als auch auf Basis des Programm- und/oder Entwicklungsumgebungszustandes Ausgabewerte oder konkrete Verhaltensweisen erzeugen kann. Siehe auch hier
ToDo
ToDo
ToDo
Sobald Software-Entwickler:innen sich in einem Arbeits- und Dienstverhältnis mit [[der Universität | Hochschule | dem Forschungszentrum]] befinden, liegen die Nutzungs- und Verwertungsrechte gemäß Urheberrecht automatisch [[der Universität | Hochschule | dem Forschungszentrum]]. Spezielle Regelungen sind daher bei der geplanten Einbeziehung Dritter, die keinen Arbeitsvertrag o. Ä. mit dem Forschungszentrum haben, vor Projektstart zu treffen. Externe Beiträge können bei Bedarf über ein Contributor License Agreement eingebunden werden. Eine geprüfte Vorlage steht dazu zur Verfügung. Projektanträge und Konsortialverträge beschreiben den Umgang mit Nutzungs- und Verwertungsrechten.
Sobald Software-Entwickler:innen sich in einem Arbeits- und Dienstverhältnis mit dem Forschungszentrum Jülich befinden, liegen die Nutzungs- und Verwertungsrechte gemäß Urheberrecht automatisch beim Forschungszentrum. Spezielle Regelungen sind daher bei der geplanten Einbeziehung Dritter, die keinen Arbeitsvertrag o. Ä. mit dem Forschungszentrum haben, vor Projektstart zu treffen. Externe Beiträge können bei Bedarf über ein Contributor License Agreement eingebunden werden. Das Forschungszentrum Jülich stellt eine geprüfte Vorlage über die RSE-Portal zur Verfügung, welche den externen Beitragenden vorgelegt werden kann.
Eine bzgl. des Funktionsumfangs reduzierte Version der Software wird unter einer Open Source Lizenz veröffentlicht. Die Gesamtsoftware wird unter einer propritären Lizenz veröffentlicht.
ToDo
ToDo
Nach allgemeiner Ansicht gibt die Open Source Definition (http://www.opensource.org/docs/osd) korrekt wieder, was in der Open Source Community unter dem Begriff "Open Source Software" verstanden wird. Entscheidendes Kriterium der Definition ist, dass die Lizenz einer Software die umfassende "freie" Nutzung des Programms gestattet und keine Beschränkung der Lizenznehmer oder Verwendungsgebiete vorsieht, also von jedermann zu jedem Zweck genutzt werden darf. Die Lizenzgebührenfreiheit und der offen zugängliche Sourcecode sind dabei wesentliche Voraussetzungen für die freie Nutzbarkeit. Entscheidend ist also stets der Lizenzvertrag, unter dem eine Software angeboten wird. Open-Source-Lizenz / OSS-Lizenz: Nach allgemeiner Ansicht gibt die Open Source Definition (http://www.opensource.org/docs/osd) korrekt wieder, was in der Open Source Community unter dem Begriff "Open Source Software" verstanden wird. Entscheidendes Kriterium der Definition ist, dass die Lizenz einer Software die umfassende "freie" Nutzung des Programms gestattet und keine Beschränkung der Lizenznehmer oder Verwendungsgebiete vorsieht, also von jedermann zu jedem Zweck genutzt werden darf. Die Lizenzgebührenfreiheit und der offen zugängliche Sourcecode sind dabei wesentliche Voraussetzungen für die freie Nutzbarkeit. Entscheidend ist also stets der Lizenzvertrag, unter dem eine Software angeboten wird. -- Es gibt deutliche Unterschiede in den verfügbaren Freiheiten.
ToDo
ToDo
ToDo
ToDo
ToDo
Eine Programmiersprache beschreibt eine formale Sprache zur Beschreibung von Algorithmen und Datenstrukturen in Form von Quellcode. Siehe auch hier.
ToDo
ToDo
Der wesentliche Unterschied zwischen proprietären und Open Source Lizenzen ist, dass die proprietäre Lizenz völlig frei gestaltet werden kann und insbesondere die Möglichkeit eröffnet, die Weitergabe von Code vollständig einzuschränken. Zwar verpflichtet die Verwendung einer Open Source Lizenz nicht pauschal zur Weitergabe, allerdings kann einem Dritten gegenüber dieses Recht nicht eingeschränkt werden. Ferner greift die Open Source Lizenz nur dann, wenn der Dritte die Software wieder weitergibt. So wäre z.B. das Anbieten einer Dienstleistung mit der Software ohne Weitergabe dieser ohne weiteres möglich. Eine proprietäre Lizenz wird also dann interessant, wenn man die Weitergabe des Codes an sich oder eine bestimmte Art der Verwendung (kommerzielle Nutzung) einschränken möchte.
Eine proprietäre Lizenz ist eine Art von Softwarelizenz, die das Recht zur Nutzung, Modifikation und Weiterverteilung der Software einschränkt. Während Open Source Lizenzen wiederverwendet werden können und dadurch ein gewisses Maß an Standardisierung und Kompatibilität ermöglichen, werden sind proprietäre Lizenz völlig frei zu gestalten. Eine proprietäre Lizenz wird meist dann interessant, wenn man die Weitergabe des Codes an sich oder eine bestimmte Art der Verwendung (kommerzielle Nutzung) einzuschränken ist.
ToDo
Als Quellcode bezeichnet man die strukturierte, textuelle Beschreibung von Algorithmen und Funktionalitäten einer Software in Form von Programmier- oder Skriptsprachen, welche automatisiert in ein ausführbares Programm überführt werden können.
ToDo
Bei einem Release handelt es sich um eine Version einer Software, die Nutzern zur Verfügung gestellt wird oder einen Beitrag zu einer wissenschaftlichen Publikation leistet. Einem Schema folgend, stellt eine Release-Nummer sicher, dass Release und damit verbundener Inhalt eindeutig gekennzeichnet sind.
ToDo
Ein Repository ist ein zentraler Speicherort, in dem Daten gespeichert und verwaltet werden. In der Softwareentwicklung bezieht es sich typischerweise auf einen Speicherort, in dem Code, Dokumentation und andere Projektdateien in einer strukturierten Form gehalten werden. Repositories ermöglichen es Entwickler:innen, Änderungen am Code nachzuverfolgen, die Zusammenarbeit zu erleichtern und verschiedene Versionen und Varianten eines Projekts zu verwalten. Populäre Repositories wie GitHub und GitLab bieten neben der zentralen Speicherverwaltung viele weitere Services, wie die Ticketverwaltung, Continuous-Integration, Automatische Überprüfung von Codequalität, die Detektion von Security-Problemen, und vieles mehr. Ein Repository kann auch als Archiv oder zur Software-Veröffentlichung eingesetzt werden.
Ein (Code-)Repository ist ein Archiv für den Code, an dem gearbeitet wird. Neben dem Code selbst können Sie in Ihrem Repository auch Dinge wie Dokumentation, Notizen, Webseiten und andere Dinge aufbewahren. Ein Code-Repository ist für jedes erfolgreiche Softwareentwicklungsprojekt erforderlich.
ToDo
adressiert die Anwendung von Methoden, Techniken und Best Practices des Software Engineering bei der Entwicklung von Forschungssoftware. (Definition nach Wikipedia)
[hier](https://rse.ac.uk/about; https://www.de-rse.org) ToDo: Kurzdefinition geben und nicht nur eine Verlinkung geben
Ein Review bzw. Code-Review beschreibt einen typischerweise manuellen Prozess zur Qualitätssicherung von Software, bei der Änderungen von einem Entwickelnden an der Software durch möglichst unabhängige andere Entwickelnde bzgl. definierter Qualitätskriterien gelesen, bewertet und kommentiert werden. In einem dialogähnlichen Kommentierungs- und Änderungsprozess zwischen Entwickelnden und Reviewer werden eventuelle Qualitätsmängel der Änderung dann ausgeglichen.
Eine Schnittstelle in der Software beschreibt den Teil der Software, der für die Kommunikation mit anderen Softwarekomponenten (bspw. Application Programming Interfaces) oder den Nutzenden der Software (bspw. User Interfaces) zuständig ist.
ToDo
Die Stabsstelle Datenschutz und Informationssicherheit stellt in der „Richtlinie Informationssicherheit“ (in Erstellung) ein Klassifikationssystem für das Schutzniveau von Daten bereit. Bei der Erstellung von Software wird daher empfohlen, sich bereits frühzeitig Gedanken über die Einstufung der eingeflossenen Daten und der Software an sich anhand der Richtlinie zu machen. Spätestens bei Vorliegen von substantiellen Code-Teilen muss eine Klassifikation vorliegen.
ToDo
ToDo
ToDo
Mit Software sind im Kontext dieser Leitlinie alle Formen von Programmcode (z. B. Quellcode nebst zugehörigen Dokumentationen, Parametern und Workflows) und daraus generierten ausführbaren Programmen gemeint, die im Rahmen einer wissenschaftsbezogenen Tätigkeit an [[Einrichtung]] entwickelt und / oder (nach)genutzt werden.
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
Der Lebenszyklus einer Software beschreibt alle wesentlichen Entwicklungsstadien, ausgehend von der Idee und Konzeption, dem Design, über die Entwicklung, Abnahme, Nutzung und Pflege bis hin zur Archivierung und Außerbetriebnahme.
siehe (Software-) Pflege
ToDo
ToDo
ToDo
ToDo
ToDo
Ein Softwareprojekt ist ein komplexes Unterfangen, zumeist von mehreren Personen, das im Rahmen von Zeit, Budget und Personalressourcen einen neuen oder verbesserte Software hervorbringt.
Ein Softwareprojekt ist ein komplexes Unterfangen von zwei oder mehr Personen, das im Rahmen von Zeit, Budget und Personalressourcen einen neuen oder verbesserten Computercode hervorbringt.
Analog zu Forschungsdaten und wissenschaftlichen Texten ist auch Software ein Ergebnis wissenschaftlicher Arbeit, sodass sie als wissenschaftliche Publikation einem breiten Publikum bekannt gemacht werden kann. Nichtsdestotrotz kann der Zugang zur Software aus der Publikation analog zu Forschungsdaten eingeschränkt sein. Wie Forschungsdaten und Textpublikationen beinhaltet eine Software-Publikation Metadaten, mit denen sie auffindbar und zitierbar ist. Anders als Forschungsdaten ist Software aber auch ein lebendes, regelmäßig weiterentwickeltes Objekt, weshalb die Metadaten die jeweils konkreten Versionen jeder verwendeten Komponente, die genutzten externen Komponenten, deren jeweilige Lizenz-Bedingungen und einen Hinweis auf potentielle neuere Versionen beinhaltet.
Analog zu Forschungsdaten und wissenschaftlichen Texten ist auch Software ein Ergebnis wissenschaftlicher Arbeit, sodass sie als wissenschaftliche Publikation einem breiten Publikum bekannt gemacht werden kann. Nichtsdestotrotz kann der Zugang zur Software aus der Publikation analog zu Forschungsdaten eingeschränkt sein. Wie Forschungsdaten und Textpublikationen beinhaltet eine Software-Publikation Metadaten, mit denen sie auffindbar und zitierbar ist.
ToDo
ToDo
ToDo
ToDo
siehe Software Engineering
ToDo
ToDo
ToDo
ToDo
ToDo
siehe Quellcode
ToDo
Als Stakeholder werden alle Personen und Organisationen bezeichnet, die eine Software nutzen, finanzieren, entwickeln oder anderweitig Interesse an der Software und ihrer Nutzung haben.
Bei dem Begriff „Stand der Technik“ handelt es sich um einen rechtlich-technischen Begriff, welcher für das Produkt gewisse Mindestanforderungen impliziert. Konkret heißt es: Stand der Technik ist der Entwicklungsstand fortschrittlicher Verfahren, Einrichtungen und Betriebsweisen, der nach herrschender Auffassung führender Fachleute das Erreichen des gesetzlich vorgegebenen Zieles gesichert erscheinen lässt. Verfahren, Einrichtungen und Betriebsweisen oder vergleichbare Verfahren, Einrichtungen und Betriebsweisen müssen sich in der Praxis bewährt haben oder sollten – wenn dies noch nicht der Fall ist – möglichst im Betrieb mit Erfolg erprobt worden sein. Deutlicher wird es, wenn man die Position des Begriffs im Vergleich zu „allgemein anerkannte Regeln der Technik“ (darunter) und Stand von Wissenschaft und Technik (darüber) sieht. (https://www.bmjv.de/DE/Themen/RechtssetzungBuerokratieabbau/HDR/HDR_node.html; siehe 4.5.1.) Grundsätzlich gibt es also zwei Möglichkeiten. Entweder man definiert eigene möglichst konkrete Kriterien, oder man entscheidet sich für einen der drei Begriffe und achtet auf die korrekte Verwendung innerhalb des Projekts.
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
Ein User Interface (dt. Nutzerschnittstelle) in einer Software beschreibt eine Schnittstelle zu den Nutzenden dieser Software, um die Funktionalität jener Software verwenden können.
ToDo
ToDo
Software unterliegt dem Urheberrecht. § 69a Urhebergesetz (UrhG) schützt Software in jeder Gestaltung, einschließlich Entwurfsmaterial, in allen Ausdrucksformen (QC, C, EXE, Module). Nicht geschützt sind dagegen Ideen und Grundsätze, die dem Werk zugrunde liegen. Das Urheberpersönlichkeitsrecht ist nach deutschem Recht zwar nicht übertragbar, zulässig sind jedoch die Einräumung von umfänglichen Nutzungsrechten sowie Vereinbarungen zu Verwertungsrechten. Legt man z.B. amerikanisches Recht zugrunde, dann ist auch eine Abtretung des gesamten Urheberrechts möglich. Sobald die Software-Entwickler:innen sich in einem Arbeits- und Dienstverhältnis mit dem Forschungszentrum Jülich befinden, liegen die Nutzungs- und Verwertungsrechte automatisch beim Forschungszentrum (Einzelheiten sind im § 69 b UrhG-Gesetz geregelt). Spezielle Regelungen sind daher bei der geplanten Einbeziehung Dritter, die keinen Arbeitsvertrag o. Ä. mit dem Forschungszentrum haben), vor Projektstart beispielsweise bei Ausgründungen oder wirtschaftlicher Nutzung zu treffen.
ToDo
ToDo
ToDo
ToDo
ToDo
ToDo
Wichtig bei der Entwicklung von qualitativ hochwertiger Software ist die Verwendung von Versionskontrollsystemen, um so u.a. eine Übersicht über sämtliche Änderungen am Code und den daran beteiligten Software-Entwicklern:innen zu erhalten. Diese sollen mit kollaborativen Funktionen für Projekte und Communities verknüpft sein. Das Versionskontrollsystem dient zur Erfassung von Änderungen an Daten (z. B. Dokumente, Programmcode) durch eine definierte Personengruppe, die in einem gemeinsamen Speicherort („Repositorium“) verwaltet werden. Dabei wird jede Änderung mit einem Zeitstempel und dem Urheber der Änderung gespeichert. Die sich daraus ergebende Historie erlaubt es, Änderungen nachzuvollziehen und zu früheren Ständen zurückzukehren. Das Forschungszentrum Jülich bietet aktuell eine solche kollaborative Plattform für seine Mitarbeiter:innen (z.B. aktuell JuGIT, Stand 2021). Darüber hinaus ist wünschenswert, dass diese Plattform für die nationale und internationale Zusammenarbeit genutzt werden kann, indem etablierte Identitätsföderationen wie derzeit (2021) eduGain, DFN AAI und/oder die Helmholtz AAI angebunden und über diese auch für Nichtbetriebsangehörige in diesem Sinne nutzbar ist. Ebenso können weitere solcher Plattformen für geschlossene Gruppen oder aus anderen wichtigen Gründen angeboten werden. Die von der Helmholtz Gemeinschaft im Rahmen von HIFIS bereitstehenden oder etablierte globale Plattformen wie GitHub.com oder GitLab.com stehen ebenfalls zur Auswahl. Diese können nach gemeinsamen Ermessen der Entwickler:innen, Führungskräfte und Projektverantwortlichen genutzt werden, um beispielsweise die Reichweite und Sichtbarkeit zu erhöhen.
Eingeführt von Softwareentwicklern zur schnellen kollaborativen Speicherung von Informationen während eines Entwicklungsprojektes.