Ecore, генмодель и OCL

Я определяю метамодель предметно-ориентированного языка моделирования с помощью Ecore в EMF. Поэтому я создаю редактор из связанной генмодели, которую я могу использовать для создания моделей, соответствующих метамодели. Я хотел бы указать некоторые ограничения OCL на значения, которые могут принимать некоторые элементы метамодели. Было бы очень хорошо, если бы я мог указать эти ограничения в модели Ecore и сделать соответствующие проверки автоматически сгенерированным кодом Java редактора.

Есть ли стандартный способ сделать это?


person Andrea Sindico    schedule 30.03.2011    source источник


Ответы (2)


Вам следует взглянуть на недавнюю работу над проектом OCL в Eclipse с помощью "OCL in Ecore". или вы могли бы попробовать один из других способов интеграции OCL с Ecore, указанных в документация по OCL Juno.

person sbegaudeau    schedule 08.08.2012

Первый шаг — решить, как вы хотите добавить ограничения в свою (мета)модель экокора. На данный момент я знаю два способа, вы можете сделать это:

1- наличие выражений ocl, встроенных в элементы аннотаций модели ecore.

2- иметь выражения OCL в отдельном файле рядом с ecore.

Для получения дополнительной информации о первом подходе см. OCLInEcore , а о втором см. OCLComplete . Кажется, они предоставляют некоторый API для проверки ограничения OCL для данных моделей (проверка соответствия).

Для ваших целей вроде OCLInEcore подходит. Вы можете встроить свой ocl в ecore и использовать API, предоставляемый OCLInEcore, чтобы проверить, удовлетворяет ли данная модель ограничениям ocl.

Надеюсь это поможет.

person qartal    schedule 24.10.2013
comment
вы также можете ознакомиться с двумя другими проектами, связанными с OCL: Octopus: инструмент OCL для точных спецификаций Uml(octopus.sourceforge. net) и USE (sourceforge.net/apps/ mediawiki/useocl/index.php?title=Main_Page) Последнее может быть более уместным. - person qartal; 25.05.2014