software-checklist.md

SCRC Software checklist

This checklist has been developed by the Scottish Covid-19 Response Consortium and has been used to assess the software engineering aspects of "model readiness" for our six epidemiological models. This is intended to be part of a broader scheme to evaluate and describe suitability of model results to be used in decision making so this checklist covers only the software implementation and assumes that other documents cover questions about model validation, quality of science, data provenance and quality and policy readiness.

In order to use this checklist for the SCRC FAIR data pipeline components, three questions that apply only to software producing scientific results have been marked "models only" and for other software an N/A response can be given.

Software details

Model / software name

rDataPipeline

Date

04/10/21

Version identifier

v0.52.0

This assessment

Filled in by

Name

Sonia Mitchell

Role on project:

RSE

Person identifier:

https://github.com/soniamitchell

Overall statement

Do we have sufficient confidence in the correctness of the software to trust the results?

This is your overall judgement on the level of confidence based on all the aspects of the checklist. There is no formulaic way to arrive at this overall assessment based on the individual checklist answers but please explain how the measures in place combine to reach this level of confidence and make clear any caveats (eg applies for certain ways of using the software and not others).

  • [ ] Yes
  • [x] Yes, with caveats
  • [ ] No

The code is well written and includes adequate documentation. Unit testing has good coverage and is fully automated via continuous integration. The Data Pipeline is not yet being used in practice and so bugs may yet be revealed. Additionally, further work is required to implement cross validation against the other language implementations.

Checklist

Please use a statement from this list: "Sufficiently addressed", "Some work remaining or caveats", or "Needs to be addressed" to begin each response.

Additionally, for each question please explain the situation and include any relevant links (eg tool dashboards, documentation). The sub bullet points are to make the scope of the question clear and should be covered if relevant but do not have to be answered individually.

Can a run be repeated and reproduce exactly the same results? (models only)

  • [ ] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed
  • [x] N/A

Are there appropriate tests? (And are they automated?)

  • [ ] Sufficiently addressed
  • [x] Some work remaining or caveats
  • [ ] Needs to be addressed

Tests are run via GitHub Actions CI (test-build) with good code coverage (codecov).

Are the scientific results of runs robust to different ways of running the code? (models only)

(We don't require bitwise identical results here, but the broad conclusions after looking at the results of the test case should be the same.)

  • [ ] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed
  • [x] N/A

Has any sort of automated code checking been applied?

  • [x] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed

lintr has identified a number of cosmetic issues that were considered low priority.

Is the code clean, generally understandable and readable and written according to good software engineering principles?

  • [x] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed

Though the code has survived multiple iterations of the project, it is well structured, commented and documented. Further refactoring is required to reduce duplication and improve modularity.

Is there sufficient documentation?

  • [ ] Sufficiently addressed
  • [x] Some work remaining or caveats
  • [ ] Needs to be addressed

There is a readme that describes how to install the code and user examples that show how the API interacts with the Data Pipeline. Additional documentation exists (docs), however this needs expanded upon.

Is there suitable collaboration infrastructure?

  • [x] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed

The code is stored in a GitHub repository, which includes a licence and issue tracking.

Are software dependencies listed and of appropriate quality?

  • [x] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed

Dependencies are listed in the DESCRIPTION file.

Is input and output data handled carefully? (Models only)

  • [ ] Sufficiently addressed
  • [ ] Some work remaining or caveats
  • [ ] Needs to be addressed
  • [x] N/A


ScottishCovidResponse/SCRCdataAPI documentation built on July 26, 2023, 9:47 p.m.