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

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

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

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

Даннаяфункциональность может понадобиться, например, при визуализации различныхформальных алгоритмов на графах.Заданная семантика визуального языка может быть предназначена как для69интерпретации и отладки, так и для генерации полноценного кода по моделям.Таким образом, в зависимости от вида семантики в настройках модуля заданиясемантики нужно указывать разное время задержки между шагами исполнения, т.е.применения правил к модели.Рассмотрим пример одного из правил исполнимой семантики языка блок-схем,отображенного на рис. 12.Рисунок 127.

Пример правила преобразования графа моделиДанное правило позволяет начать интерпретацию модели и состоит изследующих элементов:●элемента SemanticsRule с идентификатором “Start”, являющегося контейнеромдля всех остальных элементов правила;●элемента InitialNode языка блок-схем, отображаемого на диаграмме в видечерного круга;●элемента Wildcard, отображаемого в виде звезды;●связи ControlFlow языка блок-схем, соединяющей элементы InitialNode иWildcard;●двух элементов ControlFlowMark, отображаемых незакрашенными кругамименьшего размера;●двух связей ControlFlowLocation, соединяющих элементы ControlFlowMark сэлементами InitialNode и Wildcard.Данное правило означает следующее — необходимо найти в графе исполняемоймодели элемент типа InitialNode (начальный узел блок-схемы), который в настоящее70является текущим элементом исполнения (на это указывает связь этого элемента сControlFlowMark), и передать исполнение элементу модели, который соединен сInitialNode связью ControlFlow.

Последнее осуществляется за счёт того, что элементControlFlowMark,ассоциированныйсInitialNodeбудетудалён(атрибут“@deleted@”), зато будет создан новый ControlFlowMark, и он будет ассоциирован сэлементом, связанным с InitialNode. При этом тип элемента, которому передастсяисполнение, в данном случае совершенно не важен, поэтому используется элементWildcard, который при поиске шаблона в модели будет сопоставлен с элементомлюбого типа.4.3.3. Реакция на применение правилаПомимографическойсоставляющей,которуюсоставляютправилапреобразования графов, в семантике визуального языка в QReal также присутствуети текстовая часть в виде начальной инициализации интерпретации, ограничений иреакций на применение правил.

Рассмотрим каждую из них более подробно.На каждое исполнение модели создаётся новый экземпляр интерпретаторавыбранного текстового языка6, использующегося для задания поведения элементов,разного рода ограничений на элементы и реакций на применение правил. Такимобразом, определённые в этом интерпретаторе сущности (переменные, функции ит.д.) доступны в любой части текстовой составляющей семантики визуальногоязыка. Задать начальное состояние интерпретатора (начальные значения общихпеременных, общие функции и т.п.) перед непосредственным исполнением моделиможно при помощи инициализации интерпретации. Это код на интерпретируемомязыке, который записывается в элементе Initialization и гарантированно будетисполнен до применения первого подходящего правила преобразования графов.6В настоящее время в качестве текстового языка может быть использован Python или некий собственный язык,используемый в редакторе блок-схем, созданном на базе QReal (см.

раздел с описанием блок-схем). Также ведетсяработа над реализацией возможности использования языка QtScript, входящего в состав инструментария Qt.71Ограничения на применение правил нужны для задания более сложных условий,чем соответствие типу или равенство определенному значению заданного атрибута.Такие ограничения представляют собой функцию на выбранном интерпретируемомязыке, возвращающую значение логического типа и имеющую доступ к значенияматрибутов элементов правила (а также к прочим сущностям, определённым приинициализации или в ходе интерпретации при выполнении других правил). Еслиограничение на соответствующем правилу участке модели возвращает ложноезначение, то это правило не может быть применено для данного подграфа.Например, в случае моделей на языке блок-схем для создания правила переходапотока исполнения с условного элемента далее по одной из веток, соответствующейистине, в ограничение на применение правила можно поместить значение типасвязи, которая из него выходит и условие равенства истине, записанного в атрибутесоответствующего элемента.Для исполнения поведения элементов правила и организации их взаимодействиямежду собой, а также организации взаимодействия правил между собой быловведено понятие реакции на применение правила.

Это процедура на выбранномтекстовом языке, которая имеет доступ к значениям атрибутов элементов правилакак на чтение, так и на запись. Как и ограничения, реакция может использовать ужеопределённые (например, при инициализации) объекты и любой другой функционал,доступный данному языку. Исполняется же этот код сразу после непосредственногосоздания новых и до удаления старых элементов согласно правилу.4.3.4.

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

Основными подзадачами, которые были72решены при реализации данного модуля, являются создание алгоритма поискаподграфа в графе и корректное размещение новых элементов в модели. Разберем ихподробнее.4.3.4.1. Поиск подграфа моделиСуществует ряд открытых программных средств, предназначенных дляприменения преобразований графов и автоматической верификации моделейотносительно итоговой системы преобразований. Среди них GROOVE [12, 137],AGG [155], GenGED [11, 65] и некоторые другие (см., например, обзор подобныхсредств [46]).

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

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

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

На данный момент такие связи автоматически не удаляются,в идеале же это можно сделать настраиваемым.Самой главной сложностью корректного преобразования модели согласноправилу является автоматическая раскладка элементов на диаграмме после создания,замены и удаления элементов. Это происходит из-за того, что новые элементы недолжны перекрывать старые, т.к. от этого теряется информативность и читаемостьдиаграммы. Удаление и замену элементов можно производить практически всегдабез перераскладки элементов (в этом случае добавленный элемент имеет те жекоординаты, что и заменяемый). Создание же нового элемента требует расчёта егоместа на диаграмме.

В текущем решении новые элементы либо просторасполагаются правее всех остальных на диаграмме, либо после добавленияэлементаосуществляетсяавтоматическоеперераскладываниеэлементовнадиаграмме (позиции элементов рассчитываются с помощью утилиты dot израспространенного пакета визуализации графов graphviz [10]).4.4.

Архитектура реализованного решенияПредложенный способ задания семантики визуальных языков и визуальнойинтерпретации моделей был реализован в рамках проекта QReal в виде отдельногоподключаемого модуля, а части, отвечающие за поиск подграфов в модели и за74добавление различных новых атрибутов и элементов в метамодель, были вынесены вмодуль qrutils (см. раздел 5.3), чтобы другие компоненты системы (например,модуль задания и осуществления рефакториингов моделей, см. раздел 5.4.7) принеобходимости также могли ими воспользоваться.Для корректной работы реализованного визуального интерпретатора взапущеннойсистемедолженприсутствоватьмодульметаредактора, чтобыобеспечить возможность сборки сгенерированного по визуальному языку редакторасемантики. Также данный плагин зависит от сторонней свободной библиотекиQScintilla [1], предоставляющей удобный текстовый редактор с автодополнением иподсветкойсинтаксисаииспользующейсяприработестекстовымиинтерпретируемыми языками в реакции на применение правил, ограничениями и т.п.Наличие в операционной системе интерпретатора языка Python не обязательно, ножелательно, т.к.

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

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

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

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