Methodology for development of scientific software and test frameworks in function of precision of the expected results - Przedzinski, T (2022)
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 increased complexity of tests and test frameworks is also demonstrated based on these projects. The subject of scientific software testing is addressed and the taxonomy of the scientific software tests is presented including testing techniques used in the development of this software. Author of this dissertation co-authored tools presented in it. Some of these tools have been introduced into the HEP community. Some gained large user base and are in active use by the community. Some of them are part of analyses performed by experiments around Large Hadron Collider. The analysis of the development process of these tools can help estimate the effort needed to improve the design and precision of complex algorithms.