QVT - QVT

Архитектура QVT, как показано в стандарте OMG

QVT (Запрос / Просмотр / Преобразование) - стандартный набор языков для преобразование модели определяется Группа управления объектами.[1]

Обзор

Преобразование модели это ключевой метод, используемый в управляемая моделями архитектура. Как указывает название QVT, стандарт OMG охватывает трансформации, представления и запросы вместе. Запросы модели и представления модели можно рассматривать как особые виды преобразования модели при условии, что мы используем достаточно широкое определение преобразования модели: преобразование модели - это программа, которая работает с моделями.

Стандарт QVT определяет три языка преобразования модели. Все они работают на моделях, соответствующих требованиям Мета-объектный объект (MOF) 2.0 метамодели; состояния преобразования, в которых используются метамодели. Преобразование в любом из трех языков QVT само по себе может рассматриваться как модель, соответствующая одной из метамоделей, указанных в стандарте. Стандарт QVT объединяет OCL 2.0, а также расширяет его обязательными функциями.

  • QVT-Operational - это императивный язык, разработанный для написания однонаправленных преобразований.
  • QVT-Relations - это декларативный язык, предназначенный для написания как однонаправленных, так и двунаправленных преобразований модели. Преобразование воплощает в себе отношение согласованности на множестве моделей. Согласованность можно проверить, выполнив преобразование в режиме проверки; преобразование затем возвращает True, если набор моделей согласован в соответствии с преобразованием, и False в противном случае. Такое же преобразование можно использовать в принудительном режиме, чтобы попытаться изменить одну из моделей, чтобы набор моделей был согласованным. Язык QVT-Relations имеет как текстовый, так и графический конкретный синтаксис.
  • QVT-Core - это декларативный язык, разработанный, чтобы быть простым и выступать в качестве цели перевода из QVT-Relations. Однако QVT-Core никогда не имел полной реализации, и на самом деле он не так выразителен, как QVT-Relations.[2] Следовательно, архитектура QVT, изображенная выше, вводит в заблуждение: преобразование из QVT-Relations в QVT-Core, данное в стандарте QVT, не сохраняет семантику.

Наконец, QVT-BlackBox - это механизм для вызова средств преобразования, выраженных на других языках (например, XSLT или же XQuery ).

Хотя QVT имеет широкую сферу применения, он не охватывает все, что считалось преобразованием модели, представлением или запросом. Например, языки QVT не допускают преобразований в текстовые модели или из них, поскольку каждая модель должна соответствовать некоторой метамодели MOF 2.0. Преобразования модели в текст стандартизируются OMG отдельно (см. MOFM2T ).

История

В 2002 году OMG выпустила запрос предложений (RFP) по Минфин Запрос / Просмотр / Преобразование для поиска стандарта, совместимого с Архитектура, управляемая моделями (MDA) набор рекомендаций (UML, MOF, OCL и т. Д.).

Несколько компаний и исследовательских институтов дали несколько ответов, которые в течение трех лет разработали общее предложение, основанное на проекте британского исследователя доктора Лоуренса Третта. Первая версия была представлена ​​и утверждена в 2005 году.[3] Версия 1.1 QVT была выпущена в январе 2011 года.[1]

Реализации

QVT-Operational:

  • Borland Вместе содержит реализацию QVT Operational, которая была предоставлена[4] к Фонд Затмения и теперь разрабатывается как Затмение M2M Оперативный проект QVT.
  • Затмение M2M Operational QVT: официальная реализация QVT Operational с открытым исходным кодом в Eclipse.[5]
  • MagicDraw имеет плагин QVT, который использует операционную реализацию QVT, предоставляемую Затмение M2M проект.
  • SmartQVT: реализация Eclipse с открытым исходным кодом (Orange Labs) рабочего языка QVT.

QVT-Core:

QVT-отношения:

  • ModelMorf: запатентованный инструмент от Консультационные услуги Tata Ltd. Полностью совместим с языком QVT-Relations. Пробная версия[6] предоставляет утилиту командной строки, которая потребляет и создает модели в форме XMI. Полноценная версия с интегрированным репозиторием доступна как часть их проприетарной среды моделирования.[7]
  • MediniQVT:[8] Механизм преобразования на основе EMF с лицензией EPL для механизма и редактором / отладчиком некоммерческих лицензий. Использует синтаксис QVT-Relations, но намеренно отходит от семантики стандарта OMG.[9]
  • В Затмение M2M Проект направлен на реализацию QVT Core and Relations.[5]
  • Эхо,[10] инструмент с открытым исходным кодом на основе EMF для ремонта и преобразования моделей, созданный на основе Сплав поиск модели, который обеспечивает реализацию синтаксиса QVT-Relations, но использует семантику, которая намеренно отклоняется от спецификации OMG.

QVT-Like:

  • jQVT:[11] Скомпилированный движок QVT для Java, использующий Xbase вместо OCL. QVT-реляционное преобразование сначала компилируется в исходный код Java, который затем напрямую создает целевую модель из исходных во время выполнения, без повторной интерпретации правила преобразования. Он поддерживает модели EMF, а также простые объекты Java.
  • Тефкат : реализация языка Tefkat с открытым исходным кодом, которая также похожа на QVT. Открытый исходный код.
  • ATL : компонент в M2M Проект Eclipse. ATL - это QVT-подобный язык преобразования и движок с большим сообществом пользователей и библиотекой преобразований с открытым исходным кодом.
  • Структура преобразования модели (MTF):[12] ан IBM alphaWorks проект, последнее обновление - 2007.

Смотрите также

Рекомендации

  1. ^ а б Баст, Вим; Мерфри, Майкл; Лоули, Майкл; Дадди, Кит; Белаунде, Мариано; Гриффин, Екатерина; Сендалл, Шейн; Войтишек, Дидье; Сталь, Джим; Хелсен, Саймон; Тратт, Лоуренс; Редди, Сридхар; Venkatesh, R .; Блан, Ксавье; Дворжак, Радек; Уиллинк, Эд (январь 2011 г.). «Meta Object Facility (MOF) 2.0 Query / View / Transformation (QVT)» (pdf). Группа управления объектами. Получено 9 мая 2011.
  2. ^ Стивенс, Пердита (2011). «Простой теоретико-игровой подход к проверке отношений QVT». Программное и системное моделирование. Берлин / Гейдельберг: Springer. 12: 175–199. Дои:10.1007 / s10270-011-0198-8.
  3. ^ Баст, Вим; Мерфри, Майкл; Лоули, Майкл; Дадди, Кит; Белаунде, Мариано; Гриффин, Екатерина; Сендалл, Шейн; Войтишек, Дидье; Сталь, Джим; Хелсен, Саймон; Тратт, Лоуренс; Редди, Сридхар; Venkatesh, R .; Блан, Ксавье; Дворжак, Радек; Виллинк, Эд. «Meta Object Facility (MOF) 2.0 Query / View / Transformation (QVT)» (pdf). Группа управления объектами. Получено 1 ноя 2013.
  4. ^ [m2m-dev] Вклад Borland QVT В архиве 25 февраля 2012 г. Wayback Machine
  5. ^ а б Проект Eclipse M2M. «Архивная копия». В архиве из оригинала от 03.12.2012. Получено 2011-05-09.CS1 maint: заархивированная копия как заголовок (связь) . Проверено 9 мая 2011 года.
  6. ^ ModelMorf beta. «Архивная копия». Архивировано из оригинал 23 марта 2012 г.. Получено 9 мая, 2011.CS1 maint: заархивированная копия как заголовок (связь) . Дата обращения 9 мая 2011.
  7. ^ TCS Code Generator Framework (ранее известный как MasterCraft). «Архивная копия». Архивировано из оригинал 9 августа 2011 г.. Получено 9 мая, 2011.CS1 maint: заархивированная копия как заголовок (связь) . Проверено 9 мая 2011 года.
  8. ^ Medini QVT. «Архивная копия». В архиве из оригинала от 29.07.2016. Получено 2009-08-13.CS1 maint: заархивированная копия как заголовок (связь) . Проверено 9 мая 2011 года.
  9. ^ Kiegeland, J .; Эйхлер, Х. (февраль 2008 г.), «Мастерская medini QVT», мастерская medini QVT (ppt), Энсхеде, Telematica Instituut: ikv ++ technologies ag, получено 2015-09-24
  10. ^ Эхо. [1] Дата обращения 2 ноября 2013.
  11. ^ jQVT. «Архивная копия». В архиве из оригинала от 07.03.2016. Получено 2012-11-10.CS1 maint: заархивированная копия как заголовок (связь)
  12. ^ Структура преобразования модели. http://www.alphaworks.ibm.com/tech/mtf . Проверено 9 мая 2011 года.