Codes, algorithmes, logiciels et calculs

Les données ne constituent pas les seuls résultats de recherche pour lesquels une gestion anticipée doit être mise en place. En tant que produits de recherche à part entière et en raison de leur importance dans le traitement informatisé et, par extension, dans l'analyse, le partage ou encore la valorisation des données, il est en effet important de planifier la gestion des codes, algorithmes, logiciels et calculs développés ou mobilisés dans le cadre des projets de recherche, particulièrement pour assurer la reproductibilité de la recherche.


Les ressources sélectionnées par l’équipe de CoDataSorb vous permettront de comprendre, pas à pas, comment mettre en œuvre une gestion vertueuse des codes, logiciels, algorithmes et calculs de recherche tout au long de leur cycle de vie dans le cadre de votre projet.

Grâce à ces ressources, vous serez en mesure de mobiliser pour votre projet un ensemble de préconisations, pratiques et outils, qui pourront être mis en œuvre tout au long du cycle de vie de ces matériaux de recherche singuliers : pratiques et outils d'anticipation (Plan de gestion de logiciel (PGL) / Software Management Plan (SMP)) de documentation (notebooks, métadonnées), de partage (forges logicielles, licences), de valorisation (software papers) ou encore recommandations pour renforcer leur découverte et leur réutilisation (principes FAIR4RS (FAIR for Research Software)).

Vous pourrez aussi poursuivre votre autoformation via des sites de référence ou encore solliciter des personnes-ressources pour vous accompagner au mieux sur les enjeux de la gestion des codes, logiciels, algorithmes et calculs de recherche.

Le cycle de vie du logiciel de recherche

Comme tout produit de recherche, les codes et logiciels développés dans le cadre de projet de recherche nécessitent "la mise en place d'une gestion de projet spécifique au domaine de l'ingénierie logicielle", aussi "communément appelé cycle de vie du logiciel". Ce cycle de vie est constitué de différentes phases et étapes, de la conception du logiciel à sa fin de vie, "rendant compte du cycle complet de développement".

Citation extraite du chapitre "Gérer" du MOOC de l'INRAE "Gestion et partage des algorithmes, codes et logiciels".

  • Le cycle de vie des logiciels : les ressources essentielles

    Recherche Data Gouv et son poster "Des outils et des ressources pour faciliter la gestion des codes et logiciels de recherche"
    Ce poster conçu par le groupe de travail "Codes et logiciels" de l'écosystème Recherche Data Gouv offre une synthèse des enjeux de la gestion des codes et logiciels de la recherche. Il détaille en particulier "six outils principaux en cours de développement" accompagnés de préconisations : Plan de gestion de logiciel (PGL), typologie de logiciels, ressources de formation à la gestion de logiciels, outil d'aide à la sélection d'une forge souveraine, mapping sur les correspondances entre PGL et formats standards, guide sur la réplicabilité. 

    DoRANum et le diaporama interactif "Cycle de vie du logiciel"
    L'Inist-CNRS et le GT "Code source et logiciel" de Recherche Data Gouv et son sous-groupe "Accompagnement et formation" mettent à disposition ce diaporama interactif abordant différentes questions soulevées tout au long du cycle de vie du logiciel, ainsi que les différentes étapes qui constituent ce cycle (rédaction de Plan de gestion de logiciel (PGL), notebooks et forges logicielles, licence, réutilisation, archivage, etc). 

    INRAE et le module "Gestion et partage des algorithmes, codes et logiciels" de sa formation e-learning OSCAR
    Conçu par l'INRAE, le parcours d'auto-formation OSCAR (Ouvrir la Science, Connaissances à AcquériR) permet de se former à son rythme aux enjeux de la science ouverte. L'un des 9 modules développés s'intéresse spécifiquement à la gestion et au partage des algorithmes, codes et logiciels (durée : 3h). Sont ainsi abordés les thèmes suivants : les cadres (définition, protection juridique), la gestion (cycle de vie, PGL, versioning et release), l'ouverture (gouvernance, principes FAIR), le partage (forge logicielle, licences, autorat), l'archivage (Software Heritage, HAL), la valorisation. Son chapitre "Gérer" aborde en particulier les étapes et les phases du cycle de vie de logiciel, ainsi que l'importance que ce cycle revêt pour le développement des logiciels de recherche. 

    GTSO Données de Couperin et son webinaire "Logiciels et données de la recherche, même combat ? Accompagner à la documentation, à la pérennisation et à la valorisation"
    Pour aller plus loin, ce webinaire proposé par le Groupe Données du GT Science ouverte du Consortium Couperin (GTSO Données) aborde les pratiques de gestion des codes et logiciels, permettant de découvrir différentes étapes du cycle de vie du logiciel. Trois présentations rendent ainsi compte de plusieurs outils pour documenter, pérenniser et valoriser les codes et logiciels (décrire la gestion des codes et logiciels dans DMP OPIDoR, préserver et valoriser les logiciels avec Software Heritage, le catalogue des logiciels de l'ESR).

    Le MOOC de l'Inria "Reproducible Research II: Practices and tools for managing computations and data"
    Pour aller plus loin, l'Inria met à disposition un MOOC permettant de s'autoformer afin d'améliorer ses pratiques pour la gestion de données, la gestion de logiciels ainsi que la gestion de calculs, tout en intégrant la question centrale de la reproductibilité. D'une durée totale de 35h et dispensé en anglais, le MOOC se structure en 5 chapitres thématiques. Sur demande, un "Open badge" peut être délivré aux participants ayant validé la formation (score global de 50% de bonnes réponses à l'ensemble des quizz et exercices). 

Les principes FAIR4RS

Parce qu'ils constituent des résultats de recherche à part entière, il est apparu essentiel que les principes FAIR (Facile à trouver, Accessible, Interopérable, Réutilisable) puissent être adaptés aux logiciels et codes développés dans le cadre de projets de recherche. Les préconisations pour ces matériaux de recherche singuliers sont appelées les FAIR4RS (FAIR for Research Software). A ce titre, les caractéristiques spécifiques des logiciels (exécutabilité, nature composite, évolution et versionnement continus*) sont ainsi intégrées aux principes FAIR4RS.

*Exemples issus de la ressource "Les principes FAIR adaptés aux logiciels" de DoRANum.

Concevoir son Plan de gestion de logiciel (PGL) ou Software Management Plan (SMP)

Document essentiel permettant de décrire un logiciel de recherche et "la façon dont il est géré tout au long de son cycle de vie" (de la conception à la maintenance), le Plan de gestion de logiciel (PGL) ou Software Management Plan (SMP) "centralise les informations sur un logiciel". A ce titre, le PGL est tout à la fois "un outil d'aide à la réflexion et à la planification", offrant la possibilité d'anticiper les actions et pratiques à mettre en place tout au long du projet de recherche, œuvrant ainsi à le rendre plus réutilisable et durable. Les ressources sélectionnées vous permettront d'appréhender les enjeux du PGL, de vous inspirer de modèles existants, ou encore de découvrir les liens entre plan de gestion de données (PGD) et PGL.

Le texte est adapté de l'article "Le plan de gestion de logiciel" du Blog de l'Institut Pasteur. Les citations sont issues de cette même ressource. 

Documenter son code et son logiciel

Documenter un code ou un logiciel consiste à expliciter son fonctionnement, ses dépendances, sa structure et son contexte de création afin d'en garantir la compréhension, la réutilisabilité et la pérennisation. Pour l'ensemble des disciplines, et tout particulièrement en sciences humaines et sociales, la documentation constitue une étape fondamentale permettant de transformer un travail personnel en un matériau scientifique exploitable, vérifiable et citable. 
Plusieurs standards, normes et outils permettent de renforcer la documentation et la citabilité des codes et logiciels de recherche : standards de métadonnées logicielles, formats de fichiers intégrant les instructions de citation, ou encore documents computationnels (notebooks) associant description, analyse et valorisation.
 

  • Décrire son logiciel de recherche et son code : métadonnées, format d’échange CodeMeta, format de fichier Citation File Format

    Quels sont les standards de métadonnées couramment utilisés et reconnus pour les logiciels de recherche ? Quels dispositifs permettent de rendre son code citable ? Les ressources sélectionnées vous permettront d'appréhender plusieurs grands principes et outils de description et de citation des codes et logiciels : normes européennes de métadonnées préconisées pour les logiciels de recherche, standard international du format d'échange des métadonnées logicielles (CodeMeta), format de fichier Citation File Format (CFF).

    Le projet FAIR-IMPACT d'EOSC et son guide "The Research Software MetaData Guidelines for End-Users"
    Conçu dans le cadre du projet FAIR-IMPACT de l'European Open Science Cloud (EOSC), ce guide présente les métadonnées essentielles permettant de documenter un logiciel de recherche afin d'en faciliter la compréhension, la citation, la réutilisation et la pérennisation. Il s'adresse principalement aux chercheurs et développeurs souhaitant améliorer la qualité de la documentation de leurs logiciels.

    Les métadonnées pour les logiciels de recherche : focus sur CodeMeta

    Standard international reconnu, CodeMeta est un format d'échange pour les métadonnées logicielles, permettant de fournir plusieurs types d'informations : les "informations générales sur un logiciel (nom, URL, date de création, date de mise à disposition, etc)", les "informations techniques, juridiques ainsi que des éléments sur le processus de développement lui-même". CodeMeta permet de "créer un vocabulaire conceptuel qui peut être utilisé pour normaliser l’échange de métadonnées logicielles entre les référentiels et les organisations".

    Citations extraites du rapport du Collège Codes sources et logiciels du Comité pour la science "Normaliser l'échange de métadonnées et la citation des logiciels".
     

    Comité pour la science ouverte et le rapport "Normaliser l'échange de métadonnées et la citation des logiciels"
    Cette documentation proposée par le Collège Codes sources et logiciels du Comité pour la science ouverte détaille les perspectives nationales pour valoriser la production logicielle académique. Elle explicite l'intérêt d'adopter CodeMeta comme format d'échange de métadonnées intrinsèques, ainsi que le format descriptif Citation File Format (CFF) pour simplifier les workflows de citation des codes et garantir le crédit scientifique aux chercheurs.

    Le tutoriel sur CodeMeta de la revue The Programming Historian à destination des SHS : "CodeMeta Generator : Générateur de métadonnées pour les logiciels de recherche"
    Proposé dans l'article de Sabrina Granger, Baptiste Mélès et Frédéric Santos dans la revue The Programming Historian, spécialisée dans les humanités numériques, ce tutoriel sur CodeMeta Generator permet de prendre en main cet outil pour produire des fichiers CodeMeta. Une synthèse des avantages de ce standard en matière de description, d'identification, de partage et de valorisation des logiciels est également proposée.

    Rendre son code citable : le standard Citation File Format (CFF)

    Le standard Citation File Format (CFF) est un format de fichier (CITATION.cff) en texte brut permettant aux développeurs et aux chercheurs de fournir les instructions de citation de leurs codes de recherche. Intégré nativement dans des plateformes comme GitHub et Zenodo, il garantit que les auteurs du logiciel reçoivent le crédit académique approprié lorsque leur outil est réutilisé dans des publications scientifiques. 
     

    Rendre son code citable : le standard Citation File Format (CFF)
    Site officiel du standard Citation File Format, intégrant documentations et outils.

  • Les notebooks

    Les notebooks (ou documents computationnels) constituent un outil de documentation incluant, dans un même document, du texte, du code informatique, ainsi que le résultat de ce code. Grâce à cet outil de description, d'analyse et de valorisation, les notebooks participent activement à renforcer la transparence et la reproductibilité de la recherche.
     

    Blog de l'Institut Pasteur, "Les documents computationnels ou notebooks"
    Cet article synthétique mis à disposition par le blog de l'Institut Pasteur offre une introduction aux notebooks, permettant de définir et comprendre les enjeux de ces outils singuliers. 

    DoRANum et son guide sur le notebook
    Conçu par Hugues Pecout (Géographie-Cités UMR 8504) et l'Inist-CNRS, ce guide interactif permet de comprendre les enjeux et le fonctionnement des notebooks. Sont ainsi abordés l'importance de cet outil pour la reproductibilité de la recherche, la structuration et les composants des notebooks, les différents systèmes de notebooks à disposition, ainsi que leurs articulations avec les forges logicielles.

    Focus sur les notebooks Jupyter, un outil utilisé en SHS

    Parmi les différents outils de documents computationnels à disposition des communautés scientifiques, les usages et avantages des notebooks Jupyter pour les SHS sont particulièrement documentés. Les ressources sélectionnées vous permettront d'appréhender les objectifs et avantages de cet outil.

    Digit_Hum et sa fiche pratique sur Jupyter, "un carnet numérique au service des SHS"
    Cette fiche pratique proposée dans le cadre de l'Atelier Digit_Hum de 2023 ("Manipuler des données en SHS : R, Python et les carnets interactifs") offre une introduction aux notebooks Jupyter dans la recherche en SHS. 

    Maxime Popineau et son article sur l'utilisation des Jupyter Notebooks en sciences humaines et sociales
    Cet article rédigé par Maxime Popineau dans le cadre de ses activités à Digit_Hum propose une réflexion ciblée sur l'usage des notebooks Jupyter en sciences humaines et sociales, en présentant le fonctionnement de l'outil, ses bénéfices et ses limites sans se réduire à un simple tutoriel technique. Sont également proposés quelques exemples concrets d'applications pour plusieurs disciplines des SHS (linguistique, géographie, sociologie).