软件和模型指南

序言

模型和软件是PIK科学工作和声誉的基础和核心。PIK的科学使命是了解地球系统的物理极限,探索可持续和公平发展的管理选项。这一广泛的组合,包括地球系统、气候影响、社会经济概念、能源系统以及一般复杂系统研究,需要高质量软件和模型开发的广泛基础。

PIK致力于高标准的科学实践软件、数据和建模委员会(SDMC)协调软件和建模指南的开发和实施,该指南将此承诺编纂为其职责范围。这些指南的中心目标是帮助科学家实现其科学结果的透明度、再现性和正确性。

为了确保透明度并促进合作,PIK致力于开放科学和开源.建议根据PIK开源和开放数据政策.

PIK致力于科学实践的最高标准再现性PIK的研究结果。在软件环境中,这意味着有助于科学洞察力的代码不仅需要可用,而且需要易于理解,并且可以在定义的环境中运行,可能在发布后很长时间内运行。最后,代码测试和评审的最佳实践有助于确保科学结果的正确性。

软件指南

GL 1文件

任何软件和模型都必须以适当的方式和级别进行记录。文档需要确保其他研究人员(包括作者)能够理解、运行和修改代码。它是透明度和再现性的组成部分。开发人员应该确保开发代码和相应文档之间的同步。PIK建议将软件文档作为软件设计过程的一部分。不同级别的文档适用于不同的软件和模型,动态文档包含了对什么在什么上下文中合适的进一步讨论。

GL 2版本控制

PIK要求使用版本控制系统进行软件和模型开发。版本控制系统允许其他科学家跟踪、维护和贡献软件开发,并确保以前的版本以及潜在更改的推理不会丢失。PIK建议使用git,因为它已经成为开源协作的事实标准,并提供了一个内部Gitlab实例。

GL 3软件引用

对于可永久引用的版本(通常还与期刊出版物一起),使用数字对象标识符对软件进行归档(<网址:http://www.doi.org/>)建议使用。PIK还强烈鼓励引用科学研究基础软件,包括基础软件包。

GL 4软件测试

测试通过编写代码来检查科学代码是否按预期执行,从而确保软件的高质量。专业软件开发中存在各种各样的测试实践和方法。PIK要求科学代码贡献者尽可能使用适当的测试。

GL 5代码审查

代码审查是软件质量保证的重要组成部分,例如,向同事仔细演示代码。在撰写出版物之前,必须审查新的代码开发。PIK鼓励软件开发人员采用包含评审的工作流,例如基于Gitlab项目和合并请求的工作流,这些工作流要求在将代码并入存储库之前进行文档评审。

GL 6长期储存

与德国研究基金会DFG的“保障良好科学实践”规则和“确保PIK良好科学实践的规则和处理科学不当行为的程序”相对应,所有相关软件,模型和数据必须安全存储十年,以实现重要模型输出的再现性。根据内政部发布的代码和数据满足这些要求。对于所有其他情况,应使用PIK存档服务。

GL 7贷记开发人员和维护人员

研究部门负责人和工作组负责人必须确保代码开发和维护将获得适当的学分,例如通过(共同)作者身份或在技术期刊上发表文章的机会。

GL 8检查表

这里给出的指南旨在帮助保持高科学标准。为了帮助科学家确保指导方针得到实施,SDMC将制定检查清单。

模型指南

除了这些通用指南之外,主要复杂模型的设计和开发中的具体挑战和要求还应遵循以下指南。

GL M1选择PIK开发/使用的模型和维护要求

虽然模型的选择主要由科学问题驱动,但PIK模型开发和维护的资源有限,使得该选择过程成为模型质量控制过程的重要组成部分。建模策略的决策由各研究部门做出。研究部门负责人确保模型的开发和/或使用将有助于研究所的研究战略。他们还确保长期的模型维护,以便PIK或研究所以外的其他研究小组可以基于建模项目的结果进行自己的研究。

GL M2明确规定了每个模型的责任

对于PIK正在开发/使用的每个模型,指定一名负责的科学家,确保在模型实施中应用良好的建模实践和指南。这个负责人必须是资深科学家,最好是有固定职位。

GL M3模型实施中验证、不确定性和敏感性分析的应用

必须验证和验证模型或其组件的新实现或修改后的实现。这超出了测试指南中所述的测试实现的需要。模型实现的验证应考虑所有相关来源,从抽象模型到经验数据,再到替代模型实现及其输出。鼓励进行模型相互比较研究/项目,并对模型实施进行不确定性和敏感性分析。