Proposition d'un projet RNTL
XLUC
(XLUC est un acronyme pour XML - Langages - UML - Contrats)

1 Introduction

L'industrie du logiciel rencontre actuellement trois difficultés majeures :

  1. le problème de la fiabilité du logiciel, en particulier les méthodes et moyens permettant de produire des composants réutilisables dont les propriétés fonctionnelles et non fonctionnelles peuvent être spécifiées et vérifiées avec un degré de confiance élevé ;
  2. production centrée sur les modèles, où la discontinuité de fait entre le monde de la modélisation UML et celui de la programmation engendre des coûts prohibitifs pour la production de code et le maintien de la cohérence entre les deux niveaux de description ;
  3. l'évolution incessante des normes, qu'elles définissent, des formalismes, des langages ou des modèles de composants.

Face à cette problématique, le projet XLUC propose d'explorer des techniques contractuelles pour des AGL centrés UML. L'objectif est de permettre de générer le plus automatiquement possible du code instrumenté dans des langages à objets qui partagent une sémantique proche et de maintenir automatiquement la cohérence du code avec les schémas de conception par des regénérations inverses. Les contrats seront décrits dès la conception dans une extension au standard OCL, qui se voudra beaucoup plus lisible, débarrassée des ambiguïtés sémantiques actuelles et intégrant des aspects non fonctionnels. Ces contrats seront vérifiables dans le code généré selon des stratégies paramétrées, adaptées aux métaconnaissances accessibles aux supports d'exécution et aux exigences de qualité recherchées pour le logiciel. Pour minimiser la dépendance des développements logiciels vis-à-vis de l'évolution des formalismes et des plates-formes, XLUC adoptera une approche orientée vers la transformation de modèles (MDA) centrée sur un langage O2CM décrit en XML, intermédiaire entre les descriptions UML et le code exécutable. Le projet fournira un prototype d'AGL distribué gratuitement sur Internet, permettant la génération de code Java ou C# à partir de diagrammes UML contractualisés et inversement.

Domaines : contrats fonctionnels et non fonctionnels, UML, génération de code, rétroingéniérie, vérifications statiques et dynamiques, XML.

Mots-clés : 1.9, 1.10, 1.7, 1.11, 2.15, 2.17

2 Objectifs de recherche du projet

L'approche contractuelle n'a jusqu'à présent été expérimentée que très partiellement (Eiffel, OCL, iContract...). Le projet XLUC vise au contraire une production logicielle centrée sur des contrats généralisés, fonctionnels ou non, et contrôlables durant l'exécution. Cela pose de nombreux problèmes ouverts pour maintenir une efficacité acceptable par les développeurs, la négociation ou renégociation dynamique des contrats, la non interférence des contrôles fonctionnels et non fonctionnels, l'indépendance du canevas de gestion des contrats vis-à-vis des langages cibles, etc. Par rapport à l'état de l'art actuel, les principaux bénéfices attendus de cette proposition sont :

  1. un gain en terme d'abstraction, et donc en productivité,
  2. la mise en oeuvre d'une approche contractuelle expressive, alliant aspects fonctionnels et non fonctionnels,
  3. un contrôle dans le code, effectif et efficace, des exigences exprimées au niveau conceptuel,
  4. une traçabilité et une synchronisation totale entre les niveaux conceptuels et exécutoires,
  5. une meilleure interopérabilité des outils et une indépendance par rapport aux langages de programmation,
  6. des propositions d'amélioration pour le standard de conception UML/OCL.

3 Objectifs industriels du projet

Sur le marché actuel, UML, XML et les différents langages de programmation sont des mondes à part qui fractionnent la population des développeurs. La technologie générique de liaison UML/XML/langages de programmation, qui sera développée dans XLUC, aura un potentiel important sur un marché en quête d'ouverture et d'adaptabilité des solutions. Cette technologie sera un différenciateur significatif pour un AGL, en lui permettant, d'une part de cibler différents langages de programmation du marché, et d'autre part d'adresser les 80% de développeurs non encore acquis à UML. Il y a donc un potentiel « produit », en outillant le support de cette technologie, et un potentiel « service », en fournissant, cas par cas, des prestations de paramétrage de liaisons automatisées entre ces technologies. En ce qui concerne la technologie des contrats, ceux-ci sont sous-exploités par les ateliers logiciels actuels. Les travaux de XLUC permettront d'apporter des services automatisés, en augmentant de manière importante la qualité des développements, en produisant des vérifications de contrats d'après des formes de modélisation, et en assistant et en outillant la définition de contrats additionnels.

4 Organisation du projet : Partenariat et organisation

Le projet XLUC nécessite des compétences et savoir-faire variés, théoriques et pratiques, en modélisation UML, en approche contractuelle, en sémantique des langages et en technologies XML. Le consortium XLUC réunit des partenaires académiques et industriels réunissant ces compétences.

L'équipe de l'I3S partage avec le Valoria une expertise reconnue dans le domaine de la programmation contractuelle et apporte des techniques performantes (échantillonnage, sélection des assertions...) appliquées à la génération de code pour la vérification des contrats. Les travaux entrepris depuis deux ans au Valoria sur les contrats non fonctionnels serviront de base aux travaux de XLUC sur ce thème.

Le Valoria développe également des recherches dans le domaine du test objet. Softeam apporte son expérience dans la transformation de modèles, afin de procéder à une unification UML/XML, ainsi que son expérience dans UML pour en extraire les éléments relatifs à une approche contractuelle.

Softeam est très impliquée au sein de l'OMG (contributing member) dans la définition du standard UML et de ses extensions. L'atelier de modélisation UML Objecteering, commercialisé par Softeam, qui dispose du support des profils, sera utilisé dans XLUC.

Le projet INRIA/Oasis apporte son savoir-faire dans le domaine de la sémantique des langages avec les outils d'environnement comme SmartTools, ainsi que son expérience en technologies XML. Oasis participe au sein du W3C au projet QUESTION-HOW, piloté par le site INRIA de Sophia. Dans XLUC, SmartTools sera utilisé pour faciliter la génération de codes à partir de descriptions en XML, et servira ainsi de démonstrateur des technologies XML.

Le GICAB est engagé dans une politique de développement à base de composants objets écrits en Java, et se trouve fortement sensibilisé aux problèmes de confiance des composants utilisés, dans un domaine bancaire très sensible. Le GICAB fournira des éléments d'applications pour assurer la l'expérimentation et la validation effective des solutions proposées.

5 Résultats du projet et retombées

Outre les avancées scientifiques et le prototype développé, le projet XLUC démontrera la faisabilité des approches combinées de transformation de modèles et de contractualisation fonctionnelle et non fonctionnelle. Cela devrait influencer très fortement les recherches et développements autour d'une nouvelle génération d'outils de construction logicielle.


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