When Scientific Computing Meets Software Engineering


Scientific computing is a cross-cutting field, but its heart and soul lie in the development of mathematical models to understand physical systems, either natural or man-made, through their simulations. Simulations of mathematical models correspond to the execution of computer programs containing these models, the so-called "simulation codes". We refer to the subsuming concept of scientific software, which we define as software dedicated to scientific computing and simulation. The development of these scientific software includes both software engineering and scientific computing concerns. In this talk we further explore the software engineering requirements and current challenges. More specifically, we discuss the required tools and methods to collaboratively develop reliable and efficient scientific software, new capabilities to interact with mathematical models throughout the life cycle (e.g., tradeoff analysis, recommenders, digital twins), and the socio-technical coordination to engage various heterogeneous stakeholders. We illustrate with different case studies from numerical analysis for HPC, environmental sciences and multi-physics simulations.