Главная » Просмотр файлов » Диссертация

Диссертация (1148272), страница 21

Файл №1148272 Диссертация (Методы и средства разработки графических предметно-ориентированных языков) 21 страницаДиссертация (1148272) страница 212019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

Этот интерфейс определяетинформацию, которую настраиваемый визуальный редактор, входящий в ядро системы, должен знать о синтаксисе визуального языка, чтобы давать возможностьсоздавать диаграммы. С точки зрения ядра системы подключаемый визуальныйредактор представляет собой набор диаграмм (различных визуальных языков,входящих в состав редактора, их может быть несколько), каждая диаграммасодержит в себе список элементов. Элемент может быть либо узлом, либо связью.Любой элемент обладает списком свойств (свойства с точки зрения абстрактногосинтаксиса представляют собой тройки «имя - тип - значение по умолчанию») ивнешним видом.

Внешний вид узла задаётся в векторном графическом формате,близком к SVG [100], но с некоторыми расширениями (возможностью определитьпорты, к котором могут подключаться связи и областями для вывода значений свойств из репозитория). Внешний вид связи определяется стилем линии(сплошная, пунктирная и т.д.) и видом конца линии, выбираемым из несколькихпредопределённых значений (открытая и закрытая стрелки, закрашенный инезакрашенный ромб и т.д.).

Для узла также указывается, какие связи можно кнему подключить и какие узлы он может содержать внутри себя как составныеэлементы.Редактор визуального языка можно создать вручную, реализовав описанныйвыше интерфейс на языке C++ и собрав подключаемую библиотеку. Однако такойподход весьма неэффективен, поэтому был использован лишь однажды, для нуждтестирования системы. Далее речь пойдёт об автоматизации создания визуальныхредакторов. Здесь был дан лишь краткий обзор возможностей ядра системы,необходимый для дальнейшего изложения, более подробно см.

статьи [40, 109,136].1054.3. Инструментальные средства поддержкисоздания визуальных языков4.3.1. МетаредакторВ системе QReal для быстрого создания редакторов используется визуальный метаязык и соответствующий редактор, называемый метаредактором. Повизуальной метамодели языка, созданной в метаредакторе, генерируется код наC++, реализующий интерфейс подключаемого модуля, который требуется ядрусистемы.Визуальный метаязыкВ основу метаязыка системы QReal заложены принципы, используемые,например, в метаязыке MOF [59]: элементы моделируемого языка (сущностии связи) моделируются сущностями метаязыка (Node и Edge), эти сущностимогут быть связаны отношениями наследования и «является контейнером для».И сущность, и связь могут иметь свойства, значения для которых можно задаватьпри редактировании модели в редакторе свойств QReal.

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

Подробнее об имеющихся элементах см. вприложении B.Особенности языкаМетаязык QReal имеет следующие особенности, важные для создания CASEинструментов промышленного уровня.1. Принцип «Если функциональность не требуется, о ней можно не знать».Для создания языка требуется использовать следующие сущности: «метамодель», «диаграмма», «узел», «связь». Остальные элементы можно добавлятьв метамодель по мере необходимости, генерация редактора возможна безних.1062.

Возможность определения нескольких языков в рамках одной метамодели.3. Возможность задания отношения вложенности между элементами.4. Типизированные порты — они дают возможность различать места на фигуре, к которым могут быть подключены связи, и по-разному обрабатыватьсвязи в зависимости от того, к какому конкретно порту они подключены.5. Отношение раскрытия (или эксплозия) позволяет реализовать иерархическую декомпозицию в редакторе. При задании этого отношения можноуказать, как редактору следует его обрабатывать — следует ли обязательносоздавать целевой элемент при создании элемента-источника, следует липомещать целевой элемент на «пользовательскую палитру». Нужно этодля реализации подпрограмм в тех языках, где есть это понятие (например, QReal:Robots).

Для некоторых языков раскрытие не имеет семантикиподпрограммы (например, вложенные пакеты в UML), поэтому семантикараскрытия и настраивается в метаредакторе.Генерация редакторовСозданную в метаредакторе метамодель можно использовать для того, чтобыполучить редактор, несколькими способами: сгенерировать исходный код редактора непосредственно по метамодели, сгенерировать сначала XML-описание, азатем по XML-описанию исходный код редактора, либо открыть метамодельв интерпретаторе метамоделей и обойтись вовсе без генерации.

Схематическиразные способы представлены на рисунке 4.3.Способ, использующий XML-описание метамодели, концептуально сложнее,чем генерация кода по метамодели напрямую, но он более устойчив к изменениямв метаязыке — XML-описания при необходимости легко поправить вручную,файлы с метамоделью требуют метаредактора версии, которая может их редактировать. Поэтому большинство языков в QReal используют сейчас схему спромежуточным XML-представлением.Структура XML-файла практически полностью соответствует структуре метамодели языка (точнее, визуальный метаязык появился как визуализация существующего XML-языка). Синтаксис языка был впервые предложен в дипломной107Рис. 4.3: Получение редактора по метамодели.работе А.А.

Симоновой в 2007 году, однако претерпел с тех пор ряд значительных изменений. Новые возможности ядра QReal реализуются сначала вXML-языке, а уже затем переносятся в метаязык, и на данный момент XMLязык обладает возможностями, которые в метаязыке пока отсутствуют.

Примертакой возможности — задание групп в палитре. Эта возможность позволяютсобрать близкие по смыслу элементы языка и сворачивать или разворачиватьв палитре группы элементов. Также есть возможность задать одновременноесоздание сразу нескольких элементов, например, чтобы при создании диаграммыповедения робота на неё сразу же добавлялся блок «начало», обязательный длявсех диаграмм.Интерпретатор метамоделей позволяет избежать необходимости генерациикода на C++ и компиляции редактора. Метамодель языка, подготовленная вметаредакторе, загружается в интерпретатор, и он с её помощью эмулируетповедение сгенерированного плагина-редактора. При таком подходе скоростьработы системы несколько меньше, чем в случае скомпилированного редактора(в работе [138] приводятся результаты эксперимента по сравнению скоростейвыполнения типичных операций).

Однако отсутствие необходимости пересобирать редактор после каждого изменения языка значительно снижает времяцикла «разработка-тестирование» для вносимых в язык изменений. Кроме того,интерпретатор делает возможным внесение в метамодель изменений прямо108в процессе работы с редактором языка, поэтому применение такого подходанеобходимо для реализации инструментальной поддержки режима «метамоделирования на лету». На данный момент в QReal применяется и генеративный, иинтерпретативный подходы к созданию редакторов, интерпретатор используетсядля быстрого прототипирования языка, генераторы — для финализации языка исоздания инсталляционных пакетов, поставляемых пользователям.Для того, чтобы гарантировать, что результирующие редакторы ведут себяодинаково для одной метамодели языка вне зависимости от способа полученияредактора, была разработана и включена в процесс сборки тестирующая система,создающая тестовые редакторы для нескольких разных метамоделей всеми тремяспособами и проверяющая, что функции интерфейса редактора во всех трёхслучаях возвращают одинаковый результат.

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

Тест считается пройденным, если всеметоды вернули одинаковый результат.4.3.2. Редактор формы фигурРедактор формы фигур предназначен для задания конкретного синтаксисаязыка и представляет собой простой векторный редактор, запускаемый из метаредактора при редактировании свойства «Форма» узла. Использовать существующие графические редакторы оказалось невозможным в связи с тем, чтотребуется задавать не только внешний вид элемента, но и поведение элемента привзаимодействии с ним пользователя — куда можно подключать связи, как должнаизменяться форма элемента при его растягивании или сжатии, где выводитьзначения свойств из репозитория.Редактор позволяет использовать изображения, заранее подготовленные вобычных графических редакторах, в качестве элементов создаваемой формыфигуры, например, так реализованы фигуры блоков в QReal:Robots.109Изображения могут быть дополнены точечными и линейными портами.Порт — место на фигуре, к которому можно подключить связь, точечный портотличается от линейного тем, что к линейному порту связь может подсоединятьсяв любом месте линии.

Характеристики

Список файлов диссертации

Методы и средства разработки графических предметно-ориентированных языков
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее