Intégration de l interface graphique de Ptidej dans Eclipse



Documents pareils
S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

Introduction à Eclipse

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Bases Java - Eclipse / Netbeans

Environnements de développement (intégrés)

TP1 : Initiation à Java et Eclipse

Programmation Mobile Android Master CCI

Projet de développement

Vérifier la qualité de vos applications logicielle de manière continue

IFT6251 : Sujets spéciaux en génie logiciel

TP1 : Initiation à Java et Eclipse

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Générer du code à partir d une description de haut niveau

Eclipse atelier Java

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Construire des plug-ins pour SAS Management Console SAS 9.1

BIRT (Business Intelligence and Reporting Tools)

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Expertise du logiciel «GanttProject»

Éléments de programmation et introduction à Java

Traduction des Langages : Le Compilateur Micro Java

1 JBoss Entreprise Middleware

Qu'est-ce que le BPM?

CalDav Manager : Gestionnaire d emploi du temps

Installation et prise en main

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

L enseignement de méthodes agiles dans un contexte d apprentissage actif

CONSERVATOIRE NATIONAL DES ARTS ET METIERS CENTRE REGIONAL RHÔNE-ALPES CENTRE D'ENSEIGNEMENT DE GRENOBLE EXAMEN PROBATOIRE

Export et Import de modèles ICAR sous Trnsys 17

Visual Paradigm Contraintes inter-associations

WEBSPHERE & RATIONAL. Jacques Rage

ECLIPSE ET PDT (Php development tools)

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Tableau comparatif des offres Visual Studio

Squale Le portail qualimétrie open-source

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Manuel logiciel client Java

CQP Développeur Nouvelles Technologies (DNT)

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

Annexe : La Programmation Informatique

ArcGIS. for Server. Sénégal. Comprendre notre monde

Cours en ligne Développement Java pour le web

Cahier des charges : gestion de projets agiles. Programmation d Algorithmes Distribués (PAD)

Un serveur d'archivage

Remise à niveau d un programme JAVA du domaine public

Sybase PowerAMC 16. Guide des nouvelles fonctionnalités générales. DOCUMENTATION

Prise en compte des ressources dans les composants logiciels parallèles

APIs de table pour SQL Server

ANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer

Guide de référence pour l achat de Business Analytics

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

CC30 Certificat de compétence Conception, développement et animation de sites Web

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Introduction au développement SharePoint. Version 1.0

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

RAPPORT DE CONCEPTION UML :

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

Paul FLYE SAINTE MARIE

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

CAHIER DES CHARGES D IMPLANTATION

Chapitre 2 : Abstraction et Virtualisation

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Plateforme de capture et d analyse de sites Web AspirWeb

Chapitre I : le langage UML et le processus unifié

MANAGEMENT DES SERVICES INFORMATIQUES

ArcGIS. for Server. Comprendre notre monde

Java Licence Professionnelle CISII,

Guide de référence pour l achat de Business Analytics

GOL502 Industries de services

W4 - Workflow La base des applications agiles

JOnAS Day 5.1. Outils de développements

Famille IBM WebSphere Application Server

Master Data Management en Open Source C est le Bon Moment

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Introduction à la modélisation

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

La technologie Java Card TM

Utilisez Toucan portable pour vos sauvegardes

«Centreon Status Map» Conception et développement d une application j2se

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Chapitre 1 Retour en arrière

Web Tier : déploiement de servlets

An Phong Do. 567 croissant des Glaïeuls Laval (Québec) H7X 3H2 Cellulaire : anphongdo@gmail.com

Ingénierie des Modèles. Méta-modélisation

Avantages. Protection des réseaux corporatifs de gestion centralisée

Le développement d'applications informatiques

Refonte front-office / back-office - Architecture & Conception -

Transcription:

Intégration de l interface graphique de Ptidej dans Eclipse Driton Salihu (salihudr@iro.umontreal.ca) Lulzim Laloshi (laloshil@iro.umontreal.ca) Département d informatique et de recherche opérationnelle Université de Montréal

Introduction et description du problème Contexte Les défauts des outils de rétro-conception industriels L implantation et le développement d un ensemble de définitions dans l outil Ptidej qui permet de Analyser statiquement le code source d un programme Identifier des relations abstraites entre classes, telles que les relations d association, d agrégation et de composition Appeler un solveur de contraintes pour identifier les microarchitectures similaires à la solution d un patron de conception donné L intégration de cet outil avec l environnement de développement Eclipse 2/??

Introduction et description du problème Travail demandé Implanter l interface graphique de Ptidej dans Eclipse Développer Ptidej pour atteindre une intégration complète Implanter toutes les fonctionnalités disponibles Visualiser le modèle correspondant à l aide d un éditeur de diagrammes directement dans Eclipse Afficher les résultats de l appel d un solveur de contraintes pour identifier les micro-architectures similaires à la solution d un patron de conception donné Faire de tests JUnit 3/??

Situation de Ptidej UI par rapport au projet Ptidej 4/??

Concepts théoriques Eclipse est un environnement de modélisation et de développement générique, ouvert et extensible Eclipse est générique puisqu'il permet le développement peu importe le langage utilisé sur de nombreux systèmes d'exploitation (Linux, Windows, Solaris) Eclipse est une plate-forme ouverte puisqu'elle est offerte sous licence Common Public License, c'est-à-dire que le code source est libre de redevance n'importe qui peut le redistribuer et les travaux dérivés sont autorisés Eclipse est également extensible puisque c'est un framework permettant de construire et d'intégrer des outils de développement de toute nature 5/??

Concepts théoriques Eclipse est composé de trois parties Workbench Plug-in Development Environment (PDE) Standard Widget Toolkit (SWT) Eclipse offre aussi une interface pour travailler avec CVS 6/??

La conception de Ptidej et approche 7/?? La structure des modules d extension par défaut Le dossier bin Le dossier src Les éléments du module d extension à la racine Le fichier.template Le fichier build.properties Le fichier plugin.xml (Manifeste)

La conception de Ptidej et approche Voici un exemple de manifeste : <?xml version="1.0" encoding="utf-8"?> <plugin id="idduplugin" name="nom du plugin" version="1.0.0" provider-name="université de Montréal" class="test.testplugin"> <runtime> <library name="boot.jar"/> </runtime> <requires> <import plugin="org.eclipse.core.resources"/> <import plugin="org.eclipse.ui"/> </requires> 8/??

La conception de Ptidej et approche <extension point="org.eclipse.ui.editors"> <editor name="exemple d éditeur XML" icon="icons/sample.gif" extensions="e" ContributorClass="org.eclipse.ui.texteditor. BasicTextEditorActionContributor" class="test.editors.xmleditor" id="test.editors.xmleditor"> </editor> </extension> </plugin> 9/??

La conception de Ptidej et approche Nous avons suivi une démarche particulière adaptée à la situation Nous n avons pas fait de conception traditionnelle avec des diagrammes de classes UML Nous avons défini les classes à modifier et à implanter tout en expérimentant le développement des modules d extensions Nous avons utilisé cette méthode déconseillée car le développement de modules d extension nous étaient inconnus 10/??

Les fonctions implantées 11/?? 1. Traitement des fichiers.class a. Les analyser dans le même éditeur de diagrammes b. Les analyser dans un nouvel éditeur de diagrammes 2. Traitement des fichiers.jar 3. Traitement des fichiers.java 4. Traitement des fichiers.ptidej 5. Traitement des répertoires qui contiennent des fichiers.class 6. Traitement des répertoires qui contiennent des fichiers.java 7. Traitement des paquetages Java

Les fonctions implantées Les fonctions implantées par Driton Sous-fonctions a des fonctions 1 à 5 Sous fonctions a et b des fonctions 6 et 7 Les fonctions implantées par Lulzim Sous-fonctions b des fonctions 1 à 5 12/??

Les classes implantées (26) 13/?? AddFolderAction.java AddJavaAction.java AddJDTPackage.java AddJDTPackageAction.java AddNewFolderAction.java AddNewJavaAction.java AddNewJDTPackage.java AddNewJDTPackageAction.java PopActionClass.java PopActionJava.java PopActionJavaPackage.java PopActionNewClass.java PopActionNewJava.java (L) (L) (L) (L) (L) (L)

Les classes implantées 14/?? PopActionNewJavaPackage.java PopActionNewPackage.java PopActionNewPtidej.java PopActionPackage.java PopActionPtidej.java DiagramEditor.java DiagramEditorContributor.java PtidejDiagramEditor.java PtidejDiagramEditorContributor.java ClassFileFilter.java ClassJarDirFilter.java Explorer.java Util.java (L) (L) (L) (L) (L)

15/?? Les résultats obtenus

16/??

17/??

Le travail non-réalisé L appel d un solveur de contraintes pour identifier les micro-architectures similaires à la solution d un patron de conception donné Le chargement dynamique des bibliothèques du plugin Les tests JUnit, mais on a effectué des tests d intégration 18/??

Le travail bonus La compatibilité avec Eclipse 3.0.0 Les métriques de qualité 19/??

Les obstacles et les difficultés rencontrées 20/?? La difficulté de planifier les tâches à accomplir L établissement d un échéancier réaliste La recherche des documents pertinents sur les modules d extensions Le chargement dynamique des bibliothèques.jar Le manque de temps

Les bénéfices apportés C est la première fois qu on participe dans un projet d une telle envergure et qu on ait accès au code source d un outil aussi avancé et extensible que Eclipse Cela va nous aider dans les futurs développements envisagés Une analyse et une compréhension plus efficace du code source Nous avons acquis de nouvelles connaissances et de meilleures habitudes de programmation 21/??

Les bénéfices apportés 22/?? Nous avons maintenant Une meilleure approche de la résolution des problèmes divers concernant les applications aussi grandes Une meilleure planification et organisation Un meilleur contrôle du développement d un projet Une expérience et une préparation pour les travaux futurs dans le développement et la maintenance des logiciels

Les améliorations Intégrer plus efficacement l interface graphique de Ptidej dans la version 3 de Eclipse Réfactoriser et simplifier le code source Améliorer certains algorithmes de recherche de fichiers.class Internationaliser Ptidej 23/??

Compatibilité 24/?? Incompatibilité avec Eclipse 3 (niveau développement) Le «binary runtime compatiblilty» permet aux modules d extension existants qui utilisent les méthodes supprimées openeditor ou opensystemeditor de continuer leur fonctionnement normal malgré les changements dans l API. La résolution de cette incompatibilité les méthodes supprimées ont été redéfinies dans la classe IDE comme des méthodes statiques avec une petite différence que nous pouvons les utiliser directement pour ouvrir un éditeur

Compatibilité Exemple d utilisation Eclipse 2.1.2 IEditorPart editorpart = activepage.openeditor( filetoopen, // IFile editorid, // String true); // Boolean Eclipse 3.0.0 IEditorPart editorpart = IDE.openEditor( activepage, filetoopen, editorid, true); // IWorkbenchPage // IFile // String // Boolean 25/??

Remerciements Nous souhaitons remercier Yann-Gaël Guéhéneuc qui nous a permis de travailler sur ce projet et nous a accordé une grande autonomie 26/??

Bibliographie et références Ouvrages «The Java Developers Guide to Eclipse», un groupe d auteurs, Addison-Wesley Exemples sur le CD-ROM qui accompagne ce livre 27/?? Documentation sur l Internet http://www.eclipse.org Site officiel d Eclipse http://www.beyondcode.org/articles/eclipse-plugins.html Documentation sur les modules d extensions Eclipse http://drdb.fsa.ulaval.ca/sujets/boisvertalain/html/bk03.html Preséntation de Eclipse http://www.eclipse-plugins.info Site officiel regroupant des modules d extensions Eclipse

Des questions?? 28/??