Диссертация (Методы и средства разработки графических предметно-ориентированных языков), страница 13

PDF-файл Диссертация (Методы и средства разработки графических предметно-ориентированных языков), страница 13 Технические науки (46565): Диссертация - Аспирантура и докторантураДиссертация (Методы и средства разработки графических предметно-ориентированных языков) - PDF, страница 13 (46565) - СтудИзба2019-06-29СтудИзба

Описание файла

Файл "Диссертация" внутри архива находится в папке "Методы и средства разработки графических предметно-ориентированных языков". PDF-файл из архива "Методы и средства разработки графических предметно-ориентированных языков", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.

Просмотр PDF-файла онлайн

Текст 13 страницы из PDF

Метаязык ориентирован на иерархическую декомпозицию моделей: любойсоставной элемент языка является моделью сам по себе и задаётся метаклассомModel. Элементы, которые не могут иметь составных частей, называются атомами(метакласс Atom). Модель может состоять из подмоделей и атомов, при этомкаждый атом внутри модели имеет роль (метакласс Role): роли задают «гнёзда»внутри модели, куда пользователь может вставлять различные подмодели иатомы. Управление отображением частей модели осуществляется с помощьюметакласса Aspect — каждая модель имеет предопределённый набор аспектов,каждая часть может быть видима или скрыта в каком-либо аспекте.

Каждаясущность языка имеет набор «основных» аспектов, в которых она может бытьсоздана или удалена. Связи между объектами задаются с помощью метаклассаConnection. Связываемые элементы модели должны иметь одного родителя виерархии вложенности и быть одновременно видимыми в одном аспекте. Еслитребуется связать элементы, относящиеся к разным моделям, используются невизуальные ссылки, описываемые в метамодели метаклассом Reference. Ссылкавыглядит как обычный объект и может использоваться в какой-либо роли вмодели, но на самом деле она представляет объект, находящийся где-то ещё, поаналогии со ссылками или указателями в текстовых языках программирования.Возможно также определение N-арных отношений, задаваемых в метамоделиметаклассом Set. Отношения, атомы, ссылки, связи, модели могут иметь атри-62буты, задаваемые метаклассом Attribute, и ограничения, задаваемые метаклассомConstraint.

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

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

В качестве конкретного синтаксиса используетсясинтаксис диаграммы классов UML, который может быть расширен иконками ицветом. Специальных средств для задания правил генерации или преобразованиямоделей в среде нет, имеется развитый программный интерфейс, с помощьюкоторого авторы DSM-решений могут реализовать свои инструменты. Именнотак реализован генератор редакторов самого GME — отдельный плагин,который работает с метамоделью через API и генерирует файл с описаниемпарадигмы (собственно, предметно-ориентированного редактора), которыйпотом может быть загружен в среду. Такой подход, хоть и позволяет обеспечитьдостаточно быстрое прототипирование визуального языка, требует знания APIGME и существенных усилий в «ручном» программировании, чтобы создатьполноценное решение.

Автоматическая миграция моделей при измененииметамоделей также не поддерживается, таким образом, эволюцию предметноориентированного решения приходится организовывать также вручную.63Существует отдельный проект GReAT [32], предоставляющий возможностидля описания преобразования моделей в GME.2.3.4. Платформа PSL/PSAПлатформаPSL/PSA(ProblemStatementLanguage/ProblemStatementAnalyzer) [77] является самой старой из известных автору систем, которыепозволяют создавать специализированные языки программирования, являясьв некотором смысле самой старой из известных DSM-платформ.

В обзор онавключена прежде всего потому, что представляет несомненный историческийинтерес. Её разработка началась в 1968 году и продолжается до сих пор3 . Системапредназначается для сбора и анализа требований к программному обеспечению,и использовалась в некоторых крупных проектах. Система содержит в себетекстовый язык описания информационных систем (PSL), репозиторий, гдехранятся описания и часть, отвечающую за анализ и генерацию отчётов порепозиторию (PSA).В PSL система состоит из объектов, объекты имеют свойства и могут бытьсвязаны между собой отношениями. Эта простая модель специализируется дляопределённого класса систем, например, для информационных систем, так, что вних можно использовать только предопределённые объекты и отношения (то есть,по сути, создаются метамодели специализированных языков).

Описание системысостоит из довольно большого числа (порядка 8) различных видов моделей,каждая из которых описывает свой аспект системы. Например, есть отдельноеописание формата ввода-вывода системы, описывающее её взаимодействие свнешним миром. По этим моделям могут генерироваться различные отчёты втекстовой или в графической (псевдографической) форме (поэтому в каком-тосмысле её можно отнести к визуальным средствам).2.3.5. Платформа AToM3Платформа AToM3 [44] — это ещё один пример академической разработки,предназначенный прежде всего для изучения преобразования моделей. Про3По данным http://www.pslpsa.com/, система перерабатывается на современные технологии, а по даннымhttp://requirementsanalytics.com/index.php/consulting-and-training/pslpsa существует проект по возрождению этой системы как ПО с открытым исходным кодом64ект имеет открытые исходные коды, реализован на языке Python, отличаетсянестабильностью и неудобностью пользовательского интерфейса, тем не менее,широко известен в научном сообществе, имеется большое количество публикаций(например, [96]).

Ныне не развивается, авторы использовали полученный опытпри разработке системы MetaDepth, описанной выше.В качестве метаязыка в AToM3 используется визуальный язык «сущностьсвязь», позволяющий в виде сущностей с атрибутами задавать сущности предметной области и в виде связей описывать взаимосвязи между ними. Имеется такженесложный векторный редактор, позволяющий описывать конкретный синтаксисэлементов. По описанию метамодели генерируется код редактора на языке Python,после чего редактор может быть загружен в среду.

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

Таким же образом реализуется икодогенерация: графовая грамматика задаёт продукции, не совершающие содержательных преобразований, а код на текстовом языке генерируется как побочныеэффекты выполнения правил.Таким образом, цикл разработки DSM-решения на AToM3 состоит из определения метамодели языка, определения конкретного синтаксиса, определенияправил преобразования моделей, генерации редактора и тестирования. Однако,среда недостаточно зрела для промышленного использования и подходит толькодля разработки прототипов.652.3.6. Платформа Microsoft Modeling SDKТехнология Microsoft Modeling SDK [15] более известна в научном сообществе как Microsoft DSL Tools и с начала своего существования (2003 г.) успеланесколько раз сменить название. Технология является подключаемым модулем ксреде разработки Microsoft Visual Studio [53] и доступна для бесплатного скачивания с сайта Microsoft (при этом сама среда Visual Studio платна для коммерческогоиспользования).

Среда позволяет прямо в Visual Studio в графическом видезадать метамодель создаваемого языка, описать внешний вид элементов, задать втекстовом виде правила генерации и ограничения и сгенерировать подключаемыймодуль с редактором языка и генератором, который можно запустить в VisualStudio. Технология требует установленной Visual Studio и для создания, и дляиспользования предметно-ориентированных решений. Тем не менее, зрелостьтехнологии и хорошая интеграция её в Visual Studio делают её весьма привлекательной для промышленных разработчиков.Метамодель задаётся на метаязыке, напоминающем диаграммы классов UML— поддерживаются отношения между сущностями, свойства сущностей, наследование как сущностей, так и связей. Интересной особенностью метаязыкаявляется то, что метамодель рисуется всегда в виде дерева, упорядоченногопо связям между сущностями (вложенность или наличие связи), и если графметамодели не допускает представление в виде дерева (как, например, приналичии циклических отношений), одну сущность нужно разместить на диаграмме метамодели несколько раз.

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