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

Read more

Summary

Introduction

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.

Best practices in software engineering
Project management
Coding style
Independence
Automation
Documentation
Deployment
Project skeletons for scientific software
Bertha‐tex: project skeleton for scientific writing inLATEX
Creating a skeleton instance
Setup stage
Writing stage
Publication stage
Examples and summary
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call