Soutenance du Travail d’Etude et de Recherches
Master 1 STIC Année 2005Plugin Eclipse pour la
composition des préoccupations dans le
langage Java
Travail d'étude et de recherches - soutenance finale
2
Participants
Bonfils David Férut Térence Julien Nicolas Leroy SébastienEncadrés par :
Lahire Philippe Crescenzo Pierre
Travail d'étude et de recherches - soutenance finale
3
Plan général
1. Rappels2. Déroulement du TER –
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références bibliographiques
Travail d'étude et de recherches - soutenance finale
4
1. Rappels
Introduction Travail prévu Organisation du travail Planning
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
5
Introduction
Sujet de notre TER Plugin Eclipse pour la composition
de préoccupations dans le langage Java
Contexte JAdapt de Laurent Quintian
Période Début Mars au 20 juin 2005Plan :
1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
6
Travail prévu
Portage du plugin vers Eclipse 3 Refonte de l’architecture de
l’application et du moteur Création d’un éditeur pour la saisie
des adaptations Documentation très détaillée
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
7
Organisation du travail
Découpage du travail en sous-parties
Réunions de validation hebdomadaires
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
8
Planning prévisionnel
Travail d'étude et de recherches - soutenance finale
9
2. Déroulement et Organisation
Modifications apportées au CdC. Rôle prépondérant des réunions
dans la gestion du risque Réorganisation et nouvelle
répartition du travail État d'avancement
Plan :1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
10
Modifications dans le CdC Avant :
Réaliser un portage de JAdapt d’Eclipse 2.1 à Eclipse 3.X. Refondre le moteur et l’application
Après : Repartir à zéro, avec un nouveau modèle de conception sous Eclipse 3.X Implémenter un modèle d’application inédit, très différent de celui de Laurent Quintian, construit à partir du plugin EMF
Plan :1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
11
Intérêt des réunions Nécessaires pour :
analyser, recadrer, valider, discuter du travail de chacun.
Plusieurs avec M. Lahire, pour parfaire la compréhension.
Profiter de l’avis des autres pour mieux cerner les besoins.Plan :
1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
12
Réorganisation et nouvelle répartition du travail
Exploration de l'apport du modèle EMF
Nouvelles tâches Packages core, language et
adaptations Beaucoup plus de travail que prévu
initialement Dans l’ensemble, pas de
réorganisation profonde.Plan :1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
13
État d'avancement
Objectifs complètement réalisés Création du nouveau plugin Intégration de l’éditeur Documentation bilingue (français –
anglais) Manuel de maintenance Code très commenté Création de 2 tutoriels HTMLPlan :
1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
14
État d'avancement (suite)
Objectifs partiellement atteints Architecture de l’application
Architecture reprise à zéro et pas tout à fait recodée à 100%
Ajouts d’adaptations (non prioritaire)
Nouvelles adaptations ajoutées, mais pas forcément implémentées complètement)Plan :
1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
15
État d'avancement (suite)
Non traités Ajout d’une vue textuelle à l’éditeur
(non prioritaire) Compatibilité avec JAdapt 1 (non
prioritaire) Incorporation de la Composition
Incrémentale (non prioritaire)Plan :1. Rappels2. Déroulement
Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
16
3. Travail Effectué
a. Environnement de travailb. Pluginc. Éditeurd. Réification du langagee. Adaptationsf. Moteur
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
17
a. L’Environnement de travail
Eclipse 3.1 M6 Java 1.5.0_02 EMF 2.0.0
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
18
b. Le Plugin
Nouveau plugin pour la version 3.1 d’Eclipse. Bien plus abouti que celui développé
par Laurent Quintian. En parfaite adéquation avec les
exigences.
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
19
b. Le Plugin (suite)
Présence d’un « wizard » pour lancer l’éditeur.
Ajout d’une « nature » permettant d’utiliser, ou non, notre précompilateur.
Évolution et adaptation constantes, tout au long du développement.
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
20
c. L’Éditeur
Ajouts Nouveaux filtres pour le menu
contextuel Nouveau filtre pour le « wizard »
Modifications Modification des filtres pour les
extensions des fichiersPlan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
21
d. La Réification du langage
But : pouvoir manipuler les objets du
langage (packages, classes, attributs, méthodes …)
Abstraire le langage à manipuler Faciliter le travail sur les adaptations Accroître l’extensibilité et la lisibilité
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
22
d. La Réification du langage (suite)
Comment : Utilisation des API JDT et AST
d’Eclipse Création de classes qui encapsulent
les éléments du JDT et proposent les principales opérations
Création d’un plugin de tests (voir logs en annexe)Plan :
1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
23
e. Les Adaptations Les adaptations:
Opérations élémentaires pour la composition
Se basent sur le paquetage language Nécessitent un long travail de réflexion
Travail effectué Recherche des cibles Test spécifique à chaque adaptation Réalisation de l’adaptation Batterie de tests paramétrablesPlan :
1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
24
f. Le Moteur
Une nouvelle architecture D’abord intégrée à JAdapt 1
Pour pouvoir tester Pour valider le travail
Puis intégrée à notre version Simplifications apportées
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
25
f. Le Moteur - implémentation
Le nouveau moteur (packages engines + core) project.retrieveInterestingConcerns(); List<FlattenedAdapter> adapters = project.getFlattenedAdapters(); for(Iterator<FlattenedAdapter> iter = adapters.iterator(); iter.hasNext();)
for(Iterator<ConcreteAdaptation> iter2 = iter.next().getAdaptations().iterator(); iter2.hasNext();) if (! iter2.next().performChecks()) return;
for(Iterator<FlattenedAdapter> iter = adapters.iterator(); iter.hasNext();)iter.next().executeAdaptations();
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
26
4. Évaluation et travail restant
Plugin très complet Éditeur permettant de saisir toutes les
adaptations du modèle actuel Code de l’application
Fonctions non utilisées pas forcément implémentées
Adaptations : Interceptions d’attributs à finir Certaines non testéesPlan :
1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail
restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
27
Évaluation et travail restant (suite)
Langage : Expressivité partielle Certaines entités moins implémentées
que d’autres
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail
restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
28
5. Conclusion et remerciements
Nous tenons à remercier nos encadreurs
Philippe LahirePierre Crescenzo
Pour leur aide au quotidien, et nous avoir supporté tout au long de ce TER.
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques
Travail d'étude et de recherches - soutenance finale
29
6. Références bibliographiques [LQ04a] P. Lahire and L. Quintian. New perspectives to
improve reusability in object-oriented languages. Research Report I3S/RR–2004-XX–FR, I3S laboratory (UNSA/CNRS), Sophia-Antipolis France, September 2004. pages 20.
L. Quintian. JAdapt : Un modèle pour améliorer la reutilisation des preoccupations dans le paradigme objet. Ph.D thesis in Computer Science, University of Nice – Sophia Antipolis, Sophia Antipolis, France, July 2004.
T. Férut and S. Leroy : Travail d’étude – La programmation orientée aspects. University of Nice – Sophia Antipolis, Nice, June 2004.
Plan :1. Rappels2. Déroulement Organisation3. Travail effectué4. Évaluation – travail restant5. Conclusion6. Références
Bibliographiques