Введение
Модели в настоящее время являются частью все большего числа инженерных процессов (например, разработки программного обеспечения). Однако в большинстве случаев они по-прежнему ограничиваются простой ролью документации, а не активно интегрируются в инженерный процесс.
В отличие от этого пассивного подхода, область Model-Driven Engineering (MDE) стремится рассматривать модели как сущности первого класса. Она также считает, что различные виды обрабатываемых элементов (такие как инструменты, репозитории и т. д.) могут рассматриваться и представляться как модели. Подход, основанный на моделях, предполагает предоставление проектировщикам и разработчикам моделей набора операций, предназначенных для манипулирования моделями.
В этом контексте преобразование модели представляется центральной операцией для обработки модели: оно направлено на то, чтобы сделать возможным указание способа создания ряда целевых моделей на основе набора исходных моделей. В рамках инженерии, основанной на моделях, предполагается, что преобразования модели, как и любой другой инструмент, основанный на моделях, могут быть смоделированы, что означает, что их следует рассматривать как модели.
Целью этого раздела является предоставление обзора основных концепций MDE с особым акцентом на преобразование моделей. С этой целью в нем сначала представлена организация проектирования на основе моделей . В этом первом разделе рассматриваются механизмы определения моделей, составляющие ядро области MDE: в нем вводятся понятия моделей , метамоделей и метаметамоделей , а также отношение соответствия, связывающее эти различные артефакты. Вторая часть раздела более подробно рассматривает преобразование моделей. В нем дается обзор архитектуры концептуального преобразования моделей и подробно описывается, как эта концептуальная архитектура сопоставляется с языком ATL.
Проектирование на основе моделей
Модели составляют основные части Model Driven Engineering (MDE). Действительно, в этой области модель определяется в соответствии с семантикой модели моделей, также называемой метамоделью . Модель, которая уважает семантику, определенную метамоделью, считается соответствующей этой метамодели. В качестве примера, Рисунок 1 иллюстрирует отношение соответствия между моделью сети Петри и метамоделью сетей Петри.
Рисунок 1. Отношение соответствия

Рисунок 2. Метаотношения

Рисунок 3. Проектирование на основе моделей

Как и каждая модель, описанная модель сети Петри состоит из ряда отдельных элементов модели. В контексте сети Петри эти элементы модели соответствуют местам, переходам и дугам, которые составляют модель. Эти различные элементы, а также способ их связи определяются в области действия метамодели сети Петри. Точно так же, как модель соответствует своей метамодели, существует связь между элементами модели и элементами ее метамодели. Эта связь, называемая мета , связывает каждый элемент модели с элементом метамодели, который он создает. Рисунок 2 иллюстрирует некоторые из существующих метасвязей между элементами модели сети Петри и элементами метамодели сети Петри.
На этом этапе следует вспомнить, что метамодель, прежде чем стать метамоделью, является моделью. Это подразумевает, что она должна соответствовать своей собственной метамодели. С этой целью архитектура, управляемая моделью, определяет третий уровень моделирования, который соответствует метаметамодели , как показано на рисунке 3 .
Метаметамодель направлена на введение семантики, которая требуется для спецификации метамоделей. Как модель со своей метамоделью, метамодель соответствует метаметамодели. Обратите внимание, что метаметамодель обычно самоопределяется, что означает, что она может быть определена посредством своей собственной семантики. В таком случае метаметамодель соответствует самой себе.
Доступно несколько технологий метаметамоделей. Механизм преобразования ATL в настоящее время обеспечивает поддержку двух из этих существующих технологий: Meta Object Facilities ( MOF 1.4 ), определенных OMG, и метаметамодель Ecore (Budinsky, F., Steinberg, D., Ellersick, R., Grose, T. Eclipse Modeling Framework, Глава 5 "Ecore Modeling Concepts". Addison Wesley Professional. ISBN: 0131425420, 2004), определенных Eclipse Modeling Framework (EMF) . Это означает, что ATL может обрабатывать метамодели, которые были указаны в соответствии с семантикой MOF или Ecore.
Трансформация модели
В рамках инженерии на основе моделей преобразование моделей направлено на предоставление средства для указания способа создания целевых моделей из ряда исходных моделей. Для этой цели оно должно позволить разработчикам определять способ сопоставления и навигации элементов исходной модели для инициализации элементов целевой модели. Формально простое преобразование моделей должно определять способ создания модели Mb, соответствующей метамодели MMb, из модели Ma, соответствующей метамодели MMa. Как ранее подчеркивалось, основной особенностью инженерии моделей является рассмотрение, насколько это возможно, всех обрабатываемых элементов в качестве моделей. Поэтому само преобразование моделей должно быть определено как модель. Эта модель преобразования должна соответствовать метамодели преобразования, которая определяет семантику преобразования модели. Как и другие метамодели, метамодель преобразования должна, в свою очередь, соответствовать рассматриваемой метаметамодели.

Эта схема суммирует весь процесс преобразования модели. Модель Ma, соответствующая метамодели MMa, здесь преобразуется в модель Mb, которая соответствует метамодели MMb. Преобразование определяется моделью преобразования модели Mt, которая сама соответствует метамодели преобразования модели MMt. Эта последняя метамодель, наряду с метамоделями MMa и MMb, должна соответствовать метаметамодели MMM (такой как MOF или Ecore). ATL — это язык преобразования модели, который позволяет указать, как одна (или несколько) целевых моделей могут быть получены из набора исходных моделей. Другими словами, ATL вводит набор концепций, которые позволяют описывать преобразования модели.

Эта схема дает обзор преобразования ATL (Author2Person), которое позволяет генерировать модель Person, соответствующую метамодели MMPerson, из модели Author, соответствующей метамодели MMAuthor. Разработанное преобразование, выраженное с помощью языка ATL, соответствует метамодели ATL. В этом примере три метамодели (MMAuthor, MMPerson и ATL) выражены с использованием семантики метаметамодели Ecore.