Liens connexes

Dépêche modérée par

Dépêche éditée par

: Acceleo 2.3 compatible Eclipse Ganymede

Posté par Cédric Brun (page perso, ). Modéré le 30 juillet 2008.
0
Acceleo 2.3 est sorti! Cette version apporte son lot de nouveautés mais surtout la compatibilité Eclipse 3.4 (Ganymede). Plus précisément la version 2.3.0 est à la fois compatible avec Eclipse Ganymede (3.4), Eclipse Europa (3.3) et Eclipse Callisto (3.2).

Acceleo est un générateur de code (transformation modèle vers texte) capable d'exploiter n'importe quel modèle EMF (modèle UML mais aussi modèle métier ou encore fichier XML) pour générer du texte à l'aide d'un langage de template. Ce générateur de code a la particularité d'être incrémental, c'est-à-dire qu'il est possible de modifier le code généré puis de re-générer sans perdre ses modifications.

Cette nouvelle version améliore l'expérience utilisateur en fournissant une nouvelle fonctionnalité de "recherche des appels d'un script" (CTRL+MAJ+G), elle permet également d'appeler les méthodes définies sur un métamodèle directement depuis un script et elle améliore la compatibilité avec les modeleurs UML "non Eclipse". Pour plus de détails, jetez un oeil sur la page des nouveautés en images.

Acceleo est un outil qui permet de définir soit même son module de génération pour un langage et un framework donné, par exemple UML vers C, mais c'est aussi une ferme de modules communautaires que l'on peut ré-utiliser et modifier. Les modules présents avec la version 2.3 sont les suivants: UML vers PHP/Smarty/Pear, UML vers JEE/Hibernate/Spring, UML vers CSharp/NHibernate, mais aussi le nouveau module UML vers Dolibarr ou encore des modules exploitant des modèles beaucoup plus simples: Ecore vers Python et WISSS (modèle dédié au applications web vers PHP/Zend). D'autres modules sont présents sur le SVN et peuvent être modifiés ou améliorés, comme par exemple un module UML vers Plone et UML vers Pylons.

Tous ces modules ont différents degrés de qualité et un certain nombre sont encore considérés comme "en incubation" mais vous pouvez aussi définir le vôtre. Les éditeurs proposent la colorisation syntaxique, l'auto-complétion, la prévisualisation du code généré ainsi qu'un debugger interactif.
Pour tester Acceleo la voie royale est le pack Eclipse "tout en un": sur le site sont fournies des archives contenant Acceleo, ainsi que ses dépendances et les modules, mais aussi différents outils dédiés à la modélisation sous Eclipse comme par exemple ATL pour faire des transformations modèle à modèle, Topcased pour la modélisation UML ou encore EMF Compare pour comparer et fusionner les modèles.

Vous pouvez aussi découvrir différentes démos qui détaillent l'utilisation de certains modules.

NdM: Acceleo est publié sous licence EPL, licence libre et Open Source, non-copyleft et incompatible GPL.

> Lire la suite (21 commentaires, moyenne: 3,5).   [dépêche : 5373 caractères]

Acceleo permet d'exploiter un modèle pour générer du texte, cette approche peut prendre différentes formes. Certains prônent la modélisation à 100% (il devient inutile de développer), d'autres ne jurent que par les standards (UML par exemple) et d'autres encore visent à l'exploitation de modèles spécifiques à un métier. Il n'y a pas de solution parfaite, cela dépend du contexte d'utilisation et du résultat souhaité, mais en aucun cas Acceleo ne fait ce choix pour vous. Vous pouvez tout à fait faire un générateur qui va faire correspondre à une classe UML une classe Java, ou alors pour une classe UML décider de générer des entités avec par exemple une interface, une fabrique, une implémentation, un mapping objet/relationnel, etc ...
De manière générale au sein des modules de la ferme une information dans le modèle sert à produire de multiples fichiers qui sont ensuite complétés par du code manuel. L'utilisation d'Acceleo est alors particulièrement intéressante : le modèle reste métier et général, les informations techniques sont spécifiées en paramétrage de la génération et le développeur a tout intérêt à passer par le modèle qui va entraîner la génération de nombreux fichiers conformes à son architecture et à ses règles de formatage.

En 2006 sortait la première version d'Acceleo, générateur de code exploitant n'importe quel modèle compatible EMF et permettant de modifier le code généré avec la garantie que le code modifié ne serait pas perdu à la prochaine re-génération. Dès la première version l'outil était centré sur l'utilisateur avec des éditeurs, la colorisation syntaxique et une prise en main très simple comparée aux outils similaires de l'époque comme JET par exemple. Cette sortie n'est pas passée inaperçue, en effet une jeune société française libérait un outil dédié à un domaine largement occupé par les solutions propriétaires. Un outil qui plus est utilisable par le plus grand nombre.

Initialement presque exclusivement développé par la société Obeo, le projet accueille ensuite de nouveaux contributeurs pour former la "ferme de modules". Cette ferme héberge des modules de génération dédiés à différentes technologies telles que JEE, PHP, CSharp ou encore Python. La première sortie officielle de la ferme de module est réalisée lors de la sortie d'Acceleo 2.0 qui marque également le passage de la license GPL à la license EPL beaucoup plus utilisée au sein de l'écosystème Eclipse.

En plus de cet ensemble de modules prêts à l'emploi cette version majeure apporte la capacité à déployer un générateur sous la forme d'un greffon Eclipse, puis un peu plus tard apparaît le débuggeur interactif pour le langage Acceleo. Dans le même temps la communauté s'organise autour du forum, des listes de diffusion et de la planète Acceleo.

La communauté s'agrandit principalement autour de la ferme de module, des modules expérimentaux pour Plone, Zope sont créés, d'autres se basant non pas sur UML mais sur des langages spécifiques (WISSS) ou (et l'un des dernier venus) ciblant Dolibarr. Les projets étudiants et stages se multiplient autour de l'ingénierie des modèles et la vision "pragmatique" d'Acceleo. Le projet compte désormais 27 contributeurs, outillage Acceleo et modules confondus. Les équipes des différents modules coopèrent désormais plus, par exemple les profils UML utilisés par les modules JEE et PHP sont maintenant les mêmes.

Les plans de développements prévoient une version 3.0 à la fin de l'été, cette version est une ré-écriture du moteur d'évaluation afin de permettre à Acceleo de s'exécuter sans Eclipse, il sera ainsi possible d'intégrer plus facilement Acceleo à d'autres environnements de développements, voir de créer des générateurs que l'on lance en ligne de commande. La version 3.0 est en cours de développement, elle était initialement prévue pour Juillet mais a été décalée à Septembre : elle ne fournissait pas encore le niveau de qualité attendu.

La syntaxe Acceleo a été conçue pour naviguer simplement au sein de modèles, ce choix initial tourné vers la facilité d'utilisation implique que le langage en question n'est pas standard (au contraire d'OCL). Ainsi Acceleo 4.0, prévu pour Juillet 2009 permettra d'utiliser indifféremment deux types de syntaxes : la syntaxe Acceleo et la syntaxe "MOF Model To Text Langage" (MTL), normalisée par l'OMG. L'utilisateur aura alors le choix entre simplicité et standard et pourra importer un template en syntaxe Acceleo depuis un template MTL et vis-versa.

À ces fonctionnalités prévues pour le noyau d'Acceleo s'ajouteront sans aucun doute de nouveaux modules et de nouvelles fonctionnalités pour les modules existants. N'hésitez pas à rejoindre l'équipe !

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

licence Acceleo

Posté par vida18 () le 30/07/2008 à 11:21. (lien). Évalué à 1.

Il aurait été préférable de mettre Acceleo sous licence EUPL 1.0 ( European Union Public License 1.0 ) qui est compatible avec la licence EPL et GPL.

http://ec.europa.eu/idabc/servlets/Doc?id=31205

(Eclipse + Acceleo) > XEmacs

Posté par Jérôme BENOIS (page perso, ) le 30/07/2008 à 14:14. (lien). Évalué à 1.


Eclipse + Acceleo, enfin un environnement qui écrase XEmacs !

Modelisation vs Code

Posté par Mat () le 31/07/2008 à 16:09. (lien). Évalué à 9.

Certains prônent la modélisation à 100% (il devient inutile de développer), d'autres ne jurent que par les standards (UML par exemple) et d'autres encore visent à l'exploitation de modèles spécifiques à un métier.

D'autres encore (moi :D) pronent une modélisation modérée.
Je m'explique. Je fais du développement depuis un bout de temps. J'ai d'abord commencé en loisir, puis j'ai suivi des études d'info, et depuis qques année maintenant, j'en vis.

Dans les premiers temps, qd je codais qque chose, même si c'était un projet d'une assez grande envergure (ca m'est arrivé 2 fois avant mes études), je réflechissais un peu au départ, mais je commençais à coder assez vite. Inutile de dire que j'ai refactoré le code plusieurs fois parce qu'une évolution n'était pas possible dans la conception courante.

Ensuite à l'université j'ai appris la modélisation. Super ! En partant d'un problème assez flou, avec des méthodes ou des schémas ou les deux, je peux identifier,découper,modulariser mon problème, et même aller jusqu'à de la génération de bouts de code. J'adorais ça. Voir évoluer la résolution d'un problème du début à la fin, et l'abstraction que ca nécessite, tout ca me plaisait bien. Et avec mon point de vue de dev ca marchait plutôt pas mal. Dans les projets d'étude en tout cas.

Enfin, qd j'ai commencé à bosser, et bien la modélisation, comment dire... j'en ai jamais vraiment vu. Les types qui réfléchissent ne sont presque jamais ceux qui développent ensuite. Les rares documents de "modélisation" que j'ai eu en main étaient de sources totalement hétéroclites (majoritairement des .doc avec des bouts d'excel dedans, et des images souvent pondues par Visio). Souvent je n'ai pas pris un projet au début, donc où l'architecture générale du projet ou le code ou les deux étaient déjà commencés. L'absence de commentaires est très récurrente, et la modélisation inexistante.

Heureusement, pour mon stage j'ai eu la chance d'avoir une portion de projet où j'ai fait l'intégralité du code. Je me suis donc mis en devoir d'utiliser un logiciel UML à la fois pour bien concevoir ce que j'avais à faire, et pour avoir un beau rapport de stage.
Et les ennuis ont commencé. J'ai utilisé Rational (je bossais chez big blue) qui est réputé, et malgré une prise en main rapide, j'ai vite déchanté. Le code généré est relativement simple, et donc ne présente pas réellement d'intérêt. Il ne gérait pas très bien les modifs de schémas. En fin de compte, c'est assez difficile de modéliser un cas assez technique, pas sûr que ca ait apporté une lisibilité supplémentaire. Les graphes obtenus par des clics de souris sont longs à faire et à modifier. Et surtout j'ai perdu pas mal de temps, parce qu'une fois parti dans le code, eh bien moult problèmes que je n'avais pas bien vus à la modélisation sont apparus.

Finalement, en ce qui me concerne en tout cas, je pense qu'il vaut mieux que je commence le code assez tôt, même si la modélisation n'est pas encore terminée, quitte à la faire évoluer au fur et à mesure. On voit mieux la berge en s'en approchant que du large.
Je ne peux donc pas appuyer mon code sur celle-ci, mais à la limite c'est mieux, je préfère qu'elle soit plus haut niveau et pas trop détaillée. Le relecteur n'a pas forcément besoin de connaitre tous les points d'implémentation.

Et j'ai récemment découvert un petit outil de génération de graphiques UML bien sympa, qui évite tout clic!
http://umlspeed.sourceforge.net/

Revenir en haut de page