Abstract
Efforts in providing high-quality scientific software are hardly rewarded, as scientific output is typically measured in terms of publications in high ranking journals. As a result, scientific software is often developed without proper documentation and support of modern software design patterns. Ready-to-use project skeletons can be employed to accelerate the development process, while at the same time taking care of the implementation of best practices in software engineering. In this work, we revisit best practices in software engineering and review existing project skeletons. Special emphasis is given on the realization of best practices. Finally, we present a new project skeleton for scientific writing in , which takes care of the attainment of best practices, adapted for being used in academic publications.
Highlights
Scientific software is frequently developed around well-established mathematical libraries that provide implementations of common algebraic and numerical methods
After revisiting a non-exhaustive collection of best practices in software engineering in Sect. 2, we focus on the use of project skeletons like the aforementioned bertha project (Riesch et al 2020) in scientific computing in Sect
We have presented bertha, our own project skeleton for C++ projects with Python bindings, where special emphasis was given to the fulfillment of all best practices that have been discussed in the beginning
Summary
Scientific software is frequently developed around well-established mathematical libraries that provide implementations of common algebraic and numerical methods. The former guideline distinguishes between four application classes, which reflect the scope and criticality of a planned software project, while the latter gives insights on best practices for different programming languages. The final realization of best practices for a new software project comes along with tedious and time-consuming setup tasks. One requires some sort of project management, and one requires to agree on a common style in order to keep a document or a set of documents editable over an extended timeframe When it comes to the development of new LATEX packages, macros, classes and functions, which can be considered to be a software engineering. After revisiting a non-exhaustive collection of best practices in software engineering, we focus on the use of project skeletons like the aforementioned bertha project (Riesch et al 2020) in scientific computing in Sect.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have