Разработка приложений с использованием Eclipse Modeling Framework

Я ищу доступные инструменты MDA (архитектура, управляемая моделями). Я начал с EMF (Eclipse Modeling Framework).

Он отлично подходит для создания основных классов.

Как будет полезно создать одно сквозное приложение?

To generate UI elements (JSP/JSF/so on...)
To generate Entities and ORM's
To generate EJB's/Web Services 

Предусмотрено ли в EMF обширное моделирование для выполнения этих требований?

или какие-либо другие инструменты доступны для захвата сквозных приложений в моделировании и использования их в разработке?


person Murugesh    schedule 16.10.2012    source источник


Ответы (2)


Eclipse Modeling Framework предоставляет вам реализацию языка MOF (http://www.omg.org/spec/MOF) под названием ECORE. С помощью ECORE, который действует как мета-мета-модель, определяются мета-модели языков моделирования (т. е. мета-модель UML и т. д.). Вы можете редактировать диаграммы UML с помощью Papyrus или TopCased, которые основаны на EMF. Когда вы определяете такие диаграммы, вы также создаете файл модели с содержимым XMI, соответствующим соответствующей метамодели ECORE. Теперь благодаря этому вы можете применять модель к преобразованию текста с помощью подключаемого модуля Eclipse под названием ACCELEO, который является реализацией стандартного языка преобразования OMG MOFM2T (http://www.omg.org/spec/MOFM2T).

поэтому вы можете определить свой собственный язык моделирования для предметной области (с помощью ECORE) с такими понятиями, как UIElement (Jsp, Jsf и т. д.), DBEntity и т. д. в качестве сущностей первого класса, создавать модели, соответствующие этому, и создавать преобразование модели в текст. (ACCELEO) превращая их в исполняемый код

OR

вы можете определить (или повторно использовать уже существующий) профиль UML, с помощью которого вы можете пометить элементы моделей UML для представления элементов пользовательского интерфейса, объектов БД и т. д. и создать преобразование модели в текст, превращая их в исполняемый код.

person Andrea Sindico    schedule 16.10.2012
comment
Итак, если я определяю все свои спецификации метаметамодели в ECORE, чтобы создать из нее модель экземпляра, я могу использовать метаметамодель как зависимость плагина от моего плагина. В моих проектах моделей экземпляров мне нужно использовать MTT (ACCELEO) для генерации кода. Я прав? - person Murugesh; 16.10.2012
comment
Нет, вы можете действовать разными способами. Возможно, проще всего использовать классы UML со стереотипами (определенные вами в профиле) как ‹‹WebPage›› или ‹‹DBEntity››, чтобы добавить конкретную информацию, которая вам нужна. Поэтому вы можете предоставить эту модель в качестве входных данных для преобразований m2t, которые вы можете определить с помощью ACCELEO, чтобы автоматически генерировать код из входных моделей. Более сложный и не обязательно более правильный подход состоит в том, чтобы определить собственный DSML через ECORE, сгенерировать редактор, создать модели и применить преобразование m2t. - person Andrea Sindico; 16.10.2012
comment
обратите внимание, что только ECORE является мета-мета-моделью, в то время как UML является мета-моделью, а ваша собственная модель UML является экземпляром модели мета-модели UML. - person Andrea Sindico; 16.10.2012

Лучшей технологией для этого является M2T-JET. Это очень легкая структура шаблонов, которая не заставляет вас использовать какую-то одну модель. С помощью JET вы можете создавать целые мультипроектные приложения.

Вот ссылка на мой ответ на другой вопрос JET, в котором я даю пример JET< /а>

person Chris Gerken    schedule 16.10.2012
comment
Спасибо, Крис. Используя JET, я могу определить JSP как шаблоны, верно? Предусмотрено ли моделирование для определения сопоставления между пользовательским интерфейсом и службами, скажем, какая кнопка будет вызывать какую службу и какое значение поля соответствует какому параметру службы и так далее? - person Murugesh; 16.10.2012
comment
Что касается моделирования, я всегда настоятельно рекомендовал вам разделять две модели: одну модель, используемую шаблонами и оптимизированную для них, и одну модель, которую вы используете для создания дизайна, реализации и т. д. Держите их отдельно, потому что они делают две совершенно разные вещи. Только после того, как вы определили модели и JET-преобразование модели в текст, вы можете подумать о написании второго преобразования, чтобы перейти от восходящей модели к модели ваших шаблонов. Соблюдая эту последовательность преобразований, вы значительно облегчите себе задачу. - person Chris Gerken; 16.10.2012
comment
Но затем, чтобы перейти к вашему конкретному вопросу, это позволяет вам выбирать среду и инструменты моделирования, не беспокоясь о том, как эта модель будет использоваться преобразованием модели в текст. - person Chris Gerken; 16.10.2012
comment
Мне нужно, чтобы мои модели шаблонов (метамодель/грамматика для моей пользовательской модели) и пользовательские модели (модель дизайна для моего требования) были разделены, это то, что вы предлагаете. Я понял ваше мнение, Крис? - person Murugesh; 16.10.2012