Programmation par aspect


[Fleche]Type du stage : Stage DEA Informatique

[Fleche]Encadrement :  PARIGOT Didier

[Fleche]Téléphone : 04 92 38 50 01Email : Didier.Parigot@inria.fr

[Fleche]Laboratoire ou équipe : Projet Oasis à INRIA Sophia Antipolis

[Fleche]Prérequis : Java, Technologie XML, Design Pattern, compilation

[Fleche]Matériel et logiciels utilisés :  SmartTools


[Fleche]Description:

Dans le cadre de la programmation par Object, la programmation par aspect suscite depuis peu, un engouement en recherche (http://www.parc.xerox.com/csl/projects/aop/). Ce style de programmation correspond à un besoin de modularité et de réutilisation que l'on ne retrouve pas dans les langages actuels ou difficilement. L'idée de base est de fournir des moyens pour ajouter à une application donnée un aspect (un morceau de code) qui décrit un traitement particulier. De plus cet aspect peut être partagé par plusieurs applications. Il existe actuellement plusieurs implémentations des aspects pour divers langages à Objet, comme pour C++ ou Java. Ces implémentations ont comme caractéristique commune, d'appliquer des mécanismes de transformation du programme source et donc par nature, suivent une approche plutôt statique pour l'implémentation des aspects. Dans le cadre de SmartTools (http://www-sop.inria.fr/oasis/SmartTools/), un générateur d'environnement de développement, il nous semble possible d'instancier une forme particulière de programmation par aspect. Mais l'intérêt de cette approche serait d'être une implémentation dynamique des aspects. Actuellement nous avons automatisé une technique de programmation, dénommé Visitor Pattern, et en collaboration avec une équipe de recherche de Marne-la-Vallée (http://igm.univ-mlv.fr/~forax/works/jmmf/index.html), nous avons intégré la notion de Multi-Méthode (pour Java) dans SmartTools. Nous souhaitons donc introduire à ces Multi-Méthodes, la notion d'aspect dynamique.

[Fleche]Les objectifs du sujet:

L'objectif du stage serait dans un premier temps une étude biographique sur le sujet, bien comprendre les diverses approches et de les comparer à d'autres approches dans d'autres styles de programmation (http://web.comlab.ox.ac.uk/oucl/work/eric.van.wyk/Papers/como.html, http://www.geocities.com/m_a_r_c_h/components.html). Dans le cadre de SmartTools, il faudra valider notre approche par la réalisation d'un prototype simple et utilisant les briques de bases déjà réalisées. Puis surtout, le stagiaire devra proposer et envisager des extensions à ce mécanisme de base. Ces propositions devraient former les éléments de réflexions pour la poursuite en thèse.

Les étudiants travailleront avec une équipe d'ingénieurs qui développent l'outil SmartTools et dans le projet de recherche Oasis à l'INRIA Sophia Antipolis. Les applications de cet outil sont très vastes et nous avons déjà des partenaires industriels intéressés par l'intégration ou la connexion possible avec leur propre outil de développement, en particulier, notre sponsor dans le cadre du partenariat Dyade, Bull SmartCards and Terminals.

Ce stage est une excellente opportunité pour se sensibiliser et acquérir de l'expérience dans des domaines prometteurs tels que la Programmation Orientée Objet, par composant et la technologie XML.


[Fleche]Bibliographie


INRIA Sophia Antipolis
2004 route des lucioles, B.P. 93
06902 Sophia Antipolis Cedex FRANCE