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

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

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

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

Порт может иметь тип, один из заранее определённых вметамодели, для связи может быть указано, к портам какого типа её разрешеноподключать.Имеется возможность задать отображение статического текста и динамического текста. Динамический текст — поле на фигуре, текст для которого берётсяиз свойства фигуры в репозитории. В редакторе формы фигур указывается имясвойства, откуда надо брать значение. В процессе рисования диаграммы насозданном языке подставляется реальное текущее значение свойства, кроме того,значение свойства можно редактировать прямо на сцене. Статический текст — этонередактируемая надпись на элементе, указываемая при задании формы элемента.Для каждого элемента изображения можно определить условие, при которомон будет отображаться. Условие задаётся в виде логического выражения, вкотором можно использовать значения свойств элемента.Результат создания формы фигуры может быть сохранён в виде XML-строкикак свойство элемента Node в метамодели либо как отдельный XML-файл,который можно переиспользовать при создании других фигур.4.3.3.

Редактор ограниченийОграничения необходимы для того, чтобы, во-первых, минимизировать вероятность ошибок при разработке системы, во-вторых, чтобы иметь возможностьобнаружить ошибку как можно раньше. Наличие средств задания ограниченийпозволяет существенно повысить удобство пользования визуальной технологиейи повысить качество программ, создаваемых с её помощью, поэтому средствазадания ограничений очень распространены в существующих DSM-платформах.Ограничения бывают двух видов — ограничения на состояние разработаннойсистемы во время её работы и ограничения на модель системы в процессе её разработки. Первый вид ограничений схож с операторами assert в текстовых языкахпрограммирования, второй — с синтаксическими проверками кода, выполняемыми компилятором или средой разработки. В случае DSM-платформы первыйвид ограничений может быть реализован только для частных случаев, в рамках110разрабатываемых с помощью DSM-платформы визуальных технологий. Второйже вид ограничений может описываться на уровне метамодели визуальногоязыка, в этом случае ограничения могут автоматически проверяться редакторомдиаграмм.

Далее речь пойдёт исключительно про второй вид ограничений.Задание ограничений на создаваемую модель частично происходит в самой метамодели, правила синтаксиса языка не позволят создать некорректнуюдиаграмму, если редактор строго им следует (что в случае DSM-платформпрактически всегда так, потому что редактор определяется метамоделью). Насколько сложные ограничения можно задать в метамодели языка зависит отиспользуемого метаязыка. Например, метамодель UML использует для заданияограничений полноценный текстовый язык OCL, позволяющий писать скольугодно сложные запросы к репозиторию с моделью и накладывать сколь угодносложные ограничения на её состояние.В системе QReal в соответствии с принципом «не надо знать то, чем непользуешься» сложные ограничения задаются отдельно от метамодели, с помощью модели ограничений.

Метамодель может быть создана без ограничений, онимогут быть добавлены в язык потом, по мере осознания разработчиками языкаих необходимости, и отдельно, без внесения изменений в метамодель. Крометого, в соответствии с идеологией предметно-ориентированного визуальногомоделирования ограничения задаются с помощью специально созданного дляэтого предметно-ориентированного визуального языка. Данный язык, а такжесредства проверки ограничений, разработанные под руководством автора даннойработы, описаны в статье [113], ниже приводится лишь краткое описание данныхсредств.Модель ограничений создаётся после создания метамодели языка (или совместно с ней), также имеется возможность задавать ограничения, проверяемыедля всех метамоделей (например, что связи должны быть обязательно подсоединены к узлам).

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

В случае нарушения ограничения-предупреждения элементнарушитель подсвечивается на диаграмме, в случае нарушения критическогоограничения в дополнение к подсветке в окне ошибок появляется текстовоесообщение.Пример простого ограничения, применимого ко всем типам связей всехметамоделей, приведён на рисунке 4.4. Ограничение требует, чтобы у любойсвязи существовал и начальный, и конечный узел (зелёный квадрат означает узел,из которого исходит связь, красный — узел, в который связь входит, true означает,что они должны существовать).

Ограничение имеет важность «предупреждение».Рис. 4.4: Ограничение, проверяющее наличие начального и конечного узла усвязи.Пример диаграммы с нарушением этого ограничения приведён на рисунке 4.5.Связь, не имеющая конечного узла, выделена средством проверки ограниченийкрасным.Рис. 4.5: Пример отображения нарушения ограничения.112Механизм проверки ограничений реализован следующим образом. По моделиограничений генерируется код подключаемого модуля проверки ограничений наC++, который компилируется в динамическую библиотеку. При запуске QReal всемодули проверки ограничений загружаются в подсистему проверки ограниченийядра QReal.

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

Таким образом,несмотря на то, что проверка ограничений вызывается при практически любомредактировании модели, за счёт фильтрации ограничений по типу проверяемогообъекта это не приводит к существенной потере производительности.4.3.4. Редактор правил рефакторингаВозможность автоматически применять рефакторинги для диаграмм довольно редка среди CASE-систем и DSM-платформ, но стала вполне обычнойдля текстовых сред программирования, поэтому ожидается и от создаваемыхвизуальных сред, чтобы успешно конкурировать с текстовыми.

Рефакторингопределяется как изменение внутренней структуры программы без измененияеё видимого поведения с целью сделать её проще для понимания и упроститьеё сопровождение [146]. В случае с визуальными моделями рефакторинг можетрассматриваться как изменение логической модели системы или как изменениевнешнего вида диаграммы, не затрагивающее логическую модель (например,перерасположение элементов). Второй вид рефакторинга исследован достаточнохорошо (см. GraphViz [22], KIELER [37] и т.д.), система QReal используеткомпоненту GraphViz для автоматической раскладки элементов на диаграммах.Первый вид рефакторингов изучен гораздо меньше.113В общем случае схема рефакторинга визуальной модели такова [46].

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

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

Ниже приводитсякраткое описание реализации системы рефакторингов в QReal, подробнее ореализации см. в статьях [118,120]. Общая схема разработки и применения правилрефакторинга представлена на рисунке 4.6.Язык описания правил рефакторинга имеет интересную особенность — егоэлементами являются элементы языка, для которого определяется правило рефакторинга.

Эти элементы автоматически подгружаются из метамодели разрабатываемого языка редактором правил рефакторинга и используются для определенияшаблонов, которые будет сопоставлять в диаграмме средство выполнения рефакторинга при его применении. Сами правила задаются в виде графовых грамматик:правило делится на часть BEFORE, в которой задаётся шаблон, который ищется вдиаграмме, и на часть AFTER, на которую замещается сопоставленный шаблон.При этом в правиле можно использовать специальные элементы, такие как«Выделенный фрагмент диаграммы», каждому элементу можно указать его идентификатор. Элементы, имеющие одинаковый идентификатор в левой и правойчасти правила, считаются одним элементом и будут сохранены (возможно, с изменениями) при рефакторинге. Элементы, идентификатор которых не встречается вчасти BEFORE, будут созданы, элементы, идентификатор которых не встречается114Рис.

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

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

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