Evènements

EclipseCON France 2013 : ce que j’y ai vu

Publié le : Auteur: Philippe HACQUIN 7 commentaires
evenement

Un résumé des conférences et workshops auxquels j’ai assisté pendant deux jours lors de la première édition EclipseCON en France, qui se déroulait à Toulouse les 5 et 6 juin.

En préambule, j’ai découvert lors de ces présentations un gadget qui apparemment fait l’unanimité en ce moment, le Raspberry PI, micro (pico ?) ordinateur Linux occupant à peine plus de place qu’un paquet de cigarettes, vendu sur Materiel.net à moins de 40 euros. Il a servi durant ces deux jours de passerelle Wifi et serveur HTTP, ainsi qu’à exécuter un programme Java dans une JVM lors d’une démo…

rapsberryPi

On est bien loins des premiers kit d’évaluation de microprocesseurs 8 bits qui tenaient sur un format A3, sur lesquels j’ai appris à programmer au début des années 80, avec 8 switchs, deux boutons poussoirs et un affichage numérique à LED pour seules entrées/sorties !

Je tiens aussi à avertir sur le fait que je suis allé à cette manifestation dans le but d’améliorer ma culture générale sur Eclipse, je ne suis certainement pas expert dans les domaines abordés par les sessions auxquelles j’ai participé. Je m’efforcerai cependant de répondre aux éventuelles questions si j’en ai la possibilité.

3 salles de conférences, 11 créneaux horaires pour les différentes sessions, ce qui nous fait 3^11 (177 147) possibilités de parcours, voici dans les chapitres suivants celui que j’ai choisi.

egit Workshop EGit

Intervenants: Igor Laborie (AKKA), Matthias Sohn (SAP, committer JGit)
EGit est un outil de manipulation de repository GIT dans Eclipse. GIT est devenu avec Eclipse Juno (4.2) le SCM de prédilection, puisque le support de Subversion nécessite toujours l’installation d’un plugin, alors que l’accès à GIT est dorénavant disponible en standard.
Le workshop a consisté à configurer EGit, créer un repository à partir d’un projet Java, importer un projet Java contenant déjà un repository GIT, réaliser un commit avec ou sans staging préalable (préparation des fichiers avant commit), supprimer, déplacer des sources, naviguer dans l’historique du projet et visualiser les modifications,….
J’ai réalisé les exercices sur un Eclipse Juno SR2 fraîchement installé, sur lequel j’avais fait une mise à jour préalable de EGit 2.3.

Les slides ayant servi de support:
Git & EGit beginner Workshop

Les exercices, préparés par Igor Laborie (AKKA Toulouse), disponibles sur
http://ilaborie.github.io/Git–EGit-beginner-workshop/

Mon avis: deux jours avant ce workshop, le serveur SVN que j’utilisais quotidiennement était indisponible pendant près d’une demi journée… L’utilisation de GIT, de par sa nature distribuée, aurait évité à mon équipe de perdre pas mal de temps. C’est décidé, je vais explorer un peu plus la mise en oeuvre de GIT en lieu et place de SVN (Eclipse, Maven, intégration continue, … A suivre).

Liens sur les projets:

junoIcon Workshop Tycho

J’ai été assez perdu dans les exercices proposés par Jean François (Jeff) Maury (Syspertec), sans doute du fait de mon démarrage un peu poussif sur la manipulation du repository GIT contenant les exercices à exécuter.
Bref, Tycho fournit plusieurs plugins Maven (dont le principal de GAV org.eclipse.tycho:tycho-maven-plugin:0.18). C’est un projet Eclipse encore en incubation, qui permet de construire des projets de plug-ins Eclipse, applications RCP, bundles OSGi, avec Maven. D’origine Sonatype, il est devenu un projet Eclipse en 2011.
Tycho ajoute de nouveaux types de packagings dans un POM (eclipse-plugin, eclipse-feature, …). Liste disponible sur http://wiki.eclipse.org/Tycho/Packaging_Types.
Les dépendances exprimées dans les fichiers MANIFEST sont résolues dans des repositories Equinox p2. Il est possible de les résoudre aussi dans un repository Maven, en utilisant un serveur Nexus avec les plugins Nexus Capability, P2 bridge et P2 repository.
Les builds de ces projets peuvent ainsi être intégrés dans une chaine IC ‘classique’ (Hudson/Jenkins).
En synthèse, on peut avec ces solutions profiter de tout l’écosystème qui s’est développé autour de Maven ces dernières années.

junoIconThe Humanist Perspective of Industry 4.0

Plusieurs réflexions intéressantes sur la place de l’Homme et celles des machines à plus ou moins court terme. 50 milliards de machines connectées à l’internet dans 7 ans … Hans-Jürgen Kugler assimile cela à une nouvelle révolution industrielle, et met en garde sur les conséquences possibles si l’on ne maîtrise pas ce développement. Même si cela n’a pas été évoqué, on a dû être quelques uns à penser à Asimov (voire Terminator !).

etrice Application temps réel avec eTrice

Cette session avait pour objectif d’illustrer la conception et le développement d’une application temps réel avec eTrice.

Le projet Eclipse eTrice est une implémentation du langage de modélisation ROOM (Real time Object Oriented Modeling), avec générateurs de code Java et C++.
Démo proposée par Thomas Schütz de Protos Software en Allemagne, project lead de eTrice.
eTrice s’appuie sur EMF, Xtext, Graphiti, Xtend.
Son domaine d’application est l’industrie (automates, robotique).

Les modèles sont enregistrés dans des fichiers texte .room, eTrice fournit les éditeurs texte et graphiques pour les modifier:

  • éditeur graphique du modèle structurel (statique): équivalent d’un diagramme de composants UML. On y trouve les acteurs (processus), ports (permettent aux acteurs de communiquer avec l’extérieur), protocoles (eh oui, ces petites bêtes connectées dont le nombre va dépasser cette année le nombre d’humains sur terre ont besoin de s’accorder sur la manière dont elles discutent entre elles, exemple: MQTT récemment adopté par le consortium OASIS).
  • éditeur graphique du modèle comportemental (dynamique): équivalent d’un diagramme d’états UML

On peut basculer sans problème de l’éditeur graphique à l’éditeur texte et vice-versa.

Thomas nous a montré en direct une conception d’une application simple (gestion de feux de signalisation), allant de la modélisation jusqu’à la génération de code Java et son déploiement et exécution dans une JVM sur un device Raspberry PI. Les feux de signalisation étaient simplement simulés par affichage graphique à l’écran de l’état des ports d’entrée sortie du Raspberry.

J’adore ce genre de démonstrations gadget, elles me rappellent mes TP d’électronique lorsque j’étais étudiant, avec des protos développés en assembleur. A l’époque, on n’avait que des chips de 512 octets de RAM pour contenir les programmes, et ça ne s’appelait pas encore de l’informatique industrielle…

Vidéo intégrale de la session

.

junoIcon Mise en oeuvre de Eclipse au CERN

Jed Anderson / Genuitec, Donat Csikos / CERN.
Un retour d’expérience sur le déploiement et la maintenance d’Eclipse au LHC (accélérateur de particules) à Genève. Des centaines de machines, des milliers de processus (> 1000 JARs en production), et 10 millions de lignes de code, principalement en Java (mais aussi C++).
Assurance qualité du code avec Clover, PMD, Sonar, Findbugs intégration continue avec Bamboo.
Customisation avec quelques plugins.
Equipes de développement en mutation constante dans leurs effectifs (200 développeurs): la majorité des contrats sont < 3 mois. Les outils doivent leur permettre d’être rapidement opérationnels.
OS hétérogènes sur les stations de développement: Windows, Mac OS, Linux.
Le LHC a défini un package unique d’outils (1,5 H*M), les mise à jour sont télédiffusées, mais un soin est apporté à la conservation des configurations (préférences). Problèmes rencontrés: gestion des firewalls, cohérence des plug-ins Eclipse (conflits), temps d’analyse des problèmes.
Intégralité de la vidéo de la session
Les anecdotes:

  • Les 200 développeurs sont supportés par seulement 2 experts Eclipse
  • la puissance générée par le LHC est celle d’un TGV lancé à 150 km/h, avec un impact sur une surface équivalente au trou d’une aiguille

orionsmall Développement web avec Orion

Présentation du projet par John Arthorne, IBM, project lead.
Orion était déjà une des plus belles constallations d’hiver dans l’hémisphère nord, c’est depuis quelques années un projet Eclipse Open Source, en version 3.0 M2 actuellement, d’origine IBM, et destiné à fournir un outil de développement pour des applications web, qui s’exécute dans un navigateur, et permet donc le cloud based development.
Pour l’instant, cet outil sert essentiellement à développer des sources Javascript, HTML, CSS.
Une démonstration d’édition d’un source de plusieurs milliers de lignes avec Orion dans Chrome montre en effet des temps de réponse très courts. Les outils de développement sont écrits en Javascript. Eh oui, l’époque où Internet Explorer 3 était incompatible avec le moteur Javascript de Netscape Navigator 4 est bien révolue …
Les premières versions intégraient Dojo, qui a été depuis abandonné car trop lourd. Le développement sur API natives des navigateurs a permis des temps de chargement de pages de 750 à 250 ms.
L’IDE fonctionne sur une tablette, mais l’opérabilité est quand même meilleure sur un laptop.
Le support de GIT est intégré.
Le serveur Orion est téléchargeable et installable sur une station.

junoIcon Design: Making the World Simple, Fair, and Beautiful

Dominique Sciamma, directeur R&D au Strate Collège.

Intervention captivante; n’ayant pas pris de notes, j’aurais voulu revoir la présentation (perturbée par des voisins bruyants), hélas je n’ai rien retrouvé sur le net, à part des remarques comme ‘awesome’, ‘brilliant’, etc, mais sans trop de contenu.

Mr Sciamma nous a parlé du rôle du designer au XXIème siècle, et des possibilités encore insoupçonnées de ce que nous offrent les technologies actuelles et futures: réalité augmentée,… Le problème du designer: se libèrer des carcans de pensée traditionnelles. Je ne l’ai pas noté exactement, mais un slide assimilait le marketing à une activité n’explorant que le passé; c’est tellement vrai. Le monde a besoin de gens comme lui qui bousculent nos habitudes, on aimerait les entendre plus souvent.

intent Gestion de documentation avec Mylyn Intent

Par Alex Lagarde (Obeo, project lead).
Projet Eclipse en incubation, d’origine Obeo, destiné à faciliter la gestion de la documentation d’un logiciel (doc utilisateur, dossier de conception, etc) et de sa mise à jour, en introduisant des liens de synchronisation entre les artefacts (modèle, sources Java,…) et la documentation.
Le projet est en version 0.8 (version liée à Eclipse Kepler qui sera disponible en fin de ce mois).
Le document s’écrit au format Textile, que l’on trouve souvent dans des systèmes de CMS (pour écrire et mettre en forme des page de wiki, des billets dans des blogs, etc).
Des annotations spécifiques Intent sont placées dans les documents pour introduire des liens de synchronisation avec par exemple du code Java (drag & drop d’une classe, d’une méthode ou d’une propriété dans le document à lier).
Lorsque le code Java est modifié, Intent met en évidence les modifications de code dans la documentation, indiquant clairement au développeur les zones de documentation à reprendre.
Pour l’instant la documentation générée n’est exportable qu’au format HTML. Les formats LaTex et PDF sont à l’étude.
Intent peut aussi servir à vérifier le respect de contraintes de développement dans les sources. Personnellement, je préfère une solution comme PMD ou Checkstyle pour faire ce genre de choses, pour des contrôles en intégration continue.
Alors, verdict ?
De mon point de vue, je trouve cet outil séduisant pour produire un dossier de conception détaillée du code Java. Ceci étant dit, si je me fie à la popularité de la Javadoc qui n’est pas si loin que cela des services offerts par Intent, j’ai un doute sur son adoption spontanée par les développeurs. Il pourrait peut être réhabiliter la documentation dans les démarches de développement Agile.
La démo en séance n’a pas montré les capacités équivalentes de l’outil à documenter un modèle ecore, on peut découvrir cette fonction dans le wiki du projet (« Getting Started »).

junoIcon Génération d’une application à partir d’un modèle

Par Eike Stepper, project lead de CDO.
Cette présentation concernait la mise en oeuvre de EMF, Eclipse WindowBuilder, CDO, … à partir de la conception d’un métamodèle, jusqu’à la réalisation et exécution d’une application RCP reprenant les fonctionnalités de Bugzilla, avec gestion de persistance avec CDO.
Eike utilise les outils d’édition de modèle générés par le framework EMF comme une application (donc une instance d’un modèle …) de mise à jour de données.
Etonnant, mais le résultat final est concluant.
La démarche a aussi pour but d’illustrer les avantages de CDO pour le stockage d’un modèle en base de données, par rapport à un simple fichier XMI: possibilité de gèrer des modifications concurrentes de modèle, les transactions ACID, verrous optimistes ou pessimistes sur les données.
Session trés intéressante pour moi, sans doute du rabâchage pour d’autres car une bonne partie des auditeurs n’est pas revenue après ‘l’entracte’.

Les slides de la présentation donnée à EclipseCON Europe l’an dernier, et vraisemblablement les mêmes que ceux montrés à Toulouse, sont disponibles ici.

En même temps que cette présentation, Obeo et Thales organisaient une présentation de Sirius (décidément … Star Trek aura marqué ces dernières décennies) récemment proposé au titre de projet Eclipse Open Source.
D’après quelques retours sur Twitter concernant la manifestation, je crois que j’ai manqué quelque chose…

junoIcon Revue de code chez SAP

Matthias Sohn et Stefan Lay de SAP.
Cette session avait pour but de présenter un retour d’expérience de la part de SAP sur la mise en oeuvre d’une démarche de revue de code lors de développements.
L’objectif est d’accélérer le feedback, une des valeurs de fond de XP, pour améliorer la réactivité des développeurs, et de manière induite, la qualité du code produit.
SAP a préféré cette approche par rapport au pair programming, pour lequel le feedback est plus rapide, mais avec une communication limitée au binôme concerné.
Cette expérimentation a concerné plus de 400 développeurs.
Les points notables:

  • appliquer la démarche sur des petits développements (ou des petits incréments)
  • la revue de code facilite la communication entre développeurs (NB: les développeurs SAP sont allemands, donc peut être plus disciplinés lors de réunions que les français au tempérament plus latin …)
  • elle garantit la lisibilité du code

En revanche, le pair programming est considéré comme complémentaire à la démarche:

  • pour accueillir de nouveaux développeurs
  • pour aborder une techno mal maîtrisée
  • pour exploiter des compétences complémentaires entre développeurs

Un autre avantage de la revue de code est que par nature elle est asynchrone: elle ne nécessite pas la mobilisation simultanée du relecteur et du développeur. Elle peut être partiellement outillée (PMD,…).
Tout développeur peut devenir relecteur. Des invitations exceptionnelles de membres d’autres équipes sont ponctuellement possibles, sur des sujets spécifiques. Il est important de laisser suffisamment de temps aux participants des échanges pour relire le code.
La charge de revue de code doit être intégrée dans l’activité (estimation d’une heure par jour et par personne).
Les outils utilisés:

  • GIT
  • Gerrit (projet Google développé pour la mise au point d’Android)

Démarche séduisante, qui s’applique sans doute plus facilement (et qui est sans doute vitale) au contexte d’un éditeur de logiciels, qu’à celui d’un développement au forfait dans une SSII …
J’avais participé à la mise en place d’une opération équivalente il y a quelques années dans une petite équipe que j’encadrais, j’ai été confronté à d’autres problèmes: insistance auprès de la hiérarchie pour faire accepter le principe, mauvaise volonté de certains développeurs qui acceptaient mal les remarques des relecteurs. La démarche est délicate à appliquer, il faut savoir ménager les susceptibilités, et elle nécessite à mon avis une implication forte de la hiérarchie.

Les slides présentés en session.

rmf Requirements Modeling Framework

Démonstration de l’implémentation dans le project Eclipse RMF du standard ReqIF (métamodèle) de l’OMG. Ce projet est en incubation, en version 0.7.
ReqIF était au départ un format de fichier d’échanges en usage dans le secteur automobile en Allemagne.
ProR est un éditeur de modèle ReqIF.
Intéressant, mais me paraît inadapté à une démarche de modélisation UML et une analyse des exigences par cas d’utilisations.

Vidéo intégrale de la session

.

Lien sur le site du projet.

junoIcon Modélisation collaborative

Session peut être la plus intéressante de mon parcours sur ces deux jours. Elle présentait le résultat de travaux conjoints Thales/Obeo, ayant abouti à un outil de modélisation autorisant l’édition d’un modèle simultanément par plusieurs concepteurs, avec gestion en temps réel des conflits.
La situation qui précédait la mise en oeuvre de cet outil est rappelée: extraction de fichiers composant des modèles depuis un SCM, modification et commit des mises à jour, qui conduisaient souvent à devoir résoudre des conflits de modifications simultanées par différents intervenants.
A partir de ce constat, une recherche de solution a été effectuée pour répondre à ces besoins:

  • gestion de modèle avec une granularité plus fine pour minimiser les risques de conflits
  • pose automatique de verrous dès modification de certains objets du modèle

L’outil s’appuie sur le framework Sirius évoqué précédemment, et sur CDO qui enregistre le modèle en base de données relationnelle.
Dans la démonstration qui nous a été présentée, l’aspect le plus spectaculaire est la matérialisation d’un verrou sur un objet d’un modèle en édition sur un poste, consécutive à une modification de cet objet sur un autre poste. L’objet verrouillé ne reste modifiable que sur le poste ayant initié la mise à jour. Il est déverrouillé et les mises à jour propagées sur les autres postes d’édition dès sauvegarde par le possesseur du verrou.
Lorsque les modifications du modèle sont terminées, la version gérée par le serveur Sirius est exportée et commitée dans le SCM qui gère les historiques d’évolution du modèle.
Un serveur Jenkins sert d’ordonnanceur pour exécuter différentes tâches administratives de gestion de l’outil: lancement et arrêt du serveur CDO, import de modèle, sauvegardes intermédiaires,…
Le développement du projet a nécessité entre deux et trois ans d’effort, et ne sera pas mis à disposition en Open Source. Ce projet a cependant contribué à plusieurs projets ouverts: Sirius, CDO,…

Vidéo intégrale de la session

good bye spock Epilogue

Cette dernière session concluait le parcours que j’ai emprunté durant ces deux jours, la tête dans les étoiles. Ce fut une expérience trés enrichissante, vécue dans un cadre remarquable, le centre de congrès Pierre Baudis, à proximité immédiate du parc Compans Caffarelli.
Car EclipseCON, avec un nom pareil, ne pouvait QUE se tenir à Toulouse pour sa première édition en France…

  • Vincent Hanniet

    Super intéressant.Bravo Philippe !
    Quelques un des sujets abordés le sont aussi chez Sodifrance avec d’autres pratiques et outils. J’en donnerai la liste ici au cours de la semaine 🙂

    • Vincent Hanniet

      Pour le reverse modeling, d’une application Java ou autre technologie, un projet de référence important dans l’éco-système Eclipse est MoDisco, co-leadé par INRIA-Altanmod et Mia-Software. MoDisco, déjà utilisé en pratique par d’autres sociétés, va bénéficier de multiples améliorations dans les 2 ans qui viennent notamment grâce au projet de R&D subventionnée ITM-Factory, dont le consortium est dirigé par Sodifrance. J’espère qu’on aura l’occasion de présenter ce sujet lors d’un prochain EclipseCON ;D

  • Hé bé, con, merci pour ce retour très très complet ! 🙂 Ravi de voir que la conférence a su satisfaire votre curiosité !
    Nous sommes en train de mettre en ligne les interventions filmées des intervenants, donc vous devriez pouvoir revoir entre autres celle de Dominique Sciamma dans les jours qui viennent. http://www.youtube.com/watch?v=3qdWyePwFao&list=PL-7539tdkDzvZMjWLTL1aUmUyPfyeH00m

    • Philippe Hacquin

      Merci pour les vidéos, j’ai intégré les liens dans le billet. Je vais pouvoir revoir quelques points passés un peu vite, super!

  • Stefan Lay

    Merci beaucoup pour les résumés très intéressants!
    Pour notre présentation « Revue de code chez SAP » le version des slides est celle d’EclipseCon Boston. Nous avons ajouté plus de détails sur les best practices.
    La version des slides d’EclipseCon France est ici: http://www.slideshare.net/stefanlay/code-review-22850271
    P.S.: Désolé pour mon mauvais français 😉

    • Philippe Hacquin

      Ihre französische Sprache ist besser als meine deutsche Sprache…
      Merci Stefan, j’ai mis à jour le lien.

  • Dominique Sciamma

    Bonjour,

    les slides de la conférence « Design: Making the World Simple, Fair, and Beautiful » sont sur slideshare : http://fr.slideshare.net/dominiquesciamma/2013-0606dskeynoteeclipse

    Cordialement

    Dominique Sciamma