которых эффективнее всего использовать визуальные предметно-ориентированные языки программирования. В качестве примера подобной задачи и соответствующих языков можно привести среды для обучения программированию TRIK Studio [26], LEGO RoboLab [3] и Scratch [19] и их языки. Визуальные предметно-ориентированные языки хороши тем, что они направлены на решение задач в конкретной предметной области и, будучи визуальными языками, выступают в качестве аналогов текстовым языкам и позволяют пользователям писать программы с помощью манипуляций графическими моделями и объектами.
В настоящее время на кафедре системного программирования СПб-ГУ ведётся разработка платформы для предметно-ориентированного моделирования REAL.NET[27], которая призвана облегчить реализацию и работу с различными визуальными языками. Изначально платформа разрабатывалась как десктопная система, однако в условиях современных реалий среда постепенно переносится в веб. Сейчас у REAL.NET имеется веб-редактор, который позволяет работать с визуальными языками.
К команде REAL.NETобратился один из разработчиков движка СУБД PosDB [13] и предложил задачу по реализации визуального редактора для создания планов выполнения запросов в PosDB. План выполнения запросов - это последовательность операций, которые необходимо выполнить для исполнения SQL-запроса в СУБД. Проанализировав такой план, можно понять, как уменьшить время выполнения запроса и увеличить производительность, чем обычно занимаются администраторы баз данных. Для удобства восприятия информации планы выполнения запросов можно визуализировать с помощью специальных программ. Разработчики движков, в свою очередь, сначала выписывают несколько типовых запросов, а затем строят и визуализируют их возможные планы и анализируют, какое преобразование в план лучше для оптимизации работы создаваемого движка СУБД. Реализованный визуальный редактор планируется использовать для построения планов выполнения запросов, а также в образовательных целях для обучения студентов созданию планов, так как их построение имеет набор правил и ограничений, которые нельзя нарушать. В отличие от обычных редакторов для построения диаграмм, реализованный редактор будет иметь систему проверки упомянутых ограничений.
1. Постановка задачи
Целью данной работы является разработка визуального редактора для создания планов выполнения запросов движка PosDB на базе платформы REAL.NET. Для достижения данной цели были поставлены следующие задачи.
1. Провести обзор движка и существующих визуализаторов планов.
2. Разработать визуальный предметно-ориентированный язык для создания планов запросов в PosDB.
3. Реализовать новую необходимую функциональность в пользовательском интерфейсе.
4. Добавить систему проверки ограничений при построении планов.
5. Провести апробацию визуального редактора
В рамках выпускной квалификационной работы работы были достигнуты следующие результаты.
• Проведён обзор движка и существующих визуализаторов планов.
• Разработан визуальный предметно-ориентированный язык для создания планов запросов в PosDB.
• Реализован визуальный редактор с необходимой функциональностью в пользовательском интерфейсе.
• Добавлена система проверки ограничений при построении планов.
• Проведена апробация.
[1] Bangor Aaron, Kortum Philip T., Miller James T. An Empirical Evaluation of the System Usability Scale // International Journal of Human-Computer Interaction. — 2008. — Vol. 24, no. 6. — P. 574-594.
[2] DBeaver.— URL: https://dbeaver.com(дата обращения: 29.04.2022).
[3] Erwin Ben, Cyr Martha, Rogers Chris. LEGO Engineer and RoboLab: Teaching Engineering with LabVIEW from Kindergarten to Graduate School // International Journal of Engineering Education. -- 2000. -¬Vol. 16, no. 3. — P. 181-192.
[4] Explain PostgreSQL. — URL: https://explain.tensor.ru(дата обращения: 29.04.2022).
[5] Galaktionov Viacheslav, Klyuchikov Evgeniy, Chernishev George. Position Caching in a Column-Store with Late Materialization: An Initial Study // Proceedings of the 22nd International Work¬shop on Design, Optimization, Languages and Analytical Process¬ing of Big Data co-located with EDBT/ICDT 2020 Joint Confer¬ence, DOLAP@EDBT/ICDT 2020, Copenhagen, Denmark, March 30, 2020. -- Copenhagen, Denmark, 2020. -- P. 89-93.
[6] GitHub репозиторий PEV2.— URL: https://github.com/dalibo/pev2 (дата обращения: 29.04.2022).
[7] GitHub репозиторий бэкенд-части проекта.— URL: https://github.com/REAL-NET/web-editor-backend/tree/query(дата обращения: 29.04.2022).
[8] GitHub репозиторий микросервиса Repo. — URL: https://github.com/REAL-NET/Repo/tree/query(дата обращения: 29.04.2022).
[9] GitHub репозиторий фронтенд-части проекта.— URL: https:
//github.com/REAL-NET/web-editor-frontend/tree/query(дата обращения: 29.04.2022).
[10] Microsoft SQL Server documentation.— URL: https://docs.microsoft.com/en-us/sql (дата обращения: 29.04.2022).
[11] MySQL documentation.— URL: https://dev.mysql.com/doc (дата обращения: 29.04.2022).
[12] Oracle documentation. — URL: https://docs.oracle.com(дата обращения: 29.04.2022).
[13] PosDB: обзор архитектуры / Г. А. Чернышев, В. А. Галактионов,
B. Д. Григорьев и др. // Программирование.— 2018.— № 1.—
C.60-76.
[14] PostgreSQL documentation. — URL: https://www.postgresql.org/docs (дата обращения: 29.04.2022).
[15] React Flow documentation.— URL: https://reactflow.dev/docs(дата обращения: 29.04.2022).
[16] React-Resizable GitHub repository.— URL: https://github.com/react-grid-layout/react-resizable (дата обращения: 29.04.2022).
[17] React documentation.— URL: https://reactjs.org/docs/getting-started.html (дата обращения: 29.04.2022).
[18] Sauro Jeff, Dumas Joseph S. Comparison of three one-question, post-task usability questionnaires // CHI ’09: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. — Boston, MA, USA, 2009. P. 1599-1608.
[19] The Scratch Programming Language and Environment / John Maloney, Mitchel Resnick, Natalie Rusk et al. // ACM Transactions on Computing Education. — 2010. — Vol. 10, no. 4. — P. 1-15.
[20] Wikipedia. NoSQL // Wikipedia, The Free Encyclopedia. — URL: https://ru.wikipedia.org/wiki/NoSQL (дата обращения: 29.04.2022).
[21] explain.dalibo.com. — URL: https://explain.dalibo.com(дата оращения: 29.04.2022).
[22] Алымова Д. А. Визуальный язык задания ограничений на модели в REAL.NET. — Сайт кафедры системного программирования СПбГУ. — 2019. — URL: https://se.math.spbu.ru/thesis/texts/Alymova_DarZ27ja_Andreevna_Bachelor_Thesis_2019_text.pdf(дата обращения: 29.04.2022).
[23] Ивашева В. М. Визуальная технология обработки медицинских изображений при помощи библиотеки MIRF на основе REAL.NET. — Сайт кафедры системного программирования СПб¬ГУ.— 2021.— URL: https://se.math.spbu.ru/thesis/texts/Ivasheva_Valerija_Mihajlovna_Bachelor_Thesis_2021_text.pdf(дата обращения: 29.04.2022).
[24] Кидянкин М. В. Микросервисная архитектура DSM-платформы REAL.NET Web. — Сайт кафедры системного программирования СПбГУ. — 2020. — URL: https://se.math.spbu.ru/thesis/texts/Kidjankin_Mihail_Vladimirovich_Bachelor_Report_2020_text.pdf (дата обращения: 29.04.2022).
[25] Ким Ю. А. Веб-редактор для платформы REAL.NET. — Сайт
кафедры системного программирования СПбГУ.—2021.—
URL: https://se.math.spbu.ru/thesis/texts/Kim_Junija_
Aleksandrovna_Bachelor_Report_2021_text.pdf (дата обращения: 29.04.2022).
[26] Литвинов Ю. В., Кириленко Я. А. TRIK Studio: среда обучения программированию с применением роботов // V Всероссийская конференция «Современное технологическое обучение: от компьютера к роботу» (сборник тезисов). — СПб, 2015. — С. 5-7.
[27] Среда предметно-ориентированного визуального моделирования REAL.NET/ Ю. В. Литвинов, Е. В. Кузьмина, И. Ю. Небогатиков, Д. А. Алымова // СПИСОК-2017. Материалы 7-й всероссийской научной конференции по проблемам информатики. — СПб, 2017.- С. 80-89.