• Aucun résultat trouvé

The DART-Europe E-theses Portal

N/A
N/A
Protected

Academic year: 2022

Partager "The DART-Europe E-theses Portal"

Copied!
170
0
0

Texte intégral

(1)

HAL Id: tel-02502304

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

Submitted on 9 Mar 2020

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.

automatique de tests

Guillaume Voiron

To cite this version:

Guillaume Voiron. Exploration concrétisée et pertinente de systèmes d’événements abstraits en vue de la génération automatique de tests. Autre [cs.OH]. Université Bourgogne Franche-Comté, 2019.

Français. �NNT : 2019UBFCD027�. �tel-02502304�

(2)

Ecole doctorale n°37´

Sciences Pour l’Ing ´enieur et Microtechniques

Doctorat d’Informatique

par

GUILLAUME

V

OIRON

Exploration concr ´etis ´ee et pertinente de syst `emes d’ ´ev ´enements abstraits en vue de la g ´en ´eration automatique de tests

Th `ese pr ´esent ´ee et soutenue `a Besanc¸on, le 27 Septembre 2019 Composition du Jury :

LEGALLPASCALE Professeur `a CentraleSup ´elec Rapportrice

LEDRUYVES Professeur `a l’Universit ´e de Grenoble Alpes

Rapporteur KOSMATOVNIKOLA¨I Ing ´enieur chercheur au CEA LIST

Saclay

Examinateur KOUCHNARENKOOLGA Professeur `a l’Universit ´e de Bourgogne-

Franche-Comt ´e

Examinatrice

JULLIANDJACQUES Professeur ´em ´erite Directeur de th `ese

MASSON PIERRE-ALAIN Maˆıtre de conf ´erences `a l’Universit ´e de Bourgogne-Franche-Comt ´e

Codirecteur de th `ese

N X X X

(3)
(4)

Universit ´e Bourgogne Franche-Comt ´e 32, avenue de l’Observatoire 25000 Besanon, France

Titre :Exploration concr ´etis ´ee et pertinente de syst `emes d’ ´ev ´enements abstraits en vue de la g ´en ´eration automatique de tests

Mots-cl ´es : Syst `emes r ´eactifs, Abstraction de mod `eles, Test `a partir de mod `eles, G ´en ´eration de tests pertinents, Couverture structurelle

R ´esum ´e :

Les travaux pr ´esent ´es dans cette th `ese constituent une contribution aux m ´ethodes de g ´en ´eration automatique de sous-approximations en vue de la g ´en ´eration de tests `a partir de mod `eles.

Le test `a partir de mod `ele a pour objectif de garantir la conformit ´e d’une impl ´ementation vis- `a- vis d’un mod `ele, tous les deux conc¸us `a partir des sp ´ecifications par deux ´equipes diff ´erentes.

Dans cette th `ese, nous proposons l’utilisation des techniques connues d’abstraction `a partir de pr ´edicats de mod `eles comportementaux qui permettent de r ´eduire `a un ensemble fini et restreint l’espace d’ ´etats manipul ´e. Nous proposons d’extraire les pr ´edicats d’abstraction `a partir de l’objectif de test afin que les tests g ´en ´er ´es couvrent les comportements cibl ´es par ce dernier.

Cependant, le calcul d’une abstraction entraˆıne une perte d’information de l’atteignabilit ´e par rapport au mod `ele initial. Nos objectifs sont donc dans un premier temps de calculer efficacement une abstraction de mod `ele aussi repr ´esentative que possible d’un objectif de test. Dans un second temps, nous cherchons `a extraire `a partir de cette abstraction des ex ´ecutions instanciables sur le mod `ele avant abstraction, ciblant les comportements

`a tester, et visant la couverture des ´etats et des transitions du mod `ele abstrait.

Nos contributions sont les suivantes. Nous d ´efinissons une m ´ethode de g ´en ´eration de tests combinant plusieurs algorithmes qui permettent d’obtenir une bonne couverture structurelle d’une

abstraction de mod `ele comportemental non d ´eterministe. Nous proposons dans un premier temps un algorithme calculant une abstraction de mod `ele par pr ´edicats issus d’un objectif de test exprim ´e sous la forme d’une propri ´et ´e temporelle. Cet algorithme calcule une sous- approximation du mod `ele en couvrant les ´etats et les transitions abstraits du mod `ele. Il applique plusieurs heuristiques et diverses techniques d’exploration ayant pour but d’augmenter le nombre d’instances effectivement atteintes. Dans un second temps, nous proposons d’am ´eliorer par le biais de deux autres algorithmes la couverture structurelle obtenue par cette premi `ere sous- approximation. Le premier, enti `erement automatis ´e, tire parti des modalit ´es des transitions abstraites qui fournissent des propri ´et ´es d’atteignabilit ´e.

Le second algorithme d’extension de la sous- approximation fait appel `a l’expertise du testeur qui doit, `a partir des transitions non couvertes,

´enoncer un pr ´edicat de pertinence qui guide et limite l’exploration et l’instanciation r ´ealis ´ees. Nous d ´efinissons un ensemble de r `egles permettant d’ ´enoncer ce pr ´edicat de pertinence et de calculer un variant garantissant la terminaison de l’algorithme d’exploration. Ces deux algorithmes compl `etent la sous-approximation obtenue auparavant par des ex ´ecutions instanciables. Enfin, nous mettons en œuvre une d ´emarche exp ´erimentale pour l’ ´evaluation de la qualit ´e de la m ´ethode, portant sur cinq ´etudes de cas.

(5)
(6)

I Introduction et ´etat de l’art 11

1 Introduction 13

1.1 Obstacles et d ´efis . . . 13

1.1.1 Test exhaustif impossible en pratique . . . 14

1.1.2 Conception de tests co ˆuteuse . . . 14

1.1.3 Conception de tests pertinents et suffisants . . . 14

1.2 Questions de recherche . . . 15

1.3 Plan de th `ese . . . 16

2 Contexte scientifique 17 2.1 Syst `emes ´ev ´enementiels : syntaxe, s ´emantique et exemple . . . 17

2.1.1 Satisfiabilit ´e modulo th ´eories . . . 19

2.1.2 S ´emantique d’un syst `eme ´ev ´enementiel . . . 21

2.1.3 Exemple fil rouge . . . 22

2.2 Abstraction par pr ´edicats . . . 25

2.3 Syst `emes de transitions modaux . . . 28

2.4 Syst `emes de transitions approxim ´es . . . 32

2.5 Crit `eres de couverture des syst `emes `a ´etats et transitions . . . 33

2.6 Propri ´et ´es temporelles . . . 34

2.6.1 Patrons de sp ´ecification . . . 34

2.6.2 Port ´ee des patrons . . . 36

3 Etat de l’art 37 3.1 G ´en ´eration de tests `a partir de mod `eles . . . 37

3.1.1 Test de syst `emes . . . 37

3.1.2 Sp ´ecifications de syst `emes . . . 38

3.1.3 Mod `eles de test . . . 39

3.1.4 Processus de g ´en ´eration de tests `a partir de mod `eles . . . 40

3.2 G ´en ´eration de tests `a partir d’abstractions . . . 41 5

(7)

3.2.1 Sous-approximation de programmes utilisant les modalit ´es des

transitions . . . 43

3.2.2 Calcul d’une sous-approximation d’un syst `eme pour la v ´erification de propri ´et ´es : algorithmesαSearchetRefinementSearch . . . 45

3.2.3 G ´en ´eration d’un syst `eme fini d’ ´etats et de transitions : algorithme GenFSM . . . 47

3.2.4 G ´en ´eration d’une sous-approximation d’un syst `eme avec estima- tion de la qualit ´e de cette derni `ere . . . 49

3.3 Exploration symbolique dynamique . . . 50

3.3.1 Exploration symbolique . . . 51

3.3.1.1 Principe g ´en ´eral . . . 51

3.3.1.2 Limitations . . . 52

3.3.2 Exploration concolique . . . 52

3.3.3 Exploration symbolique partielle pour calculer des instances at- teintes de chaˆınes de Ball . . . 53

II Contributions 55 4 G ´en ´eration d’une sous-approximation couvrant au moins une fois tous les ´etats et toutes les transitions de l’abstraction : algorithmeCXP 57 4.1 Probl ´ematiques . . . 57

4.2 Objectifs, principes et pr ´esentation de l’algorithmeCXP . . . 58

4.2.1 Entr ´ees, sorties et variables de l’algorithmeCXP . . . 59

4.2.1.1 Entr ´ees . . . 59

4.2.1.2 Sorties . . . 59

4.2.1.3 Variables . . . 59

4.2.2 Fonctionnement de l’algorithmeCXP . . . 60

4.2.2.1 Calcul d’une instance concr `ete de chaque ´etat abstrait initial 60 4.2.2.2 Calcul des instances de transitions abstraites `a partir de l’ ´etat initial . . . 60

4.2.2.3 Instanciation des transitions `a partir d’un ´etat vert . . . 62

4.2.2.4 Instanciation des transitions `a partir d’un ´etat vert vers un ´etat bleu . . . 63

4.2.2.5 Instanciation des transitions abstraites `a partir des ´etats may-atteignables . . . 63

4.3 Application `a l’exemple fil rouge . . . 63

4.3.1 Param `etres en entr ´ee . . . 64

4.3.2 Calcul d’une instance concr `ete de chaque ´etat abstrait initial . . . . 64

(8)

4.3.3 Calcul des instances de transitions abstraites `a partir de l’ ´etat initial 65

4.3.4 Instanciation des transitions `a partir d’un ´etat vert . . . 66

4.3.5 Instanciation des transitions `a partir d’un ´etat vert vers un ´etat bleu . 67 4.3.6 Instanciation des transitions abstraites `a partir des ´etats may- atteignables . . . 67

4.4 Inf ´erence de l’ordre de traitement des ´etats abstraits . . . 68

4.4.1 Calcul de l’ensemble des ´etats abstraits cibles . . . 68

4.4.2 Calcul de l’ensemble des ´etats concrets connus dans l’ ´etat abstrait source . . . 68

4.4.3 Calcul d’une instance d’unemay-transition dont l’ ´etat cible est dans RQ0 . . . 69

4.4.4 Calcul d’une instance pour toutes les autres May-transitions dont l’ ´etat cible est dansRQ0 . . . 69

4.4.5 Compl ´etion du MTS partiellement calcul ´e parCXPASO . . . 70

4.4.6 Application `a l’exemple du distributeur de caf ´e . . . 70

4.5 Complexit ´e, terminaison, compl ´etude et correction deCXP . . . 71

4.5.1 Complexit ´e deCXP . . . 71

4.5.2 Terminaison deCXP . . . 71

4.5.3 Compl ´etude et correction deCXP . . . 72

4.6 Bilan et conclusion . . . 72

5 Utilisation des modalit ´es must+ et must pour compl ´eter la couverture des ´etats et des transitions de l’abstraction : algorithmeBCI 77 5.1 Probl ´ematique et solution . . . 77

5.2 Chaˆınes de Ball et structures demust-transitions . . . 78

5.2.1 D ´etermination des modalit ´es des transitions abstraites . . . 78

5.2.2 Chaˆınes de Ball . . . 78

5.2.3 Structures demust-transitions . . . 80

5.3 Principes de l’algorithmeBCI . . . 81

5.3.1 Entr ´ees, sorties et variables de l’algorithme de concr ´etisation des must-structures . . . 82

5.3.1.1 Entr ´ees . . . 82

5.3.1.2 Sorties . . . 83

5.3.1.3 Variables . . . 83

5.4 Algorithme d’instanciation desmust-structures . . . 83

5.4.1 Exploration de toutes les chaˆınes demust-transitions . . . 83 5.4.2 Exploration symbolique en arri `ere desmust-transitions d’une chaˆıne 84

(9)

5.4.3 Instanciation en avant des transitions de la chaˆıne . . . 85

5.4.4 Exploration des chaˆınes de branchement non explor ´ees . . . 86

5.5 Complexit ´e, terminaison, compl ´etude et correction deBCI . . . 87

5.5.1 Complexit ´e deBCI . . . 87

5.5.2 Terminaison deBCI . . . 87

5.5.3 Compl ´etude et correction deBCI . . . 88

5.6 Bilan et conclusion . . . 88

6 Am ´elioration d’une sous-approximation guid ´ee par un pr ´edicat de perti- nence : algorithmeRCXP 91 6.1 Limitation deCXPet objectifs de l’algorithmeRCXP. . . 91

6.2 Pr ´edicats de pertinence . . . 92

6.2.1 M ´ethode de conception d’un pr ´edicat de pertinence . . . 92

6.2.2 Langage de description des pr ´edicats de pertinence . . . 94

6.2.3 Variant associ ´e aux ´etats concrets en fonction d’un pr ´edicat de per- tinence . . . 95

6.3 AlgorithmeRCXP . . . 97

6.3.1 Principes de l’algorithmeRCXP . . . 97

6.3.2 Entr ´ees, sorties et variables de l’algorithmeRCXP . . . 98

6.3.2.1 Entr ´ees . . . 98

6.3.2.2 Sorties . . . 98

6.3.2.3 Variables . . . 98

6.3.3 Fonctionnement de l’algorithmeRCXP . . . 99

6.3.3.1 Calcul de l’ensemble des ´etats concrets pertinents de d ´epart 99 6.3.3.2 Calcul d’une instance concr `ete pertinente de chaque tran- sition abstraitemay-atteignable . . . 99

6.3.3.3 Calcul des transitions d ´eclenchables apr `es l’atteinte d’un ´etat pertinent . . . 100

6.4 Application a l’exemple fil rouge . . . 100

6.4.1 Param `etres en entr ´ee . . . 100

6.4.2 Calcul de l’ensemble des ´etats concrets pertinents de d ´epart . . . . 100

6.4.3 Calcul d’une instance concr `ete pertinente de chaque transition abs- traitemay-atteignable . . . 101

6.4.4 Calcul des transitions d ´eclenchables apr `es l’atteinte du dernier ´etat pertinent . . . 102

6.5 Complexit ´e, terminaison, compl ´etude et correction deRCXP. . . 102

6.5.1 Complexit ´e deRCXP . . . 102

(10)

6.5.2 Terminaison deRCXP . . . 103

6.5.3 Compl ´etude et correction deRCXP . . . 104

6.6 Bilan et conclusions . . . 104

7 M ´ethode de g ´en ´eration de tests par exploration concr `ete et pertinente d’une abstraction par pr ´edicats 107 7.1 Proc ´edure compl `ete pour la g ´en ´eration de tests pour un syst `eme ´ev ´enementiel . . . 107

7.2 Etapes principales de la m ´ethode . . . 109´

7.2.1 Mod ´elisation des exigences comportementales (objectif de test pri- maire) . . . 109

7.2.2 Extraction des pr ´edicats d’abstraction . . . 110

7.2.3 Calcul d’un ATS par l’algorithmeCXP . . . 110

7.2.4 Compl ´etion ´eventuelle de l’ATS par l’algorithmeBCI . . . 111

7.2.5 Identification des ´etats abstraits et des transitions abstraites non couverts . . . 111

7.2.6 S ´election d’un sous-ensemble des transitions non couvertes `a cou- vrir (objectif de test secondaire) . . . 111

7.2.7 D ´erivation d’un pr ´edicat de pertinence visant l’objectif de test se- condaire . . . 111

7.2.8 Application de l’algorithmeRCXPpour compl ´eter le premier ATS . . 112

7.2.9 Application de la m ´ethode `a tous les objectifs de test secondaires . 112 7.2.10 G ´en ´eration de tests par l’algorithme du postier chinois . . . 112

8 Impl ´ementation et ´evaluation exp ´erimentale 113 8.1 Fonctionnalit ´es et impl ´ementation de l’outil STRATEST . . . 114

8.1.1 Fonctionnalit ´es principales de STRATEST . . . 114

8.1.1.1 G ´en ´eration d’ATS et de tests . . . 114

8.1.1.2 Interface de programmation applicative pour les m ´ethodes formelles . . . 115

8.1.2 El ´ements d’impl ´ementation de S´ TRATEST . . . 115

8.2 Cas d’ ´etude et protocole exp ´erimental . . . 116

8.2.1 Cas d’ ´etude . . . 116

8.2.1.1 Distributeur de caf ´e . . . 116

8.2.1.2 Syst `eme ´electrique . . . 117

8.2.1.3 Ligne de m ´etro 14 . . . 117

8.2.1.4 Ascenseur . . . 118

8.2.1.5 GSM . . . 118

(11)

8.2.2 Protocole exp ´erimental et mesures effectu ´ees . . . 119

8.2.2.1 Protocole exp ´erimental . . . 119

8.2.2.2 Mesures effectu ´ees . . . 120

8.3 R ´esultats exp ´erimentaux et comparaison des algorithmes . . . 121

8.3.1 Analyse comparative des r ´esultats obtenus avecCXPetCXPASO . . 122

8.3.2 Analyse comparative des r ´esultats obtenus avecCXPetBCI . . . . 125

8.3.3 Analyse comparative des r ´esultats obtenus avecCXP,RCXPetFULL128 8.3.4 Analyse comparative des r ´esultats obtenus avecRCXPetRCXPASO 135 8.3.4.1 Comparaison des taux de couverture entre RCXP et RCXPASO . . . 136

8.3.4.2 Inconv ´enients potentiels propres `aRCXPet `aRCXPASO . . 136

8.3.4.3 Comparaison des ´etats concrets et des transitions concr `etes calcul ´ees parRCXPetRCXPASO . . . 137

8.4 Bilan sur les r ´esultats et conclusions . . . 138

III Conclusion et travaux futurs 141 9 Conclusion 143 9.1 G ´en ´eration de tests `a partir d’une abstraction de mod `eles . . . 143

9.2 G ´en ´eration de tests guid ´ee et limit ´ee selon leur pertinence vis- `a-vis d’un objectif de test . . . 146

9.3 Impl ´ementation et exp ´erimentations . . . 147

10 Travaux futurs 149 10.1 Extension de la prise en charge du langage de mod ´elisation . . . 149

10.2 ´Etude de l’impact des m ´ethodes d’extraction des pr ´edicats d’abstraction . . 150

10.3 ´Etudes de nouveaux crit `eres de couverture . . . 150

10.4 Am ´elioration des algorithmes . . . 150

(12)

I NTRODUCTION ET ETAT DE L ´ ’ ART

11

(13)
(14)

I NTRODUCTION

Cette th `ese pr ´esente une contribution `a la g ´en ´eration automatique de tests `a partir de mod `eles (en anglais Model-Based Testing, souvent abr ´eg ´e par MBT) pour des syst `emes de grande taille ou infinis.

Les syst `emes cibl ´es par les contributions pr ´esent ´ees dans cette th `ese sont les syst `emes r ´eactifs et en particulier les syst `emes ´ev ´enementiels mod ´elis ´es `a l’aide du langage B [Abrial, 1996]. Ils diff `erent des programmes s ´equentiels classiques [Hoare, 1969]

par leur flot de contr ˆole implicite : les ´ev ´enements d’un syst `eme ´ev ´enementiel sont d ´eclench ´es spontan ´ement lorsque leur condition de d ´eclenchement est atteinte. Par op- position, l’ordre dans lequel s’ex ´ecutent les instructions d’un programme s ´equentiel sera toujours le m ˆeme avec les m ˆemes entr ´ees et la simulation du programme permet donc de connaˆıtre cet ordre. Dans le cas des syst `emes ´ev ´enementiels, les ´ev ´enements sont d ´eclench ´es en fonction des ´evolutions de l’environnement, et plusieurs ´ev ´enements pour- raient ˆetre d ´eclench ´es dans un ´etat donn ´e du syst `eme : les syst `emes ´ev ´enementiels sont non-d ´eterministes.

La g ´en ´eration automatique de tests `a partir de mod `eles consiste `a ´etudier formellement un mod `ele de syst `eme afin d’en d ´eduire des entr ´ees et des sorties permettant d’observer le fonctionnement d’une impl ´ementation du syst `eme dans des situations particuli `eres.

Ces situations sont g ´en ´eralement caract ´eris ´ees par un objectif de test. Les tests (les entr ´ees et les sorties du programme) doivent ainsi couvrir, selon un ou plusieurs crit `ere(s) de couverture bien d ´efini(s), cet objectif de test.

1.1/ O

BSTACLES ET DEFIS

´

L’automatisation du processus de test et l’ ´etude formelle de programmes pr ´esente plu- sieurs avantages par rapport `a l’ ´ecriture manuelle de tests qui motivent l’int ´er ˆet des cher- cheurs `a innover dans ces domaines. Cependant, un certain nombre d’obstacles et de d ´efis restent `a surmonter.

La pertinence, vis- `a-vis d’un objectif de test, de tests exprim ´es manuellement n’est pas garantie ou est en tout cas difficile `a ´evaluer. L’ ´ecriture de tests vise `a mettre en ´evidence l’existence d’erreurs, signe que les tests sont de bonne qualit ´e, mais cet objectif est par- ticuli `erement compliqu ´e `a remplir, notamment si le syst `eme concern ´e est tr `es grand. La fiabilit ´e de l’impl ´ementation du syst `eme est ainsi incertaine, m ˆeme lorsque les tests sont

´ecrits par des personnes exp ´eriment ´ees.

13

(15)

Les travaux de cette th `ese constituent ainsi une contribution `a la g ´en ´eration automatique de tests pertinents vis- `a-vis d’un objectif de test particulier. Les diff ´erents algorithmes pro- pos ´es dans cette optique sont cependant conc¸us pour ˆetre efficaces et donc utilisables avec des syst `emes de grande taille, ou infinis.

1.1.1/ TEST EXHAUSTIF IMPOSSIBLE EN PRATIQUE

L’ ´ecriture de tests exhaustifs consisterait `a observer un syst `eme dans tous les compor- tements qu’il est susceptible d’avoir, en tenant compte de toutes les configurations et de tous les param `etres environnementaux auxquels il peut ˆetre soumis. L’ ´ecriture manuelle de tests non exhaustifs est d ´ej `a tr `es co ˆuteuse en temps et l’ ´ecriture manuelle de tests exhaustifs se r ´ev `ele donc impossible `a mettre en œuvre en pratique. Il en va de m ˆeme pour la g ´en ´eration automatique de tests : un syst `eme trop complexe serait impossible

`a tester de mani `ere exhaustive par un proc ´ed ´e automatique `a moins de disposer d’une puissance de calcul non accessible encore aujourd’hui. Dans le cadre d’un syst `eme infini d’ailleurs, le test exhaustif est litt ´eralement impossible puisque le syst `eme peut effectuer une infinit ´e d’ex ´ecutions.

1.1.2/ CONCEPTION DE TESTS COUTEUSEˆ

La g ´en ´eration automatique de tests permet de r ´eduire la charge de travail du testeur et de limiter ainsi le co ˆut en temps employ ´e au test d’un syst `eme. Les m ´ethodes formelles actuellement employ ´ees pour effectuer l’analyse, la v ´erification, la validation et le test d’un syst `eme restent cependant relativement co ˆuteuses, si ce n’est en temps d’ex ´ecution, au moins en termes de ressources de calcul. Que ce soit pour un processus de production de tests automatique ou manuel, il reste d’ailleurs `a la charge du testeur de sp ´ecifier ce qui doit ˆetre intensivement test ´e et ce qui doit l’ ˆetre dans une moindre mesure.

La g ´en ´eration de tests `a partir de mod `eles r ´eduit en revanche consid ´erablement les co ˆuts li ´es `a la maintenance d’un syst `eme. En effet, un changement dans le fonction- nement du syst `eme ne n ´ecessite que de modifier le mod `ele en cons ´equence pour qu’il soit conforme `a ce changement. Les tests sont ensuite une nouvelle fois g ´en ´er ´es automa- tiquement `a partir du nouveau mod `ele. Cela ´evite l’ ´ecriture manuelle de nouveaux tests `a chaque changement dans les exigences d ´ecrivant le syst `eme. De plus, si les tests ´etaient conformes aux pr ´ec ´edentes exigences, il est possible et m ˆeme probable que certains ne soient plus conformes aux nouvelles exigences. La g ´en ´eration automatique de tests `a partir d’un mod `ele `a jour vis- `a-vis des exigences repr ´esente donc un gain de temps non n ´egligeable pour l’ing ´enieur de test, ce qui repr ´esente l’un des int ´er ˆets de cette m ´ethode.

1.1.3/ CONCEPTION DE TESTS PERTINENTS ET SUFFISANTS

Une m ´ethode de g ´en ´eration automatique de tests s’efforcera de garantir la qualit ´e des tests qu’elle calcule. La qualit ´e d’une suite de tests (un ensemble de tests) pourrait ˆetre

´evalu ´ee selon trois caract ´eristiques :

• sa capacit ´e `a mettre en ´evidence des erreurs d’impl ´ementation d’un syst `eme, ce qui est difficile `a ´evaluer car des tests qui ne mettraient pas en ´evidence d’erreurs ne sont pas n ´ecessairement mauvais pour autant,

(16)

• sa pertinence vis- `a-vis d’un objectif de test, c’est- `a-dire la capacit ´e des tests qui le composent `a couvrir, selon les crit `eres de couverture sp ´ecifi ´es, les situations cibl ´ees par l’objectif de test,

• le co ˆut d’ex ´ecution des tests qui la composent : pour deux suites de tests g ´en ´erant la m ˆeme couverture de l’objectif de test, on pr ´ef ´erera g ´en ´eralement celle dont l’ex ´ecution est la moins co ˆuteuse.

En pratique, les m ´ethodes de g ´en ´eration de tests cherchent `a atteindre des objectifs diff ´erents et l’ ´evaluation de la qualit ´e de ces tests peut ne d ´ependre qu’en partie des crit `eres ´enonc ´es pr ´ec ´edemment, ou d’aucun d’entre eux.

1.2/ Q

UESTIONS DE RECHERCHE

De ces limitations et d ´efis concernant la g ´en ´eration de tests peuvent ˆetre extraites plu- sieurs questions de recherche.

Q1 Comment g ´en ´erer des tests pour des syst `emes infinis ?

Certains syst `emes peuvent poss ´eder un espace d’ ´etats infini, c’est- `a-dire que l’en- semble de situations (ou ´etats) dans lesquels il peut se trouver est infini. L’application des m ´ethodes formelles, notamment de g ´en ´eration de tests, `a un tel syst `eme, ou `a un syst `eme dont l’espace d’ ´etat est tr `es grand, est plus difficile `a mettre en œuvre. Afin de pouvoir appliquer les contributions de cette th `ese `a des syst `emes infinis, on aura recours en particulier `a la technique d’abstraction par pr ´edicats [Graf et al., 1997].

Q2 Comment abstraire un syst `eme infini ou de grande taille en conservant ses comportements pertinents vis- `a-vis d’un objectif de test ?

L’abstraction d’un syst `eme permet de calculer un syst `eme fini `a partir d’un syst `eme infini au prix g ´en ´eralement d’une perte d’information sur les ´etats pouvant effectivement ˆetre observ ´es sur ce syst `eme. Cette perte d’information pourrait masquer les comportements du syst `eme qu’on souhaiterait couvrir par les tests qui en seront issus. On cherchera donc `a calculer des abstractions de syst `emes qui conservent les comportements dont l’observation est pertinente vis- `a-vis d’un objectif de test.

Q3 Comment g ´en ´erer efficacement des tests ?

Malgr ´e le recours aux techniques d’abstraction, il peut ˆetre impossible de consid ´erer et manipuler l’ensemble des ´etats, qui peut rester grand, d’un syst `eme abstrait. Les algorithmes de g ´en ´eration de tests constituant les contributions de cette th `ese auront donc pour objectif de limiter les comportements du syst `eme abstrait couverts par les tests, tout en favorisant leur conformit ´e avec les crit `eres de couverture vis ´es.

Q4 Comment g ´en ´erer des tests pertinents vis- `a-vis d’un objectif de test ?

Le fait de constituer une abstraction pertinente vis- `a-vis d’un objectif particulier ne suffit pas toujours `a garantir que les tests qui en sont issus seront eux-m ˆemes pertinents. La g ´en ´eration des tests `a partir d’abstraction doit donc ´egalement ˆetre guid ´ee dans l’optique de couvrir l’objectif de test ou des objectifs interm ´ediaires li ´es `a cet objectif de test.

(17)

Q5 Qu’est-ce qu’une bonne couverture d’une abstraction ?

Il existe de nombreux crit `eres de couverture d’une abstraction de syst `eme : on peut par exemple vouloir g ´en ´erer des tests permettant d’observer tous les ´ev ´enements, ou l’espace d’ ´etat complet de ce syst `eme abstrait, ou les deux, etc. Le probl `eme de d ´eterminer la qualit ´e de la couverture d’une abstraction et d’un objectif de test reste un probl `eme ouvert auquel on tentera d’apporter des ´el ´ements de r ´eponse.

1.3/ P

LAN DE THESE

`

Ce m ´emoire est d ´ecompos ´e en trois parties.

La premi `ere partie d ´ecrit le sujet, le contexte scientifique des travaux pr ´esent ´es ainsi que les travaux et concepts existants constituant le cadre dans lequel cette th `ese s’ins- crit.

Le chapitre courant, le chapitre 1, est consacr ´e `a l’introduction du sujet ainsi qu’ `a l’ ´enonciation des probl ´ematiques qui en d ´ecoulent.

Lechapitre 2pr ´esente le contexte scientifique n ´ecessaire `a la compr ´ehension des contri- butions de cette th `ese. Les structures, les concepts importants et les notations mani- pul ´e(e)s tout au long de cette th `ese y sont introduits.

Lechapitre 3pr ´esente le cadre dans lequel les travaux de cette th `ese s’inscrit. Il consti- tue un ´etat de l’art en d ´etaillant les travaux existants dans la litt ´erature et dont les objectifs s’apparentent aux n ˆotres.

La deuxi `eme partie d ´etaille les contributions de cette th `ese `a la g ´en ´eration de tests `a partir d’abstraction de mod `eles.

Le chapitre 4 pr ´esente une m ´ethode (appel ´ee CXP) efficace de calcul d’une sous- approximation d’un syst `eme ´ev ´enementiel. A partir de cette sous-approximation, on g ´en `ere des tests dont l’objectif est de couvrir tous les ´etats et toutes les transitions d’un syst `eme abstrait au moins une fois.

Lechapitre 5 pr ´esente une m ´ethode (appel ´eeBCI) faisant usage d’informations d’attei- gnabilit ´e des s ´equences de transitions qui constituent un syst `eme abstrait. A l’aide de ces informations,BCIcompl `ete la sous-approximation obtenue avec la m ´ethodeCXP. Le chapitre 6 propose un m ´ethode (appel ´ee RCXP) permettant de couvrir les ´etats et transitions d’un syst `eme abstrait qui n’auraient pas ´et ´e couvertes avec CXP. RCXP compl `ete la sous-approximation calcul ´ee parCXPpar des ´etats et transitions jug ´es per- tinents par le testeur.

Lechapitre 7 propose une m ´ethode `a suivre pour savoir quel(s) algorithme(s) de calcul d’une sous-approximation appliquer selon la situation et comment l’appliquer.

Le chapitre 8 pr ´esente l’outil de g ´en ´eration de tests d ´evelopp ´e pour appliquer les diff ´erents algorithmes constituant les contributions de cette th `ese et ´evaluer exp ´erimentalement ces m ´ethodes. Ce chapitre pr ´esente ´egalement les r ´esultats obtenus avec cet outil sur un ensemble de syst `emes ´ev ´enementiels mod ´elis ´es en B ´ev ´enementiel.

La troisi `eme partie conclut ce m ´emoire et expose les perspectives des travaux pr ´esent ´es. Lechapitre 9pr ´esente une conclusion g ´en ´erale sur les contributions et leur capacit ´e `a r ´epondre aux questions de recherche. Lechapitre 10sugg `ere des pistes de recherche `a explorer dans la continuit ´e des travaux effectu ´es lors de cette th `ese.

(18)

C ONTEXTE SCIENTIFIQUE

Ce chapitre d ´ecrit le contexte scientifique sur lequel les travaux pr ´esent ´es dans cette th `ese s’appuient. Les syst `emes ´ev ´enementiels sont le cadre formel pour mod ´eliser des syst `emes r ´eactifs. Ce sont les principaux syst `emes sur lesquels s’appliquent les contribu- tions de cette th `ese. Ils sont pr ´esent ´es en section 2.1 avec un exemple fil rouge qui per- mettra d’illustrer les d ´efinitions et concepts utilis ´es sur l’ensemble de cette th `ese. La sec- tion 2.2 pr ´esente le concept d’abstraction par pr ´edicats qui permet de concentrer l’ ´etude sur une partie d’un syst `eme ´ev ´enementiel et non sur l’ensemble de ses comportements mod ´elis ´es. L’abstraction par pr ´edicats engendre des syst `emes ditabstraits. Structurelle- ment, il s’agit de syst `emes de transitions modaux qui sont pr ´esent ´es en section 2.3. Les travaux effectu ´es dans le cadre de cette th `ese visent `a couvrir les ´etats et les transitions qui composent les syst `emes de transitions modaux selon divers crit `eres de couverture pr ´esent ´es en section 2.5. Enfin, la section 2.6 pr ´esente le langage de propri ´et ´es tempo- relles utilis ´e pour exprimer des objectifs de test sur les syst `emes ´ev ´enementiels.

N.B.Dans cette th `ese, tous les acronymes utilis ´es pour raccourcir et simplifier les nota- tions proviennent de la version en anglais des concepts qu’ils d ´ecrivent. Par exemple, les syst `emes ´ev ´enementiels seront not ´es ES pourEvent Systems.

2.1/ S

YSTEMES

`

EV

´

ENEMENTIELS

´ :

SYNTAXE

,

SEMANTIQUE ET

´

EXEMPLE

Les contributions de cette th `ese sont pr ´evues pour ˆetre appliqu ´ees `a une classe de syst `emes mod ´elis ´es par des syst `emes ´ev ´enementiels d ´ecrits dans le langage B [Abrial, 1996] et pr ´esent ´es par la d ´efinition 1. Cette classe est plus g ´en ´eralement celle des syst `emes de transitions qui sont la s ´emantique des syst `emes ´ev ´enementiels.

D ´efinition 1 :Syst `eme ´Ev ´enementiel (ES)

Unsyst `eme ´ev ´enementielest un 4-uplethX,Inv,Init,Evio `u :

Xest un ensemble de variables d’ ´etat,

Invest un invariant que chaque ´etat du syst `eme doit respecter,

Initest une action d’initialisation des variables d’ ´etat du syst `eme,

Evest un ensemble de d ´efinitions d’ ´ev ´enements sous la formeede f= a, o `ueest le nom de l’ ´ev ´enement etaest sa d ´efinition (l’action qu’il effectue sur les variables d’ ´etat du syst `eme).

L’invariant permet a minima de typer les variables d’ ´etat mais peut ´egalement exprimer 17

(19)

des contraintes plus fortes sur les valeurs relatives les unes aux autres que peuvent prendre les diff ´erentes variables.

L’application de l’action d’initialisation attribue une valeur `a chaque variable d’ ´etat du syst `eme qui se trouve dans un ´etat ditconcret(voir d ´efinition 2) etinitial (puisqu’il r ´esulte de l’application de l’action d’initialisation). Il peut exister plusieurs ´etats initiaux pour un m ˆeme syst `eme ´ev ´enementiel ´etant donn ´e que les actions d’un tel syst `eme peuvent don- ner lieu `a du non-d ´eterminisme (en particulier l’action d’initialisation).

D ´efinition 2 :Etat concret d’un syst `eme ´ev ´enementiel´ Soient ESde f= hX,Inv,Init,Eviun syst `eme ´ev ´enementiel.

Un ´etat d’un syst `eme ´ev ´enementielassocie `a chaque variablexdeX une valeur dans son domaine de d ´efinition, not ´e Dom(x). Cet ´etat est ´egalement consid ´er ´e comme la proposition d ´efinie comme la conjonction de ces valuations, d ´enot ´ee V

x∈X

x = vx avec vxDom(x).

Les actions d’un syst `eme ´ev ´enementiel, qu’il s’agisse de l’action d’initialisation ou de l’action op ´er ´ee par un ´ev ´enement, modifient la valeur d’une ou plusieurs variables d’ ´etat du syst `eme et m `enent donc le syst `eme dans un nouvel ´etat concret. Elles appliquent donc une ou plusieurs substitutions sur les variables d’ ´etat du syst `eme, et ce de mani `ere atomique, c’est- `a-dire que toutes les substitutions qu’elles op `erent sont effectu ´ees ins- tantan ´ement. Dans le langage B ´ev ´enementiel, les substitutions sont construites `a partir de six substitutions dites primitives pr ´esent ´ees par la d ´efinition 3.

D ´efinition 3 : Substitutions primitives en B ´ev ´enementiel [Abrial, 1996, Abrial, 2010]

SoientS,S1etS2 etSij (aveci,jN) des substitutions g ´en ´eralis ´ees, lessubstitutions g ´en ´eralis ´ees du langage de sp ´ecifications Bsont de l’une des six formes suivantes :

1. La substitution neutreskipqui n’affecte pas l’ ´etat auquel elle est appliqu ´ee.

2. La substitution simplex:=Equi modifie la valuation (ici par la valeur de l’expres- sionE) d’une unique variable d’ ´etat (icix) de l’ ´etat auquel elle est appliqu ´ee.

3. La substitution multiple x,y, ... := E,F, ... qui modifie la valuation (ici par E,F, ...

respectivement) de plusieurs variables d’ ´etat (ici x,y, ...) de l’ ´etat auquel elle est appliqu ´ee. Cette substitution est ´egalement not ´eex:=E||y:=F||....

4. La substitution gard ´eeP S qui applique une substitution g ´en ´eralis ´ee (iciS) `a l’ ´etat auquel elle est appliqu ´ee `a condition que la garde Psoit satisfaite par cet

´etat.

5. Le choix born ´e non d ´eterministeS1 []S2 []...[] Sn avecn Nqui applique, de mani `ere non d ´eterministe, l’une des substitutions g ´en ´eralis ´ees qui le composent (iciS1 ouS2ou...ouSn) dont la garde est satisfaite par l’ ´etat auquel le choix est appliqu ´e.

6. Le choix non born ´e et non d ´eterministe @i.S qui correspond aux choix non d ´eterministe Si0 [] Si1 [] ... pour toutes les valeurs de i ∈ {i0,i1, ...} satisfaisant la garde de la substitutionS.

L’atomicit ´e des substitutions r ´ealis ´ees par les actions est importante car les ´ev ´enements d’un syst `eme ´ev ´enementiel sont d ´eclench ´es spontan ´ement et de mani `ere non d ´eterministe lorsque le syst `eme se trouve dans un ´etat satisfaisant leur garde. Une fois qu’un ´ev ´enement est d ´eclench ´e, aucun autre ´ev ´enement n’est donc d ´eclench ´e avant que toutes les substitutions op ´er ´ees par son action n’aient ´et ´e r ´ealis ´ees. Les gardes des sub-

(20)

stitutions primitives, not ´ees grd(S) o `u S est une substitution primitive, sont pr ´esent ´ees par la d ´efinition 4.

D ´efinition 4 :Gardes des substitutions primitives [Dijkstra et al., 1990]

Lesgardes des substitutions primitivessont les suivantes : 1. grd(skip)de f= vrai,

2. grd(x:=E)de f= vrai,

3. grd(x,y, ...:=E,F, ...)de f= vrai, 4. grd(PS)de f= Pgrd(S),

5. grd(S1[]S2[]...[]Sn)de f= grd(S1)grd(S2)...grd(Sn), 6. grd(@i.S)de f= (i).(grd(S)).

Certaines substitutions peuvent ˆetre effectu ´ees sans contraintes. C’est le cas de la substi- tutionskip, qui n’effectue aucune modification des valeurs des variables d’ ´etat du syst `eme et de la substitution simple et multiple. La garde de ces substitutions est donc toujours vraie. Comme son nom l’indique, la substitution gard ´eeP⇒S requiert en revanche que la garde Psoit v ´erifi ´ee par l’ ´etat dans lequel le syst `eme se trouve pour que la substitu- tion S puisse ˆetre appliqu ´ee, `a condition que la garde de cette derni `ere soit ´egalement v ´erifi ´ee. Dans le cas du choix born ´e non-d ´eterministe, il faut que la garde de l’une des substitutions qui la composent soit v ´erifi ´ee pour que cette substitution soit appliqu ´ee.

Si les gardes de deux substitutions ou plus sont satisfaites, l’une de ces substitutions est appliqu ´ee de mani `ere non-d ´eterministe. Enfin, le choix born ´e non d ´eterministe n’est appliqu ´e que s’il existe une variable li ´ee satisfaisant la garde de la substitution qui le compose.

On associe `a chaque substitution g ´en ´eralis ´ee un pr ´edicat avant-apr `es (not ´e prdX(S) o `u S est une substitution g ´en ´eralis ´ee). Ce pr ´edicat s’exprime sur un couple d’ ´etats cons ´ecutifs : l’ ´etat (ou les ´etats) dans lequel le syst `eme doit se trouver avant que la substitution puisse ˆetre appliqu ´ee et l’ ´etat (ou les ´etats) dans lesquels le syst `eme se trouvera apr `es son application. Le concept de pr ´edicat avant-apr `es est pr ´esent ´e par la d ´efinition 5.

2.1.1/ SATISFIABILITE MODULO TH´ EORIES´

L’impl ´ementation d’un algorithme utilisant la technique d’abstraction par pr ´edicats repose g ´en ´eralement sur l’emploi de solveurs de contraintes dits SMT (pour Satisfiabilit ´e Mo- dulo Th ´eories). De tels solveurs permettent de d ´eterminer la satisfiabilit ´e ou la non- satisfiabilit ´e de formules exprim ´ees en logique du premier ordre. Une formule est dite satisfiables’il est possible de trouver une interpr ´etation (on parle alors demod `ele) qui la rend vraie.

Soit φ une formule logique du premier ordre. On utilise dans la suite de ce m ´emoire la notation SAT(φ) pour d ´eterminer si la formule φ est satisfiable. SAT(φ) masque donc un appel `a un solveur SMT qui retourne soit un mod `ele lorsqueφ est satisfiable, soitunsat lorsqueφn’est pas satisfiable, soitunknownsi le solveur n’est pas parvenu `a d ´eterminer siφ ´etait satisfiable ou non.

(21)

D ´efinition 5 :Pr ´edicat avant-apr `es

Unpr ´edicat avant-apr `esest un pr ´edicat portant sur un ensemble de variables d’ ´etat d’un syst `eme. Il contraint les valuations possibles des variables avant et apr `es application d’une substitution.

SoitXun ensemble de variables d’ ´etat d’un syst `eme ´ev ´enementiel. On utilise le nom de la variable pour d ´esigner cette variableavantapplication d’une substitution et la notation prim ´ee pour d ´esigner cette variableapr `esapplication d’une substitution.

Les pr ´edicats avant-apr `es des substitutions g ´en ´eralis ´ees sont alors d ´efinis comme suit :

prdX(skip)de f= V

x∈X

x0=x,

prdX(x:=E)de f= x0=E V

y∈X−{x}

y0=y,

prdX(x,y, ...:=E,F, ...)de f= x0=Ey0=F... V

z∈X−{x,y,...}z0=z,

prdX(PS)de f= PprdX(S),

prdX(S1[]S2)de f= prdX(S1)prdX(S2),

prdX(@i.S)de f= (i).prdX(S)siin’est pas modifi ´ee parS,

prdX(@i.S)de f= (i,i0).prdX∪{i}(S)siiest modifi ´ee parS et intervient donc dans la relation prdX∪{i}(S).

Par exemple, soithX,Inv,Init,Eviun syst `eme ´ev ´enementiel o `u :

Xde f= {x,y},

Invde f= x∈ {0..1} ∧y∈ {0..1},

Initde f= x:=0||y:=1,

Evde f= {ede f= x=0y=1x:=y||y:=x}.

Le pr ´edicat avant-apr `es de l’unique ´ev ´enement de ce syst `eme est le suivant :

prdX(e)de f= x=0y=1x0=yy0=x

La notation(c,c0) :=SAT(InvInv[X0/X]prdX(e))indique alors que le tuple(c,c0)est le mod `ele retourn ´e par l’appel au solveur SMT avec la formule prdX(e)tout en respectant l’invariant Inv et l’invariant dans lequel toutes les variables de X sont prim ´ees (not ´e Inv[X0/X]). En l’occurrence, le mod `ele retourne une valuation pour chaque variable non prim ´ee (x=0et y=1) et pour chaque variable prim ´ee (x0=y=1ety0= x=0).

L’ ´etat concret c est alors la conjonction des valuations des variables non prim ´ees du mod `ele, et c0 est la conjonction des valuations des variables prim ´ees du mod `ele. On aura ainsi cde f= x=0y=1 etc0 de f= x=1y=0. On note que m ˆeme si c0 correspond `a la conjonction des valuations des variables prim ´ees dans le mod `ele, il s’agit quand m ˆeme d’un ´etat concret et donc les valuations portent sur les variables de X, et non pas sur les variables deXprim ´ees.

Si le solveur SMT n’est pas parvenu `a d ´eterminer la satisfiabilit ´e de la formule Inv Inv[X0/X]prdX(e) ou qu’il a d ´etermin ´e que la formule n’ ´etait pas satisfiable, on consid `ere que (c,c0) vaut unknown ou unsat (donc (c,c0) ∈ {unknown,unsat}) afin de simplifier les notations.

N.B. Afin d’all ´eger les notations, tous les appels `aSAT, on consid `ere que l’invariantInvet l’invariant prim ´eInv[X0/X]font implicitement partie de la formule dont la satisfiabilit ´e doit ˆetre v ´erifi ´ee. En effet, tout ´etat retourn ´e dans le mod `ele doit se conformer `a l’invariant.

Ainsi,SAT(prdX(e))correspond `a l’appel au solveur suivant :SAT(InvInv[X0/X]prdX(e)).

(22)

2.1.2/ S ´EMANTIQUE DUN SYSTEME` EV´ ENEMENTIEL´

La s ´emantique d’un syst `eme ´ev ´enementiel est d ´efinie par un syst `eme de transitions

´etiquet ´ees (not ´e LTS pour Labelled Transition System). La d ´efinition 6 pr ´esente le concept standard de LTS qui est un quadruplethC,C0,L,Rio `uC0est un ensemble d’ ´etats initiaux,Cest un ensemble d’ ´etats contenantC0,Lest un ensemble d’ ´etiquettes etRest une relation de transitions ´etiquet ´ees qui est un sous-ensemble deC×L×C. Une transi- tion est un triplet(c,e,c0)(on note aussic→−e c0) o `ucest un ´etat source,c0un ´etat cible et eune ´etiquette indiquant le nom de l’ ´ev ´enement appliqu ´e pour effectuer le changement d’ ´etat dec `ac0.

D ´efinition 6 :Syst `eme de Transitions ´Etiquet ´ees (LTS)

Unsyst `eme de transitions ´etiquet ´eesest un 4-uplethC,C0,L,Rio `u :

Cest un ensemble d’ ´etats

C0Cest un ensemble d’ ´etats initiaux

Lest un ensemble d’ ´etiquettes

RC×L×Cest une relation de transitions

La s ´emantique d’un syst `eme ´ev ´enementiel est le LTS qui lui est associ ´e comme indiqu ´e par la d ´efinition 7 issue des travaux de [Bert et al., 2000]. Son ensemble d’ ´etats concrets est l’ensemble des n-uplets de valuations de X qui satisfont l’invariant du syst `eme

´ev ´enementiel. L’invariant d ´efinit le domaine de valeurs de chaque variable de X ainsi que des contraintes sp ´ecifiques au cas d’ ´etude.

D ´efinition 7 :S ´emantique d’un syst `eme ´ev ´enementiel

Etant donn ´e un syst `eme ´ev ´enementiel ES´ de f= hX,Inv,Init,Evi, sa s ´emantique est un LTSde f= hC,C0,L,Rio `u :

C de f= {V

x∈X

x = vx | vx Dom(x)SAT(V

x∈X

x =vxInv)}est l’ensemble des ´etats concrets qui satisfont l’invariantInv,

C0de f= {c|cCSAT(prdX(Init)c[X0/X])=sat}est l’ensemble des ´etats concrets initiaux obtenus par application de la substitution d’initialisationInit,

Lde f= {e|ede f= aEv}est l’ensemble des noms d’ ´ev ´enements de ES,

Rde f= {ce c0|cCede f= aEvc0CSAT(prdX(a)c0[X0/X]c)=sat}est la relation de transitions concr `etes.

D ´efinition 8 :Atteignabilit ´e concr `ete

Un ´etat concretc0est dit atteignablesi une transition c0 e c0 avecc0 C0 appartient

`a la cl ˆoture transitive et r ´eflexive de R. Une transition ce c0 R est ´egalement dite atteignablesi son ´etat sourcecest lui-m ˆeme atteignable.

On qualifie les ´etats concrets et les transitions concr `etes d’atteint(e)slorsqu’il existe une s ´equence de transitions du CTS qui y m `ene en partant d’un ´etat concret initial (un ´etat deC0).

Les ´etats initiaux d’un syst `eme ´ev ´enementiel sont les ´etats c atteints (voir d ´efinition 8) par application de la substitution d’initialisation Init. L’ ´etatc ´etant l’ ´etat cible, il doit ˆetre prim ´e pour ˆetre consistant avec le pr ´edicat avant-apr `es deInit. La notationc[X0/X]d ´efinit un ´etat cible obtenu `a partir de l’ ´etatc en primant chacune des variables. Par exemple,

´etant donn ´e l’ ´etatcde f= x1=v1...xn=vn avecn=|X|,c[X0/X]est l’ ´etatx01=v1...x0n=vn.

(23)

Les transitions du LTS s ´emantique d’un syst `eme ´ev ´enementiel sont tous les triplets (c,e,c0) qui satisfont le pr ´edicat avant-apr `es pour chaque ´ev ´enement e de f= a. Autrement dit,csatisfait la garde dea(grd(a)) et l’application dea `acm `ene `a l’ ´etatc0.

2.1.3/ EXEMPLE FIL ROUGE

Afin d’illustrer les d ´efinitions et les concepts d ´ej `a vus et `a venir dans la suite de cette th `ese, on pr ´esente ici un exemple fil rouge de syst `eme ´ev ´enementiel. Cet exemple, pr ´esent ´e par la figure 2.1, mod ´elise le comportement d’un distributeur de caf ´e en lan- gage B ´ev ´enementiel.

X de f= {Balance,Pot,Status,CofLeft,AskCof,AskChange}

Inv de f= Pot0..MAX POT+50Balance0..MAX BAL

CofLeft0..MAX COFPotmod50=0Balancemod50=0

Status∈ {off,on,error} ∧AskCof∈ {false,true} ∧AskChange∈ {false,true} ∧ AskChange=true(Balance>0AskCof=false)

AskCof=true(Balance50AskChange=false) Balance=0(AskCof=falseAskChange=false) Init de f= Balance:=0||Pot:=0||CofLeft:=10||

Status:=off||AskCof:=false||AskChange:=false -insert50 de f= Status=onAskChange=falseAskCof=false

Balance+50MAX BALBalance:=Balance+50 -insert100 de f= Status=onAskChange=falseAskCof=false

Balance+100MAX BALBalance:=Balance+100 -powerUp de f= Status=offCofLeft>0PotMAX POT

Status:=on||Balance:=0||AskCof:=false||AskChange:=false -powerDown de f= (Status=onAskChange=falseAskCof=falseBalance=0)

Status=errorStatus:=off -autoOut de f= Status=onStatus:=error

-takePot de f= Status=offPotMAX POT50Pot:=0 -cofReq de f= Status=onBalance50AskCof=false

AskChange=falseAskCof:=true -changeReq de f= Status=onBalance>0AskCof=false

AskChange=falseAskChange:=true -addCof de f= ∃x.(x1..MAX COFCofLeft+xMAX COF

Status=offCofLeft:=CofLeft+x)

-serveCof de f= Status=onBalance50AskCof=trueCofLeft>0PotMAX POT AskCof:=false||Balance:=Balance50||

CofLeft:=CofLeft1||Pot:=Pot+50||

(PotMAX POTCofLeft=1Status:=error[]

Pot+50MAX POTCofLeft,1skip)||

(Balance>50AskChange:=true[]Balance=50skip)

-backBalance de f= Status=onBalance>0AskChange=trueBalance:=0||AskChange:=false

FIGURE2.1 – Sp ´ecification d’un distributeur de caf ´e en B ´ev ´enementiel

Les constantes utilis ´ees par ce syst `eme, dont la valeur est fix ´ee arbitrairement, ont la signification suivante :

MAX BAL : il s’agit de la quantit ´e maximale d’argent que l’utilisateur peut ins ´erer dans le distributeur avant de demander un caf ´e ou de r ´ecup ´erer son argent,

MAX POT : il s’agit de la quantit ´e maximale d’argent que la machine peut contenir,

MAX COF : il s’agit du nombre maximal de caf ´es pouvant ˆetre stock ´es (et vendus) par la machine.

Références

Documents relatifs

L’iconique se présente aussi comme un commentaire postérieur à l’œuvre, comme sa paraphrase ou son contresens parfois, sous forme d’illustrations, couvertures illustrées

On peut lancer assez de rayons afin d’obtenir une discr´etisation de la surface ´eclair´ee du mˆeme ordre que dans le cadre d’un calcul en m´ethode int´egrale.. Lors de calculs

Pour répondre à cette problématique, la solution proposée dans le cadre de cette thèse consiste à mettre en place un système interactif proposant à l'utilisateur diérents

Figure 5-5 : Comparaison des EISF déduits de l’analyse phénoménologique des spectres à 100µeV moyenné sur les trois températures (croix) à ceux attendus en

A titre d’illustration, nous allons exposer la r´ ` eponse de l’atome unique pour l’harmonique 35 g´ en´ er´ ee dans le n´ eon (calcul´ ee dans le cadre de l’approximation

Dans le cas o` u G est un groupe de Baire ab´ elien et A une alg` ebre de Banach, nous obtenons ` a l’aide du th´ eor` eme du graphe ferm´ e et du th´ eor` eme de Gelfand un r´

Proceedings of the American Mathematical Society, to appear. Linear forms in the logarithms of algebraic numbers I. Linear forms in the logarithms of algebraic numbers II. Linear

On considère à nouveau ici une particule métallique de constante diélectrique ε dans un milieu de constante diélectrique ε m soumise à une onde plane monochromatique