Двунаправленные преобразования M2M с использованием Eclipse EMF - PullRequest
7 голосов
/ 25 января 2012

Я хотел бы сделать двунаправленные преобразования Model2Model. Обе модели основаны на EMF / eCore. На самом деле я бы предпочел, чтобы одна модель редактировалась другим.

Какие у меня варианты? Какие инструменты и языки преобразования доступны и каковы их ограничения?

Ответы [ 4 ]

2 голосов
/ 08 сентября 2015

Если вы настаиваете на выполнении двунаправленных преобразований M2M (так называемых Bxs), то знайте, что сообщество активных исследователей обновляет эту вики: http://bx -community.wikidot.com . Если вы посетите его, то обнаружите, что в нем перечислены инструменты, подходящие для преобразований Bx http://bx -community.wikidot.com / relatedtools .

В прошлом я использовал ECHO, который обеспечивает реализацию QVT-R на основе решателя ограничений KodKod.

Определенно стоит попробовать.

2 голосов
/ 26 октября 2012

Существует больше инструментов преобразования, чем вы можете себе представить для EMF, это своего рода безумие ...

Для преобразования метамодели в метамодель, где модели не очень похожи:

Если метамодели очень похожи, и вам нужно только настроить некоторые вещи, тогда существуют инструменты, предназначенные для этого типа миграции / обновления:

  • ATL теперь имеет режим уточнения
  • Эпсилон имеет Флок
  • Edapt также выглядит очень интересно, потому что метамодель / модель меняются вместе. Он позволяет работать с древовидным представлением и поставляется с заранее установленным набором правил.
  • Henshin , который позволяет работать с диаграммой модели
  • EMF Refactor - это подход на уровне кода, который также может как-то использовать правила Хеншина.

Вы всегда можете напрямую манипулировать метамоделью и моделью, используя также API-интерфейсы Java EMF.

Я добавлю, что если вы выполняете какую-либо настоящую работу с EMF, вам нужно получить и прочитать EMF: Eclipse Modeling Framework . Он также доступен в Safari . Я настоятельно рекомендую Safari: за 39 долларов в месяц вы получаете почти каждую книгу по разработке, которую когда-либо могли использовать.

2 голосов
/ 18 июля 2012

М2М самые тяжелые. Индустриальные силовые инструменты редки, много научных вещей. Если вы абсолютно незнакомы с языком M2M, обратите внимание на ATL, который также должен поддерживать ecore. В противном случае вы можете взглянуть на Xtend, который был создан для модели в текст, но вы можете злоупотреблять им, и он должен быть более удобным, чем обычная Java. Если вы в исследованиях, посмотрите на преобразования на основе Scala здесь

http://metrikforge.informatik.hu -berlin.de / вложения / загрузить / 193 / george_wider_scheidgen_ICMT_2012.pdf

0 голосов
/ 26 февраля 2015

Поскольку вы специально просили двунаправленные преобразования моделей, я должен сказать, что у вас нет вариантов. Чтобы сделать это более ясным, добавив к ответу, который вы получили от Ed Willink, ни один из существующих языков преобразования M2M (AFAIK) не поддерживает двунаправленные преобразования моделей. Работа над механизмом исполнения QVTr и QVTc начинает выглядеть многообещающе, если вы все еще заинтересованы в этом: Проект QVTd .

...