Project Details
Projekt Print View

Domain-Specific Languages for Ocean Modeling and Simulation

Subject Area Software Engineering and Programming Languages
Oceanography
Term from 2019 to 2025
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 425916241
 
Final Report Year 2023

Final Report Abstract

As scientific models play a crucial role in our understanding of the world, it becomes imperative to have adaptable and reliable models. OceanDSL aimed to foster the separation of concerns within the scientific modeling community, especially in the context of biogeochemical modeling of the ocean. To achieve this, we leveraged model-driven software engineering, a wellestablished approach for software engineering in information systems and embedded systems domains. Our research approach involved conducting semi-structured interviews with scientists collaborating with us. These interviews aimed to gain insights into the domain, how scientists interact with models and with each other, and their development processes. We meticulously transcribed, coded, and extracted themes from these interviews using Thematic Analysis. Additionally, we thoroughly reviewed the existing literature on biogeochemical models to understand their specifications and communication methods among scientists. Based on our findings, we developed several Domain-Specific Languages (DSLs) tailored to address different concerns. Firstly, we designed and implemented two DSLs for configuration and parameter settings in scientific models. These DSLs effectively separate the concerns of configuration and parameterization while incorporating safeguards to prevent erroneous configurations. Scientists and research software engineers were presented with these DSLs and expressed keen interest in not only using them for simplified configuration but also for generating metadata to document specific model runs. Secondly, we designed a DSL to specify biogeochemical models based on source-minus-sink terms. This DSL facilitates the generation of model code for different ocean models and experiment setups. During its presentation, scientists confirmed the benefits of the DSL in improving model comprehension, particularly when coupled with reverse-engineered visualizations. Moreover, they suggested employing this information for further model tests and refinements. In addition to these advancements, we developed a DSL to support model testing. Our research indicated that modern software quality measures were often overlooked in scientific model development, and the availability of appropriate tooling was limited. To better integrate our DSLs into scientific models, we recognized the need to comprehend the software architecture of these models in greater detail. As a result, we adapted and developed methods and tools to reverse engineer model architectures through static code analysis and dynamic runtime observations. Feedback from our collaborating scientists indicated that the architectural visualizations proved highly beneficial for enhancing program comprehension, particularly for newcomers to a specific model. Additionally, these tools are expected to aid scientists in future endeavors. Moreover, we explored methods and tooling utilizing genetic algorithms to propose architectural improvements for future model development. In conclusion, OceanDSL’s research outcomes showcase the significant potential of DSLs in promoting separation of concerns and improving the efficiency and comprehension of scientific models. Our work serves as a stepping stone towards more effective and robust model development practices within the biogeochemical modeling community.

Publications

  • CP-DSL: Supporting Configuration and Parametrization of Ocean Models with UVic (2.9) and MITgcm (67w). Copernicus GmbH.
    Jung, Reiner; Gundlach, Sven & Hasselbring, Wilhelm
  • Monitoring Python Applications with Kieker”. In: 12th Symposium for Software Performance. CEUR Workshop Proceedings. Nov. 2021.
    Reiner Jung; Sven Gundlach; Serafim Simonov & Wilhelm Hasselbring
  • “Developing Domain-Specific Languages for Ocean Modeling”. In: Software Engineering 2021 Satellite Events - Workshops and Tools & Demos. Vol. 2814. Feb. 2021, pp. 1–12.
    Reiner Jung; Sven Gundlach; Serafim Simonov & Wilhelm Hasselbring
  • “Instrumenting C and Fortran Software with Kieker”. In: Symposium on Software Performance. CEUR Workshop Proceedings. Nov. 2021.
    Reiner Jung; Sven Gundlach & Wilhelm Hasselbring
  • Modularizing Earth system models for interactive simulation. Informatik Spektrum, 45(5), 300-303.
    Claus, Martin; Gundlach, Sven; Hasselbring, Wilhelm; Jung, Reiner; Rath, Willi & Schnoor, Henning
  • Software development processes in ocean system modeling. International Journal of Modeling, Simulation, and Scientific Computing, 13(02).
    Jung, Reiner; Gundlach, Sven & Hasselbring, Wilhelm
  • Thematic domain analysis for ocean modeling. Environmental Modelling & Software, 150, 105323.
    Jung, Reiner; Gundlach, Sven & Hasselbring, Wilhelm
  • Interview Transcripts on Ocean Modeling and Biogeochemical Modeling. Version 1.0.0. Zenodo, July 2023.
    Reiner Jung; Sven Gundlach & Wilhelm Hasselbring
  • Themes describing the Ocean Modeling Domain. Version 1.0.0. Zenodo, July 2023.
    Reiner Jung; Sven Gundlach; Wilhelm Hasselbring & Faiz Ahmed
  • “Architecture Recovery and Optimization for Scientific Software”. In: Conference for Research Software Engineering in Germany. Feb. 2023.
    Reiner Jung; Sven Gundlach; Henning Schnoor & Wilhelm Hasselbring
  • “Architecture Recovery from Fortran Code with Kieker”. In: Softwaretechnik-Trends 43.1 (Feb. 2023). Proceedings of the 13th Symposium on Software Performance, pp. 38–40.
    Reiner Jung; Henning Schnoor; Sven Gundlach & Wilhelm Hasselbring
  • “Instrumenting Python with Kieker”. In: Softwaretechnik-Trends 43.1 (Feb. 2023). Proceedings of the 13th Symposium on Software Performance, pp. 26–28.
    Serafim Simonov; Thomas Düllmann; Reiner Jung & Sven Gundlach
 
 

Additional Information

Textvergrößerung und Kontrastanpassung