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 specication qui contient environ 4000 lignes de code sdl. Cette specication 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 conguration 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 specication 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'aectation 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 accelerateur 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 verication 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 specication: 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 specication. Or, le nombre d'etats du modele pourrait ^etre exponentiel par rapport a la taille de la specication et pour pallier ce probleme il y a plusieurs techniques:
1. On construit a la volee le modele de la specication (la solution proposee dans JM97]).
2. On utilise des ots decrits au niveau de la specication (aecs) et on les composent avec la specication. 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 simplier la specication, 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 specispeci-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 specication 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 simplier la specication. En utilisant les variables actives/utiles dans chaque etat on peut eectuer une abstraction de la speci-cation:
{ soit en eliminant les variables qui ne sont actives dans aucun etat et en aectant 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 aectations 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 specication (les transitions dont la valeur des gardes, calculee en utilisant ces invariants, est fausse).
Dans chaque cas mentionne ci-dessus les modeles des nouvelles specications sont bisimilaires aux modeles des specications initiales.
1:Ces analyses sont classiques en compilation, sur les graphes de ot de contr^ole. Ici, on les a etendues et formalisees 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 eectuant une approximation de l'aec qui est obtenu par la compo-sition asynchrone de tous lesaecs de la specication, 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 eectuees 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 innis (avec ou sans parametres).
2:pour calculer des invariants lineaires 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 dependances 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:2p:164] et A:4p:166]