Architecting Complex, Long-Lived Scientific Software
Neil A. Ernst, John Klein, Marco Bartolini, Jeremy Coles and, Nick Rees

TL;DR
This paper discusses designing and planning long-lived, large-scale scientific software, exemplified by the Square Kilometre Array's data processor, highlighting tailored architecture practices and their role in project approval.
Contribution
It presents a customized architecture analysis process for long-term scientific software, demonstrated through the SKA Observatory project, with insights applicable to similar scientific endeavors.
Findings
Successful architecture plans facilitated project approval.
Customized processes addressed unique project challenges.
Implications for long-lived scientific software architectures.
Abstract
Software is a critical aspect of large-scale science, providing essential capabilities for making scientific discoveries. Large-scale scientific projects are vast in scope, with lifespans measured in decades and costs exceeding hundreds of millions of dollars. Successfully designing software that can exist for that span of time, at that scale, is challenging for even the most capable software companies. Yet scientific endeavors face challenges with funding, staffing, and operate in complex, poorly understood software settings. In this paper we discuss the practice of early-phase software architecture in the Square Kilometre Array Observatory's Science Data Processor. The Science Data Processor is a critical software component in this next-generation radio astronomy instrument. We customized an existing set of processes for software architecture analysis and design to this project's…
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.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Scientific Computing and Data Management · Software System Performance and Reliability
