• Aucun résultat trouvé

6.4.3 Le sequentiel de vol ariane-5

Le sequentiel de vol est un logiciel embarque qui contr^ole le lanceur pendant son vol a partir de la plate-forme de lancement et jusqu'a l'orbite. Dans le cadre de la validation du protocole du sequentiel de vol ariane-5 (BLM01]) on a utilise une speci cation qui contient environ 4000 lignes de code sdl. Cette speci cation decrit les t^aches de

contr^oleet d'observationdes blocs propulseurs (eap27,epc28,eps29) de la fusee (il s'agit ici principalement de l'allumage et de l'extinction des ces blocs) et de con guration de vol(a la suite du largage des blocs au fur et a mesure que la fusee atteigne l'orbite).

Les temporisateurs interviennent dans la speci cation dans la phase d'allumage: chaque action d'allumage doit s'executer a un moment precis et xe au prealable (mo-ment xe par l'a ectation d'un temporisateur et dont l'expiration indique quand l'action doit s'executer). Dans la phase de largage on utilise des temporisateurs pour indiquer une fen^etre d'opportunite pour l'execution d'une action.

L'utilisation de l'outil qui implemente la technique de recouvrement des variables temporisees a conduit a une diminution importante du nombre des horloges30 (environ 63% de variables ont ete recouverts).

27: Etage acc el erateur a poudre 28: Etage principal cryotechnique 29: Etage a propergol stockable

159

Chapitre 7

Conclusions

7.1 Bilan

Ce travail se situe dans le cadre de la veri cation et de la validation des systemes re-partis, particulierement les protocoles de telecommunication. Nous nous sommes interes-ses au probleme de la generation automatique de tests de conformite pour les protocoles de telecommunication et plus precisement a l'amelioration d'un outil de generation de sequences de test (tgv) dans la direction d'un traitement ecace des donnees (traitees en enumeration) et pour concevoir un langage d'expression pour les objectifs de test.

Traitement ecace des donnees

L'outil tgv (FJJV97, FJJV96]) utilise des objectifs de test decrits au niveau du modele de la speci cation: les parametres des signaux sont traites en enumeration et le produit synchrone (l'operation de composition necessaire pour l'obtention d'un cas de test) se fait entre ce type desots et le modele de la speci cation. Or, le nombre d'etats du modele pourrait ^etre exponentiel par rapport a la taille de la speci cation et pour pallier ce probleme il y a plusieurs techniques:

1. On construit a la volee le modele de la speci cation (la solution proposee dans JM97]).

2. On utilise des ots decrits au niveau de la speci cation (aecs) et on les composent avec la speci cation. Le cas de test obtenu est ensuite rendu deterministe (en utilisant quelques heuristiques). Ceci est la solution proposee dans RBJ00].

Notre solution consiste dans l'utilisation des ots decores avec des contraintes impo-sees aux valeurs des parametres de signaux. Unotetendu est une abstraction pour une famille desots simples (utilises par l'outil tgv).

En tenant compte des contraintes attachees aux ots et en utilisant des techniques diverses d'analyse de programmes (analyse statique, interpretation abstraite et tran-chage) on peut soit simpli er la speci cation, soit raner les contraintes des parametres de signaux de sortie de l'ot

Une premiere analyse proposee (analyse de contr^ole) elimine les parties de la speci -cation qui n'interviennent pas dans son modele (a cause du fait que dans la speci speci -cation ces etats et transitions sont accessibles seulement via une transition etiquetee par une action d'entree, entree externe mais pas contr^olable).

Les autres analyses proposees peuvent ^etre formulees comme des analyses de ot de donnees. Il s'agit ici des analyses d'activite et d'utilite des variables1 et des propagations des intervalles et des constantes. Toutes ces analyses ont ete formulees en utilisant une approche equationnel qui construit a partir du graphe de ot de contr^ole de la speci cation un operateur de ot, dont la solution (soit le plus petit point xe soit une approximation de celui-ci calculee en utilisant les techniques de l'interpretation abstraite) represente l'invariant recherche (les variables actives/utiles dans chaque etat ou les valeurs des variables dans chaque etat, valeurs estimees par des constantes ou par des intervalles entiers).

Ces invariants sont utilises ensuite pour simpli er la speci cation. En utilisant les variables actives/utiles dans chaque etat on peut e ectuer une abstraction de la speci- cation:

{ soit en eliminant les variables qui ne sont actives dans aucun etat et en a ectant une valeur quelconque (mais unique) aux variables qui sont inactives dans un etat, dans toutes les transitions entrantes dans cet etat

{ soit en eliminant les a ectations aux variables inutiles dans un etat dans toutes les transitions sortantes de cet etat.

En utilisant les constantes et les intervalles entiers on peut supprimer le code mortde la speci cation (les transitions dont la valeur des gardes, calculee en utilisant ces invariants, est fausse).

Dans chaque cas mentionne ci-dessus les modeles des nouvelles speci cations sont bisimilaires aux modeles des speci cations initiales.

1:Ces analyses sont classiques en compilation, sur les graphes de ot de contr^ole. Ici, on les a etendues et formalis ees pour desaecs par les d'attente

7.2. PERSPECTIVES 161 Les analyses proposees ont ete implementees dans une bibliotheque d'analyse statique qui fait partie de l'environnement de validation if.

Langage d'expression pour les objectifs de test

Les objectifs de test etendus sont une extension naturelle des objectifs de test utilises par l'outil tgv et decrits dans le format de l'outil ald ebaran. Nous proposons leur description dans le langage if.

7.2 Perspectives

A court terme on aimerait etendre la bibliotheque d'analyse statique avec des ana-lyses plus precises que la propagation des constantes ou celle des intervalles entiers: il s'agit pratiquement d'y ajouter les treillis des polyedres convexes2 (CH78, HPR97]) et celui des congruences lineaires3 (Gra90]).

Dans la suite on vise l'amelioration des analyses statiques inter-processus. Couram-ment, un probleme d'analyse statique inter-processus est transforme dans un probleme intra-processus en e ectuant une approximation de l'aec qui est obtenu par la compo-sition asynchrone de tous lesaecs de la speci cation, par un aecdans lequel toutes les communications asynchrones sont transformees dans des communications synchrones. On voudrait ameliorer cette transformation en diminuant le nombre de communications synchrones obtenues a partir des communications asynchrones.

Ensuite on voudrait considerer des techniques plus sophistiquees, par exemple les abs-tractions (LGS+94, DGG97]), les optimisations e ectuees pour la parallelisation du code sequentiel (en eliminant certaines dependances de donnees dans les nid-boucles PW86, GKT91, CDRV96]), les optimisations par remplacement des boucles avec des meta-transitions (Boi98, Ann01]) et les techniques de calcul des invariants non-lineaires (BBF+00]), obtenus en combinant les dernieres deux types de techniques.

On aimerait ensuite etendre les principes de la methodologie proposes dans cette these aux protocoles in nis (avec ou sans parametres).

2:pour calculer des invariants lin eaires sur les variables du systeme

3:pour calculer des invariants utiles dans des problemes, comme par exemple la vectorisation auto-matique ou l'analyse des d ependances des boucles BBF+00]

163

Annexe A

Algorithmes

procedure SCC ;Solver (P:pfd varX :P:S:Q !P:L)

type FILE =file deP:S:Q

varSCCs :pile deFILE

procedure IterateWorklist InitializeWorklist begin InitializeWorklist() IterateWorklist() end.

Continuation dans les tables A:2 p:164] et A:4 p:166]