2012-10-16 3 views
1

Je suis à la recherche d'outils MDA (Model Driven Architecture) disponibles. J'ai commencé avec EMF (Eclipse Modeling Framework).Développement d'applications à l'aide d'Eclipse Modeling Framework

Cela semble bien de générer des classes de base.

Comment il sera utile de générer une application de bout en bout?

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

Y a-t-il une modélisation extensive fournie dans EMF pour répondre à ces exigences?

ou d'autres outils sont disponibles pour capturer une application de bout en bout dans la modélisation et conduire le même au développement?

Répondre

3

Eclipse Modeling Framework vous fournit une implémentation du langage MOF (http://www.omg.org/spec/MOF) appelé ECORE. Au moyen de l'ECORE, qui sert de méta-méta-modèle, les méta-modèles des langages de modélisation sont définis (c'est-à-dire le méta-modèle UML, etc.). Vous pouvez éditer des diagrammes UML au moyen de Papyrus ou TopCased qui sont basés sur la fonction EMF. Lorsque vous définissez de tels diagrammes, vous créez également un fichier modèle dont le contenu XMI est conforme au méta-modèle ECORE associé. Maintenant, grâce à cela, vous pouvez appliquer des transformations de modèle à du texte au moyen d'un plugin Eclipse appelé ACCELEO qui est une implémentation du langage de transformation MOFM2T standard de l'OMG (http://www.omg.org/spec/MOFM2T). Ainsi, vous pouvez définir votre propre langage de modélisation spécifique au domaine (avec ECORE), avec des concepts tels que UIElement (Jsp, Jsf, etc.) DBEntity et ainsi de suite en tant qu'entités de première classe, créer des modèles conformes et créer modèle au texte des transformations (Acceleo) Türing les dans le code exécutable

oU

vous pouvez définir (ou réutiliser un déjà existant) profil UML par lequel vous pouvez marquer des éléments de modèles UML pour représenter des éléments de l'interface utilisateur des entités DB , etc. et créer des transformations de modèle en texte en les transformant en code exécutable

+0

Donc, si je définis mes spécifications méta modèle méta dans ECORE, pour créer le modèle d'exemple de ce que je peux utiliser la méta méta modeler comme une dépendance de plugin à mon plug-in. Dans mes projets de modèles d'instance, j'ai besoin d'utiliser MTT (ACCELEO) pour la génération de code. Ai-je raison? – Murugesh

+0

Non, vous pouvez procéder de différentes façons. Le plus simple est peut-être d'utiliser des classes UML avec des stéréotypes (définis par vous dans un profil) comme <> ou <> pour ajouter les informations spécifiques dont vous avez besoin. Vous pouvez donc fournir ce modèle en entrée de transformations m2t que vous pouvez définir via ACCELEO afin de générer automatiquement du code à partir des modèles d'entrée. L'approche la plus complexe, et pas forcément la plus correcte, consiste à définir votre propre DSML via l'ECORE, à générer l'éditeur, à créer les modèles et à appliquer la transformation m2t. – Sindico

+0

notez que seul l'ECORE est le méta-méta-modèle alors que l'UML est un méta-modèle et que votre propre modèle UML est une instance modèle du méta-modèle UML. – Sindico

1

La meilleure technologie pour cela est M2T-JET. C'est un framework de modélisation très léger qui ne vous force pas à utiliser un seul modèle. Avec JET, vous pouvez générer des applications multi-projets entières.

est ici un lien vers ma réponse à une autre question JET où je donne un JET example

+0

Merci Chris., Utilisation de JET Je peux définir JSP comme des modèles à droite? Une modélisation est-elle fournie pour définir les correspondances entre l'interface utilisateur et les services? Quel bouton appelle quel service et quelle valeur de champ correspond à quel paramètre de service et ainsi de suite? – Murugesh

+0

En ce qui concerne la modélisation, j'ai toujours fortement suggéré de garder deux modèles séparés: un modèle utilisé par et optimisé pour les modèles et un modèle que vous utilisez pour capturer votre conception, l'implémentation, etc. Gardez-les séparés parce qu'ils font deux choses très différentes. Ce n'est que lorsque vous avez défini les modèles et la transformation JET de modèle à texte que vous devez envisager d'écrire une deuxième transformation pour passer de votre modèle amont au modèle de vos modèles. En gardant à cette séquence de transformations vous rendrez les choses beaucoup plus faciles sur vous-même. –

+0

Mais pour en arriver à votre question spécifique, cela vous permet de choisir votre environnement et vos outils de modélisation sans vous soucier de la façon dont ce modèle sera consommé par la transformation modèle-texte –

Questions connexes