Помощь студентам в учебе
Технология создания визуальных языков на базе глубокого метамоделирования в REAL.NET
|
Введение 4
1. Постановка задачи 6
2. Обзор 7
2.1. Метамоделирование 7
2.1.1. Двухуровневое метамоделирование 7
2.1.2. Проблемы двухуровнево метамоделирования ... 8
2.1.3. Глубокое метамоделирование 9
2.2. REAL.NET 10
2.2.1. Микросервисная архитектура 10
2.2.2. Слоистая архитектура репозитория 11
2.3. Обзор аналогов 13
2.3.1. Melanee 13
2.3.2. metaDepth 14
2.3.3. Diagram Predicate Framework 15
3. Глубокое метамоделирование в репозитории REAL.NET 17
4. Редактор глубокого метамоделирования 21
4.1. Сервис API глубокого метамоделирования 21
4.2. Веб-редактор глубокого метамоделирования 22
5. Апробация 25
5.1. Язык двухуровневого метамоделирования 25
5.2. Языки глубокого метамоделирования 25
5.2.1. Язык для демонстрации глубокого инстанцирования 26
5.2.2. Язык описания подпрограмм управления роботами 26
Заключение 30
Список литературы 31
1. Постановка задачи 6
2. Обзор 7
2.1. Метамоделирование 7
2.1.1. Двухуровневое метамоделирование 7
2.1.2. Проблемы двухуровнево метамоделирования ... 8
2.1.3. Глубокое метамоделирование 9
2.2. REAL.NET 10
2.2.1. Микросервисная архитектура 10
2.2.2. Слоистая архитектура репозитория 11
2.3. Обзор аналогов 13
2.3.1. Melanee 13
2.3.2. metaDepth 14
2.3.3. Diagram Predicate Framework 15
3. Глубокое метамоделирование в репозитории REAL.NET 17
4. Редактор глубокого метамоделирования 21
4.1. Сервис API глубокого метамоделирования 21
4.2. Веб-редактор глубокого метамоделирования 22
5. Апробация 25
5.1. Язык двухуровневого метамоделирования 25
5.2. Языки глубокого метамоделирования 25
5.2.1. Язык для демонстрации глубокого инстанцирования 26
5.2.2. Язык описания подпрограмм управления роботами 26
Заключение 30
Список литературы 31
В современном мире существуют несколько классов задач, для которых традиционно применяются технологии визуального моделирования. Например, визуальные языки программирования могут применяться как аналог текстовых предметно-ориентированных языков, особенно если конечные пользователи не знакомы с программированием. В качестве примеров таких визуальных языков можно привести языки, применяемые в образовательных целях, например, языки программирования роботов сред TRIK Studio [9] и Lego Robolab [6]. Кроме этого, визуальные языки могут применяться и в сферах профессиональной разработки. Например, языки UML [4] для описания диаграмм достаточно часто [5] используются при разработке архитектуры программных систем.
Разработка среды визуального моделирования представляет собой трудоемкий процесс. Помимо непосредственно языка, среда обычно включает в себя такие компоненты, как редактор, генератор из визуальной модели в другой язык, а также может иметь дополнительные компоненты, специфические для предметной области применения. Для упрощения разработки такого рода систем для разных предметных областей могут применяться платформы предметно-ориентированного моделирования (DSM, domain-specific modeling), которые могут иметь универсальный редактор, генераторы, а также инструменты для описания визуальных языков, благодаря которым компоненты одной и той же DSM-платформы могут быть использованы в разных предметных областях.
Визуальные языки часто описывают с помощью других визуальных языков. Модель описания визуального языка называют метамоделью, а набор методов такого описания называют метамоделированием. Существуют несколько способов метамоделирования, например, классическое двухуровневое метамоделирование, применяемое в UML. При этом существуют исследования, указывающие на недостатки этого под-хода [3]. Другая разновидность — глубокое метамоделирование — было создано как вариант решения этих недостатков. Однако, в силу слабой распространенности глубокого метамоделирования остается открытым вопрос о применимости этого подхода к реальный проектам.
На кафедре системного программирования группой преподавателей и студентов разрабатывается REAL.NET[17] — платформа предметно-ориентированного моделирования, имеющая своей целью, помимо про-чего, реализовать и исследовать различные подходы к метамоделированию, в том числе и к глубокому метамоделированию. На данный момент платформа имеет микросервисную архитектуру, несколько различных редакторов: графовый веб-редактор, редактор для управления умным домом, два редактора в виде настольных приложений — простой крос-сплатформенный и более сложный для ОС Windows.
Система описания визуальных языков в REAL.NETвыстроена таким образом, чтобы обеспечить возможность использования и тестирования разных подходов к метамоделированию. Именно поэтому REAL.NETможет быть использован для исследования глубокого мета-моделирования и его сравнения с другими подходами.
1. Постановка задачи
Целью данной работы является реализация в REAL.NETтехнологии глубокого метамоделирования. Для достижения данной цели были поставлены следующие задачи:
1. Провести исследование и реализовать поддержку логики глубокого метамоделирования с использованием имеющихся технологий метамоделирования в REAL.NET.
2. Разработать графический интерфейс веб-редактора визуального моделирования, обеспечивающего поддержку специфических требований работы с глубоким метамоделированием.
3. Провести апробацию поддержки глубокого метамоделирования с использованием предметно-ориентированных языков визуального моделирования.
Разработка среды визуального моделирования представляет собой трудоемкий процесс. Помимо непосредственно языка, среда обычно включает в себя такие компоненты, как редактор, генератор из визуальной модели в другой язык, а также может иметь дополнительные компоненты, специфические для предметной области применения. Для упрощения разработки такого рода систем для разных предметных областей могут применяться платформы предметно-ориентированного моделирования (DSM, domain-specific modeling), которые могут иметь универсальный редактор, генераторы, а также инструменты для описания визуальных языков, благодаря которым компоненты одной и той же DSM-платформы могут быть использованы в разных предметных областях.
Визуальные языки часто описывают с помощью других визуальных языков. Модель описания визуального языка называют метамоделью, а набор методов такого описания называют метамоделированием. Существуют несколько способов метамоделирования, например, классическое двухуровневое метамоделирование, применяемое в UML. При этом существуют исследования, указывающие на недостатки этого под-хода [3]. Другая разновидность — глубокое метамоделирование — было создано как вариант решения этих недостатков. Однако, в силу слабой распространенности глубокого метамоделирования остается открытым вопрос о применимости этого подхода к реальный проектам.
На кафедре системного программирования группой преподавателей и студентов разрабатывается REAL.NET[17] — платформа предметно-ориентированного моделирования, имеющая своей целью, помимо про-чего, реализовать и исследовать различные подходы к метамоделированию, в том числе и к глубокому метамоделированию. На данный момент платформа имеет микросервисную архитектуру, несколько различных редакторов: графовый веб-редактор, редактор для управления умным домом, два редактора в виде настольных приложений — простой крос-сплатформенный и более сложный для ОС Windows.
Система описания визуальных языков в REAL.NETвыстроена таким образом, чтобы обеспечить возможность использования и тестирования разных подходов к метамоделированию. Именно поэтому REAL.NETможет быть использован для исследования глубокого мета-моделирования и его сравнения с другими подходами.
1. Постановка задачи
Целью данной работы является реализация в REAL.NETтехнологии глубокого метамоделирования. Для достижения данной цели были поставлены следующие задачи:
1. Провести исследование и реализовать поддержку логики глубокого метамоделирования с использованием имеющихся технологий метамоделирования в REAL.NET.
2. Разработать графический интерфейс веб-редактора визуального моделирования, обеспечивающего поддержку специфических требований работы с глубоким метамоделированием.
3. Провести апробацию поддержки глубокого метамоделирования с использованием предметно-ориентированных языков визуального моделирования.
Возникли сложности?
Нужна помощь преподавателя?
Помощь в написании работ!
В рамках подготовки выпускной квалификационной работы были достигнуты следующие результаты.
1. Изучены подходы к метамоделированию (двухуровневое, глубокое), проведен обзор сред глубокого метамоделирования (Melanee, metaDepth, DPF), разработана модель глубокого метамоделирования на базе REAL.NET.
2. Реализован веб-редактор глубокого метамоделирования:
• реализован API для клиент-серверного взаимодействия репозитория REAL.NETи редактора;
• реализован графический интерфейс редактора, поддерживающий глубокое инстанцирование, редактирование метамоделей нижних уровней; уровня, мощности, атрибутов и слотов элемента.
3. Проведена апробация поддержки глубокого метамоделирования:
• c помощью двухуровневого визуального языка программирования дронов AirSim;
• с помощью языков глубокого метамоделирования: языка для демонстрации глубокого инстанцирования и языка описания подпрограмм управления роботами.
С исходным кодом проекта можно ознакомиться на странице организации REAL.NET[13] и репозиториях [14], [15], [16].
1. Изучены подходы к метамоделированию (двухуровневое, глубокое), проведен обзор сред глубокого метамоделирования (Melanee, metaDepth, DPF), разработана модель глубокого метамоделирования на базе REAL.NET.
2. Реализован веб-редактор глубокого метамоделирования:
• реализован API для клиент-серверного взаимодействия репозитория REAL.NETи редактора;
• реализован графический интерфейс редактора, поддерживающий глубокое инстанцирование, редактирование метамоделей нижних уровней; уровня, мощности, атрибутов и слотов элемента.
3. Проведена апробация поддержки глубокого метамоделирования:
• c помощью двухуровневого визуального языка программирования дронов AirSim;
• с помощью языков глубокого метамоделирования: языка для демонстрации глубокого инстанцирования и языка описания подпрограмм управления роботами.
С исходным кодом проекта можно ознакомиться на странице организации REAL.NET[13] и репозиториях [14], [15], [16].
[1] Atkinson C.Meta-modelling for distributed object environments // Proceedings First International Enterprise Distributed Object Com-puting Workshop. — 1997. —P. 90-101.
[2] Atkinson Colin, Gerbig Ralph. Flexible Deep Modeling with Melanee // Modellierung 2016, 2.-4. Marz 2016, Karlsruhe - Workshop¬band / Ed. by Stefanie Betz, Ulrich Reimer. — Vol. P-255 of LNI. — GI, 2016.—P. 117-122.—Access mode: https://dl.gi.de/20.500.12116/843.
[3] Atkinson Colin, Kuhne Thomas. The Essence of Multilevel Metamod-eling // Proceedings of the 4th International Conference on The Uni¬fied Modeling Language, Modeling Languages, Concepts, and Tools. — Berlin, Heidelberg : Springer-Verlag, 2001. — P. 19-33.
[4] Booch Grady, Rumbaugh James, Jacobson Ivar. Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series). — Vol. 10. — 1999. — 01.
[5] Dobing Brian, Parsons Jeffrey. How UML is used //Commun.ACM. —2006.—05.—Vol. 49.—P. 109-113.
[6] Erwin Ben, Cyr Martha, Rogers Chris. LEGO Engineer and RoboLab: Teaching Engineering with LabVIEW from Kindergarten to Graduate School. — Vol. 16. — 2000. — 01.
[7] Lara Juan, Guerra Esther.Deep Meta-modelling with MetaDepth. — Vol. 6141. —2010. —06. —P. 1-20.
[8] Microsoft. Официальная страница ASP.NET[Электронный ресурс].— 2021.—Режим доступа: https://dotnet.microsoft.com/apps/aspnet (дата обращения: 25.04.2021).
[9] Mordvinov Dmitry, Litvinov Yurii, Bryksin Timofey. TRIK Studio: Technical Introduction // PROCEEDINGS OF THE 20TH CONFER-ENCE OF OPEN INNOVATIONS ASSOCIATION (FRUCT 2017) / Ed. by S Balandin. — Proceedings Conference of Open Innovations Association FRUCT. — Canada : IEEE Canada, 2017.—P. 296-308.
[10] OMG. OMG Unified Modeling Language (OMG UML) Infrastruc¬ture.—2011.—08.
[11] OMG. Meta-Object Facility Specification. — 2019. — 10.
[12] REAL.NET. GitHub репозиторий документации REAL.NET[Элек-тронный ресурс]. — 2020. — Режим доступа: https://github.com/REAL-NET/docs (дата обращения: 13.12.2020).
[13] REAL.NET. GitHub организация проекта [Электронный ресурс]. — 2021. — Режим доступа: https://github.com/REAL-NET (дата обращения: 25.04.2021).
[14] REAL.NET. GitHub репозиторий проекта клиентской части веб-редактора REAL.NET[Электронный ресурс]. — 2021. —Режим до-ступа: https://github.com/REAL-NET/web-editor-frontend(дата обращения: 25.04.2021).
[15] REAL.NET. GitHub репозиторий проекта репозитория REAL.NET[Электронный ресурс]. — 2021. — Режим доступа: https://github.com/REAL-NET/Repo (дата обращения: 25.04.2021).
[16] REAL.NET. GitHub репозиторий проекта серверной части веб-редактора REAL.NET[Электронный ресурс]. — 2021. —Режим до-ступа: https://github.com/REAL-NET/web-editor-backend (дата обращения: 25.04.2021).
[17] REAL.NET Web — Web-based multilevel domain-specific model¬ing platform / Mikhail Kidiankin, Yurii Litvinov, Valeria Ivasheva et al. // PROCEEDINGS OF FIFTH CONFERENCE ON SOFT¬WARE ENGINEERING AND INFORMATION MANAGEMENT (SEIM-2020). —2020.—P. 45-51.
[18] Rossini Alessandro. Diagram Predicate Framework meets Model Versioning and Deep Metamodelling : Ph. D. thesis / Alessan¬dro Rossini. — 2011. — 10.
[19] Небогатиков И.Ю., Литвинов Ю.В. Создание визуального предметно-ориентированного языка программирования дронов для симулятора AirSim // Современные технологии в теории и практике программирования. — Российская Федерация : Издательство Санкт-Петербургского Государственного Политехнического Университета, 2018. — 4. — С. 66-68.
[20] Официальная страница библиотеки React Flow [Электронный ресурс].—2021.—Access mode: https://reactflow.dev (online; accessed: 25.04.2021).
[21] Официальная страница библиотеки React.js [Электронный ресурс]. — 2021. — Режим доступа: https://ru.reactjs.org(дата об-ращения: 25.04.2021).
[22] Официальная страница проекта Automapper [Электронный ресурс]. — 2021. — Access mode: https://automapper.org (online; accessed: 25.04.2021).
[23] Официальная страница проекта Diagram Predicate Framework [Электронный ресурс]. — 2021. — Режим доступа: https://ict.hvl.no/dpf/ (дата обращения: 25.04.2021).
[24] Официальная страница проекта Swagger [Электронный ресурс]. — 2021. — Access mode: https://swagger.io (online; accessed: 25.04.2021).
[2] Atkinson Colin, Gerbig Ralph. Flexible Deep Modeling with Melanee // Modellierung 2016, 2.-4. Marz 2016, Karlsruhe - Workshop¬band / Ed. by Stefanie Betz, Ulrich Reimer. — Vol. P-255 of LNI. — GI, 2016.—P. 117-122.—Access mode: https://dl.gi.de/20.500.12116/843.
[3] Atkinson Colin, Kuhne Thomas. The Essence of Multilevel Metamod-eling // Proceedings of the 4th International Conference on The Uni¬fied Modeling Language, Modeling Languages, Concepts, and Tools. — Berlin, Heidelberg : Springer-Verlag, 2001. — P. 19-33.
[4] Booch Grady, Rumbaugh James, Jacobson Ivar. Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series). — Vol. 10. — 1999. — 01.
[5] Dobing Brian, Parsons Jeffrey. How UML is used //Commun.ACM. —2006.—05.—Vol. 49.—P. 109-113.
[6] Erwin Ben, Cyr Martha, Rogers Chris. LEGO Engineer and RoboLab: Teaching Engineering with LabVIEW from Kindergarten to Graduate School. — Vol. 16. — 2000. — 01.
[7] Lara Juan, Guerra Esther.Deep Meta-modelling with MetaDepth. — Vol. 6141. —2010. —06. —P. 1-20.
[8] Microsoft. Официальная страница ASP.NET[Электронный ресурс].— 2021.—Режим доступа: https://dotnet.microsoft.com/apps/aspnet (дата обращения: 25.04.2021).
[9] Mordvinov Dmitry, Litvinov Yurii, Bryksin Timofey. TRIK Studio: Technical Introduction // PROCEEDINGS OF THE 20TH CONFER-ENCE OF OPEN INNOVATIONS ASSOCIATION (FRUCT 2017) / Ed. by S Balandin. — Proceedings Conference of Open Innovations Association FRUCT. — Canada : IEEE Canada, 2017.—P. 296-308.
[10] OMG. OMG Unified Modeling Language (OMG UML) Infrastruc¬ture.—2011.—08.
[11] OMG. Meta-Object Facility Specification. — 2019. — 10.
[12] REAL.NET. GitHub репозиторий документации REAL.NET[Элек-тронный ресурс]. — 2020. — Режим доступа: https://github.com/REAL-NET/docs (дата обращения: 13.12.2020).
[13] REAL.NET. GitHub организация проекта [Электронный ресурс]. — 2021. — Режим доступа: https://github.com/REAL-NET (дата обращения: 25.04.2021).
[14] REAL.NET. GitHub репозиторий проекта клиентской части веб-редактора REAL.NET[Электронный ресурс]. — 2021. —Режим до-ступа: https://github.com/REAL-NET/web-editor-frontend(дата обращения: 25.04.2021).
[15] REAL.NET. GitHub репозиторий проекта репозитория REAL.NET[Электронный ресурс]. — 2021. — Режим доступа: https://github.com/REAL-NET/Repo (дата обращения: 25.04.2021).
[16] REAL.NET. GitHub репозиторий проекта серверной части веб-редактора REAL.NET[Электронный ресурс]. — 2021. —Режим до-ступа: https://github.com/REAL-NET/web-editor-backend (дата обращения: 25.04.2021).
[17] REAL.NET Web — Web-based multilevel domain-specific model¬ing platform / Mikhail Kidiankin, Yurii Litvinov, Valeria Ivasheva et al. // PROCEEDINGS OF FIFTH CONFERENCE ON SOFT¬WARE ENGINEERING AND INFORMATION MANAGEMENT (SEIM-2020). —2020.—P. 45-51.
[18] Rossini Alessandro. Diagram Predicate Framework meets Model Versioning and Deep Metamodelling : Ph. D. thesis / Alessan¬dro Rossini. — 2011. — 10.
[19] Небогатиков И.Ю., Литвинов Ю.В. Создание визуального предметно-ориентированного языка программирования дронов для симулятора AirSim // Современные технологии в теории и практике программирования. — Российская Федерация : Издательство Санкт-Петербургского Государственного Политехнического Университета, 2018. — 4. — С. 66-68.
[20] Официальная страница библиотеки React Flow [Электронный ресурс].—2021.—Access mode: https://reactflow.dev (online; accessed: 25.04.2021).
[21] Официальная страница библиотеки React.js [Электронный ресурс]. — 2021. — Режим доступа: https://ru.reactjs.org(дата об-ращения: 25.04.2021).
[22] Официальная страница проекта Automapper [Электронный ресурс]. — 2021. — Access mode: https://automapper.org (online; accessed: 25.04.2021).
[23] Официальная страница проекта Diagram Predicate Framework [Электронный ресурс]. — 2021. — Режим доступа: https://ict.hvl.no/dpf/ (дата обращения: 25.04.2021).
[24] Официальная страница проекта Swagger [Электронный ресурс]. — 2021. — Access mode: https://swagger.io (online; accessed: 25.04.2021).
Работу высылаем на протяжении 30 минут после оплаты.