Software Engineering Practices for Scientific Software Development: A Systematic Mapping Study
Elvira-Maria Arvanitou, Apostolos Ampatzoglou, Alexander, Chatzigeorgiou, Jeffrey C. Carver

TL;DR
This systematic mapping study analyzes how software engineering practices are applied in scientific software development, highlighting common practices, quality attributes targeted, and the lack of evidence on trade-offs between practices and quality attributes.
Contribution
It provides a comprehensive catalog of SE practices used in scientific software and discusses their impact on software quality attributes, identifying gaps in understanding trade-offs.
Findings
Focus on practices improving implementation productivity
Performance, maintainability, and productivity are key quality attributes
Lack of evidence on trade-offs between practices and quality attributes
Abstract
Background: The development of scientific software applications is far from trivial, due to the constant increase in the necessary complexity of these applications, their increasing size, and their need for intensive maintenance and reuse. Aim: To this end, developers of scientific software (who usually lack a formal computer science background) need to use appropriate software engineering (SE) practices. This paper describes the results of a systematic mapping study on the use of SE for scientific application development and their impact on software quality. Method: To achieve this goal we have performed a systematic mapping study on 359 papers. We first describe a catalogue of SE practices used in scientific software development. Then, we discuss the quality attributes of interest that drive the application of these practices, as well as tentative side-effects of applying the…
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.
