Alcatel/Reutel



Participants : Claude Jard, Jean-Marc Jézéquel, Benoît Caillaud, Hubert Canon, Loïc Hélouet.

Mots clés : méthode, UML, langage d'interface, IDL, BDL, synchrone, objets .

Résumé :

Contrat Inria 1 97 A 93600 000MC012, novembre 1995 - décembre 2000

La collaboration avec Alcatel a commencé en novembre 1995 dans le cadre de l'appel Artica du ministère de la recherche et la mise à disposition d'un post-doctorant Inria chez Alcatel en 1996. En septembre 1997, elle a pris un nouvel essor avec un contrat direct avec Alcatel permettant le démarrage de plusieurs thèses. Claude Jard en est le coordinateur à l'Inria. L'objectif de la collaboration est la maîtrise du développement logiciel d'applications de télécommunication par la conception d'outils de manipulations formelles à l'intérieur d'une chaîne de développement définie par Alcatel. En 2000, cinq équipes de l'Inria participent au projet (ADP, Compose, EPATR, Vasy et Pampa) autour de quatre actions scientifiques. Pampa est principalement engagé avec EPATR et Vasy dans la définition et l'outillage d'un langage d'interface appelé BDL.

Le défi pour Alcatel est de réduire les coûts de développement tout en améliorant la qualité du logiciel. Il s'agit aussi d'assurer une flexibilité et réactivité élevées en regard des évolutions du marché et des technologies naissantes. Précisément, il s'agit d'utiliser et de contrôler au mieux la mise en oe uvre d'une application sur une plate-forme donnée (par génération de code quand c'est possible).

Le cadre de développement d'Alcatel est défini dans l'esprit Corba (the Common Object Request Broker Architecture) et met l'accent sur l'écriture de schémas de programmes dans des langages d'interface comme IDL (Interface Definition Language). Il doit être compatible en amont avec une méthodologie de conception objet type UML. Il doit aussi pouvoir s'interfacer avec un choix libre de plate-formes d'exécution : il faut donc bien veiller au rôle tampon du langage d'interface qui doit abstraire correctement la plate-forme et permettre aussi l'utilisation de langages variés pour la programmation des objets logiciels.

Pour faire en sorte qu'il ne reste pas un simple guide de structuration du logiciel, et puisse vraiment répondre aux objectifs généraux de la maîtrise du développement, il est nécessaire de lui adjoindre une batterie d'outils pour assister le concepteur d'applications. C'est ici que se situe l'offre de l'Inria proposant l'utilisation de méthodes formelles. Par méthode formelle, nous entendons un formalisme fondé sur une sémantique mathématique et un ensemble de techniques associées permettant la manipulation (en général automatique) des programmes, à savoir la génération de code, des transformations, des vérifications, des optimisations, de la génération de tests,... Le travail consiste à proposer des extensions aux langages d'interface pour faire apparaître des informations non fonctionnelles (comportementales) et à concevoir des outils de manipulation formelle traitant les schémas de programme définis par les interfaces. L'Inria participe aussi à l'extension de la chaîne pour la prise en compte de la résistance aux défaillances.

Les équipes Inria engagées dans Reutel en 1999 sont :

et se sont regroupées sur quatre actions de recherche :

  1. Corba "fault-tolerant" (M. Hurfin)
  2. Spécialisation et analyse de codes (G. Muller)
  3. Modélisation et validation UML. Extensions à Oural (JM. Jézéquel)
  4. Outils de validation et de génération de code pour UML (JP. Talpin, B. Caillaud)

Le travail du projet Pampa se concentre principalement sur les actions 3 et 4 en coopération étroite avec le projet EPATR. Nous concevons un nouveau langage d'interface : BDL (pour Behavioural Description Language). Le rôle de BDL est d'accompagner le développeur depuis les tâches préliminaires de spécification jusqu'au travaux de codage.

BDL intervient dans cette chaîne comme support à cet accompagnement et comme interface à l'intégration d'outils. Il est tout autant, pour son utilisateur, un langage de spécification, riche, expressif et structuré, avec une forte orientation objet, qu'un moyen de représentation intermédiaire simple, flexible et efficace pour l'utilisation des logiciels d'analyse, de test, de vérification et d'optimisation envisagés.

BDL se présente techniquement comme un formalisme per-ettaNt e'abstraire un objet et ses méthodes sous la forme d'un ensemble de graphes orientés étiquetés par les états de l'objet et de son environnement. Ces graphes permettent de coder les communications et leur ordonnancement, ainsi que les dépendances de données et de contrôle. Du point de vue de l'utilisateur, BDL se situe entre les MSC et les StateCharts. Du point de vue sémantique, ils correspondent aux automates d'ordres partiels.

Lorsque ces ordres partiels sont synchronisés, on se retrouve dans le monde des langages synchrones à la Signal, ce qui permet de récupérer les techniques de preuve et de génération de code associés. Ces ordres partiels peuvent également être interprétés de manière asynchrone, donnant un fondement sémantique à la communication, et permettant aussi une connexion avec les outils de preuve et test CADP et TGV. En 2000 a été réalisé une plate-forme de démonstration intégrant BDL à UMLAUT, CADP et TGV. L'éditeur graphique de BDL a été sous-traité à la société TNI.