Preview

Труды Института системного программирования РАН

Расширенный поиск

Отладчик декларативного DSL для разработки телекоммуникационных систем

Аннотация

Телекоммуникационные системы являются одними из самых трудоёмких видов ПО, вовлекая большое количество людей, денежных средств, а также времени. Декларативные предметно-ориентированные языки (DSLs) могут существенно помочь в разработке таких систем, реализуя подходящие абстракции. Мы используем термин «декларативные», подразумевая, что программы на таком DSL предназначаются не для программирования исполняемой логики, а для описания данных (базы данных сетевого устройства, структуры данных целевого кода и т.д.) и задания некоторого модельного поведения устройств при возникновении определённых событий.   Таким образом, исполнение таких программ в целях отладки невозможно осуществить, сгенерировав и запустив конечный код, т.е. не удаётся использовать средства типа xtext, MPS. Между тем отладка таких спецификаций является востребованной задачей в виду объёмности спецификаций (десятки тысяч строк кода), а также большого числа точечных изменений, вносимых при copy/paste, в ходе разработки очередной телекоммуникационной системы, принадлежащей данному семейству продуктов.

В предлагаемой статье описывается отладчик для предметно-ориентированного декларативного языка DevM. Этот язык предназначается для описания базы данных аппаратуры роутеров и свичей, задания специфической информации, необходимой для инициализации драйверов устройств, и описания высокоуровневого поведения системы при получении специфических событий из сети и от аппаратуры самого устройства. Язык ориентирован на использование в контексте семейства телекоммуникационных систем одной крупной телекоммуникационной компании. В рамках работы над отладчиком была уточнена исполняемая семантика DevM для задания событийно-ориентированного поведения системы, а также введена специальная модель (т.е. создана новая часть языка DevM) для задания отладочной конфигурации отлаживаемой системы. Исполнение программы на DevM выполняется без генерации целевого кода. Для наглядного отображения шага исполнения программы использовалась графическая событийно-ориентированная нотация. Интеграция созданного отладчика с DevM-фреймворком была выполнена с помощью Debug Adapter Protocol и языкового сервера DevM (language server), разработанного с помощью стека технологий Eclipse xText/EMF.

Об авторах

Тарас Михайлович СКАЖЕНИК
Национальный исследовательский университет ИТМО
Россия

Студент второго курса магистратуры университета ИТМО



Дмитрий Владимирович КОЗНОВ
Санкт-Петербургский государственный университет
Россия

Доктор технических наук, профессор кафедры системного программирования СПбГУ. 



Список литературы

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).


Рецензия

Для цитирования:


СКАЖЕНИК Т.М., КОЗНОВ Д.В. Отладчик декларативного DSL для разработки телекоммуникационных систем. Труды Института системного программирования РАН. 2023;35(3):205-214.

For citation:


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.



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)