Details
Original language | English |
---|---|
Journal | Proceedings of the International Astronautical Congress, IAC |
Volume | 2018 |
Publication status | Published - 2018 |
Event | 69th International Astronautical Congress: #InvolvingEveryone, IAC 2018 - Bremen, Germany Duration: 1 Oct 2018 → 5 Oct 2018 |
Abstract
Developing software for large and complex experiments is a challenging task. It must incorporate many requirements from different domains, all with their own conceptions about the overall systems. An additional level of complexity is added if the experiment is conducted autonomously during a sounding rocket flight. Without a proper software architecture and development techniques, achieving and maintaining a high code quality is a very cumbersome task. This paper describes the architecture and the model-driven development approach we used to implement the control software of the experiments in the MAIUS-1 mission (matter-wave interferometry in microgravity). In this mission, the software had to handle around 150 experiments in six minutes autonomously and adapt to changes in the control flow according to real-time data from the experiment. The MAIUS-1 mission was the first mission to create Bose-Einstein condensates in space and conduct other experiments with ultra-cold gases on a sounding rocket. Besides the scientific goals in the area of quantum-optics, other important objectives of the mission were the miniaturization and further development of laser systems, vacuum components, optical sensors, and other related technologies. To fulfil these goals, new experimental hardware has been created which had to be integrated and tested with the software of the experiment computer. The custom-made hardware and the considerable number of domains involved brought up many challenges for the software engineering. To face all these challenges of developing software with this high complexity, we chose to follow a model-driven software development approach. Several domain-specific languages (DSLs) accompanied with specialized tools were created to allow the physicists and electronic engineers to describe system components and the experiments in a domain-specific way. These descriptions were then automatically transformed in C++ code for the flight software. This way we could actively incorporate all the domains involved in conducting the experiment directly in building the flight software without compromising the software quality. We created a versatile software platform not only for the MAIUS-1 mission but also for upcoming missions with similar experiments and hardware. With our approach we were able to generate around 84% of the source code for the final flight software from the domain-specific models. Besides the improvement of the development process, the code generation made a significant contribution to the overall software quality as almost all manual coding of error-prone boilerplate code could be mitigated.
Keywords
- Code generation, Experiment control, Model-driven development, Software engineering, Sounding rocket
ASJC Scopus subject areas
- Engineering(all)
- Aerospace Engineering
- Physics and Astronomy(all)
- Astronomy and Astrophysics
- Earth and Planetary Sciences(all)
- Space and Planetary Science
Cite this
- Standard
- Harvard
- Apa
- Vancouver
- BibTeX
- RIS
In: Proceedings of the International Astronautical Congress, IAC, Vol. 2018, 2018.
Research output: Contribution to journal › Conference article › Research › peer review
}
TY - JOUR
T1 - A Model-driven Software Architecture for Ultra-cold Gas Experiments in Space
AU - Weps, Benjamin
AU - Lüdtke, Daniel
AU - Franz, Tobias
AU - Maibaum, Olaf
AU - Wendrich, Thijs
AU - Müntinga, Hauke
AU - Gerndt, Andreas
N1 - Funding information: This work is supported by the DLR Space Administration with funds provided by the Federal Ministry of Economics and Technology (BMWi) under grant number DLR 50WM1131-1137, DLR 50WM1552-1557, DLR 50WP1431-1435, DLR 50WM0940, and DLR 50WM1240. We thank the MAIUS-1 team for their contributions and support. In particular, we want to mention H. Ahlers, D. Becker, A. N. Dinkelaker, M. D. Lachmann, S. T. Seidel, and E. M. Rasel. We are grateful to our former colleague M. Deshmukh for her contributions to the DSL development.
PY - 2018
Y1 - 2018
N2 - Developing software for large and complex experiments is a challenging task. It must incorporate many requirements from different domains, all with their own conceptions about the overall systems. An additional level of complexity is added if the experiment is conducted autonomously during a sounding rocket flight. Without a proper software architecture and development techniques, achieving and maintaining a high code quality is a very cumbersome task. This paper describes the architecture and the model-driven development approach we used to implement the control software of the experiments in the MAIUS-1 mission (matter-wave interferometry in microgravity). In this mission, the software had to handle around 150 experiments in six minutes autonomously and adapt to changes in the control flow according to real-time data from the experiment. The MAIUS-1 mission was the first mission to create Bose-Einstein condensates in space and conduct other experiments with ultra-cold gases on a sounding rocket. Besides the scientific goals in the area of quantum-optics, other important objectives of the mission were the miniaturization and further development of laser systems, vacuum components, optical sensors, and other related technologies. To fulfil these goals, new experimental hardware has been created which had to be integrated and tested with the software of the experiment computer. The custom-made hardware and the considerable number of domains involved brought up many challenges for the software engineering. To face all these challenges of developing software with this high complexity, we chose to follow a model-driven software development approach. Several domain-specific languages (DSLs) accompanied with specialized tools were created to allow the physicists and electronic engineers to describe system components and the experiments in a domain-specific way. These descriptions were then automatically transformed in C++ code for the flight software. This way we could actively incorporate all the domains involved in conducting the experiment directly in building the flight software without compromising the software quality. We created a versatile software platform not only for the MAIUS-1 mission but also for upcoming missions with similar experiments and hardware. With our approach we were able to generate around 84% of the source code for the final flight software from the domain-specific models. Besides the improvement of the development process, the code generation made a significant contribution to the overall software quality as almost all manual coding of error-prone boilerplate code could be mitigated.
AB - Developing software for large and complex experiments is a challenging task. It must incorporate many requirements from different domains, all with their own conceptions about the overall systems. An additional level of complexity is added if the experiment is conducted autonomously during a sounding rocket flight. Without a proper software architecture and development techniques, achieving and maintaining a high code quality is a very cumbersome task. This paper describes the architecture and the model-driven development approach we used to implement the control software of the experiments in the MAIUS-1 mission (matter-wave interferometry in microgravity). In this mission, the software had to handle around 150 experiments in six minutes autonomously and adapt to changes in the control flow according to real-time data from the experiment. The MAIUS-1 mission was the first mission to create Bose-Einstein condensates in space and conduct other experiments with ultra-cold gases on a sounding rocket. Besides the scientific goals in the area of quantum-optics, other important objectives of the mission were the miniaturization and further development of laser systems, vacuum components, optical sensors, and other related technologies. To fulfil these goals, new experimental hardware has been created which had to be integrated and tested with the software of the experiment computer. The custom-made hardware and the considerable number of domains involved brought up many challenges for the software engineering. To face all these challenges of developing software with this high complexity, we chose to follow a model-driven software development approach. Several domain-specific languages (DSLs) accompanied with specialized tools were created to allow the physicists and electronic engineers to describe system components and the experiments in a domain-specific way. These descriptions were then automatically transformed in C++ code for the flight software. This way we could actively incorporate all the domains involved in conducting the experiment directly in building the flight software without compromising the software quality. We created a versatile software platform not only for the MAIUS-1 mission but also for upcoming missions with similar experiments and hardware. With our approach we were able to generate around 84% of the source code for the final flight software from the domain-specific models. Besides the improvement of the development process, the code generation made a significant contribution to the overall software quality as almost all manual coding of error-prone boilerplate code could be mitigated.
KW - Code generation
KW - Experiment control
KW - Model-driven development
KW - Software engineering
KW - Sounding rocket
UR - http://www.scopus.com/inward/record.url?scp=85065321563&partnerID=8YFLogxK
M3 - Conference article
AN - SCOPUS:85065321563
VL - 2018
JO - Proceedings of the International Astronautical Congress, IAC
JF - Proceedings of the International Astronautical Congress, IAC
SN - 0074-1795
T2 - 69th International Astronautical Congress: #InvolvingEveryone, IAC 2018
Y2 - 1 October 2018 through 5 October 2018
ER -