Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Внутреннее представление диаграмм




Диаграммы, создающиеся в редакторах, разработанных на основе QReal, представлены в виде набора элементов, хранящихся в репозитории.

В QReal реализовано разделение элементов на логическую и графическую части. Логическая часть должна быть у любого элемента и содержит его свойства. Графическая часть — конкретное отображение элемента на диаграмму, при этом у элемента может не быть графической части или их может быть несколько.

И графические элементы, и логические образуют отдельные иерархии. Иерархия логических элементов может задаваться в окне обозревателя логической модели диаграммы, иерархия графических элементов соответствует вложенности элементов на диаграмме.

Различные предоставленные интерфейсы репозитория элементов позволяют перемещаться по деревьям элементов, а также проводить по ним поиск.


Плагины в QReal

Meta-CASE технология QReal позволяет создавать генераторы кода для разработанных с его помощью редакторов. Также содержит широкий спектр возможностей по созданию других расширений к редакторам.

Разрабатываемым плагинам QReal предоставляет специальный интерфейс — ToolPluginInterface. При создании плагина, унаследованного от ToolPluginInterface, разработчику предоставляется доступ к следующим интерфейсам:

• ProjectManagerInterface – функции работы с проектом, например диалоги открытия и сохранения проектов.

• SystemEventsInterfave – возможность подключиться к различным сигналам системы, например, смена открытой закладки или закрытие диаграммы.

• RepoControlInterface – интерфейс репозитория элементов диаграмм. Позволяет, например, сохранять отдельные диаграммы или проводить поиск по всем элементам.

• LogicalModelApi – работа с логическими элементами модели: создание элементов, а также получение и изменение их свойств.

• GraphicalModelApi – работа с графическими элементами модели.

• MainWindowInterpretersInterface – интерфейс, предоставляющий функционал для создания интерпретаторов диаграмм, например, выделение элементов.


Генераторы в QReal

Для поддержки создания генераторов кода к редакторам, созданным в meta-CASE системе QReal, есть базовый класс генератора abstractGenerator, предоставляющий основную функциональность и инфраструктуру для генерации одного файла.

Позволяет загрузить и использовать файл с набором шаблонов, соответствующих различным элементам языка. Предоставляет интерфейс для создания и сохранения сгенерированных файлов.

Предлагаемый процесс генерации кода заключается в изменении загруженных шаблонов в зависимости от элементов, находящихся на диаграмме, и составлении из параметризованных шаблонов результирующего файла.

Созданный генератор для разработанного языка описания мобильных приложений позволяет генерировать автоматную логику описанного приложения. Генерируются объявления состояний и основное тело программы, состоящее из переключения по этим состояниям в бесконечном цикле. Также по всем диаграммам логики перехода генерируются функции, совершающие соответствующие переходы. Генерируются объявления описанных элементов управления, вызовы функций подключаются к соответствующим сигналам.


Апробация

В разработанных редакторах для полученного графического языка были реализованы диаграммы, описывающие логику приложения «Морской бой». Приложение «Морской бой», как и многие другие пошаговые игры для платформы Ubiq Mobile, является расширением игрового шаблона.

Игровой шаблон gameTemplate позволяет переиспользовать в играх код модулей, отвечающих за сетевое общение игроков, основу логики смены ходов, регистрации и идентификации. При использовании игрового шаблона разработка игры в основном направлена на создание логики игрового поля, условий победы и логической составляющей хода игрока.

В разработанных редакторах были сделаны диаграммы, описывающие логику игры «Морской бой». Разработанный генератор позволил получить по диаграммам значительную часть автоматной логики приложения.

После обсуждения полученного результата с разработчиками Ubiq Mobile ими был предложен другой, более интересный им и более простой для проверки, содержательный пример — описать в графическом виде игровой шаблон gameTemplate.

Разработанного языка было достаточно для получения диаграмм, описывающих игровой шаблон в деталях, позволивших с помощью разработанного генератора получить значительную часть автоматной логики приложения.

Полученная диаграмма активности пользователя изображена на рисунке 12. При этом логическая нагрузка переходов в полученном языке изображается короткими и простыми диаграммами (Рис. 13)


Рис. 12 Диаграмма активности пользователя игрового шаблона

Рис. 13 Примеры диаграмм логики переходов игрового шаблона


Заключение

В результате выполнения данной работы был разработан графический DSL для описания мобильных приложений. Реализованы два графических редактора для диаграмм этого языка.

Реализован генератор кода для платформы Ubiq Mobile по графическим диаграммам.

Выполнены диаграммы, содержащие графические описания логики игры

«Морской бой» и игрового шаблона, что подтверждает перспективность применения подобного подхода.

 

Дальнейшее развитие

Взаимодействие с разработчиками Ubiq Mobile помогло выявить приоритетные направления развития. Были сформулированы дальнейшие требования к языку для решения более узких задач. А также осознана важность для возможности промышленного использования решения наличия инструментов, включающих в себя графическую отладку и круговую разработку.


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

1. A.Н.Терехов, В.В.Оносовский. Технология разработки мобильных онлайн сервисов. // Конференция CEE-SECR 2011. С. 1-2

2. Mаrtin Ward. Language Oriented Programming. // Computer Science Department, Science Labs, 1994. С. 14-16

3. Искандер Гиниятуллин. Создаем быстрый прототип мобильного приложения, http://habrahabr.ru/post/189524/

4. Терехов А.Н., Литвинов Ю.В., Брыксин Т.А. Среда для обучения информатике и робототехнике QReal:Robots // Девятая независимая научно-практическая конференция «Разработка ПО 2013» (CEE SEC(R)-2013), Москва, 24 октября 2013 года.

5. Timofey Bryksin, Yuri Litvinov, Valentin Onossovski, Andrey N. Terekhov. Ubiq Mobile + QReal a Technology for Development of Distributed Mobile Services // 10th Conference of Open Innovations Association FRUCT and the 2nd Finnish-Russian Mobile Linux Summit: Proceedings, printed by State University of Aerospace Instrumentation (SUAI). 2011. 232 p. Pp 27- 35.

6. Дерипаска А.О. Визуальный язык для платформы Ubiq Mobile в среде QReal, http://se.math.spbu.ru/SE/YearlyProjects/2013/YearlyProjects/2013/445/445- Deripaska-report.pdf

7. Мордвинов Д.А. Средства разработки пользовательских интерфейсов в DSM-платорфме QReal, http://se.math.spbu.ru/SE/diploma/2013/s/MordvinovDmitry_thesis.pdf

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...