Eclipse Plug-ins Factory Instanciation de l’approche SmartTools sous Eclipse ODL SmartTools Fouad Allaoui – chez IBM Paris depuis le 2 juin Didier.Parigot@inria.fr
Sommaire Les premiers résultats Les principales étapes du travail de Fouad Allaoui Proposition d’un planning Conclusion
Objectifs Intégration dans la plateforme Eclipse Diffusion et distribution de l’approche SmartTools Communauté d’utilisateurs en forte croissance Automatisation du processus de développement de plug-ins SmartTools eclipse OSGi XML JAVA
Résultats (1) Eclipse Plug-ins Factory Diffusion et Distribution avec les outils Eclipse Ensemble de plug-ins
Résultats (2) Production automatisée de Plug-in: Ingénierie Dirigée par les Modèles eclipse Wizard Modèle Vue Composant = Plug-in 90% du code produit
Assemblage de composant Résultats (3) Évolution de la notion d’IDE vers la notion de générateur d’applications Rich-Client-Platform (RCP) Intégration de notre SOA : Architecture Orientée Services Assemblage de composant Plug-in eclipse RCP OSGi Plug-ins RCPs Bundles
Travail Réalisé Les principales étapes : Mise en place du développement de SmartTools sous Eclipse SVN, Java 1.5, OSGi, Eclipse Intégration de nos trois composants de base: Absynt, Cosynt et CDML Editeur Eclipse et Vue générique. Intégration de nos outils de génération automatique de plugins. Plug-in Development Environment (PDE). Distribution de notre approche (ensemble de plugins à charger) Démonstration sur un exemple basique. Diffusion de notre approche (Salon Linux et EclipseCon’07). Intégration de notre Architecture Orientée Service (SOA).
Suivi du planning Toutes les tâches de la première année ont été quasiment réalisées, mais il reste à: Finaliser les environnements de nos DSLs (éditeur Eclipse) Poursuivre l’effort de diffusion et de démonstration En avance sur le planning Intégration des vues graphiques et de notre SOA ont été avancées par rapport au planning. Phase de diffusion avancée (février et mars 2007) sur un exemple très basique.
Planning de la 2eme année 1) Intégration de notre SOA Nos DSLs et Plugins: CM, LML, WORDL Finalisation des environnements d’Eclipse Elaboration d’exemple de démonstration 2) Travail de Diffusion Documentation, Presentation, Eclipse Europe, EclispeCon’08 etc… 3) Outils Sémantiques à base de visiteurs A la base de soumission de projets. 4) Version repartie de notre SOA Valorisation de notre approche
Conclusion (1) Retour d’expérience Résultats de notre démarche Le développement de plug-ins est fortement automatisé Réelle complémentarité fonctionnelle entre SmartTools et Eclipse Faible effort de développement durant l’intégration Faible dépendance entre SmartTools et Eclipse (SOA) Avantages de l’Ingénierie Dirigée par les Modèles Programmer sans utiliser directement les APIs, mais avec des DSLs. Avoir très rapide une trame du produit final
Conclusion (2) Par Fouad Allaoui Fort enrichissement des connaissances techniques Platform Eclipse (APIs, environnement, debug, etc) Architectures Orientées Services Difficultés rencontrés principalement du coté d’Eclipse Difficulté à maitriser la durée du développement Encadrement toujours présent et de qualité Aides techniques, moyens fournis et supports. Des retours positifs de la diffusion Thèmes abordés = préoccupations des industriels.
Approche Technologies : 100% Open Source Profiter des efforts de développement des communautés Open Source S’appuyer sur des technologies standards (XML, OSGi) Élargir la diffusion de l’approche à travers ces communautés SmartTools eclipse OSGi XML JAVA
Approche Fabrique Logicielle Prototype réalisé fin 2002 Basé sur les standards : XML, JAVA 10 composants de base (générateurs de code) 100 000 lignes pour 1 000 000 lignes de code produits Ingénierie Dirigée par les Modèles Génération de code à partir de modèles Architecture Orientée Services Modèle à composants Communication par services
SOA Configuration Eclipse RCP OSGi Services Component Manager cmp2-1
Absynt DTD XSD ABSYNT Model Visitor ABSYNT - Plugin DSL GENERATION ( XML.absynt ) ABSYNT - Plugin ( XML.dtd ) ( XML.xsd ) ( XMLVisitor.java ) DSL
Cosynt COSYNT View 1 View n Model xsl Parser COSYNT - Plugin Concrete Syntax View 1 xsl Parser COSYNT ( XML.cosynt ) View n GENERATION DSL
CDML Container CDML Facade CDML - Plugin Activator ( XML.cdml ) DSL GENERATION DSL CDML - Plugin Container Facade Activator CDML ( XML.cdml )
Approche