Blog de Samuel Liard
RSS icon Email icon Home icon
  • Retour sur l’acceleo day

    Vendredi 10 juillet avait lieu à Nantes les Rencontres Mondiales du Logiciel Libre. C’est dans ce cadre qu’Acceleo a choisi d’organiser une journée dédiée à leur outil de transformation M2T.

    Etienne Juliot commence cette journée par une présentation de l’outil. Il a reussi à faire une présentation à la fois pour les débutants et pour les plus aguerris en y ajoutant quelques petites astuces bien pratiques. Le reste de la matinée était consacrée aux retours clients. Il y en aura quatre de Capgemini, Atos, Bull et OrangeLabs.  C’est celui d’ Atos qui m’a vraiment marqué et pas forcément dans le bon sens du terme. J’ai été frappé par le fossé qu’ils creusent entre les développeurs et les architectes. Attention je ne stigmatise pas Atos, beaucoup de grands groupes (le mien en premier) partage cette approche et voient l’Architecte comme un dieu dans sa tour d’argent dictant sa loi aux gueux développeurs.

    Pour ma part je ne l’approuve absolument pas et la distribution des rôles en scrum me donne raison. En effet en scrum les rôles architecte et développeur n’existent pas. Seul le rôle team compte. L’équipe doit bien sûr être composée d’experts en architecture et en développement mais ils doivent travailler ensemble. Pour moi un bon architecte doit mettre les mains dans le code et un bon développeur doit maîtriser l’architecture et même y contribuer.

    Pour revenir à acceleo day, j’ai donc présenté très rapidement comment notre chaîne de génération a évolué avec le temps.

    Je me suis bien amusé à le faire et ça a été partagé si j’en crois le premier retour que j’ai pu lire. Retour fait par Cedric Vidal qui avait le créneau le plus dur, celui d’après le repas. Il a fait une très bonne présentation sur le Scaffolding. Technique intéressante qui propose d’enrichir le modèle par une ou plusieurs transformations M2M (Model to Model) avant la génération de code. Ca permet de garder la main sur certains éléments pour les enrichir. L’exemple type est le service CRUD (Create, Read, Update, Delete) d’un entité, c’est intéressant de le générer et de garder le lien avec l’entité tout en l’ayant modélisé pour le compléter et le documenter.

    Je n’ai malheureusement pas pu assister à la dernière présentation de Goulwen Le Fur car je devais reprendre la route. Vous pouvez lire ses slides sur leur site.

    Journée qui a donc été très enrichissante. C’est toujours intéressant de partager avec d’autres industriels pour comparer nos façons de faire.

  • Acceleo M2T et Eclipse 3.5

    Comme vous le savez Eclipse 3.5 Galileo est sorti le 24 Juin.

    Une des nouveautés est l’intégration d’Acceleo M2T directement dans la version “Eclipse Modeling Tools”.
    Je n’ai pas passé beaucoup de temps à l’essayer, mais on peut déjà noter plusieurs grosses améliorations. Bien sur la plus importante est le changement de langage de script. On passe d’un format spécifique Acceleo à du MTL standard défini par l’OMG pour les transformations Model to Text.

    Je vais plus me focaliser sur les nouveautés au niveaux outillage.

    Installation facile

    Avant je n’avais jamais réussit à installer Acceleo sur mon Eclipse via leur update site. Il y avait toujours des problèmes avec les versions d’emf, uml2… J’ai perdu beaucoup de temps et le seul moyen de le faire fonctionner rapidement était de récupérer leur package Eclipse+Acceleo.

    Cette fois j’ai installé un Eclipse 3.5 vierge et via l’update site de Galileo je peux installer Acceleo 0.8. Au moment de l’installation il m’a installé toutes les dépendances nécessaires (emf…) En 5 minutes ça marche. Seul petit hic, il ne tire pas les dépendances vers le plugin uml2 et l’exemple ne fonctionne pas sans. Mais si vous avez téléchargé la version “Eclipse Modeling Tools” tout fonctionne sans passer par l’update.

    Exécution en standAlone

    Même si cette fonctionnalité existe depuis la version 2.4.0 d’Acceleo, on note maintenant la disparition complète des chaines de lancement Acceleo. Pour générer notre code on peut donc utiliser au choix :

    • Du Java
    • Une tache ant
    • Un runner Eclipse

    Il ne manque plus qu’un plug-in Maven 2, mais vu que l’équipe d’acceleo utilise plus ivy que Maven il faudra peut être le réaliser nous-même.

    Debug

    Je gardais le meilleur pour la fin, il est enfin possible de mettre des points d’arrêt dans nos templates. Ca marche très bien et on peut facilement naviguer dans notre model comme on le fait avec des objets en debug Java.
    C’était le gros manque au niveau outillage d’Acceleo, c’est maintenant très bien fait.

    Une grosse évolution très intéressante d’Acceleo donc. Je suis même étonné qu’il n’y ait pas plus d’infos à ce propos sur leur site Web. Ils sont trop occupés à préparer l’Acceleo Day du 10 Juillet peut être :) Journée annoncée sur la page d’acceuil d’Eclipse, la classe !

    acceleoday

  • Acceleo JEE Module Sprint

    Goulwen de l’équipe Acceleo nous propose de participer à l’enrichissement de leur module J2EE. Pour le moment ce module permet de générer une couche de persistance hibernate, des services spring et une partie IHM Web en struts. Si vous avez des idées, vous pouvez les proposer sur la mailing list acceleo-dev@ow2.org.

    De mon côté, j’ai proposé la réalisation d’un module de génération d’IHM CRUD (Create Read Update Delete). Dans un premier temps elle sera faite avec struts2 mais la prochaine version sera en flex. Même si je suis conscient que ce type d’IHM générique n’est pas utilisable dans le cadre d’un produit, ça reste un bon outil pour naviguer dans son modèle de données et un bon squelette pour la réalisation de l’IHM cible.

    J’ai mis sur SVN un premier exemple de la cible à générer. C’est un module maven, il suffit donc de lancer “mvn jetty:run” pour le tester.

    Si vous avez des idées, des propositions ou mieux du temps pour donner un coup de main, contactez moi ;)

  • Acceleo 2.3

    La version 2.3.0 d’Acceleo est sortie vendredi dernier !
    On peut noter les principales nouveautés :

    • Compatibilité Eclipse 3.4
    • Recherche de référence des templates
    • Support partiel des EOperations
    • Acceleo indépendant du bridge
    • Compatibilité EA 7

    Liste complète des nouveautés

    Vu que j’ai participé à la mise en place du bridge pour Entreprise Architect, je peux vous confirmer qu’il fonctionne bien pour les diagrammes de classes. Par contre, Acceleo a oublié d’indiquer que cela ne fonctionne qu’avec la version 7.1 Build 830. Comme EA a la mauvaise habitude de modifier son export XMI régulièrement, faites bien attention d’avoir la bonne version.

    Acceleo est un très bon produit open source pour faire des transformations M2T (Modele to Texte) parfaitement intégré à Eclipse. Et à propos d’Eclipse, Obeo (la société développant Acceleo) vient de passer au statut de “Strategic member” de la fondation Eclipse.


  • Fusion Papyrus TopCased

    Un nouveau projet de plug-in Eclipse pour réaliser un éditeur UML open source a été lancé. C’est en fait une fusion de deux modeleurs open source européens Papyrus et Topcased. Poposition
    Les points intéressants à noter :

    • Intégration de SysMl
    • Utilisation de UML-DI (normalisation d’un format d’échange des diagrammes UML)

    En plus de Sébastien Gérard (Leader du projet Papyrus) et de Raphaël Faudou (Leader du projet TopCased), on peut noter la présence d’Etienne Juliot de la société Obeo (editeur de l’outil MDA acceleo). Il faut espérer que sa présence mette en avant les aspects MDA, car malheureusement ce mot est absent de la proposition.

    Début prévu pour Juin 2008.

  • MD Day

    J’ai participé Vendredi dernier au MD Day dans l’hôtel Hilton près de la tour Eiffel.

    Un acronyme a été mis en valeur : DSM (Domain Specific Modeling)

    Donc si vous voulez savoir combien de stylos j’ai récupéré, combien de petits fours j’ai mangé, si j’ai réellement rencontré Paris Hilton ou simplement avoir un résumé de la journée, je vous invite à lire la suite.

    Cette journée a été organisée par cinq sociétés

    • Lyria
    • Mia-Software
    • Obéo
    • Objecteering
    • Objet direct

    Le principe est que chaque société fait une présentation en deux parties. Une partie commerciale suivie par une restitution client.

    L’arrivée

    Grosse déception dès mon arrivée! Pour ma première visite dans un hôtel Hilton j’étais en droit d’espérer un accueil luxueux par Paris elle-même. Et bien non personne! J’ai même été obligé d’appuyer sur le bouton de l’ascenseur, le groom devait être en RTT…

    Présentation du MDA par Xavier Blanc

    Xavier Blanc est maître de conférence à Paris VI et l’auteur de “MDA en action” et de “UML2 pour les développeurs”. Il a fait une présentation des concepts du MDA. Une présentation très universitaire mais néanmoins intéressante. Par contre, au moment d’aborder les problèmes de passage à l’échelle, j’ai été étonné par sa notion de “gros modèle”. Il dit travailler sur des modèles de 150 Go. Pour vous donner un ordre d’idée, les modèles d’Eclipse ou de Net Beans font 350 Mo. Mais une de ses phrases explique tout : “Un modèle peut grossir vite si on modélise des vidéos” ok, s’il met ses divx dans RSM on peut vite monter à 150 Go.

    Usine Logicielle avec Eclipse par OBeo

    Obeo propose un plug-in Eclipse gratuit pour faire de la génération de code depuis un modèle emf de façon très configurable. C’est une petite société nantaise de 18 personnes très dynamiques.

    Une personne de l’UNEDIC nous a ensuite présenté leur projet fait en collaboration avec OBeo. Ils ont fait le choix de ne pas utiliser UML mais de définir un DSM basé sur emf et ensuite de réaliser un générateur de code. Un projet de 300 h/j sur 5 mois. Ensuite cet outil a ensuite été utilisé par Unilog pour la réalisation du projet (5000 h/j).

    Génération d’IHM par LYRIA

    LEONARDI permet de générer des IHM riches ou légères. Leur outil s’appuie sur des fichiers XML pouvant être générés depuis un fichier XMI. Leur présentation ne m’a vraiment pas convaincu, l’outil à première vue est complexe et il y a trop d’étapes pour arriver à l’IHM.

    Mais cette première impression est peut être erronée vue l’éloge du produit par EADS. Ils construisent de grosses applications pour leur client. On peut donc noter plusieurs points positifs de leur approche à savoir :

    • La génération multi-clibe d’IHM
    • La génération de tests d’IHM

    L’approche MD avec MIA software

    Un peu de la même façon qu’OBeo, ils proposent un produit de génération de code et de transformation modèle à modèle. Encore une fois ce transformateur configurable à souhait, même les balises d’insertion de code sont configurables. Ils se basent sur des fichiers XMI générés par la plupart des éditeurs UML du marché.

    La SNCF utilise cette solution pour leurs développements et ils en sont très satisfaits même dans un contexte de charge important (1500 messages à gérer par seconde). Pour cela ils on défini un DSM puis des outils de transformation depuis ce modèle. Ils ont aussi développé un “reverse intelligent” pour modéliser et régénérer les applications existantes (aussi bien Java que .NET). Il insiste aussi beaucoup sur leurs outils de validation de modèle.
    Ils projettent de migrer de Rasonal Rose vers Magic draw.

    La pause déjeûner

    Le moment important de la journée ! Une belle table et open bar avec Vodka, whisky et autres alcools forts. Je me jette discrètement sur les petits fours, mais après en avoir avalé 3-4, j’ai commis une grave erreur technique, je me suis fait happé par des commerciaux. Et après 2-3 discussions fort intéressantes mais pas très nourrissantes, plus de petits fours !

    La méthode Praxeme

    Ca commence très fort avec une belle citation d’Albert Einstein : “Aucun problème ne peut être résolu sans changer le niveau de conscience qui l’a engendré.”. Dominique VAUQUIER créateur et auteur de la méthode Praxeme nous en explique ensuite les principes. Il refait aussi un petit historique sur Merise. Par contre je regrette un peu sa vision Tayloriste du développement.

    Objecteering

    Philippe Desfray a mis l’accent sur la méthodologie et a rappelé que même si le MDA est une belle avancée, il est inutile si le modèle est faux. Il faut donc aussi travailler sur des outils de vérification de modèle pour s’assurer de sa cohérence.

    Le Groupe SMABTP a utilisé Objecteering pour mettre en place sa démarche MDA pour faire du SOA. Ils ont refondu leur SI avec ces outils en se basant sur la méthodologie Praxeme.
    Ils utilisent aussi JRules.

    Objet Direct

    Présentation de leur SSII, c’est les meilleurs, et les plus beaux. Ils ont mis au point le langage D Script pour coder le métier au niveau PIM et générer 100% du code. C’est un PIM exécutable.

    La CACEIS (Credit Agricole Caisse d’Epargne Investor Services) a utilisé une approche DDD Domain Driven design pour automatiser leur facturation.

    Microsoft

    Là aussi de beaux slides qui commencent par une citation de Darwin. Mais vu que le second slide n’avait que des chiffres inintéressants je me suis visual studio (version .NET du verbe éclipser)

    Conclusion

    Pour commencer un bilan chiffré :

    • 2 stylos
    • 1 magazine mais pas de Tshirt
    • 5 petits fours
    • Zero Paris Hilton
    • 9 femmes, 91 hommes (que fait le gouvernement pour imposer la parité dans notre métier !)

    Plus sérieusement cette journée était très enrichissante. J’ai même été étonné de ne pas voir plus de discussions contradictoires. L’auditoire était composé essentiellement de personnes convaincues. J’ai aussi été surpris par le nombre de personnes utilisant des DSM dans leur projet. Et c’est peut être à ce niveau-là qu’il y a des leçons à tirer. UML est trop complexe et c’est pour cela que l’on a du mal à le faire adopter. Si on offre des méta-modèles collant aux besoins des utilisateurs on aura plus de facilité à les faire adhérer aux approches MDA.

    Les slides : www.mdday.fr