AcceleoAcceleo
Acceleo est un générateur de code 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 basés sur EMF. Il s'agit d'une implémentation de la norme MOF Models to Text (MOFM2T) de l'Object Management Group (OMG) pour les transformations de modèles à texte. Historique et développementLes débuts du logicielLe 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 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 EclipseEn 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. MarqueBien 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 sourceAcceleo 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 , le code source d'Acceleo est disponible sur Github[9]. Historique des sorties
Plateforme supportées par AcceleoAcceleo 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 langageLe 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ésAcceleo 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 :
L'éditeur AcceleoAcceleo fournit un éditeur de modules de génération avec coloration syntaxique, complétion, détection d'erreurs et refactoring.
Le débogueurAcceleo 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 profilerAcceleo 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. 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 permis de générer une zone spécifique de texte et quelle partie du générateur Acceleo a été impliquée. 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 :
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. ExempleAcceleo 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. 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. Communauté et communicationLa 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érencesLes 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.
Liens externes
Notes et références
|
Portal di Ensiklopedia Dunia