24
Introduction aux EDI Eclipse Organisation du module Environnements de d´ eveloppement (int´ egr´ es) Introduction aux EDI, la plateforme Eclipse Patrick Labatut [email protected] http://www.di.ens.fr/~labatut/ epartement d’informatique ´ Ecole normale sup´ erieure Centre d’enseignement et de recherche en technologies de l’information et syst` emes ´ Ecole des ponts Transparents inspir´ es de ceux du cours de Mihaela Sighireanu en 2006-2007.

Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Embed Size (px)

Citation preview

Page 1: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Environnements de developpement (integres)Introduction aux EDI, la plateforme Eclipse

Patrick [email protected]

http://www.di.ens.fr/~labatut/

Departement d’informatiqueEcole normale superieure

Centre d’enseignement et de recherche en technologies de l’information et systemesEcole des ponts

Transparents inspires de ceux du cours de Mihaela Sighireanu en 2006-2007.

Page 2: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Plan

1 Introduction aux EDIDefinition et composantesHistoriqueLes environnements de developpement logiciel aujourd’hui

2 EclipseUn EDI (de plus) pour Java ?Origine et ressourcesPlateforme EclipseInstaller/Utiliser Eclipse

3 Organisation du modulePlan du coursEn pratique

Page 3: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Definition et composantes

Environnement de developpement (integre)

Un environnement de developpement integre (EDI) 1, est un logicielregroupant un ensemble d’outils necessaires au developpement logicieldans un (ou plusieurs) langage(s) de programmation.

Outils inclus au minimum dans un EDI :

• un editeur de texte specialise (avec coloration syntaxique,indentation automatique, completion automatique, . . . ),

• un compilateur (ou au moins l’integration d’un compilateur existant),

• un debogueur (ou au moins l’integration d’un debogueur existant),

• des outils d’automatisation de la compilation et de gestion deprojets.

1Integrated Development Environment (IDE) en anglais.

Page 4: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Definition et composantes

Outils souvent egalement presents :

• un systeme de gestion de versions (ou l’integration avec un systemeexistant comme CVS ou Subversion),

• des outils de conception d’interface graphique (IG)2 (qui generentdes squelettes de code d’interface graphique a partir d’unedescription graphique),

• un navigateur de classes (pour explorer la hierarchie des classes),

• des outils de tests unitaires (verification systematique du code) et decouverture du code,

• des outils de maintenance/remaniement du code (refactoring enanglais),

• un generateur de documentation (ou l’integration avec un systemeexistant comme Javadoc ou Doxygen).

2User Interface (UI), en anglais.

Page 5: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Definition et composantes

But des EDI

Augmenter significativement la productivite du developpeur :

• en minimisant le temps passe a basculer entre les differentes tachesintervenant dans le cycle de developpement logiciel (edition,compilation, execution, debogage, test, documentation,import/export vers le depot de versions, . . . ),

• en minimisant le temps d’apprentissage requis par les differentsoutils intervenant dans le cycle de developpement : pas de syntaxe(e.g. celles des Makefile), ou de commandes/instructions (e.g.jdb/gdb) a apprendre.

Evidemment, l’utilisation d’un EDI ne dispense pas completement d’unecertaine familiarite avec chacune des etapes du cycle dedeveloppement. . .

Page 6: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Historique

Rappel sur les progres realises en developpement logiciel. . .

« Prehistoire » :

1950-1960 : cartes perforees,

1960-1970 : apparitions des premiers terminaux et systemesd’exploitation (SE) :

• editeurs de texte tres basiques (ligne par ligne : ed(1969), puis plein ecran : vi, EMACS (1976))

• assembleur,• compilateur C (1972), et• debogueur.

1970-1980 : make (1977), systemes d’automatisation de la compilation.

Page 7: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Historique

Avec le developpement des SE grand public ayant une interfacegraphique (1980-1990) et l’augmentation progressive de la taille desprogrammes, le besoin d’outils de developpement plus avances se faitressentir et les premiers EDI apparaissent ; quelques dates :

1983 : Borland Turbo Pascal, tres accessible ($50)

1987 : Borland Turbo C

1991 : Microsoft Visual Basic

1992 : Microsoft Visual C++

DEMO

Page 8: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Aujourd’hui : developpement sans EDI

Le cycle edition/compilation3/execution a lieu dans un editeur de texteavance qui (en general) gere les fonctionnalites suivantes (entre autres) :

• coloration syntaxique

• indentation automatique

• completion automatique

• integration avec le compilateur (M-x compile/C-x ‘ sous Emacs,mode QuickFix sous Vim, . . . )

Examples :

Emacs : libre, multiplateforme, fonc. : • • •, appr. : • ◦ ◦,

Vim : libre, multiplateforme, fonc. : • • •, appr. : ◦ ◦ ◦,

Kate/Kwrite : libre, Unix uniquement, fonc. : • • ◦, appr. : • • •,

gedit : libre, Unix uniquement, fonc. : • ◦ ◦, appr. : • • •,

TextMate : payant, Mac OS X uniquement, fonc. : • • ◦, appr. : • • ◦.

3avec le compilateur natif : gcc sous Linux. . .

Page 9: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Aujourd’hui : developpement sans EDI

Ce type d’approche du developpement logiciel est limitee :

• la completion automatique des editeurs ne depend pas (assez) ducontexte,

• il n’y a pas ou peu d’integration avec le debogueur,

• il n’y a pas ou peu d’integration avec les outils de gestion de version,

• des taches laborieuses comme la maintenance/remaniement de coderestent entierement manuelles,

• requiert une expertise importante dans chacune des phases du cyclede developpement (configuration de l’editeur de texte, syntaxe desMakefile, commandes du debogueur, . . . ).

Page 10: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Aujourd’hui : developpement avec EDI

Logiciels proprietaires :

C++ Builder (Borland) : C/C++, gratuit/payant, Windows uniquement,

JBuilder (Borland) : Java (gratuit/payant, multiplateforme),

Xcode (Apple) : C/C++, Objective C, Java (payant, Mac OS Xseulement),

Visual Studio (Microsoft) : C/C++, C#, Web (gratuit/payant, Windowsuniquement),

. . . : -

Page 11: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Aujourd’hui : developpement avec EDI

Logiciels libres :

KDevelop (KDE) : C/C++, Java, base sur les outils GNU (GCC, make,GDB) et sur d’autres outils repandus (CVS, Doxygen)(Unix uniquement),

Anjuta (GNOME) : C/C++ uniquement, aussi base sur les outils GNU(multiplateforme),

Netbeans (Sun) : initialement Java uniquement, maintenant C/C++,Java Micro Edition4, Ruby, JavaScript,. . . (multiplateforme),

Eclipse : Java, C/C++, Java Micro Edition, PHP,. . . (multiplateforme).

Pourquoi choisir Eclipse ? Java, libre, multiplateforme.DEMO

4Java pour terminaux mobiles.

Page 12: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Un EDI (de plus) pour Java ?

Initialement un simple EDI Java (IBM/OTI VisualAge for Java), Eclipseest devenu un EDI pour developper des EDI et d’autres outils.

Objectif

Offrir une plateforme ouverte pour le developpement d’applications :

• non-dediee a un langage ou un SE ou une IG,

• facile a comprendre mais aussi facile a etendre,

• parametrable selon les besoins/gouts du developpeur,

• capable d’automatiser les taches lourdes du developpement,

• ayant une base stable,

• utilisable pour son propre developpement5,

• promouvoir l’utilisation de Java.

5bootstrap-able, en anglais.

Page 13: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Origine et ressources

1996 : IBM achete OTI qui developpe la suite d’EDI VisualAge(en SmallTalk), et en particulier VisualAge for Java,

Nov. 2001 : lancement du projet libre Eclipse et creation de l’EclipseConsortium,

Jan. 2004 : creation de l’Eclipse Foundation, organisation a but nonlucratif qui regroupe plusieurs grandes entreprises (AMD,Borland, IBM, Intel, Motorola, Nokia, Oracle, . . . ) dans lebut de conduire le developement de la plateforme Eclipse.

. . . : -

Juin 2006 : Eclipse 3.2 (depuis, une nouvelle version par an)

Juin 2007 : Eclipse 3.3

Juin 2008 : Eclipse 3.4

Page 14: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Plateforme Eclipse

Eclipse = plateforme + greffons

• plateforme :• un executif6 independant du SE (JVM),• un ensemble basique de greffons7 extensibles,• des mecanismes (API), regles et outils pour construire des greffons,• un moteur pour decouvrir, charger et executer des greffons.

• greffon : la plus petite unite qui peut etre developpee et utiliseeseparement ;

• se connecte a des points precis de la plateforme,• remplit une tache (pas forcement executable),• offre des points d’extension,• coexiste avec d’autres greffons,• instance : ensemble de greffons qui cooperent pour offrir un EDI.

6runtime, en anglais7plug-in, en anglais

Page 15: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Architecture de la plateforme Eclipse

Page 16: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Executif

• Definit les points d’extension et le modele de greffon.• point d’extension → interface• greffon = archive JAR + interfaces implementees + interfaces

utilisees• declaration de greffon = manifeste (dependences a

l’execution) + interface (type)

DEMO

• Decouvre dynamiquement les greffons et maintient un registred’informations sur les greffons et sur leurs points d’extension.

• Charge a la demande les greffons.

• Met a jour automatiquement les instances.

Page 17: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Gestion des ressources : espace de travail8

• Ressources : fichiers, repertoires, projets, etc. . . ,

• Espace de travail = un ou plusieurs projets,

• Projet = partie du systeme de fichiers qui a une “personnalite”(definie par les plug-ins).Exemples : projet Java, projet de greffon, projet Web,

• Implemente un mecanisme d’historique local pour suivre leschangements des ressources. DEMO

8workspace, en anglais.

Page 18: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Plan de travail9

• Fournit l’IG pour l’utilisateur de la plateforme.

• Specificite Eclipse : l’IG a l’apparence d’une application native du SEet est basee sur deux outils (SWT – Standard Widget Tool, JFace)qui peuvent aussi etre utilises directement.

• Composantes physiques de l’IG : menus, barre d’outils, boutons,onglets, fenetres.

• Composantes logiques de l’IG (parametrable par des greffons) :• Editeur : ouvre, modifie et sauvegarde des objets ; lance des actions.• Vue : fournit des informations sur les objets (structure, composantes,

etc. . . ) en communiquant avec d’autres vues ou editeurs.• Perspective : ensemble d’editeurs et vues ayant une disposition

precise dans le plan de travail.Exemples : navigation, documentation, debogage, etc. . .

DEMO

• C’est le point d’extension le plus etendu !

9workbench, en anglais

Page 19: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Developpement collaboratif

• Controle les versions et le partage d’un projet entre differentsdeveloppeurs.

• enregistre dans une archive,• gere des modifications de fichiers,• recupere toute modification enregistree,• permet de visualiser les differences entre les versions,

• Le systeme CVS (Concurrent Version System) est utilise par defaut.

• API pour l’interface avec d’autres systemes (Subversion parexemple).

Page 20: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Serveur d’aide

• Definit des points d’extensions pour la documentation en ligne.

• Sert de base pour le systeme d’aide d’Eclipse.

Page 21: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Installer/Utiliser Eclipse

• Installer un JDK (de Sun. . . ) recent (Windows/Linux :http://java.sun.com/javase/downloads/, Mac OS X : cf. lesite web d’Apple).

• Telecharger l’archive Eclipse Classic (“Eclipse Platform, JavaDevelopment Tools, and Plug-in Development Environment”) quicorrespond a votre SE surhttp://www.eclipse.org/downloads/10.

• Extraire l’archive a l’endroit habituel pour votre SE.

• Lancer l’executable extrait de l’archive (eclipse ou eclipse.exe).

10La derniere version est la 3.3 mais celle installee dans les salles informatiques estla 3.2. Aussi, il serait peut-etre preferable d’installer la 3.2 pour des raisons decompatibilite des projets. Elle est disponible sur :http://archive.eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/

Page 22: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Installer/Utiliser Eclipse

• (Eventuellement) regler les parametres (quelques exemples) :• la machine virtuelle utilisee :eclipse -vm machine_virtuelle

• les parametres de la machine virtuelle (ici la quantite maximum dememoire a utiliser, par defaut 256 Mo) :eclipse -vmargs -Xmx512

• l’espace de travail utilise (par default, /workspace sous Unix)eclipse -data espace_de_travail

• (Eventuellement) Verifier le reglage :Help / About Eclipse SDK / Configuration Details

Page 23: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Plan du cours

• Developpement en Java avec Eclipse JDT :• developpement classique (editer/compiler/executer)• deboguer• tests unitaires en Java (avec JUnit)• developpement collaboratif (avec CVS)• compilation (avec Ant)• creation de documentation (Javadoc)

• Developpement de greffons avec Eclipse PDE.

Page 24: Introduction aux EDI, la plateforme Eclipse Patrick …labatut/ED6/cours-1.pdfIntroduction aux EDI Eclipse Organisation du module D e nition et composantes Environnement de d eveloppement

Introduction aux EDI Eclipse Organisation du module

Pratique

• Informations/Supports de cours sur :http://www.di.ens.fr/~labatut/Enseignements/Environnements de developpement

• Cours et TP (normalement) en alternance une semaine sur deux(consulter regulierement la page web. . . ).

• TP : exercices de programmation Java avec Eclipse.

• Examen : sur machine, exercices similaires a ceux des TP.

• Projet : application plus complexe a developper/etendre sous Eclipseavec les outils vues en cours et TP (avec une soutenance).

• Note finale :Nexamen+Nprojet

2