Benureau Fabien C Y, Rougier Nicolas P
INRIA Bordeaux Sud-Ouest, Talence, France.
Institut des Maladies Neurodégénératives, Université de Bordeaux, Centre National de la Recherche Scientifique UMR 5293, Bordeaux, France.
Front Neuroinform. 2018 Jan 4;11:69. doi: 10.3389/fninf.2017.00069. eCollection 2017.
Scientific code is different from production software. Scientific code, by producing results that are then analyzed and interpreted, participates in the elaboration of scientific conclusions. This imposes specific constraints on the code that are often overlooked in practice. We articulate, with a small example, five characteristics that a scientific code in computational science should possess: re-runnable, repeatable, reproducible, reusable, and replicable. The code should be executable (re-runnable) and produce the same result more than once (repeatable); it should allow an investigator to reobtain the published results (reproducible) while being easy to use, understand and modify (reusable), and it should act as an available reference for any ambiguity in the algorithmic descriptions of the article (replicable).
科学代码不同于生产软件。科学代码通过生成随后进行分析和解释的结果,参与科学结论的阐述。这对代码施加了一些在实践中常常被忽视的特定约束。我们通过一个小例子,阐述计算科学中的科学代码应具备的五个特性:可重新运行、可重复、可再现、可复用和可复制。代码应该是可执行的(可重新运行)并且不止一次产生相同的结果(可重复);它应该允许研究者重新获得已发表的结果(可再现),同时易于使用、理解和修改(可复用),并且它应该作为文章算法描述中任何模糊之处的可用参考(可复制)。