Proposition COLOR 2003

INRIA – I3S – LIRMM

 

I.      Objet et durée de la proposition. 1

II.     Équipes Concernées. 1

III.   Descriptif scientifique. 2

III.1.Contexte  2

Collaboration OCL / RPO.. 2

Collaboration OCL / OASIS-SmartTools. 2

III.2.Objectifs de l’action. 3

III.3.Division par activités (donnée à titre indicatif) 3

IV.   Demande de ressources. 4

V.    Conclusion. 4

VI.   Références bibliographiques. 5

I.                   Objet et durée de la proposition

Cette proposition a pour objectif de réaliser une plate-forme générique qui permettra de définir/spécifier les mécanismes de protection des langages de programmation et de vérifier que les applications décrites avec le langage choisi sont conformes[1]. Nous sommes convaincus que le savoir-faire complémentaire des trois partenaires nous place dans une situation très favorable pour réaliser ces objectifs. Notre motivation à réaliser une telle plate-forme sera, par exemple, d’expérimenter de nouveaux mécanismes de protection ou de proposer une réflexion sur l’évolution d’UML [9] pour définir plus précisément la sémantique des protections des composants. Dans un premier temps nous nous intéresserons en particulier aux classifieurs[2] et aux hiérarchies de classifieurs, puis nous réfléchirons à une généralisation aux composants de type EJB, etc.

 

La durée demandée pour réaliser les objectifs est de un an. La description des différentes tâches sera présentée dans la section  III.

II.                Équipes Concernées

Trois équipes sont concernées par cette proposition :

 

Les personnes qui devraient être directement impliquées dans cette action (sans exclure les autres membres des projets), sont principalement :

 

Pour plus d’information sur les partenaires il est possible de consulter le site WEB associé aux différents projets ; ils sont indiqués ci-après. Par ailleurs, le lecteur trouvera pour chaque projet, entre parenthèses,  un site décrivant plus particulièrement les activités de recherches liés à cette proposition :

III.              Descriptif scientifique

Nous présentons d’abord le contexte de cette proposition et en particulier les activités de recherche menées par les équipes qui désirent collaborer à travers cette proposition. Ensuite nous décrirons les objectifs précis de l’action COLOR que nous proposons.

III.1.       Contexte

Cette proposition est née de deux collaborations qui existent actuellement entre le projet OCL de l’I3S et, d’une part, le projet OASIS-SmartTools de l’INRIA, d’autre part le projet RPO du LIRMM. Voici quelques éléments complémentaires les concernant.

Collaboration OCL / RPO

Gilles Ardourel dans le cadre de sa thèse [5] a travaillé sur les mécanismes de protection (ex. : les notions de « protected » et « private » de Java ou d’exportation d’Eiffel), dans les langages à objets. Il a proposé, entre autres, une première mouture d’un langage pour définir la sémantique des mécanismes de protection qu’ils mettent en oeuvre (il se situe naturellement à un niveau méta par rapport à une application). Ce langage est appelé LAMP.

Le travail de thèse de Pierre Crescenzo [4], a porté sur la modélisation de la sémantique opérationnelle des classifieurs et des relations entre classifieurs à partir d’un ensemble de métainformations et de métaassertions. Le modèle qu’il a défini est nommé OFL.

A partir de ces deux travaux, nous avons proposé une amélioration de LAMP en nous appuyant sur les idées développées dans l’approche OFL ; elle a donné lieu à une publication à la conférence LMO  2003 [7].

Par ailleurs, l’équipe RPO participe à un projet RNTL [2] qui a pour titre la modélisation et l’audit des composants à objets. Leurs partenaires industriels sont Softeam et France Telecom R&D avec lesquels les projets OASIS-SmartTools et OCL ont l’habitude de collaborer (cf. la proposition XLUC et le contrat France Telecom R&D dans la section ci-dessous).

Collaboration OCL / OASIS-SmartTools

OCL et OASIS-SmartTools ont participé en 2002 à la proposition du projet XLUC dans le cadre du RNTL [1]. Ce projet avait pour objectif d’utiliser le logiciel SmartTools [6] pour définir un langage ou une représentation intermédiaire et d’appliquer des traitements (contrôles, évaluations d’assertions, etc.) sur les applications qu’il aurait permis de décrire. Ce langage intermédiaire devait être équipé d’un ensemble de métainformations, est être indépendant d’UML et des langages cibles potentiels comme Java ou C#. Typiquement, la description d’une application dans ce langage intermédiaire (idée proche de celles développées par Pierre Crescenzo dans sa thèse), serait obtenue par transformation de sa représentation UML, équipée d’assertions définies dans une extension du langage OCL [10].

 

Cette année le projet OASIS-SmartTools propose un nouveau projet dans le cadre du RNTL (appelé Modathèque [3]) sur l’approche MDA [11] et l’équipe OCL a obtenu, sur le thème de la programmation par contrat dans les composants, un contrat de recherche avec France Telecom R&D [8].

En marge des propositions de contrat nous avons débuté l’intégration d’une implémentation d’OFL en Java (appelé OFL/J) dans l’environnement SmartTools. Ce n’est que le commencement de cette intégration mais l’étude de faisabilité a déjà été réalisée.

III.2.        Objectifs de l’action

L’objectif est donc de permettre aux trois équipes de recherche citées ci-dessus d’initier une première collaboration en utilisant le savoir faire de chacune d’elles.

 

Comme cela a été évoqué dans la section I, l’objectif est d’utiliser les spécifications du langage LAMP pour la modélisation des mécanismes de protection (LIRMM), le générateur d’environnements de programmation SmartTools (INRIA) et OFL/J,  une réification objet de la sémantique opérationnelle d’une application dépendante des langages  (I3S), pour proposer :

L’aspect générique de notre approche, et donc son indépendance vis-à-vis de la syntaxe des langages, nous conduit à utiliser UML pour décrire l’application. L’intégration de la définition des mécanismes de protection propre au langage choisi sera réalisée par un ou plusieurs profiles UML (mécanisme d’extension d’UML, intégré à UML).

Il est à noter qu’en l’absence d’un standard pour décrire le corps des méthodes (les travaux autour d’ActionSemantics [12] n’ont pas encore conduit à l’adoption d’un standard et à son intégration dans UML), celles-ci seront donc insérées dans OFL/J par un mécanisme ad hoc.

 

À titre indicatif le travail pourra être divisé en plusieurs activités mais cette répartition est surtout là pour aider le lecteur à mieux comprendre nos objectifs à moyen terme. Ceux-ci devront être finalisés à travers de futures collaborations incluant des partenaires industriels comme par exemple SOFTEAM. Dans le cadre de cette action COLOR nous voudrions au minimum réaliser un prototype qui valide notre approche sur un exemple et préparer des bases solides pour une approche plus complète.

III.3.        Division par activités (donnée à titre indicatif)

 

Activité 1 : Reprendre les spécifications du langage LAMP et les affiner notamment en ce qui concerne la programmation par composants. Il est à noter que ce langage est à un niveau méta par rapport aux applications.

 

Activité 2 : Construire (en utilisant l’environnement SmartTools), un éditeur spécifique au langage LAMP (LAMP/Meta) qui permette à la fois de définir les mécanismes de protection d’un langage et de générer un ensemble de métainformations qui seront utilisables dans les étapes ultérieures. La réification de ces métainformations devra être intégrée dans OFL/J. Grâce à LAMP/Meta, on pourra donc opérer une transformation de modèle : « mécanisme de protection décrit avec LAMP » vers « mécanisme de protection décrit suivant la réification proposée par OFL/J »

 

Activité 3 : Valider LAMP/Meta par la définition des mécanismes de protection de plusieurs  langages : Eiffel, Java, C# , C++, etc.

 

Activité 4 : Proposer un ou plusieurs profiles UML qui permettent de définir les règles de visibilité conformément aux définitions réalisées au niveau méta. Proposer une réification des informations de protection qui s’intègre dans celle proposée pour une application par OFL/J.

 

Activité 5 :Réaliser avec SmartTools un outil (LAMP/Application). Il devra à partir des « spécifications UML » d’une application[3] (qui inclut les extensions obtenues à l’aide des profiles de l’activité 4), permettre de générer une représentation de l’application conforme à la réification proposée par OFL/J. Pour s’abstraire des problèmes relatifs aux environnements graphiques UML, le format utilisée pour spécifier l’application sera XMI [14]. Il est à noter qu’ici aussi on réalise une transformation de modèle (XMI vers OFL/J) .

 

Activité 6 : Ajouter à LAMP/Application la possibilité de vérifier que le code d’une application est conforme au mécanisme de protection du langage choisi.

 

Activité 7 : Rédactions d’articles pour diffuser les travaux, participation à des séminaires, mise à jour de site WEB, etc.

IV.            Demande de ressources

Voici le tableau de demande de ressources :

 

Intitulé

Montant estimé

Unitaire (€)

Quantité / Durée

Montant total

(€)

Stage de DEA ou séjour post-doctoral

Taux T4

12 mois

12 * T4

Déplacement entre Nice et Montpellier

150

4 déplacements

600

 

L’idéal pour assurer le succès de la collaboration serait que Gilles Ardourel du LIRMM puisse venir faire un séjour post-doctoral qui se déroulerait vraisemblablement à l’INRIA.

Les déplacements entre Nice et Montpellier permettront des échanges avec les autres membres de l’équipe RPO du LIRMM, notamment pour préparer les collaborations futures. Des stagiaires du LIRMM ou de l’UNSA principalement, pourront nous aider sur des points spécifiques de l’implémentation du prototype.

V.               Conclusion

Cette action serait pour nous un moyen de rendre tripartis et d’officialiser des échanges qui existaient jusqu’à alors entre d’une part les projets OCL et OASIS-SmartTools et d’autre part OCL et RPO. Elle permettrait en outre de nous donner les moyens financiers de conduire une première collaboration et d’en préparer de nouvelles autour de l’approche MDA et de standards comme UML ou XML, en incluant cette fois des partenaires industriels comme SOFTEAM. 

Il va sans dire que si nous sommes retenus nous nous engageons à respecter les contraintes énoncées dans l’appel à proposition comme : créer une page WEB ou diffuser nos résultats à notamment vers l’INRIA selon la formule la plus appropriée.

VI.            Références bibliographiques

 

[1].    Proposition RNTL 2002 XLUC : http://www-sop.inria.fr/oasis/personnel/Didier. Parigot/SmartTools/XLUC.html

[2]. Activités du projet RNTL Modélisation et Audit des Composants À Objets (MACAO) : http://www.lirmm.fr/~macao.

[3]. Proposition RNTL 2003 « Modathèque » : en cours de finalisation

[4]. Pierre Crescenzo. OFL : un modèle pour paramétrer la sémantique opérationnelle des langages à objets - Application aux relations inter-classes. Mémoire de Thèse (190 pages) de Doctorat en Informatique de l'Université de Nice-Sophia Antipolis décembre 2001, Sophia-Antipolis, France

[5]. Gilles Ardourel. Modélisation des mécanismes de protection dans les langages à objets. Mémoire de Thèse (191 pages) de Doctorat en Informatique de l'Université de Montpellier II décembre 2002, Montpellier, France.

[6]. SmartTools : http://www-sop.inria.fr/oasis/SmartTools

[7].   Gilles Ardourel, Pierre Crescenzo et Philippe Lahire. Lamp : vers un LAngage de définition de Mécanismes de Protection pour les langages de programmation à objets, conférence LMO 2003 (Langages et Modèles à Objets).

[8]. CRE France Telecom R&D 2002-2003 : Modèle général de contractualisation pour la plate-forme Fractal

 

[9].   http://www.i3s.unice.fr/~collet

[10].                    Unified Modelling Language (UML) : http://www.omg.org/uml

[11].                    Object Constraint Language (OCL) : http://www.omg.org/uml

[12].                    Model Driven Architexture (MDA) : http://www.omg.org/mda

[13].                    ActionSemantics : http://www.omg.org/cgi-bin/doc?ptc/2002-09-02

[14].                    Profiles UML : http://www.omg.org/uml

[15].                    XML Metadata Interchange (XMI) : http://www.omg.org/cgi-bin/doc?ad/01-



[1] Cette plate-forme devra notamment avoir des fonctionnalités d’édition, de modification, de visualisation et, plus généralement, de transformation.

[2] Classifieur est le terme UML pour désigner une interface ou une classe, par exemple.

[3] C’est essentiellement le graphe des classifieurs qui nous intéresse ici.