Methodology for development of scientific software and test frameworks in function of precision of the expected results
T. Przedzinski

TL;DR
This paper presents a methodology for developing scientific software and test frameworks, emphasizing the relationship between result precision, software complexity, and testing strategies, based on high energy physics projects.
Contribution
It introduces a structured development methodology for scientific software, highlighting how increased result precision impacts testing complexity and software design.
Findings
Increased result precision correlates with more complex testing frameworks.
The methodology has been applied to high energy physics Monte Carlo tools.
Some tools developed have been adopted by the HEP community and used in LHC analyses.
Abstract
This dissertation focuses on the development process of scientific software. It presents a methodology that has emerged over time during development of Monte Carlo tools for high energy physics experiments. A short description of the physics background needed to understand the subjects presented in this dissertation is included and the different types of software created for the physics experiments are outlined. Challenges related to the scientific software development are presented. The development process of several projects is described. The development of subsequent milestones of these projects follow the cycle of improving the physics model, describing the model using mathematical formalism, implementing the model with numerical approximations, creating the software framework, documenting and validating results. The relation between increased precision of the results and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Computational Physics and Python Applications · Parallel Computing and Optimization Techniques
