Debugger for Declarative DSL for Telecommunication
Abstract
Development of telecommunication product lines is still a very labor-intensive task, involving a great amount of human resources and producing a large number of development artifacts — code, models, tests, etc. Declarative domain-specific languages (DSLs) may reasonably simplify this process by increasing the level of abstraction. We use the term “declarative” implying that such a DSL does not enable the development of a closed software application, but rather supports creation, generation and maintenance of various kind of software assets — product database, events and event handlers, target code data structures, etc. At the same time, such a DSL may have some executable semantic, but it could be very specific and have many environment-wise requirements. Thus, execution and debugging of such DSL specifications is a meaningful task, which has no common solution due to the unique executable semantic. Consequently, it is not possible to use debug facilities of known DSL environments, such as xtext, MPS, etc. for such a case. In the current paper, we present a debugger for DevM — a declarative DSL intended for support device management in software development in the context of a router product line by a large telecommunication company. We clarify executable semantic for DevM, making it possible to execute DevM specifications in an isolated environment, i.e. in simulation mode, without generation of target code. We use a graphic model-based notation to depict every step of execution. Finally, we implement and integrate the debugger in the DevM IDE, using Debug Adapter Protocol and language server architecture combined with the Eclipse xText/EMF tool chain.
About the Authors
Taras Mikhailovich SKAZHENIKRussian Federation
Second-year master-student of ITMO University
Dmitry Vladimirovich KOZNOV
Russian Federation
Doctor of Technical Sciences, Professor of the Software Engineering Chair, St. Petersburg State University
References
1. P. Clements, L. M. Northrop, Software product lines – practices and patterns, SEI series in software engineering, Addison-Wesley, 2002.
2. E. Semenov, S. Kai, C. Gen, D. V. Luciv, D. V. Koznov, Visual Language for Device Management in Telecommunication Product Line. MEDI Workshops 2021, pp. 204–216.
3. R. T. Lindeman, L. C. L. Kats, E. Visser, Declaratively defining domain-specific language debuggers, in: E. Denney, U. P. Schultz (Eds.), Generative Programming And Component Engineering, Proceedings of the 10th International Conference on Generative Programming and Component Engineering, GPCE 2011, Portland, Oregon, USA, October 22-24, 2011, ACM, 2011, pp. 127–136.
4. Eclipse Project, XText, 2022. URL: https://www.eclipse.org/Xtext/.
5. GEMOC, 2022. URL: https://gemoc.org.
6. MPS: Meta Programming System, 2022. URL: https://www.jetbrains.com/mps/.
7. M. Kartashov, Two-level debugging, System Programming 1 (2005), pp. 348–365(In Russian).
8. A. Chis, M. Denker, T. Gîrba, O. Nierstrasz, Practical domain-specific debuggers using the moldable debugger framework, Comput. Lang. Syst. Struct. 44 (2015), pp. 89–113.
9. Itemis AG, YAKINDU, 2022. URL: https://github.com/Yakindu.
10. IBM, Rhapsody, 2022. URL: https://www.ibm.com/docs/en/rhapsod, (accessed: 01.05.2023).
Review
For citations:
SKAZHENIK T.M., KOZNOV D.V. Debugger for Declarative DSL for Telecommunication. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2023;35(3):205-214.






