DUNE as an Example of Sustainable Open Source Scientific Software Development
在本文中,我们描述了如何DUNE,一个开源的科学软件框架,开发。拥有一个可持续的软件框架来解决偏微分方程是DUNE发展的主要驱动力。我们来看看DUNE如何努力保持可持续的软件。
2013-09-15 cs.MS cs.SE
Challenges for Verifying and Validating Scientific Software in Computational Materials Science
许多科学领域依赖于软件系统来回答不同的研究问题。为了获得有效的结果,研究人员需要相信科学软件产生的结果,因此质量保证至关重要。在本文中,我们正在调查的影响,质量保证领域的计算材料科学(CMS)。根据我们在这一领域的经验,我们制定了科学软件及其结果的验证和验证的挑战。此外,我们描述了未来研究的方向,可能有助于应对这些挑战。
2019-06-21 cs.SE
Software Engineering Practices for Scientific Software Development: A Systematic Mapping Study
背景资料:科学软件应用程序的开发远非微不足道,因为这些应用程序的必要复杂性不断增加,它们的规模不断增加,并且需要密集的维护和重用。目标:为此,科学软件开发人员(通常缺乏正式的计算机科学背景)需要使用适当的软件工程(SE)实践。本文介绍了一个系统的映射研究的结果,使用SE的科学应用开发和它们对软件质量的影响。方法:为了实现这一目标,我们进行了系统的映射研究的359篇论文。我们首先描述了一个目录中使用的科学软件开发的SE实践。然后,我们讨论了驱动这些实践应用的感兴趣的质量属性,以及将实践应用于质量的尝试性副作用。结果如下:主要研究结果表明,科学软件开发人员正在关注提高实现生产力的实践,如代码重用,使用第三方库,以及应用“好”的编程技术。此外,除了发现性能是许多这些应用程序的关键驱动力之外,科学软件开发人员还发现可维护性和生产力也很重要。结论:研究结果与现有文献进行了比较,解释下的软件工程棱镜,研究人员和从业人员提供的各种影响。该研究的主要发现之一,被认为是推动未来研究工作的重要因素,是缺乏在应用软件实践时需要做出权衡的证据,即,对其他质量属性的负面(间接)影响。
2020-10-19 cs.SE
Characterizing the Usefulness of Code Review Comments in Scientific Software for Software Quality and Scientific Rigor
University of Central Arkansas(阿肯色中央大学);University of Tennessee(田纳西大学)
本文研究科学开源软件中代码审查评论的有用性,发现其与通用软件有相似特征,但部分评论无用,且正负情绪反应相关性不一。
2026-04-26 cs.SE
Research Software Science: Expanding the Impact of Research Software Engineering
软件在科学发现中起着核心作用。改进我们如何开发和使用研究软件可以对当今社会面临的一系列挑战和机遇产生广泛而深刻的影响。研究软件工程师(RSE)作为一个角色的出现与科学挑战的日益复杂性和软件团队技能的多样性相关。在本文中,我们描述了研究软件科学(RSS),一个与RSE相关的想法,特别适合于研究软件团队。RSS促进使用科学方法来探索和建立广泛适用的知识。使用RSS,我们可以追求可持续的,可重复的和可复制的软件改进,积极影响研究软件,以改善科学发现。
2022-11-16 cs.SE
DDTS: A Practical System Testing Framework for Scientific Software
许多科学软件项目对其代码的测试不充分,或者根本没有测试。尽管其众所周知的好处,采用常规测试往往并不容易。开发团队可能对建立有效的测试过程、编写测试软件或处理日益复杂的测试用例有疑问。它们可能需要在受限的HPC平台上运行(和测试)。他们几乎肯定会面临时间和预算的压力,这可能会使测试在他们的待办事项列表的底部徘徊。本文介绍了DDTS,一个用于构建测试套件应用程序的框架,旨在满足科学软件项目的需求。DDTS旨在简化严格测试的引入,并随着需求的成熟而缓解成长的烦恼。它将测试问题分解为实用、直观的阶段;易于配置和扩展;可移植且适用于HPC平台;并利用并行性。DDTS目前用于自动化回归和开发人员预提交测试,用于具有不同测试需求的几个科学软件项目。
2014-11-07 cs.SE
Software Engineering as Instrumentation for the Long Tail of Scientific Software
绝大多数长尾科学软件,即为不同科学领域实现许多分析和可视化方法的无数工具,都是高度专业化的,专为研究项目而构建的,并且必须依赖于社区的吸收和重用来进行持续的开发和维护。虽然无法控制甚至保证使用率,但影响新用户或开发人员决定采用现有工具还是开始使用新工具的一些关键因素是,使用或增强工具以达到最初设计的目的是多么容易或困难。软件工程科学已经产生了技术和实践,可以减少或消除社区吸收软件的各种障碍,但由于各种原因,聘请训练有素的软件工程师作为长尾科学软件开发的一部分已被证明是具有挑战性的。因此,社区对长尾工具的吸收通常比需要的要困难得多,即使重用的机会比比皆是。我们讨论了可能的原因,为什么雇用软件工程在长尾是具有挑战性的,并提出,这些障碍中的许多可以解决的形式,一个跨领域的非营利卓越中心,使软件工程广泛访问作为一个共享服务,在概念上和其效果类似于共享仪器。
2013-09-07 cs.SE
Exploring Scientific Debt: Harnessing AI for SATD Identification in Scientific Software
本研究利用AI识别科学软件中的SATD,发现其比通用软件具有更高的债务水平,并揭示了管理SATD对科学发现的重要性。
2025-11-21 cs.SE
Giving RSEs a Larger Stage through the Better Scientific Software Fellowship
Better Scientific Software Fellowship(BSSwF)于2018年启动,旨在促进和推广实践、流程和工具,以提高开发人员的生产力和科学代码的软件可持续性。BSSwF的愿景是通过从业者、领导者、导师和顾问来发展社区,以提高科学软件生产和可持续性的可见性。在过去的五年中,许多奖学金获得者和荣誉提名者被确定为研究软件工程师(RSE)。本文提供了几个项目参与者的案例研究,以说明BSSwF使RSE和科学界受益的各种方式。在RSE的贡献往往被低估的环境中,我们相信BSSwF等计划可以成为一种宝贵的手段,以表彰和鼓励社区成员走出他们的常规承诺,并扩大他们的工作,合作和想法,为更多的观众。
2022-11-15 cs.SE
A practical guide towards agile test-driven development for scientific software projects
软件测试在过去的几年里受到了广泛的关注,并且已经达到了如此关键的重要性,以至于敏捷软件开发实践将软件测试置于其核心地位。敏捷软件开发在大规模工业软件开发中得到了成功的应用,但由于其粒度责任分配给开发团队的各个成员,这些实践可能不适用于科学代码开发,特别是在学术环境中,代码库由一个人开发,维护和使用并不罕见。即使是通过外部赠款资助的协作科学软件开发,最终用户通常仍然是开发团队的一部分。这与许多行业中的软件开发方式形成对比,在这些行业中,开发团队和最终用户是两个独立的实体。然而,有许多好的代码开发实践可以用于科学软件项目。具体地说,本文的目的是采用敏捷软件开发的核心,并将其定制为科学和学术的单用户代码开发。在这项研究中,开发了一个c++启动项目,并提供了基于介子构建系统,它提供了本地支持软件测试。它用于展示如何开发在许多科学和学术应用中发现的简单线性代数应用程序,以及如何创建通过介子构建系统管理的简单单元,集成和系统测试。通过这种方式,我们能够最大限度地减少软件缺陷,并降低解释错误软件生成的错误数据的风险,这些错误数据可能导致得出错误的结论。每一层测试都提供了一个额外的保护层,我们将探讨如何以最小的开销将这些保护层结合起来,以产生无bug的软件。
2020-10-08 cs.SE
Talk to Me: A Case Study on Coordinating Expertise in Large-Scale Scientific Software Projects
大规模的协作科学软件项目需要比任何一个人通常拥有更多的知识。这使得知识和专业知识的协调和交流成为创造和保障软件质量的关键因素,没有它,我们就无法拥有可持续的软件。然而,当研究人员试图扩大软件的生产规模时,他们面临着意识和理解的问题。这为制定更好的做法和工具直接应对这些挑战提供了机会。为此,我们对Trilinos项目的开发人员进行了案例研究。我们调查了软件开发所面临的挑战,并展示了这些问题如何与他们所知道的以及他们如何沟通联系在一起。基于这些数据,我们提供了一系列切实可行的建议,并为未来的研究勾勒出前进的道路。
2018-09-17 cs.SE
Methodology for development of scientific software and test frameworks in function of precision of the expected results
本文主要研究科学软件的开发过程。它提出了一种方法,随着时间的推移出现在高能物理实验的蒙特卡罗工具的发展。本文简要介绍了理解本论文所介绍的主题所需的物理背景,并概述了为物理实验创建的不同类型的软件。科学软件开发的挑战。描述了几个项目的开发过程。这些项目的后续里程碑的开发遵循以下循环:改进物理模型,使用数学形式主义描述模型,使用数值近似实现模型,创建软件框架,记录和验证结果。基于这些项目,还展示了结果的精度增加与测试和测试框架的复杂性增加之间的关系。论述了科学软件测试的主题,并给出了科学软件测试的分类,包括软件开发中使用的测试技术。本文作者与他人合作开发了一些工具,其中一些工具已经被引入到HEP社区中。一些获得了大量的用户群,并在社区中积极使用。其中一些是大型强子对撞机实验分析的一部分。对这些工具的开发过程的分析可以帮助估计改进复杂算法的设计和精度所需的工作量。
2022-03-22 cs.SE
SciCat: A Curated Dataset of Scientific Software Repositories
本文提出 SciCat 数据集,从 World of Code 的 1.31 亿个去分叉仓库中筛选 FLOSS 项目,并利用 OpenAI 模型分析 README 以分类科学、研究相关及支持软件,支撑科学软件趋势与比较研究。
2023-12-11 cs.CE cs.DL cs.SE
How to Sustain a Scientific Open-Source Software Ecosystem: Learning from the Astropy Project
本文以 Astropy 项目为例,通过访谈、调查和跨项目 issue/PR 分析,研究科学开源软件生态系统在跨学科与多项目协作中的可持续性挑战,并提出具体改进建议。
2024-02-23 cs.SE
scikit-package -- software packaging standards and roadmap for sharing reproducible scientific software
scikit-package 提供打包标准与路线图,通过教程和自动化工作流,帮助非专业软件工程师的科学家提升代码的可复用性、可维护性及可复现性。
2025-07-08 cs.SE
Toward a Cohesive AI and Simulation Software Ecosystem for Scientific Innovation
ParaTools, Inc.(ParaTools公司);Argonne National Laboratory(阿贡国家实验室);Lawrence Livermore National Laboratory(劳伦斯利弗莫尔国家实验室);Sandia National Laboratories(桑迪亚国家实验室)
本文提出构建统一AI与建模模拟(ModSim)的集成软件生态系统,解决兼容性、部署和依赖管理等挑战,依托E4S和Spack等举措推动跨学科科学创新。
2024-11-14 cs.AI cs.SE
Architecting Complex, Long-Lived Scientific Software
本文探讨了平方公里阵列天文台科学数据处理器的早期软件架构实践,通过定制现有流程制定全面计划,获得关键设计审查批准,并为长寿命科学软件提供风险与缓解启示。
2023-04-26 astro-ph.IM cs.SE
Characterizing the Roles of Contributors in Open-source Scientific Software Projects
科学软件的开发对科学实践比以往任何时候都更加重要,并且伴随着更加开放和协作的趋势。不幸的是,很少有人调查是谁在推动这种科学软件的发展,或者这种合作是如何发生的。在本文中,我们解决这个问题。我们提出了一个广泛的分析,七个开源科学软件项目,以开发一个开发过程的知识模型。这项分析得到了对72名科学软件开发人员的调查的补充。在大多数项目中,我们发现高级研究人员(例如教授)负责一半或更多的提交(平均提交份额为72%),并大量参与架构问题(高级人员更有可能与构建系统,项目元数据和开发人员文档相关的文件进行交互)。大三学生(例如研究生)也做出了很大的贡献--在一个研究项目中,大三学生几乎完成了100%的提交。尽管如此,研究生在大三学生中的贡献时间最长(1.72年,博士后为0.98年,本科生为4个月)。此外,我们还发现,第三方贡献者很少,仅为项目贡献了一天。本研究的结果旨在帮助科学家更好地了解他们自己的项目、社区和贡献者的行为,同时为未来的软件工程研究铺平道路
2020-03-23 cs.SE
The Nature of Technical Debt in Research Software
University of Victoria(维多利亚大学);IIT Palakkad(印度理工学院帕拉克卡德分校);University of Oklahoma(俄克拉荷马大学)
本文研究了研究软件中技术债的性质与影响,通过分析28k条代码注释和访谈,识别出九种独特技术债类型及四个影响主题。
2026-03-20 cs.SE
ECLAIR: A Causally-Grounded AI Framework for Scientific Discovery in Empirical Software Engineering
William & Mary(威廉与玛丽学院);Microsoft(微软)
该研究提出因果基础AI框架ECLAIR,将LLMs整合到软件工程科学过程各阶段,通过案例研究揭示提示设计对LLMs代码生成准确率的影响,为AI辅助软件工程实证研究提供方法论基础。
2026-08-06 cs.SE
Science-Software Linkage: The Challenges of Traceability between Scientific Knowledge and Software Artifacts
尽管计算机科学论文通常伴随着软件工件,但将研究论文与其软件工件连接起来(反之亦然)并不总是微不足道的。首先,在如何提供这种联系方面缺乏公认的标准。此外,提供的链接,如果有的话,经常会过时:当预印本被删除时,当存储库被迁移时,或者当论文和存储库独立发展时,它们会受到链接腐烂的影响。在本文中,我们总结了研究论文和相关源代码链接的实践状态,强调了最近的努力,建立和维护这样的链接。我们还报告了几项实证研究的结果,重点是科学论文和相关的软件工件之间的关系,我们概述了可追溯性和克服这些挑战的机会相关的挑战。
2021-04-13 cs.DL cs.SE
Uncovering Scientific Software Sustainability through Community Engagement and Software Quality Metrics
University of Central Arkansas(阿肯色中央大学);University of Tennessee Knoxville(田纳西大学诺克斯维尔分校);Oak Ridge National Laboratory(橡树岭国家实验室)
该研究针对科学开源软件长期维持的挑战,以GitHub上的十个知名Sci-OSS项目为对象,结合社区参与与软件质量指标,提出新颖可视化技术及相关分析方法,为相关人员提供了软件可持续性的关键见解。
2026-07-30 cs.SE
Coalesced communication: a design pattern for complex parallel scientific software
我们提出了一种新的设计模式,高性能的并行科学软件,命名为合并通信。此模式允许通过使用两个通信管理组件合并多个通信需求,以结构化的方式提高通信性能。我们将设计模式应用于几个模拟的格子玻尔兹曼血流求解器与流可视化,从而产生约40%的通信开销减少。
2012-10-16 cs.DC cs.SE
Advanced Techniques for Scientific Programming and Collaborative Development of Open Source Software Packages at the International Centre for Theoretical Physics (ICTP)
大量的计算科学研究项目利用开放源码软件包。然而,这些工具的开发过程往往不同于传统的软件开发;部分原因是研究的性质,其中所解决的问题并不总是完全理解;部分原因是大多数开发往往是由经验有限的科学家进行的,他们接触到软件工程的最佳实践。通常,软件开发受到发表科学成果的压力,相比之下,软件开发的信誉有限。由于缺乏资源和合格的专家,软件工程的基本组成部分,如模块化和可重用的设计,验证,文档和软件集成以及有效的维护和用户支持往往被忽视。因此,创新的发展往往是阻碍陡峭的学习曲线,需要掌握开发遗留软件包充满了特设的解决方案。然而,研究工作日益复杂,需要适当和可维护的计算工具,导致潜在用户(数量往往不断增加)与开发这套软件的贡献者之间的差距不断扩大。在本文中,我们分享我们的经验,旨在通过培训,特别是年轻的科学家,通过传播我们自己的经验,有助于开源软件包和实践的软件工程的关键组成部分,适合科学家和科学软件开发,以改善这种情况。具体来说,我们总结了先进技术的科学编程和合作开发的开源软件包在2013年3月在阿卜杜勒·萨拉姆国际理论物理中心运行的研讨会的成果,并讨论我们的结论,为今后的努力。
2013-09-06 cs.MS cs.SE
Treat societally impactful scientific insights as open-source software artifacts
该立场论文提出科学洞见可视为类似开源软件的协作制品,明确开放科学需求与软件工程概念的共通性,呼吁软件工程界推动科研向更开放可问责的方向变革。
2023-02-11 cs.SE
Testing Causality in Scientific Modelling Software
本文提出因果测试框架,利用因果推断技术从现有混杂数据中推断因果效应,支持后验的蜕变测试,有效解决了科学建模软件因复杂输入、漫长执行和非确定性而难以测试的问题。
2023-06-30 cs.SE
Challenges in Selecting Software to be Reused
这是一份关于合作科学工作中的资源共享、再利用和循环的立场文件,CSCW'14研讨会。它讨论了软件在NSF的CIF 21愿景和SI 2计划中的作用,该计划旨在支持这一目标。SI2主要支持响应招标而提出的软件项目,同行评审员和NSF在评估这些项目时使用的一些标准取决于预测科学影响。本文就如何改进科学影响力预测的一些思路进行了探讨。
2014-10-27 cs.SE
Run-time extensibility and librarization of simulation software
构建时的配置和环境假设阻碍了科学软件的进步和可用性。这在非科学软件中是完全不可接受的,但在科学软件包中却成了规范。社区需要可重用的软件包,易于使用和足够灵活,以适应下一代仿真和分析的需求。
2014-07-10 cs.CE cs.MS cs.SE
Debunking the Myth that Upfront Requirements are Infeasible for Scientific Computing Software
科学计算软件社区中的许多人认为前期需求是不可能的,或者至少是不可行的。本文通过以下几点说明需求是可行的:i)适当的视角(“伪造”最终文档,就好像需求从一开始就是正确和完整的,并且收集需求,就好像是一个程序族); ii)正确原则的帮助(抽象、关注点分离、变更预期和一般性); iii)采用SCS特定模板(用于软件需求和模块接口规范); iv)使用允许更改的设计过程(信息隐藏);以及,v)现代工具的帮助(版本控制、问题跟踪、检查、生成和自动化工具)。前期要求不仅可行,而且具有显著的好处,包括促进沟通、及早发现错误、更好的设计决策和实现可复制性。通过一个由软件和机械工程师组成的小团队开发的用于模拟金属合金凝固的软件示例,对上述主题进行了解释、论证和说明。
2019-06-18 cs.SE
nanoHUB.org: Experiences and Challenges in Software Sustainability for a Large Scientific Community
管理和发展一个成功的网络基础设施,如nanoHUB.org,带来了各种机遇和挑战,特别是在软件方面。这份立场文件详细说明了其中一些问题以及我们如何处理这些问题。
2013-09-11 cs.CE cs.DL cs.SE
DevOps and Microservices in Scientific System development
现代软件工程和科学计算在科学信息系统开发中存在着差距。从历史上看,软件工程方法被认为是计算科学家在科学系统开发中不想要的偶然复杂性。最近的趋势,如摩尔定律的终结和随后硬件平台的多样化,加上科学本身越来越多的多学科性,加剧了这个问题,因为自学成才的“最终用户开发人员”不熟悉解决这种增加的复杂性所需的学科。从更积极的方面来看,敏捷编程方法已经接近软件开发实践,以生产科学软件的方式。在这项工作中,我们介绍了一个多年行业研究项目的经验,其中应用了敏捷方法,微服务和DevOps。我们的目标是验证一个假设,即微服务的使用将允许计算科学家以他们喜欢的更简约的面向原型的方式工作,而软件工程团队将处理集成。因此,科学的多学科系统将以双重方式获益:(i)主题专家(SME)使用他们首选的工具来开发系统的特定科学部分;(ii)软件工程师为系统交付提供高质量的软件代码。
2021-12-22 cs.CE cs.SE
Automatically Detecting Heterogeneous Bugs in High-Performance Computing Scientific Software
针对HPC科学应用中跨平台数据移动引发的异构Bug难检测问题,提出结合NLP、脱靶测试等技术的HeteroBugDetect自动化方法,在LAMMPS上验证可检测多类异构Bug,提升跨HPC环境可靠性。
2025-01-16 cs.SE
Refinement type contracts for verification of scientific investigative software
我们的科学知识越来越多地建立在软件输出上。定义数据分析管道和计算模型的用户代码对于自然科学和社会科学的研究是必不可少的,但很少有人知道如何确保其正确性。这种代码的结构和用于构建它的开发过程限制了传统测试方法的实用性。软件验证的形式化方法在确保代码正确性方面取得了巨大的成功,但通常需要比自然科学和社会科学更专业的培训,开发时间和资金。在这里,我们提出了一个Python库,它使用轻量级的形式化方法来提供正确性保证,而不需要专门的知识或大量的时间投资。我们的包提供了使用细化类型的函数入口和出口条件契约的运行时验证。它允许检查合同中的超属性,并提供自动测试用例生成来补充在线检查。我们共同开发了我们的工具与一个中型($\approx$ 3000磅)软件包,它模拟决策的认知神经科学。除了帮助我们在开发周期的早期定位小错误之外,我们的工具还能够定位四个使用传统测试方法可能很难找到的错误。它还能够发现用户代码中不包含契约或细化类型注释的bug。这表明形式化方法可以用来验证科学软件的正确性,这是很难测试的主流方法。
2019-09-01 cs.SE
Multi-Artifact Analysis of Self-Admitted Technical Debt in Scientific Software
Boise State University(博伊西州立大学);Oak Ridge National Laboratory(橡树岭国家实验室)
本研究通过多工件分析识别科学软件中的科学债务,发现传统SATD分类不足,需专门方法进行检测与管理。
2026-01-15 cs.SE
Building Bridges: Establishing a Dialogue Between Software Engineering Research and Computational Science
计算科学与工程(CSE)社区对参与软件工程研究(软件系统及其开发,操作和维护的系统研究)以解决科学软件开发中的挑战越来越感兴趣。从历史上看,科学计算和该领域之间几乎没有互动,这阻碍了进步。随着科学软件团队的队伍扩大到包括软件工程研究人员和实践者,我们可以努力建立通往软件科学的桥梁,并在软件开发中获得基于证据的实践的回报。
2022-01-11 cs.CE cs.SE
GuiLiner: A Configurable and Extensible Graphical User Interface for Scientific Analysis and Simulation Software
大多数用户每天与之交互的计算机程序由图形用户界面(GUI)驱动。然而,许多科学应用程序都使用命令行界面(CLI),以方便开发并增加此模式提供的灵活性。科学应用程序开发人员将受益于能够为他们的CLI程序轻松提供GUI,从而保留两种交互模式的优点。GuiLiner是一个通用的、可扩展的和灵活的前端,旨在“托管”各种各样的数据分析或模拟程序。科学应用程序开发人员可以生成一个正确格式化的XML文件,描述他们的程序选项和一些文档,他们可以立即使用GuiLiner为他们的分析或模拟程序生成一个精心实现的GUI。
2008-06-02 cs.HC cs.SE
Building Confidence in Scientific Computing Software Via Assurance Cases
保证案例为正确性提供了一个有组织的、明确的论证。它们可以显著提高科学计算软件(SCS)的认证。保证案例已经被有效地用于实时的系统的安全案例。SCS的优势包括吸引领域专家,仅生成必要的文档,并提供可以验证/复制的证据。本文通过3dfim+(一种用于分析大脑活动的现有医学成像应用程序(MIA))的正确性案例说明了SCS的保证案例。选择这个例子的部分原因是最近对功能性磁共振成像(fMRI)研究有效性的担忧。该示例证明了SCS保证案例的价值,因为现有文档显示存在模糊性和遗漏,例如定义不完整的排名功能和缺少坐标系的详细信息。确定了3dfim+的一个严重问题:运行该软件不会产生任何警告,说明必须使用与相关性计算所用参数统计模型相匹配的数据。一般而言,提高SCS的标准,特别是MIA,既可行又必要-当软件影响安全性时,应采用保证案例方法(或同等严格的置信度建立方法)。
2019-12-31 cs.SE
A Brief Overview of the UML Scientific Profile
这篇文章提供了UML SP(UML Scientific Profile)的简要概述。它是一种面向对象的仿真语言,可以在OOS和ABS中使用。UMLSP允许应用统一过程方法学来开发仿真软件。它支持仿真的前三个阶段:(1)定义仿真目标,定义仿真软件的需求,(2)概念建模,(3)形式化描述和部分,(4)编程。UML SP的定位是一种用于科学模拟的语言。它可以很容易地在支持UML概要文件的UML编辑器中实现。该项目在GitHub平台上以开源形式提供。
2021-04-08 cs.DC cs.PL cs.SE
Bridging the Gap on AI-Assisted Scientific Software Development Through Transparency and Traceability
Idaho National Laboratory(爱达荷国家实验室)
本文探讨了在严格软件质量保证背景下如何负责任地使用人工智能辅助科学软件开发,提出了一种结构化框架用于AI辅助的验证与验证案例开发,以确保软件质量。
2026-07-29 cond-mat.mtrl-sci cs.SE
Collaborative Experience between Scientific Software Projects using Agile Scrum Development
为科学界开发可持续软件需要软件工程和领域科学方面的专业知识。由于科学软件的独特需求,科学界软件工程实践的资源不足,以及为不断发展的科学环境开发的复杂性,这可能是具有挑战性的。虽然开源软件可以部分解决这些问题,但它可能会引入复杂的依赖关系并延迟开发。如果科学家和软件开发人员合作,这些问题可以减少。我们提出了一个案例研究,其中来自超新星预警系统的科学家与多信使天体物理学项目的可扩展网络基础设施的软件开发人员合作。这种合作解决了开放源码软件开发的困难,但也给每个团队带来了额外的风险。对于科学家来说,他们担心依赖外部系统,并且在开发过程中缺乏控制。对于开发人员来说,在维持核心开发的同时支持用户群体是有风险的。这些问题通过创建第二个与开发人员正在进行的敏捷Socking过程并行的敏捷Socking框架来缓解。这种敏捷协作促进了沟通,确保科学家在开发中发挥积极作用,并允许开发人员评估和实现科学家的软件需求。这种合作为每个小组带来了好处:科学家通过使用现有的平台来驱动他们的开发,开发人员利用科学家的用例来改进他们的系统。这个案例研究表明,科学家和软件开发人员可以避免科学计算的问题,通过合作和敏捷的Slogan方法可以解决紧急的问题。
2022-08-02 astro-ph.IM cs.SE
Tools for assessing and optimizing the energy requirements of high performance scientific computing software
Score-P是一种测量基础设施,最初设计用于分析和优化HPC代码的性能。Score-P及其相关工具的最新扩展现在还允许调查与能量相关的属性,并支持用户实施相应的改进。由于在这方面完全忽视业绩问题会产生反作用,因此不应将重点完全放在能源上。因此,我们的目标是优化软件的目标函数,考虑到能源和运行时间。
2016-05-04 cs.SE
PyPackIT: Automated Research Software Engineering for Scientific Python Applications on GitHub
本文提出PyPackIT,一款基于云的自动化工具,利用现代持续软件工程与DevOps方法论,为科学Python应用提供构建包骨架、文档测试套件及自动化流水线,助力研究人员遵循FAIR与开放科学原则高效开发高质量软件。
2025-03-06 cs.CE cs.SE
Open-source development experiences in scientific software: the HANDE quantum Monte Carlo project
HANDE量子蒙特卡罗项目为量子化学领域的科学家提供了可访问的随机算法。HANDE是一个雄心勃勃的通用高性能代码,由一个地理上分散的团队开发,该团队具有各种计算科学背景。在准备一个公开的开源版本的过程中,我们利用这个机会回顾一下我们已经做了什么,以及我们希望在未来做什么。我们特别关注开发过程、加入项目的学生的训练方法,以及扁平的层级结构如何有助于沟通
2015-11-14 cs.SE
Software System Design based on Patterns for Newton-Type Methods
广泛的工程应用使用优化技术作为其解决方案过程的一部分。研究人员使用专门的软件,实现众所周知的优化技术来解决他的问题。然而,当涉及到开发适合特定问题的原始优化技术时,研究人员别无选择,只能从头开始实施自己的新方法。这导致了大量的开发时间和容易出错的代码,通常不会被任何其他应用程序重用。在这项工作中,我们提出了一种新的方法,简化,加快和提高科学软件的开发过程。这种方法指导我们识别设计模式。这种方法的应用产生可重用的,灵活的和高质量的科学软件。此外,所生产的软件成为一个文档化的工具,以转移科学软件开发过程中的知识。我们应用这种方法的优化框架的设计,实现牛顿的类型的方法,可用作一个快速原型工具的新的优化技术的基础上牛顿的类型的方法。所开发框架的抽象性、可重用性和灵活性通过Martin的度量进行了度量。结果表明,所开发的软件具有较高的可重用性。
2019-05-12 cs.MS cs.PL cs.SE
Designing Collaborative AI-Driven Workflows for Scientific Software Engineering
Argonne National Laboratory(阿贡国家实验室);Fermi National Accelerator Laboratory(费米国家加速器实验室);RIKEN Center for Computational Science(理化学研究所计算科学中心)
本文提出在科学软件工程中采用协作式AI工作流,由领域专家制定规范、智能体在确定性编排下编写代码并辅以数值验证和人工审批,实验表明简单作者-审阅者循环在成本上更具优势。
2026-10-08 cs.SE
Change Management and Version Control of Scientific Applications
科学应用的发展过程在很大程度上依赖于科学进步和实验研究成果。因此,处理频繁的变化是科学软件开发人员面临的主要问题之一。考虑到在HP-SEE项目的科学家中进行的调查结果,变更管理和版本控制软件过程的实施是不可避免的。在本文中,我们提出了软件工程原则,应包括在开发过程中,以改善版本控制和变更管理。此外,我们提出了一些具体的建议,以实施,从而使已经普遍接受的模板和方法略有修改。科学家实践的发展步骤不应被完全取代,但需要用适当的实践、文件和正式方法加以补充。我们还强调列入这两个进程的理由以及不适用这两个进程可能产生的后果。
2014-05-08 cs.SE
QBugs: A Collection of Reproducible Bugs in Quantum Algorithms and a Supporting Infrastructure to Enable Controlled Quantum Software Testing and Debugging Experiments
经验结果的可复制性和可比性是任何科学领域科学方法的核心原则。为了简化经验研究的可重复性,软件工程研究中的几个基准测试,如Defects 4J,已经开发并广泛使用。然而,对于量子软件工程研究,还没有建立基准。在这份立场文件中,我们提出了一个新的基准-命名为QBugs -这将提供实验对象和实验基础设施,以方便新的研究和量子软件工程先前发表的结果的再现性评估。
2021-03-31 cs.SE
Best Practices for Scientific Computing
科学家们花费越来越多的时间来构建和使用软件。然而,大多数科学家从未被教导如何有效地做到这一点。因此,许多人不知道工具和实践可以让他们用更少的努力编写更可靠和更容易维护的代码。我们描述了一组科学软件开发的最佳实践,这些实践在研究和经验方面具有坚实的基础,并提高了科学家的生产力和软件的可靠性。
2013-09-26 cs.MS cs.SE
A Diagramming Technique for Teaching Students to Read Software Engineering Research Papers: an experience report
本文提出一种图解技术,帮助学生识别软件工程论文的结构与科学论证,从而提升其阅读科研论文的能力。
2024-05-04 cs.SE
Managing Software Provenance to Enhance Reproducibility in Computational Research
针对计算研究可复现性不足的问题,本文梳理了HPC计算实验可复现所需的文档,介绍了围绕Flash-X软件开发的相关工具与实践,以提升计算研究的质量、效率与可复现性。
2023-12-20 cs.CE cs.SE
FQL: An Extensible Feature Query Language and Toolkit on Searching Software Characteristics for HPC Applications
大型科学计算软件的数量正在急剧增加。在这项工作中,我们设计了一种新的语言,命名为功能查询语言(FQL),收集和提取软件功能,从一个快速的静态代码分析。我们设计并实现了一个FQL工具包,使用可扩展的查询存储库自动检测和呈现软件功能。本文使用了几个大规模、高性能计算(HPC)的科学代码来演示HPC相关的特征提取和信息收集。虽然我们在研究中强调了HPC功能,但该工具包可以很容易地扩展到回答一般的软件功能问题,如编码模式和硬件依赖性。
2019-05-22 cs.SE
SWE-bench Science: Can Coding Agents Resolve Engineering Tasks in Science?
本研究推出SWE-bench Science基准,含20个领域98个仓库的119项任务,评估发现最优智能体pass@1低于50%,揭示科学软件工程的挑战,分析四类失败机制并经消融实验明确科学知识的作用,为编码智能体研究提供测试平台。
2026-09-02 cs.CL cs.SE
Employing Continuous Integration inspired workflows for benchmarking of scientific software -- a use case on numerical cut cell quadrature
Technical University of Darmstadt(达姆施塔特工业大学);University of the Bundeswehr Munich(慕尼黑联邦国防军大学);Technical University of Graz(格拉茨工业大学)
本文提出利用持续集成工具自动化科学软件基准测试,通过数值切割单元求积用例展示方法有效性。
2025-05-21 cs.SE
Repeatability, Reproducibility, Replicability, Reusability (4R) in Journals' Policies and Software/Data Management in Scientific Publications: A Survey, Discussion, and Perspectives
本文调查200篇论文与16种计算机科学期刊,分析出版政策、工件指南、软件与数据管理中的4R差距,并提出期刊政策建议及统一可复现性投稿指南。
2023-12-18 cs.SE