Oprogramowanie stało się fundamentalnym elementem współczesnych badań naukowych. Naukowcy często tworzą własne rozwiązania do analizy i wizualizacji danych, jednak ich podejście do dokumentacji, wersjonowania i udostępniania kodu bywa niesystematyczne. Plany Zarządzania Oprogramowaniem (ang. Software Management Plans, SMPs) powstały jako odpowiedź na potrzebę uporządkowania tego procesu.
Plan Zarządzania Oprogramowaniem zawiera ogólne i techniczne informacje na temat wykorzystywanego oraz tworzonego oprogramowania. Mogą one dotyczyć zapewnienia jakości, wydania i publicznej dostępności, czy też kwestii prawnych i etycznych wpływających na rozwijane oprogramowanie. SMP zestawia i podsumowuje wszystko to, co dotyczy tworzenia, dokumentowania, przechowywania, wersjonowania, licencjonowania, archiwizowania, a ostatecznie publikowania oprogramowania stworzonego lub używanego w projekcie. Należy również opisać tutaj związany z tymi procesami sprzęt i inne niezbędne zasoby, w tym powiązane aplikacje i biblioteki programistyczne, publikacje tekstowe oraz wszelkie inne dane.
Monitorując aspekty związane z oprogramowaniem, SMP ma na celu wydłużenie okresu jego przydatności (zarówno do bezpośredniego zastosowania, jak i dalszego przetwarzania), jednocześnie ułatwiając wsparcie użytkownika i służąc zapewnieniu jakości.
Co powinien zawierać SMP:
- informacje ogólne i techniczne o projekcie,
- zasady zapewnienia jakości kodu,
- strategię publikacji i dostępności,
- aspekty prawne i etyczne,
- plany długoterminowego przechowywania,
- powiązania z innymi zasobami cyfrowymi.
Dostępne platformy i szablony:
Dostęp: https://dmponline.dcc.ac.uk/
- najstarszy i najbardziej podstawowy szablon
- koncentracja na przyszłym wykorzystaniu kodu
- 38 kluczowych pytań
Dostęp: https://ds-wizard.org/
- zaawansowane wsparcie dla zasad FAIR
- wykorzystanie kontrolowanych słowników
- zorientowanie na nauki przyrodnicze
Dostęp: https://dmp.opidor.fr/
- najbardziej rozbudowany szablon (98 pytań)
- szczegółowe metadane
- kompleksowe podejście do zarządzania
Dostęp: https://rdmorganiser.github.io/
- dedykowany naukowcom-programistom
- praktyczne podejście do dokumentacji
- zintegrowany z RDMO
Dostęp: https://ug.zib.de/doc/html/index.php
- zorientowany na rozwój oprogramowania
- silny nacisk na dokumentację
- integracja z GitLab/Wiki
Aspekty techniczne i standardy:
Powstały jako rozwinięcie pierwotnych zasad FAIR (Findable, Accessible, Interoperable, Reusable), specjalnie dostosowane do unikalnych wymagań oprogramowania naukowego. W przeciwieństwie do statycznych danych badawczych, oprogramowanie jest dynamiczne - ewoluuje w czasie, wymaga aktualizacji i ma złożone zależności od innych komponentów.
Zasady te gwarantują, że oprogramowanie naukowe będzie możliwe do odnalezienia przez innych badaczy, dostępne poprzez standardowe protokoły, mogące współpracować z innymi narzędziami oraz nadające się do ponownego wykorzystania. Przykładowo, oprogramowanie powinno posiadać unikalny identyfikator (np. DOI), być opatrzone bogatymi metadanymi opisowymi oraz mieć jasno określone warunki licencyjne i dokumentację techniczną.
W świecie oprogramowania naukowego funkcjonują dwa główne standardy metadanych:
- Bioschemas
- CodeMeta
Bioschemas został zaprojektowany z myślą o naukach przyrodniczych i oferuje rozbudowany system opisu narzędzi obliczeniowych. Pozwala na szczegółowe opisanie funkcjonalności, wymagań technicznych oraz powiązań z innymi zasobami.
CodeMeta z kolei reprezentuje bardziej minimalistyczne podejście, skupiając się na podstawowych informacjach o kodzie źródłowym. Oba standardy bazują na Schema.org i umożliwiają integrację z szerszym ekosystemem naukowym. Dzięki tym standardom, oprogramowanie może być łatwiej odkrywane przez wyszukiwarki i systemy katalogowe.
Machine-actionable SMPs (maSMPs) to kolejny krok w ewolucji planów zarządzania oprogramowaniem. Ich głównym celem jest umożliwienie automatycznego przetwarzania informacji zawartych w SMP przez różne systemy informatyczne.
Przykładowo, dobrze skonstruowany maSMP może automatycznie generować dokumentację techniczną na podstawie kodu i metadanych, monitorować zgodność z przyjętymi standardami i dobrymi praktykami, śledzić zależności między różnymi wersjami oprogramowania czy też integrować się z systemami kontroli wersji i repozytoriami kodu.
Skuteczne zarządzanie oprogramowaniem naukowym wymaga sprawnej komunikacji między różnymi systemami i narzędziami. Dlatego tak ważne jest stosowanie standardowych protokołów komunikacji i formatów danych.
W praktyce oznacza to wykorzystanie:
- interfejsów API opartych o REST,
- standardowych formatów jak JSON czy XML do wymiany danych,
- wspólnych schematów metadanych,
- ustandaryzowanych identyfikatorów zasobów.
Systemy te muszą również współpracować z szerszą infrastrukturą badawczą, w tym z repozytoriami instytucjonalnymi i platformami publikacyjnymi. Szczególnie istotna jest integracja z systemami zarządzania danymi badawczymi, ponieważ oprogramowanie często stanowi kluczowy element w procesie przetwarzania i analizy danych.
Perspektywa rozwoju
Choć obecnie żadna agencja finansująca nie wymaga formalnie SMP, obserwujemy rosnące zainteresowanie tą koncepcją. Przykładowo, Fundacja Volkswagena już uwzględnia aspekty zarządzania oprogramowaniem w swojej polityce Open Science, a inne instytucje prawdopodobnie podążą tą drogą.
Tekst powstał na podstawie: Grossmann, Y.V., Lanza, G., Biernacka, K., Hasler, T. and Helbig, K. (2024) Software Management Plans – Current Concepts, Tools, and Application. Data Science Journal, 23:43, 1-16. DOI: https://doi.org/10.5334/dsj-2024-043.