• Aucun résultat trouvé

Génération automatique de tests de conformité pour les protocoles de télécommunication

N/A
N/A
Protected

Academic year: 2021

Partager "Génération automatique de tests de conformité pour les protocoles de télécommunication"

Copied!
213
0
0

Texte intégral

(1)

HAL Id: tel-00004457

https://tel.archives-ouvertes.fr/tel-00004457

Submitted on 3 Feb 2004

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Constantin Lucian Ghirvu

To cite this version:

Constantin Lucian Ghirvu. Génération automatique de tests de conformité pour les protocoles de télécommunication. Réseaux et télécommunications [cs.NI]. Université Joseph-Fourier - Grenoble I, 2002. Français. �tel-00004457�

(2)

UNIVERSITE GRENOBLE I - JOSEPH FOURIER

U.F.R. D'INFORMATIQUE ET DE MATHEMATIQUES APPLIQUEES N attribue par la bibliotheque

T H E S E

pour obtenir le grade de

DOCTEUR DE L'UNIVERSITE GRENOBLE I

Discipline:

Informatique

presentee et soutenue publiquement par

Constantin Lucian GHIRVU

le 12 juillet 2002

Titre:

GENERATION AUTOMATIQUE DE TESTS DE CONFORMITE POUR

LES PROTOCOLES DE TELECOMMUNICATION

Directeur de these:

M. Jean-Claude FERNANDEZ

JURY

M. Jacques VOIRON ,President

M. Richard CASTANET ,Rapporteur

M. Claude JARD ,Rapporteur

M. Jean-Claude FERNANDEZ ,Directeur de these

(3)
(4)

Remerciements

Je tiens a remercier

Monsieur Jacques Voiron, Professeur a l'Universite Grenoble I, pour m'avoir fait l'honneur de presider le jury de cette these

Messieurs Richard Castanet, Professeur a l'Ecole Nationale Superieure d'Electro-nique, Informatique et Radiocommunications de Bordeaux, et Claude Jard, Direc-teur de recherches CNRS a l'Institut de Recherche en Informatique et Systemes Aleatoires de Rennes, de m'avoir fait l'honneur d'accepter de juger ce travail Monsieur Joseph Sifakis, Directeur de recherches CNRS a VERIMAG, Grenoble, de m'avoir accueilli dans son laboratoire, de m'avoir integre dans ses projets et de m'avoir fait l'honneur d'accepter de participer au jury de cette these

Monsieur Jean-Claude Fernandez, Professeur a l'Universite Grenoble I, pour avoir accepte d'encadrer cette these, pour le temps lui consacre, pour ses conseils et suggestions qui ont permis la realisation de cette these.

Je tiens a remercier la Region Rh^one-Alpes pour le soutien nancier accorde a cette these.

Je remercie Alain Kerbrat, Chef de projet a Telelogic Technologies Toulouse, d'avoir accepte de co-encadrer cette these au debut et ensuite de la soutenir de la part des societes VERILOG et Telelogic Technologies Toulouse.

Je remercie tous les membres du laboratoire VERIMAG pour le cadre de travail o ert. En particulier, je remercie les membres de l'equipe asynchrone: Saddek Bensalem, Susanne Graf, Yassine Lakhnech, Laurent Mounier, Michael Perin, Anahita Akhavan, Moussa Amrani, Cyril Pachon, Romain Janvier, les anciens membres de l'equipe: Aurore Annichini, Guoping Jia et Jean-Pierre Krimm, ceux qui m'ont beaucoup aide a la n: Manuel Aguilar, Ileana et Iulian Ober et un grand merci a Liana et Dorel Bozga (pour tout).

(5)
(6)

TABLE DES MATI 

ERES 5

Table des matieres

Table des gures

9

Liste des tableaux

11

1 Introduction

13

1.1 Thematique . . . 13 1.2 Contexte . . . 14 1.3 Contribution . . . 16 1.4 Plan . . . 20

2 Preliminaires

23

2.1 Notations . . . 23 2.1.1 Algorithmes . . . 24

2.2 Ensembles partiellement ordonnes, treillis . . . 27

2.2.1 Ensembles partiellement ordonnes . . . 27

2.2.2 Treillis . . . 29

2.2.3 Points xes . . . 32

2.2.4 Elargissement, retrecissement . . . 33

2.2.5 Iterations chaotiques . . . 34

3 Validation basee sur les modeles

37

3.1 Systemes de transitions etiquetees . . . 37

3.1.1 Actions internes . . . 42

3.1.2 Actions d'entree et de sortie . . . 45

3.2 Automates etendus communicants . . . 46

3.3 Veri cation formelle . . . 51

3.3.1 Speci cations logiques . . . 51

(7)

3.4 Test . . . 52

3.4.1 Machines a etat ni . . . 52

3.4.2 Theories formelles du test de conformite . . . 59

3.4.3 Test de conformite fonde sur la veri cation -tgv . . . 68

3.4.4 Machines a etat ni etendues . . . 75

3.5 Objectifs de test abstraits . . . 78

3.6 Conclusions . . . 84

4 Analyse du contr^ole

85

5 Analyse des donnees

93

5.1 Problemes de ot de donnees intra-processus . . . 97

5.1.1 Solutions . . . 98

5.1.2 Activite des variables . . . 105

5.1.3 Utilite des donnees . . . 105

5.1.4 Propagation des constantes . . . 106

5.1.5 Propagation des intervalles entiers . . . 108

5.2 Problemes de ot de donnees inter-processus . . . 109

5.2.1 Activite des variables . . . 113

5.2.2 Utilite des donnees . . . 113

5.2.3 Propagation des constantes . . . 115

5.2.4 Propagation des intervalles entiers . . . 117

5.3 Applications . . . 117

5.3.1 Recouvrement des variables actives . . . 118

5.3.2 Recouvrement des variables temporisees . . . 120

5.3.3 Tranchage par rapport aux donnees utiles . . . 126

5.3.4 Tranchage par rapport aux contraintes . . . 133

6 Mise en uvre

137

6.1 L'environnement de validation if . . . 137

6.1.1 Architecture . . . 138

6.1.2 Description des composantes . . . 140

6.1.3 La representation intermediaire . . . 141

6.2 Traduction de sdl vers if . . . 144

6.2.1 La structure . . . 144

6.2.2 Les processus . . . 145

6.3 Bibliotheque d'analyse statique . . . 148

(8)

TABLE DES MATI 

ERES 7

6.4.1 Le protocolesscop . . . 153 6.4.2 Le protocolemascara . . . 156 6.4.3 Le sequentiel de volariane-5 . . . 158

7 Conclusions

159

7.1 Bilan . . . 159 7.2 Perspectives . . . 161

A Algorithmes

163

B Preuves

173

Bibliographie

197

(9)
(10)

TABLE DES FIGURES 9

Table des gures

1.1 Methodologie de test . . . 18

2.1 Les treillis const etint . . . 31

3.1 Union des stes . . . 44

3.2 Methodes de test de conformite . . . 62

3.3 Objectif de test abstrait . . . 80

3.4 Exemple . . . 83

4.1 Analyse de l'utilite du contr^ole . . . 89

5.1 Le postordre inverse . . . 100

5.2 Tranchage par rapport aux donnees utiles . . . 129

5.3 Tranchage par rapport aux contraintes . . . 135

6.1 L'environnement de validation if . . . 138

6.2 Les classes de la bibliotheque . . . 152

(11)
(12)

LISTE DES TABLEAUX 11

Liste des tableaux

2.1 Les types le, pile . . . 26

2.2 Le type ensemble . . . 26

2.3 Les types tuple et fonction . . . 27

2.4 Une procedure . . . 28

3.1 Calcul du produit asynchrone . . . 40

3.2 Regles de production . . . 47

4.1 Calcul de l'utilite du code . . . 88

4.2 Calcul de l'utilite du code: procedure Init . . . 90

4.3 Calcul de l'utilite du code: procedure ExploreRule234 . . . 91

4.4 Calcul de l'utilite du code: procedure ExploreRule5 . . . 91

5.1 Problemes de ot de donnees intra-processus . . . 104

5.2 Problemes de ot de donnees inter-processus . . . 114

5.3 Utilite des donnees et signaux . . . 116

5.4 Recouvrement des horloges . . . 124

5.5 Calcul des regles . . . 125

5.6 Application des regles . . . 126

6.1 Traduction des types . . . 145

6.2 Traduction des transitions . . . 149

6.3 Traduction des transitions . . . 150

6.4 Remplacement . . . 151

6.5 Optimisations entreprises sur la partie dc . . . 158

A.1 Strategie scc-str- I . . . 163

A.2 Strategie scc-str- II . . . 164

A.3 Strategie scc-str- III . . . 165

(13)

A.5 Strategie wlist-str . . . 167

A.6 Strategie scsc-str - I . . . 168

A.7 Strategie scsc-str - II . . . 169

A.8 Strategie scsc-str - III . . . 170

A.9 Strategie scsc-str - IV . . . 170

A.10 Strategie scsc-str - V . . . 171

A.11 Strategie scsc-str - VI . . . 172

(14)

13

Chapitre 1

Introduction

1.1 Thematique

Le test est une phase fondamentale du cycle de vie de tout produit industriel. On l'utilise pour s'assurer que la realisation d'un produit respecte ses speci cations initiales. Il permet de detecter des erreurs d'un systeme par l'experimentation. Ce n'est pas un processus exhaustif, il indique la presence des erreurs, pas leur absence.

Le test est une des principales techniques de validation utilisees dans l'industrie (y compris celle des logiciels (Bei90, XRK99])). La croissance et la diversite de la pro-duction des logiciels entra^ne aussi un augmentation de l'importance du test (le logiciel windows nt 5.0 contiendra plus de 48 million lignes de codes dont 7,5 million lignes de codes pour le test cf. Neu99]).

Pour tester les logiciels on emploie une palette variee de techniques (Bei90]): on teste leurs graphes de ot, les chemins, le ot des donnees, les domaines d'entree, la syntaxe.

Dans le cadre de notre these nous nous interessons au probleme du test de conformite pour les protocoles de telecommunication. Les communications entre les sous-systemes composants (par exemple, les ordinateurs) des systemes distribues (y compris les sys-temes de telecommunication) sont soumises a des regles decrites par des protocoles. Les speci cations des protocoles sont decrites en utilisant des formalismes de niveau superieur et sont, dans la plupart des cas, standardisees. Les protocoles sont ensuite implementes a partir de ces standards. Il est necessaire donc que les implementations

des protocoles aient un comportement conforme a leursspeci cations.

Le test de conformite des protocoles est une methode qui accomplit ce but. Il teste l'implementation d'une entite de protocole vis-a-vis de sa speci cation.

(15)

Les organismesiso1 etccitt2 ont etabli unemethodologie pour le test de conformite

decrite par le standardiso is-9646(fS92b]). Cette methodologie voit le test de confor-mite comme un test bo^ te noire. Cela signi e que (comme c'est le cas dans la pratique) la structure interne de l'implementation est inaccessible au testeur. Celui peut tester seulement le comportement observable de l'implementation. Il le fait en utilisant des implementations des cas de test abstraits obtenus a partir de la speci cation. A chaque execution d'un cas de test sur l'implementation on attribue un verdict.

L'etat actuel d'application dans l'industrie de cette methodologie consiste dans l'ecri-ture manuelle des sequences de test et l'utilisation de techniques ad-hoc d'application de ces tests avec des resultats mal ma^trises. Ces pratiques conduisent a un co^ut de l'e ort de test important. La production de tests en grand nombre, avec des garanties de pertinence et de correction, impose l'utilisation de methodes formelles de genera-tion (Tre92, Pha94a]).

1.2 Contexte

Notre equipe au laboratoire verimag et lsr/imag s'interesse a la validation et au test des protocoles et des systemes asynchrones. Depuis plus de dix ans un ensemble d'outils a ete developpe dans le but de faciliter la mise au point de speci cation formelle, et de produire automatiquement des sequences de test. Cet ensemble d'outils est bien di use dans le monde academique et chez certains industriels.

La bo^te a outils cadp3 (FGK+96]) est developpee par laboratoire verimag en

cooperation avec l'equipevasyde l'inriaRh^one-Alpes. Elle est composee par plusieurs outils et environnements nous en mentionnons quelques-uns:

{ ald ebaran (BFKM98]) est un outil pour e ectuer des reductions et comparai-sons des graphes en prenant en compte certaines relations d'equivalence et pre-ordres.

{ open-caesar (Gar98]) est un environnement ouvert pour construire des proto-types des algorithmes de veri cation fondes sur l'exploration exhaustive du modele. Il o re aussi des representations implicites (pour les algorithmes de veri cation a la volee (FJJM92])) ou symboliques (fondees sur des diagrammes binaires de decision).

1:International Organization for Standardization

2:Consultative Committee on International Telegraphy and Telephony

(16)

1.2. CONTEXTE 15

Notre equipe developpe maintenant if (BFG+99b, BFG+99c, BFG+00c]), un

en-vironnement de validation pour les systemes asynchrones temporises. Cet environne-ment est fonde sur une philosophie d'integration des methodes formelles dans la pra-tique industrielle de veri cation et de test (Sif99]). Ses principales directions de travail sont: le developpement d'une version temporisee du langage sdl (en incluant aussi la creation dynamique des instances de processus) qui comprend aussi des aspects simi-laires a uml4 (une structure d'etats similaire aux statecharts Har87]) et le

traite-ment de la complexite (en utilisant techniques d'analyse statique BFG99a, BFG00a, BFG00b], analyse symbolique et abstractions BL99], generation composante par com-posante5 KM00]). Les principaux atouts de if sont: un environnement de validation

ouvert, permettant d'un c^ote la connexion avec plusieurs outils de veri cation acade-miques (kronosYov97],spinHol91],investBLO98]) mais aussi l'acces aux plusieurs niveaux de representation des programmes.

Le laboratoire verimagtravaille avec l'equipe pampade l'irisa sur les fondements theoriques du test de conformite, la formalisation des concepts et la production d'algo-rithmes et d'outils correspondant aux idees mises en avant dans ces travaux.

Un resultat de cette cooperation est tgv6 FJJV97, FJJV96, JM97, JM99], un outil

pour la generation automatique de tests de conformite. Il illustre l'application de me-thodes formelles dans le domaine du test tout en essayant de modeliser le plus possible la pratique industrielle courante dans la generation automatique de tests de conformite. Le principe detgvconsiste a synthetiser a partir d'une speci cation formelle d'un protocole et d'un objectif de test (une propriete qu'on desire a veri er sur une implementation) un cas de test qui pourra s'appliquer sur l'implementation. Ce cas de test est decore par des verdicts qui seront utilises lors de l'application du cas de test a l'implementation, pour decider si l'implementation a reagi conformement a sa speci cation formelle. Gr^ace a une relation de conformite de nie formellement, l'algorithme detgvconstruit des cas de test valides (ils ne rejettent pas une implementation conforme a sa speci cation). tgv a deux modes distincts de fonctionnement:

{ le mode explicite, a partir d'une speci cation decrite en format ald ebaran, { le mode a la volee, a partir des speci cations formelles (sdlou lotos).

L'objectif de test est decrit en format ald ebaran. Le format de sortie de tgv est le format ald ebaran. Le graphe de test obtenu est deplie sous la forme d'un arbre en

4:Gro99]

5:Compositional Generation en anglais

(17)

format ttcn7 (fS92a]), standard de fait dans le monde de test.

tgv a ete realise au dessus de l'environnement cadp.

L'outil tgv a ete utilise pour des etudes de cas d'origine industrielle: { l'etude de cas drex e ectue pour le compte de la dga, cap sesaet

france-t el ecom,

{ l'etude de cassscop (BFG+00d]) fournie par le cnet8, dans le cadre de

l'opera-tion 1 du projet forma, projet coordonne par le laboratoireverimag.

{ il a ete utilise aussi pour generer des sequences executables de tests pour un pro-tocole de coherence de l'antememoire9 (KVZ98]).

tgv utilise aussi Objectgeode (Tel]) dettt. Objectgeode est un environnement de developpement dedie au langage sdl, commercialise par la compagnie ttt . Il sup-portesdl-92, l'utilisation deasn.1 (normeitu-t z-105), le langage msc (Message Se-quence Charts) pour la description des echanges de signaux et la methodeuml(Gro99]) pour une description orientee objet. Il fournit d'editeurs graphiques et compilateurs pour chacun de ces langages et un generateur de code c. Objectgeode contient un simulateur (pour la mise au point) et un veri cateur base sur des methodes de model-checking (QS82, CES83]). Objectgeode a ete connecte aux outils d'analyse, de veri -cation et de generation de test issus de verimaget de l'irisa.

Une integration des algorithmes derives detgv, dans l'outil de testtestcomposer (KJG99]) de ttt, a ete nancee par france-t el ecom.

1.3 Contribution

La generation automatique des cas de test basee sur l'approche modele est limitee par le probleme d'explosion d'etat (les modeles ont une taille exponentielle relativement aux speci cations).

Rappelons-nous que la generation automatique des cas de test est guidee par des objectifs de test (concus par des experts). Si un ou plusieurs objectifs de test existent alors le probleme d'explosion d'etat pourrait ^etre contourne (en utilisant par exemple des techniques a la volee FJJM92]) qui construisent seulement la partie exploree du modele. Les techniques a la volee sont implementees dans tgv (Mor00]).

7:Tree and Tabular Combined Notation

8:Centre de Recherche et D eveloppement defrance telecom

(18)

1.3. CONTRIBUTION 17

Mais la conception des objectifs de test pour un modele d'une speci cation est dif- cile sans le construire explicitement (et cela parce que les parametres de signaux dans l'objectif de test sont traites en enumeration).

Dans notre these nous avons essaye de pallier ce probleme et par consequence nous nous avons etabli deux objectifs:

{ le traitement ecace des donnees en vue de l'extension de l'outil tgv (tel qu'il existait dans FJJV97, FJJV96]),

{ l'etude d'un langage d'expression pour les objectifs de test.

Ces deux objectifs ont ete accomplis par le developpement d'une methodologie de test basee sur des techniques10 issues des domaines de la veri cation et de l'analyse

des programmes (analyse statique11). Cette methodologie, decrite dans la gure 1:1 p:18]

propose un ensemble de procedures qui ont le but de simpli er la speci cation en te-nant compte de sa structure ou de la structure des objectifs de test et cela avant de la generation des cas de test. On reduit ainsi la taille des systemes de transitions etique-tees (ste) qui modelisent les comportements observables de la speci cation. Les analyses de programme appliquees sont l'analyse d'activite des variables, l'analyse de l'utilite (du contr^ole et des donnees) et l'analyse d'invariance. Ces analyses, utilisees surtout dans le domaine de la compilation, ont ete etendues a notre representation intermediaire (qui est un ensemble d'automates etendus communicants par les d'attente).

Il faut mentionner que les simpli cations ci-dessus sont conservatrices dans le sens suivant: les resultats obtenus en appliquant tgv, pour deux speci cations (la speci -cation originale et une variante simpli ee de celle-ci) et pour un m^eme objectif de test, sont identiques.

Traitement ecace des donnees

Analyse d'activite

Cette analyse12 calcule, pour chaque etat de contr^oleq, l'ensemble des variables qui

seront utilisees13 dans un chemin partant de cet etat et sans que leurs valeurs dans

l'etat q soient rendues inutiles14 avant leur premiere lecture. Cette analyse peut ^etre

10:D'ailleurs ces techniques sont aussi applicables dans le domaine de la v erication par modeles: on

peut simplier les sp ecications en fonction de formules de logique temporelle 11:compile-time analysisen anglais

12:qui est une des plus anciennes analyses statique Hec77]

13:leurs valeurs seront lues

(19)

Objectif de test abstrait Compilateur observable Comportement Objectif de test concret Specication formelle Analysede programmes ActiviteUtilite Invariance TGV Cas de test IF STE

Fig. 1.1 {Methodologie de test

vue comme un cas extr^eme de l'analyse d'utilite des donnees (dans ce cas il n'y a pas de critere de tranchage).

Analyse d'utilite

On couvre ici deux aspects: l'utilite du code et celle des donnees. Par le termeutilite

on comprend l'utilite par rapport a l'objectif de test et l'ensemble d'entree contr^olables. L'ensemble d'entree contr^olables comprend tous les signaux (et les contraintes maxi-males) que le testeur a l'intention d'envoyer vers l'iutpendant le test. L'analyse d'utilite du contr^ole elimine les transitions de la speci cation dont les declencheurs15

n'appar-tiennent pas a l'ensemble d'entree contr^olables. Ensuite on elimine recursivement toutes les transitions dont l'etat source n'a pas de transitions entrantes. L'analyse d'utilite des donnees est faite en utilisant la technique de tranchage16. On analyse l'utilite des

va-riables mais aussi celle des parametres de sortie/entree. Intuitivement, une variable est utile dans un etat si sa valeur, par transitivite, est utile dans un certain endroit de la speci cation17 (choisi par l'utilisateur).

15:triggersen anglais

16:slicing en anglais

(20)

1.3. CONTRIBUTION 19

La technique de tranchage est une technique fortement utilise dans diverses do-maines (pour deboguer les programmes, par exemple). Le tranchage dans le contexte des programmes concurrents a ete utilise pour la premiere fois par Che93], puis pour des processus legers18 par Kri98] et pourpromela (Hol97]) par MT98]. Dans DHZ99] il

y a une etude du tranchage des programmes sequentiels en ce qui concerne une formule de ltlet dans HCD+99] le tranchage est utilise pour veri er et extraire des machines

a etat ni a partir des programmes java. Dans CFR+99] il y a une application du

tranchage dans la veri cation des programmesvhdl.

Analyse des donnees

Une analyse des donnees est exprimee par un probleme de ot de donnees (MR90]). Ceci est un tuple constitue par un treillis (complet), un espace de fonctions (au moins monotones), un graphe de ot et une fonction qui attache a chaque transition du graphe une fonction de transfert (appartenant a l'espace de fonctions). On obtient ainsi un operateur de ot dont le plus petit (grand) point xe est la solution du probleme de ot. Pour trouver les solutions des problemes de ot nous avons utilise des strategies d'iteration existantes dans la litterature (Hec77, CC92b, Bou93, Muc97, NNH99]). Ces strategies comportent deux etapes:l'initialisationd'une (ou plusieurs) liste(s) de travail etl'iterationsur ces listes. Dans tous les cas qu'on traite, les listes sont organisees comme des les. Dans le cas d'un treillis de la hauteur nie on utilise soit une seule le, initialisee dans le preordre ou postordre inverse, soit plusieurs les correspondant aux composantes fortement connexes maximales du graphe de ot. Quand le treillis est de la hauteur non- nie il faut detecter un ensemble admissible de points d'elargissement (Bou93]) pour nous trouver dans le cadre de l'interpretation abstraite (CC92b]) et pouvoir ainsi calculer une approximation de la valeur des pointes xes.

Etant donne ce cadre formel on peut obtenir les di erentes analyses de donnees par instanciation de ce canevas: le treillis, l'espace des fonctions et les fonctions de transfert. Ceci est fait dans le chapitre 5 p:93].

Ensuite il faut prouver que les optimisations qu'on a fait obeissent a un certain critere de correction. Ceci est un resultat de bisimulation.

Langage d'expression pour les objectifs de test

Nous avons etendu aussi le concept de l'objectif de test. Les objectifs de test abstraits ont des contraintes symboliques attachees aux parametres des signaux d'entree. A partir

(21)

des contraintes d'entree les procedures mentionnees ci-dessus calculent des contraintes pour les parametres des signaux de sortie des objectifs de test abstraits. Ensuite, des objectifs de test concrets pourront ^etre derives et en utilisant l'outil de test existant tgv on pourrait generer des tests de conformite.

1.4 Plan

Preliminaires

Dans ce chapitre on rappelle quelques notations (concernant les ensembles, les re-lations, les algorithmes) et notions theoriques utilisees dans les chapitres suivants (en-sembles partiellement ordonnes, treillis complets, points xes, operateurs d'elargissement et de retrecissement).

Validation basee sur les modeles

Dans ce chapitre on presente les principaux modeles (systemes de transitions eti-quetees et automates etendus communicants) et les approches dans la validation des programmes: la veri cation et le test (de conformite). On decrit ces deux approches en s'appuyant sur une description commune (Fer96]). Cette description s'appuie sur le fait qu'on peut voir le test de conformite et la veri cation comme une relation conf entre

l'implementation et la speci cation (ou entre une speci cation et une de ses versions plus ranee).

Verication

Dans le cadre de la veri cation la relation conf est frequemment une relation de

bisimulation et on mentionne plusieurs approches pour veri er si impconf spec.

Test de conformite

Dans le cadre du test de conformite la relation confest une relation de conformite.

On decrit la place du test dans le domaine v & v (Hol91]), le probleme du test de conformite, son description en utilisant la theorie des automates (LY96]), le cadre formel de test de conformite (Tre92, Pha94a]). Ensuite on presente l'approche fondee sur la veri cation - algorithme de tgv, suivie par une presentation du test de conformite symbolique (les principaux approches).

(22)

1.4. PLAN 21

Analyse du contr^ole

On propose une analyse (statique) du contr^ole qui, prenant en compte un objectif de test abstrait et un ensemble d'entrees contr^olables (eventuellement calcule a partir d'un objectif de test abstrait), fournit une speci cation (eventuellement) simpli ee dont le modele est bisimilaire avec celui de la speci cation initiale.

Analyse des donnees

On introduit d'abord le cadre formel pour e ectuer les analyses de donnees. Il s'agit de problemes de ot de donnees. La plupart des analyses qu'on fournit fait partie du domaine de la compilation (la propagation des constantes, l'analyse des variables ac-tives) ou du debogage des programmes. Leurs resultats servent a la simpli cation des speci cations, tout en preservant des modeles bisimilaires avec ceux des speci cations initiales.

Mise en uvre

On decrit l'environnement de validation if, son architecture, ses composantes et la representation intermediaire proposee. Ensuite on fournit une description de la maniere dont on traduit dansif les principaux aspects du langage de description sdl.

Ensuite on presente la bibliotheque d'analyse statique implementee. Il s'agit de l'im-plementation, dans le cadre d'une bibliotheque d'analyse statique pour if, des algo-rithmes presentes dans les chapitres 4 p:85] et 5 p:93].

En n on presente les resultats obtenus par leur application sur des protocoles de taille industrielle: sscop (un protocole mono-processus) et mascara (un protocole multi-processus). Le sequentiel de vol d'ariane 5 servira comme exemple de l'application de la propagation de constantes pour des variable temporisees.

(23)
(24)

23

Chapitre 2

Preliminaires

2.1 Notations

On utilise les notations suivantes:

1. Comme notations generales:a + b signi ea est une notation pour b,

a .. b + faa+ 1:::bg,

2. Pour les ensembles:

N

est l'ensemble des entiers naturels,

Z

est l'ensemble des entiers et  est l'ensemble vide. L'union est notee AB, l'intersection A\B, la

di erence ensembliste AnB, le produit cartesien AB ou Q

i2I

Ai, avec Q

i2I

Ai 3

a = (a1]:::ai]:::) = (ai)i2I. L'inclusion des ensembles est notee A

 B et

l'appartenance a un ensemble x2A.

On note 2A l'ensemble des parties de A et

jAj le cardinal de l'ensemble A.

Si A est un ensemble alors  ( =2 A) est le mot de longueur 0, A

n est l'ensemble

des mots sur Ade longueurn (ensemble isomorphe avec n

fois

z }| {

AA:::A),A + est

l'ensemble de mots nis surA, de longueur strictement positive, A est l'ensemble

de mots nis sur A etA! est l'ensemble de mots in nis sur A.

Siab2 Q

i2I

Ai etK I alorsa =b mod K + (8k)(k2K )ak] =bk]). On

uti-lise aussi la notation an

+

nfois z }| {

aa:::a.

(25)

Une relation R  SS est reexive si (8s)(s 2 S ) (ss) 2 R), symetrique si (8s)(8t)((st) 2 R ) (ts) 2 R), anti-symetrique si (8s)(8t)((st) 2 R^(ts) 2 R)s =t) et transitive si (8s 1)( 8s 2)( 8s 3)((s1s2) 2R^(s 2s3) 2R )(s 1s3) 2R).

Une relation RSS est un preordresi elle est reexive et transitive, un ordre

partiel si elle est reexive, anti-symetrique et transitive, un ordre total si c'est un ordre partiel et (8s)(8t)((st)2SS )((st)2R_(ts)2R)), uneequivalence

si elle est reexive, symetrique et transitive. Soient R1

XY etR 2

Y Z deux relations. La relation composee deR 1 et R2 est R1 R 2 = f(xz)jx2X^z 2Z^(9y2Y)((xy)2R 1 ^(yz)2R 2) g.

La relation inverse deR  ST estR ;1

 T S t.q. (xy)2R () (yx)2

R;1.

La relation identitede S est 1S =f(ss)js2Sg.

On utilise la notation #k(k 2S) pour la relation incluse dansSS:f(sk)js2Sg.

4. SoientS,T deux ensembles. Une relationRST est unefonction partielle deS

versT si (8s)(8t 1)( 8t 2)((st1) 2R^(st 2) 2R)t

1 =t2) et unefonction (totale)

deS aT si elle est une fonction partielle et (8s)(s2S )(9t)(t2T^(st)2R)).

Par S !T ou TS on denote l'ensemble de toutes les fonctions totales de S a T.

Par v=x]e on denote la substitution de la variable x par la valeur v dans l'ex-pression e. La m^eme notation est utilisee pour les fonctions: soient f : S ! T,

s 2 S et t 2 T. La fonction t=s]f : S ! T est de nie de la maniere suivante:

t=s]f(x) = f(x) six6=sett sinon. On utilise la m^eme notation pour les produits

cartesiens: si  2 Q i2I Ai, k 2I et a2Ak alors a=k] 2 Q i2I Ai et a=k]j] =j] si j 6=k et a sinon.

Si f : S ! T est une fonction de S a T et X  S alors f(X) +ff(x)j x2 Xg.

On applique la m^eme notation dans les cas ou le domaine ou l'ensemble des valeurs def sont des produits cartesiens.

2.1.1 Algorithmes

Les algorithmes de chapitres suivants sont presentes dans une notation informelle similaire a la notation ican (Muc97]) ou aux langagesc etpascal:

(26)

2.1. NOTATIONS 25

2. L'instruction d'a ectation a la syntaxe x:=exp, l'instruction de branchement est similaire a l'instruction ifdec:

if(exp;bool) if (exp ;bool) if(exp;bool)

inst inst inst

endif] ... ...

else else if (exp;bool)

inst inst ... ... endif else inst ... endif

3. Les instructions d'iteration sont aussi similaires aux langages c,pascal:

foreach () while (exp;bool)

inst inst endfor] endwhile]

foreach () while (exp;bool) repeat

inst inst inst

... ... ...

endfor endwhile until (exp;bool)

4. On utilise les instructions returnet break avec la semantique du langage C.

On identi e les types avec leur ensemble de valeurs. On ne precise pas les types de base, mais on inclut ici les types booleen bool et entier int. Les types composes sont

obtenus en utilisant les constructeurs suivants:

1. Si T est un type de base alors on peut construire les types le et pile dont la syntaxe et les operateurs sont presentes a la table 2:1 p:26]. Si f est une le (pile)

de T et e est un ensemble de T alors on utilise la notation f:Push(e) qui signi e une enumeration aleatoire de tous les elements de e avec leurs insertion dans e:

foreach(s2e)

f:Push(s) .

2. De m^eme, si T est un type de base alors on peut construire le type ensembledont la syntaxe et les operateurs sont presentes a la table 2:2 p:26]. Les operateurs

(27)

Declarations Operateurs Notations, utilisations T0 =  file deT pile deT Push :T 0 T !T 0 x:Push(t) x:T0 Pop :T0 !T t:=x:Pop() t :T Top :T0 !T t:=x:Top() Empty :T0 !bool x= Reverse :T0 !T 0 x:=x:Reverse

Tab. 2.1 { Les types le, pile

Declarations Operateurs Notations, utilisations

T0 = ensemble deT :T 0 T 0 !T 0 z :=x y xyz :T0 \:T 0 T 0 !T 0 z :=x \y t :T n:T 0 T 0 !T 0 z :=x ny Empty :T0 !bool x= In :T0 T !bool t2x fg:T !T 0 x:= ftg C :T 0 !T tCx J :T 0 !T tJx

(28)

2.2. ENSEMBLES PARTIELLEMENT ORDONN 

ES,TREILLIS 27

et J signi ent la selection aleatoire d'un element et respectivement la selection

aleatoire suivie par elimination de l'element.

3. Si TT1:::Tk sont des types de base alors on peut construire les types tuple et

fonctiondont la syntaxe et les operateurs sont presentes a la table 2:3 p:27].

Declarations Operateurs Notations, utilisations

T0 =T 1 :::Tk ] :T 0 f1:::kg! S i2f1:::kg Ti t :=xj] x:T0 () :T 1 :::Tk !T x:= (t 1:::tk) t:Tj ti :Tii2f1:::kg T00=T 1 :::Tk !T () :T 1 :::Tk !T t :=y(t 1:::tk) y:T00 t:T ti :Tii2f1:::kg

Tab. 2.3 { Les types tuple et fonction

Par ailleurs on utilise les types ste et pfdqui denotent les systemes de transitions etiquetees (de nition 3:1 p:38]) et les problemes de ot de donnees (de nition 5:1 p:97]).

Pour les variables de type steou pfd(ex. x:ste) on utilise aussi la notation pre xee

x: pour identi er les elements composants (ex. x:$).

La notation pour les commentaires est identique a celle de c++.

La de nition, la declaration et l'utilisation des procedures obeissent aux regles du langage pascal: elles peuvent contenir des de nitions des procedures (ou seulement leurs declarations), des de nitions de types. Un exemple de procedure est fourni a la table 2:4 p:28]: la procedure Proc1 contient, entre autres, la de nition de la procedure

Proc3 et la declaration de la procedure Proc2.

2.2 Ensembles partiellement ordonnes, treillis

2.2.1 Ensembles partiellement ordonnes

Denition 2.1 (Ensemble partiellement ordonne)

Un ensemble partiellement ordonne est la paire (Lv), ou L est un ensemble et v LLest un ordre partiel.

(29)

procedure Proc1 (a :TypeA var b:TypeB) type TypeC =:::  var c:TypeC procedure Proc2

procedure Proc3 (b1 :TypeBvar c1 :TypeC) type var begin endproc Proc3 begin end.

Tab.2.4 { Une procedure

h(L) =maxfjSjjSL^S totalement ordonneg.

Observation 2.1

Si a@ b + av b^a 6=b, on pourrait representer (Lv) comme un

graphe orienteGLavec pour nuds les elements de Let une ar^ete entrea etb (ab 2L)

si a@b^(8x)(x2L):(a@x@b)) 1.

Denition 2.2 (Cha^ne)

La sequence (xn)n2N dans (L

v) est une cha^ ne croissante si xi v xi

+1 pour tout

i2

N

.

Denition 2.3 (Monotonie)

Une fonction f : L ! L est monotone croissante si (8a)(8b)(a 2 L^b 2 L^a v

b)f(a)vf(b)).

Denition 2.4 (Bornes)

Soit S L. Un elementb 2L est:

1. un majorant deS (noteS vb) si (8s)(s2S )svb).

1:c'est une repr esentation minimale t.q. si a ;! GL

b et b ;! GL

c alors on peut d eduire, par

(30)

2.2. ENSEMBLES PARTIELLEMENT ORDONN 

ES,TREILLIS 29

2. un minorant deS (notebvS) si (8s)(s2S )bvs).

3. la2 borne superieure deS (note

tS) si:

(a) tS est un majorant de S et

(b) C'est le plus petit des majorants de S: (8b 0)(b0

2L^S vb 0

)tS vb 0).

4. la3 borne inferieure deS (note

uS) si:

(a) uS est un minorant de S et

(b) C'est le plus grand des minorants de S: (8b 0)(b0 2L^b 0 vS )b 0 vuS).

Lemme 2.1 (Produit cartesien)

Soient (L1 v

1) et (L2 v

2) deux ensembles partiellement ordonnes et soit vL 1 L 2 t.q. (x1x2) v(y 1y2) () x 1 v 1 y1 ^x 2 v 2 y2. Alors: 1. (L1 L 2

v) est un ensemble partiellement ordonne,

2. Un element (b1b2) du produit cartesien est un majorant (minorant) deS1 S

2 

L1 L

2 si et seulement si bi est un majorant (minorant) deSi, i

21 .. 2.

3. La borne superieure (inferieure) deS1 S 2 L 1 L 2est l'element ( tS 1 tS 2) (resp. (uS 1 uS 2) ).

2.2.2 Treillis

Denition 2.5 (Treillis (complet))

Un treillis (complet) est un ensemble partiellement ordonne (Lv) t.q. toute partie

nie (respectivement partie) de L admet une borne superieure et une borne inferieure. On le note avec (Lvtu?>) ou ? + uL et >+ tL. Si xy 2L alors xuy= ufxyg etxty=tfxyg.

Exemple 2.1

1. Le treillis 2L de parties d'un ensemble L: (2L\L).

2:si elle existe elle est unique, a cause du fait quevest anti-sym etrique

(31)

2. Le treillis de vecteurs de bits bv: (f01gtu01) (isomorphe avec le treillis

de parties d'un ensemble de cardinal 1).

3. Le treillis Q!L, ouQ est un ensemble ni etL un treillis complet, est le treillis

complet (Q!Lv 0 t 0 u 0 ? 0 > 0) avec: (a) f v 0 g () (8l)(l 2L)f(l)vg(l)). (b) (f u 0g)(l) =f(l) ug(l). (c) (f t 0g)(l) =f(l) tg(l). (d) > 0 = # >. (e) ? 0 = # ?.

4. Le treillis de constantesconst: (f?>012 gvtu?>) dontG CONST

est represente a la gure 2:1 p:31].

5. Le treillis d'intervalles entiers int est (IZ

f?gvut?;11]) ou: (a) IZ = fab]ja2

Z

f;1gb2

Z

f1gabg, (b) bc]vad] () a b c d, (c) (8ab])(ab]2I Z )?@ab]), ou a@b + avb^a6=b, (d) (8ab])(ab]2I Z

)?tab] = ab]^?uab] =?),

(e) ab]tcd] = min(ac)max(bd)],

(f) ab]ucd] = 

?  ab]\cd] =

max(ac)min(bd)]  sinon Le graphe GINT est represente dans la gure 2:1 p:31].

Lemme 2.2 (Produit cartesien)

Soient (Livitiui?i>i) deux treillis complets. Le treillis

(L1 L 2 vtu(? 1 ? 2)( > 1 >

2)), ou l'ordre partiel

vest celui de la lemme 2:1 p:29], (x1x2) t(y 1y2) = (x1 t 1y1x2 t 2 y2) et (x1x2) u(y 1y2) = (x1 u 1y1x2 u 2y2) est un treillis complet.

(32)

2.2. ENSEMBLES PARTIELLEMENT ORDONN  ES,TREILLIS 31 > ? -1 1   0  ... ... ...  -1,0] 0,1]  -1,-1] 0,0] 1,1]   ... ? ;1,1]

(33)

Lemme 2.3 (Union disjointe)

Soient (Livitiui?i>i) deux treillis complets. Le treillis

(L1 f1gL 2 f2gvtu?>), ou: (ai)v(bj) () i < j_(i=j^avi b) (ai)t(bj) = 8 < : (atibi)  i=j (bj)  i < j (ai)  i > j >= (> 22) (ai)u(bj) = 8 < : (auibi)  i=j (bj)  i > j (ai)  i < j ?= (? 11)

est un treillis complet (on utilise la notation L1 L

2).

Denition 2.6 (Continuite)

Soit (Lvtu?>) un treillis complet. La fonction totale f :L!L estcontinue

si pour toute cha^ne (xn)n2N,f( tn

2Nxn) = tn

2Nf(xn).

2.2.3 Points xes

Denition 2.7 (Point xe)

Soient (Lvtu?>) un treillis complet etf :L!Lune fonction monotone. Un

point xedef est un element xdeL t.q.f(x) =x. Soient %f + fxjx2L^f(x) = xg

et lfp(f)+ u%f, gfp(f)+ t%f.

Lemme 2.4 (Monotonie et hauteur nie implique continuite)

Si L est un treillis complet, de la hauteur nie et f : L ! L est monotone alors f

est continue. Preuve

Voir annexe B p:173].

Theoreme 2.1 (Calcul de point xe - Kleene-Tarski)

Soient (Lvtu?>) un treillis complet et f :L!Lune fonction totale. Alors:

1. Si f est monotone alorstn 2Nf

n(?)vlfp(f) et gfp(f)vun 2Nf

n(>).

2. Si f est continue alors lfp(f) =tn 2Nf

n(?) et gfp(f) = un 2Nf

(34)

2.2. ENSEMBLES PARTIELLEMENT ORDONN  ES,TREILLIS 33 Preuve Voir annexe B p:174].

Observation 2.2

Le theoreme precedent a lieu aussi si on prend au lieu de >, ? tout a 2 L avec la

propriete: gfp(f)vav> (respectivement?vavlfp(f)).

2.2.4 Elargissement, retrecissement

Les operateurs d'elargissement et de retrecissement ont ete introduits (Cou78]) pour permettre et accelerer le calcul des approximations des points xes dans le cas ou le treillis a la hauteur in nie.

Denition 2.8 (Elargissement)

Soit (Lvtu?>) un treillis complet. L'operateur binairer:LL!Lest un

operateur d'elargissement (CC92b]) si:

1. (8x)(8y)(x2L^y2L)xy vxry) et

2. Pour toute sequence croissante (xn)n2N, la sequence croissante (yn)n2N, de nie

comme suit:  y0 =x0 yn+1 =yn rxn +1  8n 2

N

, est constante a partir d'un certain rang.

Denition 2.9 (Retrecissement)

Soit (Lvtu?>) un treillis complet. L'operateur binaire4:LL!Lest un

operateur de retrecissement(CC92b]) si:

1. (8x)(8y)(x2L^y2L^yvx)yvx4yvx) et

2. Pour toute sequence decroissante (xn)n2N, la sequence decroissante (yn)n2N, de nie

comme suit:  y0 =x0 yn+1 =yn 4xn +1  8n2

N

, est constante a partir d'un certain rang.

(35)

Exemple 2.2

Pour le treillis int, des operateurs d'elargissement et de retrecissement sont de nis comme suit (CC92b]):

1. Elargissement:

(8X)(X 2I Z

)((?rX =X)^(Xr?=X)))

ab]rcd] = ef] ou e=  ;1  c < a a  sinon etf =  1  b < d b  sinon 2. Retrecissement: (8X)(X 2I Z )((?4X =?)^(X4?=?)))

ab]4cd] = ef] ou e=  c  a =;1 a  sinon et f =  d  b=1 b  sinon

Theoreme 2.2 (Approximation par elargissement CC92b])

Soient (Lvtu?>) un treillis complet, f : L ! L une fonction continue et r:LL!Lun operateur d'elargissement. Soit la sequence (xn)n2N: x0 = ? et xi +1 =  xi  f(xi)vxi xirf(xi)  sinon . Alors (xn)n2N est constante a partir d'un certain rang et sa limite a

2 L est t.q.

lfp(f)va et f(a)va.

Theoreme 2.3 (Approximation par retrecissement CC92b])

Soient (Lvtu?>) un treillis complet, f : L ! L une fonction continue, 4 :

LL! L un operateur de retrecissement et a 2L la limite de la sequence croissante

du theoreme 2:2 p:34].

Soit la sequence (yn)n2N:y0 =a etyi+1 =yi

4f(yi).

Alors (yn)n2N est constante a partir d'un certain rang et sa limite a 0

2 L est t.q.

lfp(f)va 0.

2.2.5 Iterations chaotiques

Dans le cas ouLest un treillis complet etf est une fonction continue de l'ariten (f :

n Q i=1 L! n Q i=1

L) on peut utiliser pour le calcul delfp(f) les iterations chaotiques (Cou98]):

(36)

2.2. ENSEMBLES PARTIELLEMENT ORDONN 

ES,TREILLIS 35

Soient L un treillis complet, f : Qn

i=1

L !

n

Q

i=1

L une fonction continue et  :

N

!

2f1:::ng une strategie d'iteration (t.q. chaquei

2f1:::ngappara^t in niment souvent:

(8i)(8k)(1in^k2

N

)(9j)(j > k^i2(j)))).

Une iteration chaotique(croissante) est la sequence (xk)k

2N, ou:x 0 = ( ?:::?) et xk+1 i =  fi(xk 1:::xkn)  i 2(k) xki  i =2(k) , 8i21 .. n.

Theoreme 2.4 (Cou78])

La suite (xk)k

2N est croissante et sa limite est le point xe de f (lfp(f) = tk

2Nx

k).

Preuve

Voir annexe B p:174].

Dans le cas des treillis de hauteur non nie (ou ne veri ant pas la condition de cha^ne) on introduit dans la de nition des iterations chaotiques croissantes les suites elargies et on obtient les iterations chaotiques approchees superieurement (Cou78]):

Denition 2.11 (Iterations chaotiques approchees superieurement)

Soient L un treillis complet et f : Qn

i=1

L !

n

Q

i=1

L une fonction continue et  :

N

!

2f1:::ng une strategie d'iteration (t.q. chaque i

2 f1:::ng appara^t in niment

sou-vent) ((8i)(8k)(1in^k 2

N

)(9j)(j > k^i2(j)))).

1. Le graphe de dependancedef est un graphe oriente avec les n&uds etiquetes avec

ii 2 f1:::ng et des arcs entre (ij) si dans le calcul du point xe x de f le

calcul de la composantexj depend du celui de la composante xi.

2. Soit E f1:::ng un ensemble t.q. tout circuit non trivial du graphe de

depen-dance de f passe par au moins un point de E.

Uneiteration chaotique croissante approchee superieurement) est la sequence (xk)k

2N, ou: x0 = ( ?:::?) et x k+1 i = 8 < : xki  i =2(k)_fi(xk)vxki fi(xk)  i2(k)nE ^fi(xk)6vxki xkirfi(x k)  i 2(k)\E^fi(x k) 6vxki .

Theoreme 2.5 (Cou78])

Sif est continue, la suite (xk)k

2N est constante a partir d'un certain rang et sa limite

(37)
(38)

37

Chapitre 3

Validation basee sur les modeles

La validation des systemes repartis (protocoles) consiste a s'assurer que les imple-mentations des systemes sont conformes a leurs speci cations (ensembles des proprietes qu'on attend d'un systeme). Plus formellement: valider le systeme S signi e a veri- er si la speci cation spec de S et son implementation imp satisfont la relation conf:

imp confspec.

On suppose toujours qu'on peut associer aux implementations une semantique ope-rationnelle, donnee par un ste1 (m^eme dans le cas ou on ne conna^t pas la structure

de celle-ci). En fonction de l'information qu'on possede sur la structure des implemen-tations on peut appliquer les techniques de validation: la veri cation formelle (section 3:3 p:51]) et le test(section 3:4 p:52]).

On commence par une presentation des modeles formels qu'on utilise: il s'agit de systemes de transitions etiquetees (section 3:1 p:37]) et d'automates etendus

communi-cants (section 3:2 p:46]).

3.1 Systemes de transitions etiquetees

Les systemes de transitions etiquetees (ste) sont utilises comme modele sequentiel semantique2 (en utilisant la technique d'entrelacement) pour les systemes concurrents:

ccs (Mil80]) et csp (Hoa85]) mais aussi comme modele theorique dans les domaines du test de conformite (Bri88]) ou de la veri cation des systemes QS83, CES83, Sif82]: comportementale enumerative (en utilisant relations de simulation et de bisimulation:

1:systeme de transitions etiquet ees

2:De maniere g en erale, la s emantique op erationnelle d'un langage permet d'associer a un programme

(39)

ald ebaran (Fer88, Mou92, Ker94, BFKM98]) ou BdS92]) ou logique (par evaluation de formules de logique temporelle Cle90, FM95]).

Denition 3.1 (Systeme de transitions etiquetees)

Unsysteme de transitions etiqueteesS est un tuple (Q$f

a

;! ja2$gq

0), ouQest

l'ensemble des etats, $ est l'ensemble des etiquettes (actions), les relations de transition sont t.q. (8a2$)(

a

;!QQ) et q 0

2Q est l'etat initial.

On note STE($) l'ensemble de tous lesstes avec l'ensemble des etiquettes $. Pour

identi er les elements d'un ste (ex.S) on utilise les notations:S:Q, S:$, S:q0 .

On utilise la notationq ;a!q 0 + (9q)(9q 0)( 9a)(q2Q^q 0 2Q^a2$^(qq 0) 2 a ;!).

Si l'un des elements du triplet (qaq0) est xe (ex. q) alors on omet la condition

d'ap-partenance au domaine (ex.q 2Q):q

a ;!q 0 + (9q 0)( 9a)(q 0 2Q^a2$^(qq 0) 2 a ;!). La notation q;a! signi e (9q 0)(q0 2Q^q a ;!q 0).

Les fonctions predecesseur et successeur sont PreaPosta : 2Q ! 2Q, de nies pour

tout a2$: Prea(S) =fq jq2Q^(9q 0)(q0 2S^q a ;!q 0) g Posta(S) =fq 0 jq 0 2Q^(9q)(q2S^q a ;!q 0) g

Si '$, on utilise les notations:

Pre(S)

+ fqjq 2Q^(9a)(a2'^q 2Prea(S))g Pre(S) + Pre (S)

Post(S)

+ fqjq2Q^(9a)(a2'^q2Posta(S))g Pre(S) + Post (S)

Si S =fqg, on utilise les notationsPre(q) et Prea(q) (et de m^eme pour Post).

S estdeterministe si (8a)(8q)(a2$^q2Q)jPosta(q)j1).

La fermeture reexive et transitive de relations f

a

;!j a 2 $g est l'ensemble des

relations f  ;! j 2 $  ^ 

;!  Q Qg, de nies comme suit:

 ;!= 1Q Q et si a 2 $ et 2 $  alors a  ;!= a ;! 

;!. On utilise les notations  ;! + S 2   ;! et + ;! + S 2 +  ;!. Si p 2 Q 2 $  alors p after + fq j q 2 Q^p 

;! qg est l'ensemble des etats

accessibles deppar la trace (siS est deterministe alors le cardinal de cet ensemble est 1) ettrace(p) + f j 2$



^pafter 6=gest l'ensemble des traces deScommencant

avec p.

Un chemin de S (de longueur n) est une sequence: q0

a1 ;! q 1 a2 ;! ::: an ;! qn, ou qi 2Q8i20 .. n, ai 2$8i21 .. n et les etats q 1:::qn sont distincts.

(40)

3.1. SYST  EMES DE TRANSITIONS  ETIQUET  EES 39

Les chemin est un cycle siq0 =qn.

S estacyclique s'il ne contient pas de cycles.

Dans la suite on rappelle la notion de composition asynchrone des stes et quelques relations permettant d'etablir des criteres de comparaison entrestes.

Denition 3.2 (Produit asynchrone de

ste

s)

Soient p1p2 deux stes: (Qi$i

f

a

;!ija2$igqi 0), i

2 1 .. 2. Leur produit

asyn-chrone p1 jjjp 2 est le ste: (Q12$12 f a ;! 12 ja2$ 12 g(q 1 0q 2 0)), ou $ 12 = $1 $ 2 et Q12  Q 1 Q 2, f a ;! 12 j a 2 $ 12

g sont construits inductivement, en appliquant les

regles: (q1 0q 2 0) 2Q 12 (3.1) (q1q2) 2Q 12 q1 a ;! 1 q 0 1 a2$ 12 (q 0 1q 2) 2Q 12 (q1q2) a ;! 12 (q 0 1q 2) (3.2) (q1q2) 2Q 12 q2 a ;! 2 q 0 2 a2$ 12 (q1q 0 2) 2Q 12 (q1q2) a ;! 12 (q1q 0 2) (3.3) L'algorithme qui implemente les equations 3:1 p:39], 3:2 p:39] et 3:3 p:39] est montre a

la table 3:1 p:40].

Lemme 3.1 (Associativite)

Sip1p2p3 2STE($) alors (p 1 jjjp 2) jjjp 3 =p1 jjj(p 2 jjjp

3) (l'egalite des tuples dans

le sens ensembliste). Preuve

La preuve resulte immediatement par inclusion reciproque.

Le lemme precedent suggere qu'on peut omettre les parentheses quand on ecrit le produit asynchrone de plusieursstes.

Dans la suite on introduit une operation entre stes qui sera utile dans les analyses de ot de donnees inter-processus.

(41)

procedureAsync ( (Q1$1 f a ;! 1 ja2$ 1 gq 1 0) :ste (Q2$2 f a ;! 2 ja2$ 2 gq 2 0) :ste var(Q12$12 f a ;! 12 ja 2$ 12 gq 12 0 ): ste ) var S:pile de Q 1 Q 2 x,succ:Q1 Q 2 y:Q1 Q 2 begin q12 0 = (q 1 0q 2 0)Q 12:=  $ 12:= $1 $ 2 foreach(a2$ 12) a ;! 12:=  S:= S.Push((q 1 0q 2 0)) while (S 6=) x:=S:Pop() Q12:=Q12 fxg foreach(a2$ 1) foreach(y2Post 1 a(x1])) succa := (yx2]) ;! 12:= a ;! 12 f(xsucc)g if(succ =2SQ 12) S.Push(succ) endfor foreach(a2$ 2) foreach(y2Post 2 a(x2])) succa := (x1]y) ;! 12:= a ;! 12 f(xsucc)g if(succ =2SQ 12) S.Push(succ) endfor endwhile end.

(42)

3.1. SYST  EMES DE TRANSITIONS  ETIQUET  EES 41

Soient p1p2 deuxstes disjoints

3: (Qi$i f a ;!ija2$igq i 0), i 21 .. 2. On considere $1$2

 $ ($ est l'univers des etiquettes) et soit l'operateur

partiel-lement de ni k: $$!$. Leur union p1 p 2 est le ste: (Q12$12 f012gf a ;!ja2$ 12 f012ggq 12 0 ), ou: $12, Q12= (Q1 Q 2 nfq 1 0q 2 0 g)fq 12 0 g etf a ;!ja2$ 12 f012gg sont construits

inductivement, en appliquant les regles:

qi 0 a ;!i q 0 i i21 .. 2 (ai)2$ 12 f012g q 0 i 2Q 12 q 12 0 (ai) ;!q 0 i (3.4) qi 2Q 12 qi a ;!i q 0 i q0 i 6=qi 0 i 21 .. 2 (ai)2$ 12 f012g q 0 i 2Q 12 qi (ai) ;! q 0 i (3.5) qi 2Q 12 qi a ;!i qi 0 i 21 .. 2 (ai)2$ 12 f012g qi (ai) ;!q 12 0 (3.6) q1q2 2Q 12 q1 a1 ;! 1 q 0 1 q 2 a2 ;! 2 q 0 2 a 1 ka 2 2$ (a1 ka 20) 2$ 12 f012g q 0 1 2Q 12 q2 (a 1 ka 2 0) ;! q 0 1 (3.7)

Exemple 3.1

Voir l'exemple 3:2 p:43]. Ici on considere que les deux stes 12 sont a la

fois des stes mais aussi des -stes. Le ste 12 est le ste union et ;1 ;2 est

le -ste union de 12 (vus dans ce cas comme des -stes).

Observation 3.1

La construction ci-dessus s'etend facilement pourn stes: on remplace tous les etats initiaux par un autre etat initial et on construit les transitions etiquetees avec akb.

L'operateur k sera utilise dans la suite pour modeliser le concept de communication

synchrone ou asynchrone entre les deux stes.

On utilise aussi les notions de simulation et de bisimulation (Par81, Mil80]). Plus generalement ces relations peuvent ^etre parametrees par une famille de langage reguliers ' ('2

(fg) 

)4, mais on aura besoin seulement du cas ' = $.

Soient Si = (Qi$f a ;!ija2$gqi 0), avec i 21 .. 2, deux stes.

Denition 3.4 (Simulation)

3:dans le sens ensembliste

(43)

La relation simQ 1

Q

2 est une simulationsi

(8p 1)( 8p 2)( 8a)(8q 1) ( (p1p2) 2sim ^ p 1 a ;! 1 q1 )(9q 2)(p2 a ;! 2 q2 ^ (q 1q2) 2sim) ):

Denition 3.5 (Bisimulation)

La relation de simulation bsim  Q 1

Q

2 est une bisimulation si bsim

;1 est une relation de simulation: (8p 1)( 8p 2)( 8a) ( (p 1p2) 2bsim ^ (8q 1)(p1 a ;! 1 q1 )(9q 2)(p2 a ;! 2 q2 ^ (q 1q2) 2bsim) ) ^ (8q 2)(p2 a ;! 2 q2 )(9q 1)(p1 a ;! 1 q1 ^ (q 1q2) 2bsim) ) ):

La relation de bisimulation utilisee dans la suite est la relation de bisimulation forte

(Par81]) construite comme suit (lorsque les ensemblesQ

1Q2 sont nis): = T n2N n et 8 > > > > > > > < > > > > > > > :  0 = Q1 Q 2 n +1 = f(p 1p2) j(p 1p2) 2Q 1 Q 2 ^(8a)(a2$ ^ (8q 1)(q1 2Q 1 ^p 1 a ;! 1 q1 ) (9q 2)(q2 2Q 2 ^ p 2 a ;! 2 q2 ^ q 1 nq 2)) ^ (8q 2)(q2 2Q 2 ^p 2 a ;! 2 q2 ) (9q 1)(q1 2Q 1 ^ p 1 a ;! 1 q1 ^ q 1 nq 2))) g :

3.1.1 Actions internes

Une categorie particuliere de stes est constituee par les stes avec des actions in-ternes (non-observables), denotees par l'etiquette . Un -steest leste: (Q$f

a

;!ja2$gq 0),

ou $ +$f g.

On utilise la notation STE($) pour l'ensemble de tous les -stes avec l'ensemble

des etiquettes $ et STE pour l'ensemble de tous les -stes.

En utilisant la fermeture reexive et transitive de relationsf

a ;!ja2$g:f  ;!j  ;! 2 QQ^ 2 $ 

g, on construit les relations de transition suivantes: f



=)j



(44)

3.1. SYST  EMES DE TRANSITIONS  ETIQUET  EES 43 Q ^ 2 $  g:  =)=  ;! et si a 2 $ et 2 $  alors =a ) =  =) a ;!  =) et a =)=  =) a ;!  =)  =)  =). Si p 2 Q 2 $ A  $ alors p after + fq j q 2 Q^p  =) qg, trace(p)+ f j 2 $ 

^p after 6= g, p after refuses A +(9p 0)(p0 2 Q^ p  =) p 0 ^(8a 2 A)(:p 0 =a

)) et pafter deadlocks +p after refuses $.

Denition 3.6 (Union de

-

ste

s)

Soient p1p2 deux -stes disjoints: (Qi$i f a ;!ija2$igqi 0), i 21 .. 2. On considere $1 $2

  $ ($ est l'univers des etiquettes) et soit l'operateur

par-tiellement de ni k: $ $ !$. Leur unionp1 p 2 est le -ste: (Q12$ 12  f012gf a ;!ja2$ 12  f012ggq 12 0 ), ou: $12  , Q12= (Q1 Q 2 fq 12 0 g etf a ;!ja2$ 12

 f012ggsont construits

inductive-ment, en appliquant les regles:

; ( 0)2$ 12  f012g qi 0 2Q 12 q 12 0 (0) ;!qi 0 (3.8) qi 0 a ;!i q 0 i i21 .. 2 (ai)2$ 12  f012g q 0 i 2Q 12 q 12 0 (ai) ;!q 0 i (3.9) q1q2 2Q 12 q1 a1 ;! 1 q 0 1 q 2 a2 ;! 2 q 0 2 a 1 ka 2 2$ (a1 ka 20) 2$ 12  f012g q 0 1 2Q 12 q2 (a1ka 2 0) ;! q 0 1 (3.10)

Exemple 3.2 (Union des (

-)

ste

s)

Dans la gure3:1 p:44] on a represente deuxstes,

notes par 1 et 2 et leur unions: 12 et ;1  ;2 (on a considere que 1 et 2 sont

aussi des -stes). Dans les cas de 1 2 les etats initiaux de 1 et 2 sont remplaces

par un seul etat initial (regles 3:4 p:41] et 3:6 p:41]) et dans le cas de

;1  ;2 on

ajoute un nouveau etat (qui devient l'etat initial) et des nouvelles transitions de cet etat vers les anciens etats initiaux de chaque -ste(conformement a la regle 3:8 p:43]). On a

considere aussi que l'operateur kest de ni seulement dans le cas de ckd et on a ajoute

(45)

b b c a a d b a c b a d 1 2 b a b a c d 1 2 0 c k d   c k d 12 ;1   ;2

(46)

3.1. SYST  EMES DE TRANSITIONS  ETIQUET  EES 45

3.1.2 Actions d'entree et de sortie

Une sous-categorie de -stes est constituee par les stes a entree-sortie (iostes). Ceux-ci ont l'ensemble d'etiquettes $ partitionne en deux sous-ensembles:$I, l'ensemble

d'etiquettes d'entree et $O, l'ensemble d'etiquettes de sortie.

On utilise la notation IOSTE($I$O) pour l'ensemble de tous les iostes avec

l'en-semble des etiquettes d'entree $I et celui des etiquettes de sortie $O et IOSTE pour

l'ensemble de tous lesiostes.

Pour utiliser les iostes dans la modelisation des systemes distribues on leur impose quelques conditions:

1. Dans LT89] on impose la condition forte d'entree autorisee5: dans chaque etat

et pour chaque action d'entree il existe une transition etiquetee avec cette action: (8a 2 $I)(8p 2 Q)(p

a

;!). Dans Pha94a] cette condition est la condition de

completude.

2. Dans Tre96] on impose la condition d'faible d'entree autorisee6: dans chaque etat

et pour chaque action d'entree a de $I il existe une trace =a): (8a 2 $I)(8p 2

Q)(p=a)).

3. Dans FJJV97, FJJV96] on de nit la condition de contr^olabilite: dans chaque etat si une sortie7 est autorisee8 alors elle est l'etiquette de la seule transition sortante

de cet etat.

4. Dans Pha94a] on impose l'existence d'une correspondance bijective entre les en-sembles $I et $O: $I =f? aja2Lg et $O =f! aja2Lg.

Les iostes sont utilises pour modeliser des systemes avec des communications asy-metriques9 (et dans ce cas les etiquettes d'entree signi ent les actions contr^olables et les

etiquettes de sortie les actions observables). Les conditions d'entree autorisee (forte ou faible) signi ent que le systeme (modelise par le ioste) ne peut jamais refuser d'inter-agir avec l'environnement quand l'initiative appartient a celui-ci (dans tout etat, toute entree est autorisee et sera acceptee par le systeme).

5:strong input enabling en anglais

6:weak input enabling en anglais

7:dans le cas ou leioste mod elise un observateur ou une entr ee dans le cas ou leioste mod elise

une impl ementation 8:enabled en anglais

(47)

La condition de contr^olabilite est utile dans la generation de test: dans un cas de test, dans chaque etat, on peut soit attendre une emission du systeme sous test soit lui envoyer un message.

3.2 Automates etendus communicants

Lesautomates etendus communicants(aecs) constituent aujourd'hui un modele lar-gement utilise dans la speci cation et la validation des protocoles. L'evolution vers ce modele a commence par l'utilisation desautomatespour modeliser formellement les pro-tocoles. Il est mentionne dans Hol91] que leurs utilisation a commence avec BSW69]. Les automates etendus (Hol91, Pha94a]) constituent un modele plus expressif que les stes en ce qui concerne l'expression et la manipulation des donnees (en utilisant des variables). Les automates communicants ont ete introduits par BZ83]. Ils enrichissent les stes en permettant l'expression des interactions entre plusieurs processus et l'envi-ronnement (par echanges des messages via canaux de communication).

On utilise les aecs comme langage de speci cation. Plus precisement les speci ca-tions sont constituees d'un nombre ni de processus asynchrones paralleles qui com-muniquent par des messages echanges via canaux de communication ( les d'attente non-bornees). Un message est constitue d'un signal et de parametres. Un processus est unaecavec un nombre ni d'etats. Les processus ont une memoire locale (des variables locales) et ils executent des actions sur les les d'attente et les variables locales. Par souci de simplicite, les actions sont des commandes gardees simples.

Ce modele est une version simpli ee deif(BFG+99b, BFG+99c, BFG+00c]), un

mo-dele intermediaire a base d'automates temporises AD94] communicants. On a simpli e dans le modele if les aspects temporises et les actions (dans if elles sont constituees par plusieurs commandes et une garde).

Syntaxe

Denition 3.7 (Specication)

Une speci cation SP est le tuple (SCP) ou S est un ensemble des signaux, C est l'ensemble des canaux de communication et P est un ensemble des aecs.

L'ensemble des canaux, C, est partitionne en deux sous-ensembles:Cint (les canaux

internes, fermes a l'interieur de la speci cation) et Cext (les canaux externes, ouverts a

(48)

3.2. AUTOMATES 

ETENDUS COMMUNICANTS 47

Soient D l'ensemble des constantes logiques (vrai, faux) et entieres auxquelles on ajoute une constante speciale  qui denote une valeur non-de nie:

Z

f

t



f

gfg,

X un ensemble ni de variables (qui contient une variable speciale * pouvant prendre toute valeur deDdans tout etat de contr^ole) etAEX,BEX les langages des expressions

arithmetiques et logiques generes par les regles de productionRae etRbe indiquees a la

table 3:2 p:47]. Rae AE ::= k8k 2Dnf

t



f

g AE ::= v8v 2X AE ::= AE +AE jAE ;AE Rbe BE ::=

t

j

f

BE ::= :BE jBE _BE BE ::= AE <AE jAE =AE

Tab.3.2 { Regles de production

Soient X,S et C avec les signi cations ci-dessus. L'univers des commandes gardees

$(X) est l'ensemble: fbe] x:=ae jbe 2BEX ^x2X^ae 2AEXg fbe] c? s(x)jbe 2BEX ^x2X^c2C^s2Sg  fbe] c! s(ae)jbe 2BEX ^ae 2AEX ^c2C^s2Sg fbe] nil jbe 2BEXg  fbe] c! s()jbe 2BEX ^c2C^s2Sg  fbe] c? s(*) jbe 2BEX ^c2C^s2Sg

Denition 3.8 (Automate etendu communicant)

Unautomate etendu communicantp2P est le tuple (Xp(Qp$(Xp)f

a

;!pja 2$(Xp)gq

p

0)),

ouXpest l'ensemble des variables, et (Qp$(Xp)f

a

;!pja2$(Xp)gq

p

0) est leste

sous-jacent.

Dans la suite les commandes hbe] nili, hbe] c ! s()i et hbe] c ? s(*)i ne seront

utilisees que dans le cas de l'analyse de l'utilite des donnees (chapitre 5 p:93]).

Sia2$(Xp),a= be] alors on denote pargardel'expression logiquebe (guard(a) + be)

et par action (act(a)) le reste de l'action. Pour une action de type x :=ae on denote par lhs(x:=ae) + xet rhs(x:=ae) + ae.

Le fait que dans notre modele il n'existe pas de memoire partagee s'exprime formel-lement par (8p)(8q)(p2P ^q2P )Xp\Xq =).

(49)

On peut considerer, sans restreindre la generalite, que, pour tout aec de la speci -cation, les les d'entrees et celles de sortie di erent.

La composition asynchrone de plusieurs aecs est aussi unaec dont l'ensemble des variable est l'union des ensembles des variables locales et le ste sous-jacent est la com-position asynchrone des stes locaux:

Denition 3.9 (Produit asynchrone de

aec

s)

Soient pr 2P deux aecs:

(Xp(Qp$(Xp)f a ;!pja2$(Xp)gq p 0)) et (Xr(Qr$(Xr) f a ;!rja 2$(Xr)gq r 0)).

Leur produit asynchronepjjjr est l'aec

(XpXr(Qp$(Xp)f a ;!pja 2$(Xp)gq p 0) jjj(Qr$(Xr)f a ;!rja 2$(Xr)gqr 0)).

Denition 3.10 (Union d'

aec

s)

Soient pr 2P deux automates etendus communicants:

(Xp(Qp$(Xp)f a ;!pja2$(Xp)gq p 0)) et (Xr(Qr$(Xr) f a ;!rja 2$(Xr)gqr 0)).

Soit k: $(Xp Xr)$(Xp Xr) ! $(Xp Xr) un operateur partiellement de ni

t.q. si 1 2

2$(XpXr), 1

k

2 est de ni ssi 1 = be1]c ? s(x) et 2 = be2]c! s(e)

et dans ce cas 1 k

2 =

h

t

] x := ei.

L'union pr (avec l'univers des etiquettes $(XpXr)) est l'aec:

(XpXr(Qp$(Xp)f a ;!pja2$(Xp)gq p 0) (Qr$(Xr)f a ;!rja2$(Xr)gqr 0)).

Semantique

On considere que la communication entre lesaecs de la speci cation est asynchrone. Les canauxde communication internessont des les d'attente non-bornees.

La communication avec l'environnement est aussi asynchrone mais en voulant mo-deliser une communication synchrone entre le testeur et l'iston considere les canaux de communication externes comme des les d'attente bornees (avec la borne 1).

Denition 3.11 (Contextes)

Soit la speci cation SP.

Un contexte de variables est une fonction : S

p2P

Xp !D. On note aussi avec son

extension pour expressions (on impose (e) =  si l'expression e contient une variable

x t.q. (x) =).

Un contexte de les est une fonction :Cint

!(SD) .

(50)

3.2. AUTOMATES 

ETENDUS COMMUNICANTS 49

Denition 3.12 (Semantique de la specication)

La semantique de la speci cationSP est le ste:SPc = (Qb $b f a ;! ja2 b $gq^ 0), ou:

1. Les etats sont des tuples constitues par les etats de contr^ole de chaque processus, les contextes de variables et les contextes de les internes:

b Q( Q p2P Qp)( S p2P Xp !D)(C int !(SD) ),

2. L'ensemble d'etiquettes $ estb f gfc ? s(v)jc2C

ext

^s2S^v 2Dgfc !s(v)jc2C ext

^s2S^v 2Dg,

3. L'etat initial est constitue par l'etat initial de chaque processus, les variables ini-tialisees avec 0 et les les internes iniini-tialisees avec:

^ q0 = ((q p 0)p 2P0 P p2P jXpj jC int j). Les ensembles Qb et f a ;!j a 2 b

$g sont construits inductivement, en appliquant les

regles: ; ^ q0 2 b Q (3.11) (  )2 b Q qp b]x:=e ;!p q 0 p (b) =

t

(e) =v (q0 p=p]v=x]  )2 b Q (  );!(q 0 p=p]v=x]  ) (3.12) (  )2 b Q qp b]c!s(e) ;!p q 0 p (b) =

t

(e) =v c 2C ext (q0p=p]  ) 2 b Q (  )c!s(v) ;! (q 0 p=p]  ) (3.13) (  )2 b Q qp b]c!s(e) ;!p q 0 p (b) =

t

(e) =v c2C int (c) =w (q0 p=p] w(sv)=c] )2 b Q (  );!(q 0 p=p] w(sv)=c] ) (3.14) (  )2 b Q qp b]c?s(x) ;!p q 0 p (b) =

t

c2C ext v 2Dnfg (q0 p=p]v=x]  )2 b Q (  )c?s(v) ;! (q 0 p=p]v=x]  ) (3.15) (  )2 b Q qp b]c?s(x) ;!p q 0 p (b) =

t

c2C int (c) = (sv) w v 2Dnfg (q0 p=p]v=x] w=c] )2 b Q (  );!(q 0 p=p]v=x] w=c] ) (3.16)

(51)

Les regles 3:11 p:49]

 3:16

p:49] sont les regles semantiques de base pour les

speci- cations. On y ajoute quelques regles concernant les commandes b] nil, b] c!s() et

b] c?s(*) . Ces regles sont utilises seulement dans le cas de l'analyse de l'utilite des donnees (chapitre 5 p:93]) et si on ne precise pas, on considere la semantique des

speci -cations donnee seulement par les regles 3:11 p:49]

3:16

p:49] (et dans ce cas on omet de

mentionner la premisse v 2Dnfg dans les regles 3:15

p:49] et 3:16 p:49]). (  )2 b Q qp b]nil ;!p q 0 p (b) =

t

(q0 p=p]  )2 b Q (  );!(q 0 p=p]  ) (3.17) (  )2 b Q qp b]c?s() ;!p q 0 p (b) =

t

c2C ext v 2D (q0 p=p]  )2 b Q (  )c?s(v) ;! (q 0 p=p]  ) (3.18) (  )2 b Q qp b]c?s() ;!p q 0 p (b) =

t

c2C int (c) = s(v) w v 2D (q0 p=p]  w=c])2 b Q (  );!(q 0 p=p]  w=c]) (3.19) (  )2 b Q qp b] c!s( ) ;!p q 0 p (b) =

t

c2C ext (q0 p=p]  )2 b Q (  )c!s( ) ;! (q 0 p=p]  ) (3.20) (  )2 b Q qp b]c!s( ) ;!p q 0 p (b) =

t

c2C int (c) = w (q0 p=p]  ws()=c])2 b Q (  );!(q 0 p=p]  ws()=c]) (3.21) On peut remarquer que la constante speciale  ne para^t pas dans les contextes de

variables (c.a-d. il n'existe aucun etat (  ) et aucune variablex t.q. (x) = ).

Le lemme suivant montre que si on e ectue une composition asynchrone de tous les aecs dans une speci cation on obtient une nouvelle speci cation dont le modele est bisimilaire avec celui de la speci cation initiale:

Lemme 3.2

Soit SP = (SCP) une speci cation,P =fp

1p2:::pn

g. Soitrl'automate etendu

communicant:r =p1 jjjp 2 jjj :::jjjpn et SP 0 = (SC frg) Alors SPc  d SP0.

(52)

3.3. V 

ERIFICATIONFORMELLE 51

3.3 Veri cation formelle

La veri cation formelle peut ^etre appliquee si la structure interne des implemen-tations est connue. Selon le formalisme utilise pour representer les speci cations, on distingue des methodes de veri cation pour les speci cations logiquesou pour les speci- cations comportementales.

3.3.1 Speci cations logiques

Les speci cations logiques decrivent des proprietes systeme a valider (ex. l'absence du blocage, l'exclusion mutuelle). Une speci cation logique est un ensemble de formules d'une logique temporelle: lineaire ltl (Pnu77]), arborescente ctl (CES86]) ou le -calcul arborescent (Koz83]). Veri er queimpconfspecrevient a decider siimp est un

modele, dans le sens logique, de toute formule 2spec:impj=. Il existe plusieurs

ap-proches pour decider si impj= (MOSS99]): on mentionne l'approche semantique(qui

revient a calculer l'ensemble d'etats qui satisfont la formule, et donc calculer le point xe d'un operateur ayant comme domaine de de nition et comme ensemble de valeurs 2QIMP, ou Q

IMP est l'ensemble d'etats de imp) et l'approche fonde sur la theorie des

au-tomates (qui revient a construire deux automates: AIMP qui accepte tous les chemins

du modeleimp etA qui accepte tous les chemins qui satisfont la formule. On veri e ensuite si L(AIMP) L(A), donc L(A IMP) \{L(A) =, doncL(A IMP) \L(A :) = et donc L(AIMP A :) = ).

3.3.2 Speci cations comportementales

Les speci cations comportementales decrivent le comportement attendu du systeme, observe a un certain niveau d'abstraction. Dans ce cas les speci cations sont aussi mo-delisees par des stes et veri er que imp conf spec revient a decider si imp  spec,

avec une relation de bisimulation quelconque.

Ce calcul passe d'abord par la minimisation de impqui permet le calcul du quotient imp= . Le quotient est construit par ranements successifs d'une partition initiale de

QIMP. Il existe des algorithmes ecaces pour ce calcul (ex. l'algorithme de Paige et

Tarjan PT87] qui a une complexite polyn^omiale dans la taille duste initial).

L'etape suivante consiste dans une comparaison entre les stes imp= et spec (ou

spec= si c'est le cas).

Il faut remarquer que, en pratique, les implementations et les speci cations sont de-crites en utilisant des formalismes de description divers, plus expressifs que lesstes (mais

Figure

Fig. 1.1 { Methodologie de test
Tab. 2.2 { Le type ensemble
Tab. 2.3 { Les types tuple et fonction
Tab. 2.4 { Une procedure h ( L ) = max fj S j j S  L ^ S totalement ordonne g .
+7

Références

Documents relatifs

Metal Ions and Hydroperoxide Content: Main Drivers of Coastal Lipid Autoxidation in Riverine Suspended Particulate Matter and Higher Plant Debris... and

لوأا لصفلا بيردـتلا ا يـضايرل و قرـطلا ا ةيبيردـتل ةءافك اذكو ةي فلا ةيحا لاب ءاقتراا كلذكو ىوصقلا ةردقلا يوتسم عفر كلذكو، ةعرسلاب ةزيمما ةوقلاب

As a consequence, a more relevant and phenomenological approach must be considered for now to address the main features of the coupling constant g when dealing with neutron in

Electrical measurements with a surface perturbation and temperature measurements show that the AlN/IDT(Pt)/LN-Y128 bilayer structure is promising as a packageless

Considering that the credit constraint is binding at the bubbleless steady state and that this steady state is dynamically e¢ cient, we show that the bubbly steady state features

Instead of a static predefined policy, the autonomic container is equipped with an adaptation logic based on learning abilities to learn a decision policy dynamically at

Publié dans Travaux du Centre de Recherches Sémiologiques 41, 19-38, 1982, source qui doit être utilisée pour toute référence à

وأ لظ تَغت وأ ءاقب فأ لىولأا ةلحرلدا بُ دقتعن ويلعو ةيللآا كلت اهيدؤت تيلا اهفادىأو اهلكش بُ ةطلسلا ط ةعيبط نع ةيناث ةهج نم برعت تيلا فئاظولا كلت