Диссертация (Методы и средства разработки графических предметно-ориентированных языков), страница 12
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и средства разработки графических предметно-ориентированных языков". PDF-файл из архива "Методы и средства разработки графических предметно-ориентированных языков", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 12 страницы из PDF
Ограничения определяются как набор правил в мета-57модели, правила генерации описываются на специальном текстовом предметноориентированном языке с визуальным представлением иерархии вызовов правил.Процесс итеративен, все изменения, вносимые в метамодель, тут же применяютсяк модели. Если вносимое в метамодель изменение конфликтует с существующимимоделями, выдаётся предупреждение. Существует визуальный язык для заданияметамодели, но его использование не обязательно, причём в документациии обучающих материалах визуальный язык, как правило, не используется —метамодель редактируется с помощью диалоговых окон. Метамодель можно доопределённой степени менять прямо из редактора модели: задавать сущностямновые свойства, менять существующие, редактировать их внешний вид с помощью графического редактора.
Однако добавить новую сущность в язык илиудалить существующую можно только через редактор метамодели. Посколькуизменения в метамодели тут же отражаются в редакторе модели, это позволяеторганизовать работу над языком короткими итерациями с непосредственнымучастием эксперта, как в случае с AgentSheets, но пользовательский интерфейсMetaEdit+ довольно сложен, что требует наличия подготовленного специалистапо созданию языков.
Инструмент непосредственно поддерживает только созданиеи изменение языка, в работах авторов имеются методологические рекомендациипо действиям в других фазах жизненного цикла, но непосредственно в инструментарии они не поддержаны.2.3.2. Eclipse Modeling ProjectЕщё одна DSM-платформа, ставшая стандартом де-факто для исследованийв области предметно-ориентированного визуального моделирования — EclipseModeling Project (EMP) [79]. Фактически, это объединение большого количестваразличных библиотек и инструментов, часть которых развивается независимои предназначается не только для визуального моделирования. Проект строитсяна базе платформы Eclipse [80], имеет открытый исходный код и большоесообщество разработчиков. На базе этого проекта существует несколько коммерческих инструментов, например, DSM-платформа Borland Together [49], CASEсистема Rational Software Architect [30], DSM-платформа Obeo Designer [57], атакже несколько исследовательских и open-source проектов в области предметноориентированного моделирования, например, MOFLON [2], Sirius [98].
При этом58проект активно развивается, появляются новые библиотеки и средства создания предметно-ориентированных языков (например, библиотека для созданияграфических редакторов Graphiti [81] и генератор редакторов по текстовомуописанию Spray [43], построенный поверх этой библиотеки). Это создаёт большиесложности в использовании и изучении этого проекта, поскольку имеющаясядокументация фрагментарна и сильно отстаёт от ведущейся разработки, публикации, как правило, посвящены отдельным подпроектам, и имеется лишь немногоматериала, посвящённого проекту в целом (например, [24], и статья на русскомязыке [135]).В качестве метаязыка в EMP используется язык Ecore, который представляетсобой близкую к стандарту реализацию MOF (точнее, его варианта EMOF),метаязыка UML.
Элемент создаваемого языка представляется в метамоделиобъектом метакласса EClass, у него могут быть атрибуты, задаваемые объектамиметакласса EAttribute, операции, задаваемые объектами EOperation, и ассоциации, задаваемые объектами EReference. Атрибуты имеют тип, моделируемый спомощью метакласса EDataType. Кроме того, имеется возможность добавлятьаннотации элементам (которые могут быть использованы при генерации) спомощью метакласса EAnnotation.Процесс разработки предметно-ориентированного языка, предполагаемыйпри использовании EMP, следующий: сначала создаётся проект плагина в Eclipse,затем в этом проекте определяется модель абстрактного синтаксиса (метамодель),модель конкретного синтаксиса, преобразования моделей в модели и моделейв текст (если требуется), текстовый конкретный синтаксис (если требуется),по результатам генерируются редакторы, генераторы и прочие инструменты,тестируются, процесс повторяется итеративно.
По окончании разработки плагинредактор дополняется различными мастерами, графикой и т.д., формируетсяинсталляционный пакет.Абстрактный синтаксис языка может быть задан с помощью графическойметамодели, либо импортирован из XSD-схемы, диаграммы классов UML илидаже исходного кода на Java. Это оказывается довольно удобным, посколькупозволяет переиспользовать существующие наработки: например, для языков,базирующихся на XML, XSD-схемы часто доступны как часть стандарта.
Однакопо метамодели средствами EMF могут быть сгенерированы только заглушки для59классов предметной области, механизм оповещений об изменениях в модели ипростой редактор, представляющий модель в виде дерева. Конкретный синтаксисзадаётся с помощью библиотеки GMF, которая сама создавалась как отдельнаяDSM-платформа, и использует предметно-ориентированный подход к разработке.Для задания формы фигур надо создать модель определения графики (Graphicaldefinition model).
Для описания палитры элементов и панелей инструментов,используемых в создаваемом визуальном редакторе, необходимо создать модель инструментов (Tooling model). После этого надо связать эти две моделис моделью абстрактного синтаксиса, созданной с помощью EMF, с помощьюмодели соответствия (Mapping model) и определить модель генерации (Generatormodel), где определить все оставшиеся необходимые для генерации редакторасвойства. Редактирование всех моделей производится с помощью специальнопредназначенных для этого мастеров.Определение текстового синтаксиса для создаваемых языков возможно спомощью компонент Xtext и TCS, первая из которых позволяет задавать синтаксис, используя EBNF2 , вторая — путём связывания элементов конкретногосинтаксиса с элементами метамодели.
Определение правил преобразования модели в модель или модели в текст возможно с помощью языков QVTи ATL.Такие преобразования могут использоваться для определения рефакторингов надмоделями, миграции моделей (то есть для преобразования моделей, созданных всоответствии со старой версией метамодели, в модели, соответствующие новойметамодели), объединения двух или нескольких моделей в одну модель или генерации кода на текстовых языках. Все преобразования описываются на текстовыхязыках.
Есть и специальные средства для задания правил генерации (компонентыXpand/Xtend [83]), которые также в текстовом виде позволяют описывать правилагенерации в виде шаблонов кода на целевом языке, дополненных императивнымязыком, задающим правила обхода модели и генерации параметризуемых измодели фрагментов.
Ограничения на модели также задаются в текстовом видена языке OCL. Общая схема создания предметно-ориентированного решения вEclipse Modeling Project представлена на рисунке 2.2.2Extended Backus-Naur Form, Расширенная форма Бэкуса-Наура, URL: http://www.cl.cam.ac.uk/ mgk25/iso-14977.pdf (дата обращения 03.09.2014)60Рис.
2.2: Процесс создания DSM-решения на EMP.Как видно, процесс создания DSM-решений на EMP сложен сам по себе идополнительно усложняется слабой связностью наличествующих компонентов.Существует даже отдельный проект по объединению всего существующего в единую технологию (Modeling Amalgamation Project [82]), однако новые компонентыпродолжают появляться, технология активно развивается, и использование её всёещё требует больших усилий на исследование и выбор доступных средств (далеконе все существующие в рамках EMP проекты достаточно зрелые для реальногоиспользования). Кроме того, наличествующие средства, помимо усилий на создание большого количества разных моделей и текстовых спецификаций, по которымбудет сгенерировано DSM-решение, зачастую требуют и ручного кодирования наязыке Java.
Таким образом, EMP используется в основном как база для разработкиболее доступных для конечного пользователя инструментов.612.3.3. Платформа Generic Modeling EnvironmentПлатформа Generic Modeling Environment (GME) [31, 105] является одной изсамых известных академических разработок в области создания DSM-решений.Эта платформа имеет расширяемую модульную архитектуру, благодаря чему наеё основе было создано несколько исследовательских и промышленных инструментов (например, средство симуляции встроенных систем MILAN [33], средстводля аспектно-ориентированного задания ограничений на модели C-SAW [91]).Проект имеет открытый исходный код, разрабатывается в основном на языке C++,до сих пор развивается.Визуальные языки в GME задаются с помощью визуальных метамоделей (авторы GME рассматривают задачу разработки визуального языка как просто ещёодну задачу, к которой может быть применён предметно-ориентированный подход).