Our DSL development process consists of the three phases design, implementation and evaluation and is based on the DSL development approach by Mernik [7]. We employ this process for all domains we address including biogeochemical models, ocean transport, simulation configuration, and model deployment. Each domain is related to a specific role in ocean system modelling, which requires particular knowledge of this sub-domain.
DSL Design Phase
The design phase comprises three tasks including the decision for a specific DSL approach, domain analysis, and formal specification [7].
Decision Identification of the associated role and the domain of a DSL. An understanding of both steers the process of selecting a DSL approach. In this process, we will decide whether we have to extend an existing DSL or create a new DSL. In case we intend to compare the fitness of internal and external DSLs for a specific domain and role, we engage the remaining process for both approaches.
Domain analysis Discovery and research of domain concepts and their relationships. This activity includes the analysis of biogeochemical modelling examples provided by experts, interviews and literature review.
Formal specification Specification of the abstract syntax, textual grammar, and graphical representation of the DSL, alongside the semantics of the language constructs.
The DSL designs are extended iteratively based on feedback from our pilot scientific users to ensure they meet their needs and expectations. To enable discussions of the language features with scientists, we will incrementally and iteratively create prototypes. Therefore, design and implementation tasks are interlinked.
DSL Implementation Phase
For each DSL, the implementation work package addresses development and evolution of the DSLs. The implementation differs between internal and
external DSLs.
For internal DSLs, this includes the development of appropriate libraries for GPLs which are often used in computational science. As initial host GPL we intend to use C++, as we did with Sprat [Johanson and Hasselbring, 2014b]. We also intend to experiment with Fortran (as a GPL traditionally employed in computational science) and Python (as a GPL increasingly employed in computational science). These three GPLs have a significant dispersion and permeation in computational science.
For external DSLs, this includes the development of editors supporting a prototypical DSL to enable the discussion with the scientists regarding language features and expressions. Based on our experience with Xtext [2], it should be possible to quickly provide prototypes of external DSLs for early discussion with our domain experts. This also includes the development of code generators to automate modelling tasks and generate code for different programming languages such as Fortran, C++, and Python. The code generator construction includes the specification of mappings between the semantics of the DSL and their programming language counterparts, and the subsequent implementation of external DSLs. To support the iterative nature of the development, we will use the code generator composition approach GECO [6] with Xtext and Xtend [1].
DSL Evaluation Phase
For each DSL, the evaluation work packages cover all efforts to evaluate the respective DSL design and tools concerning their feasibility and acceptance by the community. Corresponding to the design and implementation efforts, we dedicate sub-packages for each DSL development. All evaluation sub-packages follow a similar set of tasks.
Example modelling We specify example models derived from the literature research in
the design work package, utilizing the prototype DSL. We assess to what degree domain concepts are covered by the prototype, and whether the concepts have been understood correctly.
Pilot evaluation We engage pilot domain experts in joint sessions to discuss language features and whether they are sufficient for modelling (cf. [5]). Through this task, we gain insight in the feasibility of the DSL and clarify needs and requirements of the domain experts. This evaluation includes refined example models which we discovered during the literature research and interview activities. In each evaluation, the outcome will indicate where the DSLs must be improved and which parts satisfy the respective scientists.
Empirical evaluation After the pilot evaluation, the design and implementation phases of the DSL become iterative. We will implement Web-based online surveys with integrated programming tasks, similar to the evaluation of Sprat [5]. We will perform a systematic comparison of internal and external DSLs through controlled experiments, as we did in the past for comparing visualizations for program comprehension [3,4].
- [1]Lorenzo Bettini. 2016. Implementing Domain Specific Languages with Xtext and Xtend. Packt Publishing.
- [2]Sven Efftinge, Moritz Eysholdt, Jan Köhnlein, Sebastian Zarnekow, Robert von Massow, Wilhelm Hasselbring, and Michael Hanus. 2012. Xbase. In Proceedings of the 11th International Conference on Generative Programming and Component Engineering – GPCE ’12. DOI:https://doi.org/10.1145/2371401.2371419
- [3]Florian Fittkau, Santje Finke, Wilhelm Hasselbring, and Jan Waller. 2015. Comparing Trace Visualizations for Program Comprehension through Controlled Experiments. In 2015 IEEE 23rd International Conference on Program Comprehension. DOI:https://doi.org/10.1109/icpc.2015.37
- [4]Florian Fittkau, Alexander Krause, and Wilhelm Hasselbring. 2015. Hierarchical Software Landscape Visualization for System Comprehension: A Controlled Experiment.
- [5]Arne N. Johanson and Wilhelm Hasselbring. 2016. Effectiveness and efficiency of a domain-specific language for high-performance marine ecosystem simulation: a controlled experiment. Empir Software Eng (November 2016), 2206–2236. DOI:https://doi.org/10.1007/s10664-016-9483-z
- [6]Reiner Jung, Robert Heinrich, and Wilhelm Hasselbring. 2016. GECO: A Generator Composition Approach for Aspect-Oriented DSLs. In Theory and Practice of Model Transformations. Springer International Publishing, 141–156. DOI:https://doi.org/10.1007/978-3-319-42064-6_10
- [7]Marjan Mernik, Jan Heering, and Anthony M. Sloane. 2005. When and how to develop domain-specific languages. CSUR (December 2005), 316–344. DOI:https://doi.org/10.1145/1118890.1118892