This is an old revision of the document!
Le domaine de recherche attaché à cet axe (ex équipe OCL) est le génie logiciel. Dans le cadre d'applications en rapide évolution, l'équipe travaille sur la maîtrise des qualités logicielles obtenues, soit en amont par l'adaptation et la composition de modèles de référence, soit en aval par la contractualisation des propriétés fonctionnelles et extrafonctionnelles. Les approches en amont améliorent la capacité des applications et des modèles métiers (en particulier des lignes de produits) à s'adapter au contexte d'utilisation, à se composer entre eux et à se rapprocher de l'utilisateur.
Elles s'appuient sur la métamodélisation, la séparation des préoccupations, les approches dirigées par les modèles et la description de langages métiers.
En aval, les techniques contractuelles sont développées pour s'intégrer dans des
environnements à assemblage dynamique : composants hiérarchiques (système
ConFract
pour Fractal
, développé sous contrat avec France Télécom R&D
), systèmes autonomiques et services. Les contrats s'appuient sur divers
formalismes de spécification, systèmes de métamodélisation pour calculer les responsabilités et négocier la résolution des problèmes détectés.
L'équipe (ex équipe OCL) développe depuis 1995 des approches pour le génie logiciel en s'appuyant sur la technologie objet, la métaprogrammation et plus récemment sur la séparation des préoccupations. La délégation de Philippe Lahire
à l'Inria de septembre 2003 à août 2005 a été l'occasion de confronter notre expertise aux problématiques de l'informatique ubiquitaire.
Le contexte très évolutif du marché nécessite de maximiser la réutilisation aussi bien au niveau du code des applications, qu'à celui des modèles. De même, l'apparition continuelle de nouvelles technologies et plates-formes rend essentiel de représenter le savoir-faire d'un domaine donné au niveau des modèles et de pouvoir le faire évoluer de manière efficace, c'est-à-dire sans nécessiter ou en limitant l'intervention d'informaticiens.
Pour répondre à ce besoin, nous nous sommes intéressés à la réutilisation du code, en améliorant la séparation des préoccupations et des modèles, tout en privilégiant la description de modèles génériques et leur composition. Le plus souvent, les approches développées s'appuient elles-mêmes sur des modèles et un langage dédié.
L'équipe (ex équipe OCL) a aussi acquis depuis plusieurs années une expertise dans l'application de l'approche contractuelle au développement logiciel par objets.
L'approche contractuelle consiste en la spécification et la vérification de propriétés associées à des entités logicielles, tout en attribuant à chaque entité des responsabilités bien définies dans un contrat.
Dans les plates-formes de composants logiciels actuelles, la notion de contrat n'est traitée qu'à travers des propriétés fonctionnelles relativement pauvres (typage) et des propriétés non fonctionnelles très spécifiques à certains domaines (réseau par exemple).
Lors de ces quatre dernières années, nous nous sommes donc intéressés à l'utilisation de l'approche contractuelle pour décrire et contrôler des propriétés sémantiques des composants logiciels.
Les résultats obtenus se répartissent en quatre centre d'intérêts. On peut noter par ailleurs que Philippe Lahire
a soutenu, en décembre 2004, une habilitation à diriger des recherches [ocl_00002389] qui concerne les trois premiers.
Cette activité concerne la définition d'une approche pour annoter l'héritage afin d'enrichir les environnements de programmation [ocl_00002379,ocl_00002381], et fait l'objet de deux thèses.
L'objectif est de réduire le fossé entre les concepts des langages de programmation et ceux des méthodes de conception comme UML. À cet effet, nous proposons un mécanisme de génération de profils UML, à partir des informations décrites à l'aide d'un modèle abstrait nommé OFL [ocl_00002415]. L'intérêt est notamment de pouvoir décrire précisément la sémantique opérationnelle des différents types de classifieurs ou de relations associés à un langage à objets, pour ensuite les utiliser pendant la phase de conception. Il est alors possible de faciliter la projection de schémas de conception vers les langages de programmation, grâce aux informations mémorisées [ocl_00002380].
L'objectif est de définir une relation d'héritage inverse, dans le but de fournir un support original pour la description des adaptations que l'on désire réaliser sur une hiérarchie de classes. Ces adaptations faciliteront l'adaptation des hiérarchies de classes en fonction du contexte d'utilisation, et dans une certaine mesure simplifieront leur évolution. Dans un premier temps, le langage Java a été considéré, puis le langage Eiffel [ocl_00001617, ocl_00002377, ocl_00002372, ocl_00002378].
L'objectif est ici d'introduire des mécanismes relatifs à la séparation des préoccupations, dans les langages à objets ou à composants, afin d'améliorer la réutilisation des classes et des composants. La programmation par séparation des préoccupations repose sur le constat que la classe ou le composant n'est pas toujours une unité de réutilisation adaptée, soit parce que sa granularité est trop faible, soit au contraire parce que des fonctionnalités de nature très différente sont réparties entre plusieurs classes/composants et qu'un même classe/composant peut regrouper des éléments participant à plusieurs fonctionnalités.
Thèse de Laurent Quintian (soutenue en juillet 2004). Le modèle proposé dans cette thèse [ocl_00001648, ocl_00002385] repose sur les concepts objets et sur deux approches pour la séparation des préoccupations : la programmation par aspects (AOP) et la programmation par sujets (SOP) [ocl_00001615]. Ce modèle permet d'adapter le contenu des classes existantes, de façon à pouvoir intégrer de nouvelles préoccupations, qu'elles soient fonctionnelles, non fonctionnelles ou hybrides. Parmi les avancées proposées, on pourra retenir la définition d'une entité appelée adaptateur pour encapsuler une préoccupation. Elle permet notamment de décrire un protocole de composition indépendant du contexte d'utilisation, et ainsi de guider et contrôler le programmeur lors de l'utilisation de préoccupations déjà définies.
Suite à cette thèse, nous avons considéré l'application de cette approche aux modèles [ocl_00002515, ocl_00002375,ocl_00002376]. Cela permet d'augmenter de manière sensible la réutilisation des modèles [ocl_00002521].
Fournir l'expressivité suffisante pour décrire des modèles métiers le plus efficacement possible est particulièrement important, notamment en vue de leur réutilisation. Nous avons abordé cette problématique à travers une meilleure prise en compte de la généricité.
Thèse d'Emanuel Tundrea (soutenance prévue début 2007). L'objectif de cette thèse est d'améliorer la généricité des modèles métiers. Elle est motivée par la nécessité de décrire aussi facilement que possible les points communs et les différences entre des entités relativement proches [ocl_00002391]. Ce besoin apparaît notamment pour la description de lignes de produits. L'approche s'appuie d'une part, sur un métaniveau, pour identifier clairement la sémantique des concepts utilisés dans la modélisation d'un métier particulier, et d'autre part, sur la séparation de préoccupations et la programmation générative, pour permettre une instrumentation modulaire des applications associées au métier ou domaine considéré [ocl_00002382,ocl_00002384,ocl_00001567].
L'application de l'approche contractuelle aux systèmes à base de composant logiciels a débuté par des premiers travaux autour des problèmes de contrôle d'admission de contrats [ocl_00000759].
De Juillet 2002 à Janvier 2004, dans le cadre d'un contrat de recherche externe avec France Télécom R&D
, nous avons proposé et validé un modèle de contractualisation pour la plate-forme Fractal
, nommé ConFract
. Le modèle se caractérise par la définition de deux nouvelles formes de contrat [ocl_00002400,ocl_00002397]: un contrat d'interface est associé à une connexion entre interfaces requises et fournies; un contrat de composition est placé sur la membrane englobante d'un composant composite, et exprime soit des contraintes d'assemblage du composant et de son contenu, soit des contraintes d'utilisation entre diverses interfaces requises et fournies. Dans cette première version, le système ConFract
utilise des assertions exécutables.
Cette collaboration a aussi entraîné la fourniture de livrables [ocl_00002409,ocl_00002408] et la réalisation d'un prototype de validation [ocl_00002399].
Dans le cadre d'une autre collaboration avec des chercheurs du valoria
(Univ. Bretagne Sud) et de l'Irisa
(Rennes), nous étudions l'utilisation de nos formes de contrats comme oracles dans des tests embarqués dans les composants logiciels [ocl_00002404,ocl_00002402].
Afin d'améliorer l'expressivité et la généralité du système ConFract
,
le méta-modèle sous-jacent avait besoin d'être mieux explicité, et une
formalisation était nécessaire pour raisonner sur les différentes formes de
contrat. De même, une abstraction était nécessaire afin d'intégrer d'autres
formalismes de spécification [ocl_00002513], adaptés à l'expression de
qualités de services ou de propriétés de synchronisation (langages fondés sur les algèbres de processus, logiques temporelles). Cela fait l'objet de la thèse d'Alain Ozanne
, qui a démarré en novembre 2004 au sein de France Télécom R&D
, et est co-encadrée par Philippe Collet
et Jacques Malenfant
au LIP 6.
Des premières expérimentations autour de formalismes comme TLA et les
Behavior Protocols ont déjà donné des résultats, publiés dans [ocl_00002395,ocl_00002396,ocl_00002735].
Afin de tenir compte des propriétés extra fonctionnelles et de leur fluctuation, nous nous sommes aussi intéressés à la négociation de contrats.
Après un stage de DEA en 2004 [ocl_00002514], ce travail s'effectue dans le cadre de la thèse d'Hervé Chang
depuis octobre 2004. L'objectif est de définir un système complet de négociation de contrats logiciels sur des composants hiérarchiques. Ce système reposera en partie sur une modélisation compositionnelle des ressources extrafonctionnelles pertinentes pour les
composants. Une première politique de négociation par concession a été conçue [ocl_00002405,ocl_00002089,ocl_00002401,ocl_00002392].
Une seconde politique par effort vient d'être finalisée [ocl_00002403,ocl_00002398].
Ces travaux sont en relation directe avec un contrat de recherche externe avec France Télécom R&D
, qui a débuté en juin 2005 pour une durée de 3 ans. Son objectif est de prendre en compte les aspects non fonctionnels dans les composants logiciels par des mécanismes de négociation de contrats [ocl_00002512,ocl_00002407].
En collaboration avec France Télécom R&D
, nous avons aussi appliqué notre modèle de contrats négociables à la problématique des systèmes autonomiques, en démontrant comment les contrats pouvaient être utilisés dans les différentes phases des boucles de rétro-actions [ocl_00002394,ocl_00002393].
L'équipe participe au projet RNTL FAROS
(composition de contrats pour la Fiabilité d'ARchitectures Orientées Services), qui a débuté en janvier 2006 pour une durée de 3 ans. C'est l'occasion d'appliquer de manière synergique nos approches et résultats (système ConFract
, modèles métiers) aux architectures orientées services (cf. perspectives).
Notre implication dans le projet est importante, par la responsabilité d'un lot et de plusieurs sous-lots, et notamment du premier livrable qui concerne l'état de l'art [ocl_00002406].
La recherche autour des systèmes communicants est en pleine évolution. Après la création en 2005 d'un pôle de compétitivité mondial SCS (Solutions communicantes Sécurisées) à Sophia-Antipolis, d'autres actions visant à regrouper les chercheurs de ce domaine sont en train d'émerger : proposition du RTRA SYSCOM en partenariat avec l'université de Rennes, développement des activités autour de l'informatique ubiquitaire, etc. Dans ce contexte, il nous semble essentiel de regrouper les forces des projets qui travaillent autour des objets et des composants dans un pôle bien identifié. La complémentarité des projets Rainbow et OCL est déjà effective à travers de nombreuses collaborations, notamment dans le projet RNTL FAROS D'autres projets comme \comAoste et Oasis trouveraient aussi leur place dans un tel pôle qui s'intègrerait parfaitement dans un département centré sur l'informatique ubiquitaire mais qui aurait l'avantage de favoriser les synergies.
En ce qui concerne les perspectives scientifiques, le projet souhaite continuer ses travaux autour du génie logiciel et de la maîtrise de la complexité des systèmes ubiquitaires, en se focalisant sur les verrous scientifiques suivants:
surveillance adaptées aux plates-formes techniques hautement dynamiques (composants, services et orchestration de services, systèmes autonomiques) à l'aide d'approches contractuelles.
Pour ce faire, l'équipe souhaite continuer de suivre la même démarche pragmatique, en dirigeant ses travaux par les applications tout en effectuant les abstractions nécessaires par des approches dirigées par les modèles.