Диссертация (Методы и средства разработки графических предметно-ориентированных языков), страница 13
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и средства разработки графических предметно-ориентированных языков". 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— поддерживаются отношения между сущностями, свойства сущностей, наследование как сущностей, так и связей. Интересной особенностью метаязыкаявляется то, что метамодель рисуется всегда в виде дерева, упорядоченногопо связям между сущностями (вложенность или наличие связи), и если графметамодели не допускает представление в виде дерева (как, например, приналичии циклических отношений), одну сущность нужно разместить на диаграмме метамодели несколько раз.