Acceleo

Acceleo
Acceleo
logo
Développeur Obeo, Fondation Eclipse
Dernière version 3.2[1] (27 octobre 2011) [+/−]
Écrit en Java
Type Model Driven Architecture
Licence Eclipse Public License
Site web http://www.eclipse.org/acceleo

Acceleo est un générateur de code Open Source de la fondation Eclipse permettant de mettre en œuvre l'approche MDA (Model driven architecture) pour réaliser des applications à partir de modèles. Il s'agit d'une implémentation de la norme de l'Object Management Group (OMG) pour les transformations de modèle vers texte (M2T) Model to Text.

Sommaire

Historique et développement

Les débuts du logiciel

Le projet Acceleo est né en 2006 autour du site web Acceleo.org. Acceleo 1.0 et 1.1 étaient à l'époque sous licence GPL et compatible avec Eclipse 3.2 et de nombreux modeleurs basés sur EMF ou UML 1.3[2]. Quelques mois plus tard, lors de la sortie d'Acceleo 1.2, le projet Acceleo changea de licence pour adopter la licence EPL[3]. La version 2 d'Acceleo fut disponible le 5 juin 2007 après l'ouverture du site planet.acceleo.org regroupant les publications de nombreux acteurs de la communauté Acceleo et de la ferme de module regroupant des générateurs de code conçu avec Acceleo.

L'entrée dans la fondation Eclipse

En 2009, pour son passage à la version 3, le projet a été admis au sein de la fondation Éclipse. Lors de cette transition, Acceleo a changé le langage utilisé pour définir les générateurs pour utiliser le langage standard de l'OMG pour la transformation de modèle vers texte, MOFM2T. Depuis la sortie d'Eclipse 3.6 Helios, Acceleo, en tant que projet officiel de la fondation Éclipse, est inclus dans le programme de sortie simultanée des projets Éclipse. Acceleo est nativement intégré à l'IDE Eclipse, il repose sur la technologie EMF et, depuis sa version 3, sur le langage OCL. OCL est un langage standard de l'OMG permettant de naviguer dans les modèles et d'établir des contraintes sur les éléments d'un modèle.

Marque

Bien que le code source du logiciel en lui-même soit libre, la marque Acceleo et le logo, intégrés à ce même logiciel, ne le sont pas, car ce sont des marques déposées. Cette marque appartenait originellement à l'entreprise Obeo, créateur d'Acceleo et elle fut transmise à la Fondation Eclipse lors de l'intégration d'Acceleo à la fondation Eclipse[4].

Code source

Acceleo est un projet Eclipse majoritairement développé en Java[5] et disponible sous licence EPL. Le code source des versions 1 et 2 d'Acceleo est disponible sous SVN sur la forge OW2[6]. Lors de son entrée dans la fondation Eclipse en 2009, le code source d'Acceleo 3 fut migré vers un dépôt CVS situé sur les serveurs de la fondation Eclipse[7]. Après la sortie d'Eclipse 3.7 Indigo en 2011, le projet Acceleo a migré vers Git[8] à l'instar de nombreux projets de la Fondation Eclipse et depuis juillet 2011, le code source d'Acceleo est disponible sur Github[9].

Historique des sorties

  • Première version stable : Acceleo 1.0.0 disponible depuis le 1er avril 2006
  • Version stable actuelle : Acceleo 3.2.0 disponible depuis le 27 octobre 2011
Légende :
Anciennes versions Version actuelle Version avancée
Version Date de lancement Changements significatifs
1.0 1er avril 2006 Première version d'Acceleo disponible sous licence GPL, génération de code à partir de modèles basés sur EMF.
1.1 20 octobre 2006 Compatibilité avec Eclipse 3.2, support de modèles créés avec GMF, ArgoUML, Poseidon, Umbrello et Rationnal Rose[2].
1.2 5 janvier 2007 Passage à la licence EPL, nouveau service d'indentation, lanceur paramétrable, compatibilité avec Ant[10].
2.0 5 juin 2007 Amélioration du langage, compatibilité XML, export en tant que plugin[11].
2.1 12 juillet 2007 Compatibilité Eclipse 3.3, débuggeur de générateurs[12].
2.2 7 janvier 2008 Support de la localisation, support de différents encoding des templates, sortie de générateurs JEE, PHP, Python et WISS[13].
2.3 25 juillet 2008 Compatibilité Eclipse 3.4 Ganymede, appel aux EOperation EMF standard depuis le générateur, localisation des références[14].
2.4 25 septembre 2008 Export d'un générateur en module stand alone[15].
2.5 3 décembre 2008 Profiler de génération, actions sur l'outline[16].
2.6 26 juin 2009 Compatibilité avec Eclipse 3.5 Galileo[17].
2.7 2 avril 2010 Améliorations du profiler, compatibilité avec Entreprise Architect[18].
3.0 23 juin 2010 Nouveau langage de définition des générateurs basés sur MOFM2T, support de requêtes OCL, compilation des générateurs à la volée, détection d'erreurs en temps réel[19].
3.1 23 juin 2011 Support de la documentation des générateurs, détection d'erreurs potentielles avec des warnings, support de Maven, compilation binaire des générateurs[20].
3.2 27 octobre 2011 Nouvelle vue "Interpreter" permettant de tester des expressions Acceleo sur des éléments de modèles.

Plateforme supportées par Acceleo

Acceleo est écrit en Java et déployé sur l'IDE Eclipse. Acceleo est supporté sur des environnements basés sur Java 5 et plus sur les plateformes suivantes :

Le langage

Le langage utilisé par Acceleo est une implémentation du standard MOFM2T. Ce langage de génération de code utilise une approche par template. Avec cette approche, un template est un texte contenant des espaces réservés dans lequel seront mis des informations tirées du modèle fourni en entrée. Ces espaces réservés sont généralement des expressions spécifiées sur les entités qui seront utilisées dans le modèle et qui auront pour but de sélectionner et d'extraire des informations de ce modèle. Au sein d'Acceleo, ces expressions sont principalement basées sur le langage OCL.

Fonctionnalités

Acceleo fournit des outils pour la génération de code depuis des modèles. Grâce à ces outils, Acceleo permet notamment de réaliser des générations incrémentales. La génération incrémentale consiste à générer du code puis à pouvoir modifier le code généré librement et à re-générer le code sans pour autant perdre les modifications réalisées à la main sur le code généré précédemment.

Acceleo permet aussi :

  • interopérabilité des méta-modèles d'entrée (UML 1 / UML 2 /DSL (en) conformes à EMF).
  • syntaxe arborescente dédiée à la manipulation de modèles.
  • personnalisation de la génération par templates.
  • indépendance du langage généré.

L'éditeur Acceleo

Acceleo fournit un éditeur de modules de génération avec coloration syntaxique, complétion, détection d'erreurs et refactoring.

L'éditeur Acceleo


Le débuggeur

Acceleo possède un débuggeur permettant de surveiller le déroulement d'une génération. Ce débuggeur permet de mettre en pause une génération à des points précis et d'y observer l'état des variables pour pouvoir plus aisément corriger un problème.

Le débuggeur Acceleo

Le profiler

Acceleo fournit un système de profiling permettant de déterminer l'ensemble des instructions exécutées avec le nombre d'exécution de chaque instruction et aussi le temps pris par l'exécution de chaque instruction. Les données issues du profiling d'une génération Acceleo sont disponibles après la génération sous le forme d'un modèle EMF.

Le profiling dans Acceleo]Le profiling dans Acceleo

La traçabilité

Le moteur de génération d'Acceleo permet aussi d'obtenir la traçabilité de tous les éléments impliqués dans la génération d'un fichier. Ce système permet par exemple de déterminer l'élément du modèle d'entrée qui a permit de générer une zone spécifique de texte et quelle partie du générateur Acceleo a été impliqué.

La traçabilité dans Acceleo

Utilisation en "stand-alone"

Le parseur et le moteur de génération, composants critiques d'Acceleo, peuvent aussi être utilisé en "stand-alone", c'est-à-dire en dehors d'Eclipse. Acceleo génère aussi une classe Java permettant de déclencher la génération de code programmatiquement permettant ainsi d'intégrer facilement un générateur Acceleo dans n'importe quelle application Java.

Compatibilité

Acceleo est compatible avec les versions d'Eclipse suivantes :

  • Eclipse 3.4 Ganymede
  • Eclipse 3.5 Galileo
  • Eclipse 3.6 Helios
  • Eclipse 3.7 Indigo

Acceleo repose sur le framework de modélisation de la plateforme Eclipse EMF. À ce titre, Acceleo est compatible avec tous les outils produisant des modèles basés sur EMF.

Exemple

Acceleo peut prendre en entrée n'importe quel type de modèles réalisés avec EMF comme des modèles UML ou des modèles représentant des langages dédiés à un domaine. À partir des éléments utilisés par ce modèle, on peut réaliser un template qui permettra la génération de code.

Modèle EMF
Exemple de modèle EMF
Exemple de templates Acceleo
Exemple de templates Acceleo
Code généré par Acceleo
Exemple basique de code généré

Ici, on utilise les éléments EClass, EAttribute et EOperation de EMF. Grâce à ce template et à ce modèle fournit en entrée, Acceleo peut générer le code précédent. Les templates présent dans cet exemple sont paramétrés pour générer du Java mais la norme MOFM2T est indépendante du langage généré. Une fois le générateur paramétré, il suffit de modifier le modèle pour générer un code d'apparence similaire mais avec un contenu différent. Des exemples de générateurs sont fournis avec Acceleo.

Distinctions

Les principales récompenses reçues par Acceleo
Titre Auteur Date Page officielle
Best Open Source Eclipse-Based Developer Tool 2009 Fondation Eclipse mars 2009 (en) Eclipse Community Awards Winners Announced
Open Innovation Award 2010 Open World Forum septembre 2010 (en) Open World Forum Awards

Communauté et communication

La communauté Acceleo est aujourd'hui présente autour de la partie Acceleo présente sur le site web de la Fondation Eclipse. La documentation d'Acceleo[21] est accessible en ligne sur le centre d'aide Eclipse[22] et sur le wiki du projet Acceleo[23].

Conférences

Les développeurs d'Acceleo communiquent aussi avec la communauté par le biais de présentations lors de conférences proche du MDA ou du monde Eclipse.

Nom Date Lieu Titre de la présentation
Conférence sur l'approche MDA 23 novembre 2006 Genève
Symposium sur SOA/MDA 30 novembre 2006 Luxembourg
EclipseCon 2007 6 mars 2007 Los Angeles
Eclipse Summit Europe 2008 10 octobre 2008 Ludwisburg
EclipseCon 2009 25 mars 2009 Los Angeles Eclipse MTL : a Real Standard Alternative for Code Generation[24]
Eclipse Summit Europe 2009 28 octobre 2009 Ludwisburg Présentation du passage de Acceleo.org vers Eclipse Modeling
Eclipse Con 2010 22 mars 2010 Los Angeles Acceleo Code Generation : Let's start with an Android example
Eclipse Summit Europe 2010 3 novembre 2010 Ludwisburg Creating a Language for Android Apps with Eclipse Modeling[25]
Topcased Days 2011 4 février 2011 Toulouse Acceleo[26]
Code Generation 2011 26 mai 2011 Cambridge And you thought you knew template based code generator[27]?

Liens externes

Notes et références

  1. Acceleo 3.2 (stable)
  2. a et b http://www.acceleo.org/pages/nouveautes-d-acceleo-1-1-0/fr
  3. http://www.acceleo.org/pages/telechargement-acceleo-1-2-0/fr
  4. http://www.eclipse.org/legal/logo_guidelines.php
  5. http://www.ohloh.net/p/acceleo-eclipse/analyses/latest
  6. http://forge.ow2.org/projects/acceleo
  7. http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.m2t/org.eclipse.acceleo/?root=Modeling_Project
  8. http://dev.eclipse.org/mhonarc/lists/m2t-dev/msg00643.html
  9. https://github.com/eclipse/acceleo
  10. http://www.acceleo.org/pages/nouveautes-d-acceleo-1-2-0/fr
  11. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-0-0/fr
  12. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-1-0/fr
  13. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-2-0/fr
  14. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-3-0/fr
  15. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-4-0/fr
  16. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-5-0/fr
  17. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-6-0/fr
  18. http://www.acceleo.org/pages/nouveautes-d-acceleo-2-7-0/fr
  19. http://wiki.eclipse.org/Acceleo/ReleaseReview/Helios#Helios_Release_Highlights
  20. http://wiki.eclipse.org/Acceleo/ReleaseReview/Indigo#New_and_noteworthy
  21. http://eclipse.org/acceleo/documentation/
  22. http://help.eclipse.org/indigo/index.jsp?nav=%2F5
  23. http://wiki.eclipse.org/Acceleo
  24. http://www.eclipsecon.org/2009/sessions?id=387
  25. http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1833
  26. http://www.topcased.org/index.php/content/view/53
  27. http://www.codegeneration.net/cg2011/sessioninfo.php?session=24



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Acceleo de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Acceleo — is an OpenSource code generator transforming models into code. It is based on an MDA (Model Driven Architecture) approach.Acceleo is natively integrated with Eclipse and EMF. It includes tools and editors making it easy to learn and to adapt to… …   Wikipedia

  • Graphical Modeling Framework — Infobox Software name = Graphical Modeling Framework developer = Eclipse Foundation latest release version = latest release date = operating system = Cross platform platform = Java platform programming language = Java genre = license = Eclipse… …   Wikipedia

  • Template processor — A template processor (also known as a template engine or a template parser )is software or a software component that is designed to combine one or more templates with a data model to produceone or more result documents.cite book last = Niemeyer… …   Wikipedia

  • List of Eclipse Modeling Framework based software — List of tools internally available from the Eclipse platform= * Connected Data Objects (CDO), a free implementation of a Distributed Shared Model on top of EMF * [http://www.eclipse.org/m2m/ M2M] : a framework for model to model transformation… …   Wikipedia

  • Eclipse (logiciel) — Pour les articles homonymes, voir Éclipse (homonymie). Eclipse …   Wikipédia en Français

  • Model driven architecture — L’architecture dirigée par les modèles ou MDA (pour l Anglais Model Driven Architecture) est une démarche de réalisation de logiciels, proposée et soutenue par l OMG. C est une variante particulière de l ingénierie dirigée par les modèles (IDM,… …   Wikipédia en Français

  • Инструменты UML-моделирования (список) — Эта статья перечисляет средства моделирования с использованием UML. Обзор инструментов документирования и управления требованиями (англ.) Бесплатные программы Acceleo: (http://www.acceleo.org/pages/home/en) основанная на Eclipse и EMF шаблонная… …   Википедия

  • Инструменты UML-моделирования — Эта статья перечисляет средства моделирования с использованием UML. Обзор инструментов документирования и управления требованиями  (англ.) Наименование Стандарт Сайт Описание Бесплатно (Лицензия) Acceleo http://www.eclipse.org/acceleo/… …   Википедия

  • Comparison of code generation tools — This article compares variable metamodel code generation tools[clarification needed]. Fixed metamodel code generation tools, such as UML tools, are excluded (see List of UML tools). Name Creator OS First public release Latest stable version… …   Wikipedia

  • Comparaison des logiciels d'UML — Cet article compare les logiciels d UML. Général Nom Créateur Plateforme / OS Première diffusion publique Dernière diffusion stable Open source ? Licence logiciel Langage de programmation utilisé eUML2 Studio Soyatec Multiplate forme (Java / …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”