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

Диссертация (1148239), страница 11

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

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

Например, на рис. 11 приведен примервставки группы элементов, состоящей из двух элементов ActionNode языка блоксхем, соединенных ассоциацией в виде ломаной линии. Вставка происходит«внутрь» разделяемой связи, элемент FinalNode при вставке группы соответствующесдвигается вниз.Рисунок 11. Вставка группы элементов “внутрь” ассоциации3.4. ЗаключениеВ данной главе рассмотрены способы упрощения работы с диаграммным62редактором платформы QReal. Самым важным результатом здесь является методавтоматическогосозданиякомпонентраспознаванияжестовDSM-решений.Подобные компоненты создаются без какого-либо участия разработчика поформальному описанию визуального представления элементов языка и позволяютавтоматизировать наиболее часто повторяющиеся при моделировании действия:создание и удаление элементов на диаграммах и связей между ними.

Также вредактор была добавлена реализация некоторых эвристик языка ДРАКОН, которыепозволили уменьшить число операций, необходимых при добавлении элементов науже существующие диаграммы и при создании групп элементов.63Глава 4. Средства задания исполнимой семантики4.1. ВведениеВ данной главе рассматривается метод, позволяющий создавать отладчики иинтерпретаторы моделей посредством задания операционной семантики визуальныхязыков. Кратко описываются существующие для этого формализмы (подробныйобзор см. в Приложении В), приводится описание подхода, выбранного к реализациив данной работе.

Рассматриваются особенности реализации подхода в рамкахплатформы QReal.4.2. Семантика языковВ теории языков программирования выделяют четыре основных типа семантик:операционная, денотационная, аксиоматическая и трансляционная. Подобноеделение существует и для визуальных языков.Денотационная семантика была описана в работе [142].

Обычно при такомподходе в качестве семантической области используются некоторые математическиеобъекты или функции, называемые денотациями (denotation), а соответствиеконструкций языка этим объектам задаётся рекурсивно, т.е. денотация длявыражениядолжнасоставлятьсяизденотацийподвыражений.Частоэтосоответствие задаётся при помощи λ-исчисления. Данный тип семантик являетсяматематически строгим и формальным, но в чистом виде порой не обладаетдостаточной степенью понятности для неспециалистов.Операционная семантика также является математически строгой и бывает двухтипов: структурная операционная семантика (семантика малого шага, [101]) иестественнаясемантика(семантикабольшогошага,[135]).Структурнаяоперационная семантика состоит из набора правил, при помощи которых64исполнение конкретной программы на данном языке будет представлено в видепоследовательности индивидуальных вычислительных шагов.

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

Онисостоят из набора правил преобразования моделей, с помощью которых модель наисходном языке переводится в модель на другом языке, для которого уже заданасемантика исполнения. Например, часто это сводится к генерации кода на языкеобщего назначения, для которых существуют компиляторы и отладчики (Java, C++,Python и т.п.). Такой подход, с одной стороны, требует от разработчика знаний сразув обеих областях (исходной и целевой), а с другой — является хорошовоспринимаемым, т.к.

понятия абстрактной исходной предметной области переходятв конкретные конструкции исполнимого языка.В приложении B и [42] рассмотрен также ряд конкретных подходов к заданиюсемантикивизуальныхиспользующихсявязыков,программныхпредложенныхсредствах.вразличныхСредствазаданияработахисемантикирассматриваются в первую очередь как инструмент автоматизированного созданияпошаговых интерпретаторов и отладчиков целевых языков, а также генераторовисходного кода по визуальным моделям.654.3.

Задание исполнимой семантики в QRealПо результатам исследования и анализа существующих способов заданиясемантики визуальных языков был предложен метод, реализованный применительнок платформе QReal [40, 43]. Он основан на правилах преобразованиях графов,задаваемых, как в DMM-подходе и AToM3 в графическом виде, а также имеетнекоторое подобие языка действий из xUML для задания операций, осуществляемыхпри выполнении правила.Рассмотрим основные особенности предлагаемого подхода.4.3.1. Семантическая модельПриформализациисемантикивизуальногоязыкаипоследующегоиспользования этой семантики для исполнения моделей может понадобитьсядобавитьэлементамданногоязыкадополнительныйнаборспецифическихатрибутов.

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

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

Любая модель на некотором визуальном языке представляется вQReal в виде логической и графической моделей, взаимосвязанных друг с другом(см. раздел 5.3.4). К данному разделению имеет смысл добавить новуюсемантическую модель, которая бы содержала эти новые специфические служебныеатрибуты и процедуры. По аналогии с логическими и графическими моделямидоступ к семантическим атрибутам элементов для интерпретаторов и генераторовдолжен осуществляться через специальное API репозитория (SemanticRepoApi).Также к семантике элементов возможен доступ из редактора семантики визуальногоязыка.4.3.2.

Редактор семантики визуального языкаРедактор семантики визуального языка генерируется автоматически также наоснове полученной на предыдущем шаге расширенной метамодели исходного языка.Семантика визуального языка в QReal представляет собой набор правилпреобразования графов, пошаговое применение которых к графу исходной моделипозволяет визуализировать процесс интерпретации или осуществить генерацию кодапо модели. При исполнении модели на каждом шаге выбирается правило снаивысшим приоритетом (если таких несколько, то берётся произвольное) илислучайное правило, которое может быть применено к модели, если приоритетыправил не заданы. Далее правило применяется в первом найденном подходящемместе. Принцип работы такого процесса напоминает выполнение алгоритмовМаркова на строках, а наличие приоритета позволяет упорядочить возможное67применение правил.Редактор семантики позволяет задавать правила преобразования моделейвизуально с помощью специального языка, состоящего из следующих элементов.●Элемент SemanticsRule является контейнером для всех остальных элементов.

Внего помещаются левые и правые части правил, при необходимостисовмещенные вместе (по аналогии с тем, как это описано в DMM-подходе, см.Приложение B). Задание факта создания и удаления элементов происходит припомощи добавления к ним меток “@new@” и “@deleted@” соответственно.●Связь Replacement позволяет задать факт замены одного элемента на другой (ссохранением всех связей, входящих и исходящих из заменяемого элемента).●Элемент ControlFlowMark используется в правилах для того, чтобы задатьтекущее положение потока управления (аналог токена в сетях Петри) —показать, какой элемент будет считаться текущим с точки зрения исполнениямодели после применения данного правила.

Существует два варианта егоиспользования — либо соединение элемента ControlFlowMark с целевымэлементом правила с помощью специальной связи ControlFlowLocation, либопомещение его внутрь целевого элемента как в контейнер (второй способ дляряда случаев позволяет создавать более компактные и наглядные правила). Вовремя выполнения модели, т.е. при применении очередного правила,происходит подсветка элементов, ассоциированных с элементами типаControlFlowMark в рамках данного правилах.●Элемент Initialization используется для определения типа семантики языка —будет ли она использоваться для создания интерпретатора и/или генераторакода по моделям.

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

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

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

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

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

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