Précédent : Ordre supérieur et mobilité
Remonter : Résultats nouveaux Suivant :
Format commun
DC+ et multi-formalisme
Participants : Albert Benveniste, Paul Le Guernic,
Jean-Pierre Talpin, Yunming Wang.
Mots clés : BDL, UML, conception objet, communication synchrone/asynchrone, ordre partiel, causalité .
Le langage de spécification BDL se situe dans le cadre de la méthode UML (Unified Modelling Language) pour la conception orientée objet de systèmes. C'est un enrichissement sémantique des diagrammes de classes, auxquels il permet d'associer des comportements formellement spécifiés.
Le langage de spécification BDL a pour principe la caractérisation d'un modèle des causalités et du contrôle entre les composants logiciels d'une application. Ce modèle est basé sur une notion mathématique très simple : les familles d'ordres partiels. Ces ordres partiels permettent non seulement de représenter les causalités entre les actions réalisées dans l'application, mais également un modèle de l'état et du contrôle dans l'application. Étant donnée une configuration logicielle, ils peuvent être transformés afin de mettre en évidence le confinement ou la distribution des composants du système. L'ordre partiel correspondant à chaque confinement peut être compilé séparément, en faisant appel à des techniques d'optimisation de la programmation synchrone, afin de générer un talon de programme mettant en oeuvre le séquencement des interactions du composant avec son environnement. Il résulte de cette optimisation la génération d'un code cible constitué de talons de programmes, où le parallélisme et les communications exprimés dans la spécification initiale sont compilés d'une manière sécurisée et optimale. La tâche revenant au programmeur se réduit ensuite à coder les calculs élémentaires devant être effectués par les composants du système. La conformité du codage final par rapport à la spécification initiale du système peut enfin être testée dans la phase ultime de validation du logiciel. BDL intervient dans cette méthodologie de développement comme support au raffinement des spécifications successives, et comme interface à l'intégration d'outils de vérification, de compilation et de test. Il est tout autant, pour son utilisateur, un langage de spécification expressif et structuré, qu'un support de représentation intermédiaire simple permettant d'utiliser des logiciels d'analyse, de test, de vérification et d'optimisation existants.
Nos premiers résultats sont publiés dans [[40]] et [[46]]. BDL y apparaît comme un langage synchrone pouvant être également interprété de manière asynchrone, grâce aux travaux conduits, toujours en coopération avec le projet Pampa, sur la désynchronisation (voir section 6.11). Nous en avons étudié la sémantique, l'analyse de causalité, et avons tracé les étapes de la compilation.