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

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

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

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

Это единственный способ для других компонент узнать обизменениях в рабочей копии.Как показано на рис. 16, интерфейс плагина инструмента версионированияVersioningPluginInterface унаследован от трех других интерфейсов. Таким образом,каждый плагин, реализующий поддержку какой-либо VCS, должно состоять из трехчастей.●Функционал обычного плагина инструмента.●Реализация интерфейса инспектора WorkingCopyInspectionInterface. Например,в случае поддержки subversion метод onFileAdded() будет вызывать командуsvn add, а onFileRemoved() — команду svn remove.●РеализацияинтерфейсаабстрактнойVCS:BriefVersioningInterface,получениерабочейкопиисодержащегосудаленногооперациисервера,синхронизация рабочей копии с сервером, откат к выбранной версии и т.п.Этот интерфейс, по сути, и есть API плагинов версионирования, используемыйдругими компонентами в рамках графического интерфейса пользователя.Для удобства выполнения внешних команд над клиентами систем контроляверсийвмодулеqrutilsбылреализованклассExternalClientPluginBase,инкапсулирующий в себе механизм общения с внешними процессами, выдаваянаружу только методы по синхронному/асинхронному запуску этих процессов.88На основе модуля версионирования был реализован механизм визуальногоотображенияизмененийвыбраннойдиаграммымеждурабочейкопиейиопределенной версией на сервере.

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

17). Левая часть окнаотображает диаграмму, хранящуюся на сервере, правая — в рабочей копии.Элементы на диаграммах подсвечены в соответствии с их состоянием. Состояниеможет быть одним из следующих: “добавлено”, “удалено”, “изменено” или “безизменений”. На рисунке удаленные и добавленные элементы подсвечены зеленымцветом, модифицированные — оранжевым (цвета, соответствующие состояниям,могут быть изменены в диалоговом окне настроек QReal).Изменение значений свойств, не отображаемых визуально на диаграмме, можноотследить на вкладках в нижней части окна.89Рисунок 87. Окно визуального сравнения версий диаграммы5.4.5. Отладчики и интерпретаторы моделейДля поведенческих языков, описывающих систему в динамике (например,диаграммы деятельности UML 2 или язык блок-схем), очень полезными могут бытьотладчики и интерпретаторы, работающие на уровне моделей. Подобныеинструменты позволяют разработчику наглядно проследить ход работы заданногоим алгоритма и либо убедиться в его корректности, либо внести нужные изменения.Семантика таких языков обычно основывается на понятии токена исполнения иформализуется с помощью сетей Петри, причём класс поведенческих языковдостаточно широк, чтобы стоило потратить усилия на формализацию их семантики(например, упоминавшиеся выше диаграммы деятельности UML 2 и блок-схемыимеют именно такую семантику).90В QReal в данном направлении реализовано несколько инструментов.●Интерпретатормоделей, позволяющийпошагово«исполнять» модель,подсвечивая текущий блок и отображая текущие состояния переменных, еслиэто применимо для данного языка.●Отладчик сгенерированного кода с привязками к диаграммам.Описанные инструменты были реализованы «вручную» в виде плагиновинструментов QReal, однако в дальнейшем создание интерпретаторов былоавтоматизировано путем описания операционной семантики разрабатываемого языка(как описано в главе 4).Создание отладчиков моделей с привязкой к отладке исходного кода все ещёостается неавтоматизированной задачей ввиду большого числа целевых языковгенерации и существующих отладчиков/интерпретаторов для них.5.4.6.

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

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

Возможностьсоздавать такие генераторы может быть полезна, если разработчик по каким-топричинам выбирает язык программирования, отличный от C++.Независимоот типагенератора получение данныхпроисходитчерезинтерфейсы логической (и, реже, графической) моделей репозитория. В случаегенератора, реализованного на отличном от C++ языке программирования,взаимодействие с библиотекой репозитория может происходить, например,посредством инструментария ZeroC ICE [2], обеспечивающего взаимодействие кодана различных языках программирования.В области модельно-ориентированной разработки с генераторами кода тесносвязан вопрос о возможности циклической разработки (round-trip engineering [55]).Основная проблема, решаемая данным подходом, — синхронизация изменений,внесенных в сгенерированный код, с исходными моделями.

Эта задача далеко нетривиальна, и разработчики практически каждого инструмента моделированиявынуждены как-то решать ее для себя [54]. Однако, как было описано в главе 1,предметно-ориентированное моделирование постулирует отказ от «ручного»изменения сгенерированного кода — проектировщик ведет работу только смоделями,покоторымавтоматическигенерируетсякод,нетребующийпоследующих изменений. При необходимости внести в получаемый исходный кодизменениянеобходимолибопоправитьисходнуюмодельипроизвестиперегенерацию кода (если это логическое изменение), либо исправить генераторкода (если требуемое изменение — это исправление ошибки), либо если в языке нехватает выразительных средств для описания требуемого изменения — поднятьвопрос о расширении языка и инструментов, поддерживающих его.Для платформы QReal существует несколько механизмов для упрощения92процесса создания генераторов кода.

Один из них основан на специализированномтекстовом языке [38, 39], позволяющем описывать логику генерации. Это позволяетускорить процесс создания генератора, однако всё еще требует от пользователясерьёзных навыков программирования. Другой способ создания генераторовподразумевает задание исполнимой семантики языка (см. главу 4). Генератор в этомслучае по сути является интерпретатором, обходящим (возможно неоднократно)диаграммы, на каждом элементе осуществляя запись исходного кода в выходнойфайл.5.4.7. Механизм рефакторингов моделейРефакторинг определяют как изменение внутренней структуры системы длятого, чтобы сделать ее проще для понимания и внесения изменений.

При этомвнешнее поведение такой системы не должно меняться. При переносе уровняабстракции с кода на визуальные модели имеет смысл перенести на уровень моделейи понятие рефакторинга. Рефакторинг на уровне моделей является довольномолодой областью знания, многие вопросы в ней остаются открытыми длядальнейших исследований. В настоящее время очень немногие инструментарииспособны осуществлять интегрированную поддержку рефакторинга моделей (см.главу 2). Кроме того, класс моделей, для которых реализована поддержкарефакторинга, весьма ограничен: чаще всего исследования ведутся применительнолишь к диаграммам классов UML.В настоящее время вопрос организации рефакторингов моделей в QReal все ещеисследуется, однако уже сейчас реализована инфраструктура и несколько примеровавтоматического преобразования моделей: групповое изменение имени элементов,инвертирование выбранных связей на диаграмме, выделение набора элементов вподпрограмму и некоторые другие. Несложно заметить, что практически все этирефакторинги применимы для произвольных языков.С точки зрения пользователя процесс применения рефакторинга выглядит93следующим образом: с помощью соответствующего пункта меню необходимооткрыть окно рефакторингов в QReal и выбрать интересующее правило (см.

рис. 18).Правило представляется в виде левой и правой части, между которыми находитсястрелка, символизирующая преобразование модели. Левая часть задает шаблонпоиска элементов в моделях, а правая часть описывает то, во что преобразуетсяэлемент (или группа элементов для более сложных правил), подходящий под шаблонлевой части.Нажатие кнопки “Найти” приводит к поиску элементов, подходящих подшаблон левой части правила. Если было найдено хотя бы одно соответствие,становится активной кнопка “Применить”, которая осуществляет выбранноепреобразование модели.Рисунок 18.

Окно применения рефакторингов в QRealС архитектурной точки зрения модуль применения рефакторингов представленотдельнымплагиноминструментовQReal.Правилаявляютсяотдельнымидиаграммами, хранящимися в репозитории. Для осуществления поиска по моделямиспользуется базовый механизм трансформации графов QReal, вынесенный в модульqrutls (данный механизм используются и другими модулями QReal, например, привыполнении правил исполнимой семантики языка).945.4.8. Механизм проверки правил ограниченийНесмотря на то, что визуальные программы в большинстве своем нагляднее ипроще для понимания, чем текстовые, модели также могут содержать в себе ошибки.Часть ошибок могут быть синтаксическими (например, из элемента “Начало”диаграмм деятельности UML должна выходить только один связь, и не должновходить ни одной), так и семантическими (поле “Возраст” элемента “Человек” недолжно быть отрицательным).

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

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

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