Assets Used & Produced
As this Science Direct article describes, “An asset is a software artefact that is intended to be used more than once during the inception, development, delivery, or evolution of a software-intensive product or service.” In a research software management plan various assets are used and produced to ensure effective management and development of research software. Some common assets are described below.
Assets Used
-
Research Data
Research software often deals with datasets used for experimentation, analysis or training machine learning models. These assets can include raw data files, processed datasets, metadata, and documentation describing the data sources and preprocessing steps.
-
Version Control System
A version control system is used to track changes made to the software code over time. It allows developers to collaborate, manage different versions of the software and maintain a history of all modifications and contributions.
-
Issue Tracking System
An issue tracking system (e.g. Atlassian Jira, GitHub Issues) is used to manage and track software issues, bugs, feature requests, and other tasks related to the software development process. It helps organize and prioritize tasks, assign them to team members and track their progress.
-
Other Software Libraries
Third-party libraries, including software “packages”, are essential components of most software projects and acknowledging their use is important for legal compliance reasons. Many third-party libraries come with specific licenses, usage terms and restrictions. By documenting the inclusion of these libraries, developers and stakeholders can ensure compliance with the licensing requirements and avoid potential legal issues related to intellectual property rights deploying or extending the project. Greater awareness of these restrictions may dictate different choices when selecting among library options to include when developing research software.
Assets Produced
-
Source Code
The actual software source code is a primary asset in any research software management plan. It includes all of the program files, scripts, libraries, and configurations used to build the software.
-
Executable Software
Executable software is the compiled or packaged versions of the software that can be executed on different platforms. If applicable, create pre-configured deployment packages or container images to facilitate the installation of the software.
-
Documentation
The documentation assets include various types such as user manuals, installation guides, API references, code comments, and README files. These documents provide instructions on how to use the software, explain its architecture and design choices, and offer guidance on contributing to and extending the software.
-
Licensing and Copyright Information
Research software management plans should include details about the software’s licensing and copyright information. This inclusion helps ensure compliance with restrictions placed on the software’s use and distribution.
-
Test Data and Test Suites
Any datasets used to validate correctness, automate testing or demonstrate operation of the software.
-
Research Outputs
Depending on the nature of the research, the software may produce data, results or other outputs that contribute to the research findings, Also included are publications or reports that describe the research, including the software, algorithms and methodologies used.
The specific assets used and produced in a Research Software Management Plan and degree of documentation will vary depending on the project’s scope, goals, and requirements. The RSMP should be tailored to the research project’s needs and align with best practices for software development and management in the research domain.
Tracking these assets in a software management plan facilitates their documentation and planning, which improves software development in general, and helps to prepare research projects for publication and deposit.