Введение

Язык трансформации моделей ATL (ATLAS Transformation Language) — это язык и инструментарий для трансформации моделей, разработанный и поддерживаемый компаниями OBEO и AtlanMod. Он был инициирован командой AtlanMod (ранее известной как ATLAS Group). В области проектирования, управляемого моделями (MDE), ATL позволяет создавать набор целевых моделей на основе набора исходных моделей. Распространяемый под лицензией Eclipse Public License, ATL является M2M-компонентом (Eclipse) в рамках Eclipse Modeling Project (EMP).

Обзор

ATL — это язык преобразования моделей (MTL), разработанный OBEO и INRIA в ответ на запрос предложений QVT. QVT — это стандарт Object Management Group для выполнения преобразований моделей. Он может использоваться для синтаксического или семантического преобразования. ATL построен на базе виртуальной машины преобразования моделей. ATL является ответом исследовательской группы ATLAS INRIA & LINA на запрос предложений (RFP) OMG MOF/QVT. Это язык преобразования моделей, специфицированный как метамоделью, так и текстовым конкретным синтаксисом. Он сочетает в себе декларативный и императивный подходы. Предпочтительным стилем написания преобразований является декларативный, что позволяет просто выражать простые соответствия. Однако, предусмотрены императивные конструкции для случаев, когда некоторые соответствия слишком сложны для декларативного описания. Программа преобразования ATL состоит из правил, определяющих, как элементы исходной модели сопоставляются и используются для создания и инициализации элементов целевых моделей.

Архитектура

Была определена и реализована виртуальная машина, ориентированная на преобразование моделей, для обеспечения поддержки выполнения ATL с сохранением определенного уровня гибкости. ATL становится исполняемым, по сути, благодаря наличию конкретного преобразования из его метамодели в байт-код виртуальной машины. Следовательно, расширение ATL заключается главным образом в определении семантики выполнения новых языковых конструкций в терминах простых инструкций: базовых операций над моделями (создание элементов и присвоение свойств).

Пример

Программа ATL (T1. atl здесь) принимает модель Ma.xmi в качестве входных данных и генерирует модель Mb.xmi в качестве выходных данных. Обе модели могут быть представлены в стандарте OMG XMI. Модель Ma соответствует метамодели MMa.km3. Модель Mb соответствует метамодели MMb.km3. Нотация KM3 – это простой и нейтральный язык спецификации метамоделей. Сама программа ATL (T1. atl здесь) также является моделью, поэтому она соответствует метамодели (метамодели ATL), которая не представлена здесь. Программа ATL состоит из заголовка, набора функций без побочных эффектов, называемых вспомогательными, и набора правил.