• Aucun résultat trouvé

Exploration concrétisée et pertinente de systèmes d'événements abstraits en vue de la génération automatique de tests

N/A
N/A
Protected

Academic year: 2021

Partager "Exploration concrétisée et pertinente de systèmes d'événements abstraits en vue de la génération automatique de tests"

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

(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 αSearch et RefinementSearch . . . 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

(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’une may-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 dans RQ0 . . . 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 mustpour 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 de must-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 de must-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 des must−-structures . . . 83

5.4.1 Exploration de toutes les chaˆınes de must−-transitions . . . 83

(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 deCXP et objectifs de l’algorithme RCXP . . . 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 abstraite may-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-traite may-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

(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’algorithmeRCXP pour 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

(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 avecCXP et CXPASO . . 122

8.3.2 Analyse comparative des r ´esultats obtenus avecCXP et BCI . . . . 125

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

8.3.4.2 Inconv ´enients potentiels propres `aRCXP et `a RCXPASO . . 136

8.3.4.3 Comparaison des ´etats concrets et des transitions concr `etes calcul ´ees parRCXP et RCXPASO . . . 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

(12)

I

NTRODUCTION ET

ETAT DE L

´

ART

(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 2 pr ´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 3 pr ´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-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 ´ee BCI) 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,BCI compl`ete la sous-approximation obtenue avec la m´ethode CXP.

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 parCXP par 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 9 pr ´esente une conclusion g ´en ´erale sur les contributions et leur

capacit ´e `a r ´epondre aux questions de recherche. Lechapitre 10 sugg `ere des pistes de

(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’abstracsec-tion 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 dit abstraits. 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-uplet hX, Inv , Init, Evi o `u : • Xest un ensemble de variables d’ ´etat,

• Inv est un invariant que chaque ´etat du syst `eme doit respecter, • Init est une action d’initialisation des variables d’ ´etat du syst `eme,

• Evest un ensemble de d ´efinitions d’ ´ev ´enements sous la forme ede f= a, o`u e est le nom de l’ ´ev ´enement et a est 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 dit concret (voir d ´efinition 2) et initial (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, Evi un syst`eme ´ev´enementiel.

Un ´etat d’un syst `eme ´ev ´enementielassocie `a chaque variable x de X 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 vx∈ Dom(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]

Soient S , S1et S2 et Sij (avec i, j ∈ N) 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 neutre skip qui n’affecte pas l’ ´etat auquel elle est appliqu ´ee. 2. La substitution simple x:= E qui modifie la valuation (ici par la valeur de

l’expres-sion E) d’une unique variable d’ ´etat (ici x) 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 ´ee x:= E || y := F || ....

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

´etat.

5. Le choix born ´e non d ´eterministe S1 [] S2 [] ... [] Sn avec n ∈ N qui applique, de mani `ere non d ´eterministe, l’une des substitutions g ´en ´eralis ´ees qui le composent (ici S1 ou S2ou ... ou Sn) 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 substitution S .

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

(20)

sub-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(P ⇒ S )de f= P ∧ grd(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-tution skip, 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 ´ee P ⇒ S requiert en revanche que la garde P soit v ´erifi ´ee par l’ ´etat dans lequel le syst `eme se trouve pour que la substitu-tion S puisse ˆetre appliqu ´ee, `a condisubstitu-tion 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 satisfiable s’il est possible de trouver une interpr ´etation (on parle alors de mod `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, soit unsat lorsque φ n’est pas satisfiable, soit unknown si 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.

Soit X un ensemble de variables d’ ´etat d’un syst `eme ´ev ´enementiel. On utilise le nom de la variable pour d ´esigner cette variable avant application d’une substitution et la notation prim ´ee pour d ´esigner cette variable apr `es application 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= E ∧ y0= F ∧ ... ∧ V z∈X−{x,y,...}z 0= z, • prdX(P ⇒ S ) de f = P ∧ prdX(S ), • prdX(S1[] S2) de f = prdX(S1) ∨ prdX(S2), • prdX(@i.S ) de f

= ∃(i).prdX(S ) si i n’est pas modifi´ee par S , • prdX(@i.S )

de f

= ∃(i, i0).prd

X∪{i}(S ) si i est modifi´ee par S et intervient donc dans la relation prdX∪{i}(S ).

Par exemple, soit hX, Inv , Init, Evi un 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 = 0 ∧ y = 1 ⇒ x := 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 = 0 ∧ y = 1 ∧ x0= y ∧ y0= x

La notation(c, c0) := SAT(Inv ∧ Inv[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= 0 et

y= 1) et pour chaque variable prim´ee (x0= y = 1 et y0= 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 = 0 ∧ y = 1 etc0 de f= x = 1 ∧ y = 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 de X prim ´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 `a SAT, on consid `ere que l’invariant Inv et

l’invariant prim ´e Inv[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(Inv ∧ Inv[X

0

(22)

2.1.2/ S ´EMANTIQUE D’UN 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 quadruplet hC, C0, L, Ri o`u C0est un ensemble d’ ´etats

initiaux, C est un ensemble d’ ´etats contenant C0, L est un ensemble d’ ´etiquettes et R est

une relation de transitions ´etiquet ´ees qui est un sous-ensemble de C × L × C. Une

transi-tion est un triplet(c, e, c0) (on note aussi c→ c−e 0) o `u c est un ´etat source, c0un ´etat cible et

eune ´etiquette indiquant le nom de l’ ´ev ´enement appliqu ´e pour effectuer le changement

d’ ´etat de c `a c0.

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

Unsyst `eme de transitions ´etiquet ´eesest un 4-uplet hC, C0, L, Ri o`u : • Cest un ensemble d’ ´etats

• C0⊆ Cest un ensemble d’ ´etats initiaux • Lest un ensemble d’ ´etiquettes

• R ⊆ C × L × C est 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, Ri o`u :

• C de f= { V x∈X

x = vx | vx ∈ Dom(x) ∧ SAT( V x∈X

x = vx∧Inv)} est l’ensemble des ´etats concrets qui satisfont l’invariant Inv ,

• C0de f= {c | c ∈ C ∧SAT(prdX(Init)∧c[X

0

/X])= sat} est l’ensemble des ´etats concrets initiaux obtenus par application de la substitution d’initialisation Init,

• Lde f= {e | ede f= a ∈ Ev} est l’ensemble des noms d’´ev´enements de ES, • Rde f= {c→ c−e 0| c ∈ C ∧ ede f= a ∈ Ev ∧ c0∈ C ∧ SAT(prd

X(a) ∧ c0[X

0

/X] ∧ c)= sat} est la relation de transitions concr `etes.

D ´efinition 8 :Atteignabilit ´e concr `ete

Un ´etat concret c0est dit atteignable si une transition c 0

e −

→ c0 avec c

0 ∈ C0 appartient `a la cl ˆoture transitive et r ´eflexive de R. Une transition c → c−e 0 ∈ R est ´egalement dite atteignable si son ´etat source c est 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 de C0).

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’ ´etat c ´etant l’ ´etat cible, il doit ˆetre

prim ´e pour ˆetre consistant avec le pr ´edicat avant-apr `es de Init. La notation c[X0/

X] d´efinit

un ´etat cible obtenu `a partir de l’ ´etat c en primant chacune des variables. Par exemple,

´etant donn ´e l’ ´etatcde f= x1= v1∧... ∧ xn= vn avecn= |X|,c[X

0

(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, c satisfait la garde de a (grd(a)) et l’application de a `a c m`ene `a l’´etat c0.

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= Pot ∈0..MAX POT+ 50 ∧ Balance ∈ 0..MAX BAL ∧

CofLeft ∈0..MAX COF ∧ Pot mod 50= 0 ∧ Balance mod 50 = 0 ∧

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

AskCof= true ⇒ (Balance ≥ 50 ∧ AskChange = false) ∧ Balance= 0 ⇒ (AskCof = false ∧ AskChange = false) Init de f= Balance:= 0 || Pot := 0 || CofLeft := 10 ||

Status:= off || AskCof := false || AskChange := false - insert50 de f= Status= on ∧ AskChange = false ∧ AskCof = false ∧

Balance+ 50 ≤ MAX BAL ⇒ Balance := Balance + 50 - insert100 de f= Status= on ∧ AskChange = false ∧ AskCof = false ∧

Balance+ 100 ≤ MAX BAL ⇒ Balance := Balance + 100 - powerUp de f= Status= off ∧ CofLeft > 0 ∧ Pot ≤ MAX POT ⇒

Status:= on || Balance := 0 || AskCof := false || AskChange := false - powerDown de f= (Status= on ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0) ∨

Status= error ⇒ Status := off - autoOut de f= Status= on ⇒ Status := error

- takePot de f= Status= off ∧ Pot ≥ MAX POT − 50 ⇒ Pot := 0 - cofReq de f= Status= on ∧ Balance ≥ 50 ∧ AskCof = false ∧

AskChange= false ⇒ AskCof := true - changeReq de f= Status= on ∧ Balance > 0 ∧ AskCof = false ∧

AskChange= false ⇒ AskChange := true - addCof de f= ∃x.(x ∈ 1..MAX COF ∧ CofLeft + x ≤ MAX COF∧

Status= off ⇒ CofLeft := CofLeft + x)

- serveCof de f= Status= on ∧ Balance ≥ 50 ∧ AskCof = true ∧ CofLeft > 0 ∧ Pot ≤ MAX POT ⇒ AskCof:= false || Balance := Balance − 50 ||

CofLeft:= CofLeft − 1 || Pot := Pot + 50 ||

(Pot ≥ MAX POT ∨ CofLeft= 1 ⇒ Status := error [] Pot+ 50 ≤ MAX POT ∧ CofLeft , 1 ⇒ skip) ||

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

- backBalance de f= Status= on ∧ Balance > 0 ∧ AskChange = true ⇒ Balance := 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)

(24)

Les variables d’ ´etat de ce syst `eme sont celles de l’ensemble nomm ´e X :

• Balance ∈0..MAX BAL: une variable indiquant la somme d’argent ins ´er ´ee par l’utilisa-teur dans la machine,

• Pot ∈0..MAX POT+50: une variable indiquant la somme d’argent r ´ecolt ´ee par la vente de caf ´es,

• Status ∈ {off, on, error }: une variable indiquant l’ ´etat de fonctionnement de la machine

(off signifiant qu’elle est arr ˆet ´ee, on signifiant qu’elle fonctionne, eterror signifiant

qu’une erreur s’est produite),

• CofLeft ∈ 0..MAX COF : une variable indiquant le nombre de caf ´es restant dans le distributeur,

• AskCof ∈ {false, true}: une variable indiquant si l’utilisateur a demand ´e du caf ´e (true)

ou non (false),

• AskChange ∈ {false, true}: une variable indiquant si l’utilisateur a demand ´e `a r ´ecup ´erer

la somme ins ´er ´ee dans la machine sans effectuer d’achat (true) ou non (false).

L’invariant Inv sert `a typer les variables d’ ´etat et ajoute notamment les contraintes sui-vantes :

• L’utilisateur ne peut introduire que des pi `eces multiples de 50 unit´es et le pot ne

peut contenir qu’une somme multiple de50. Il s’agit d’une simplification de la

ma-chine pour ne pas mod ´eliser la gestion de divers types de pi `eces.

• L’utilisateur ne peut pas demander `a r ´ecup ´erer son argent tant qu’il n’en a pas

ins ´er ´e dans le distributeur ou s’il vient de demander un caf ´e et que le distributeur ne lui a pas encore d ´elivr ´e.

• L’utilisateur ne peut pas demander de caf ´e tant qu’il n’a pas ins ´er ´e suffisamment

d’argent dans le distributeur ou s’il vient de demander `a r ´ecup ´erer l’argent qu’il a ins ´er ´e.

La substitution d’initialisation Init initialise laBalanceet lePot `a0 (Balance:= 0 || Pot := 0), le

nombre de caf ´es dans le distributeur `aMAX COF (CofLeft := MAX COF), met le distributeur

`a l’arr ˆet (Status:= off) et consid `ere qu’aucun caf ´e n’a encore ´et ´e demand ´e (AskCof := false)

et que l’utilisateur n’a pas demand ´e `a r ´ecup ´erer son argent (AskChange:= false).

Les ´ev ´enements mod ´elis ´es simulent `a la fois les actions r ´ealis ´ees par le distributeur lui-m ˆelui-me, par le technicien charg ´e de la lui-maintenance de la lui-machine, ou encore par un utilisateur du distributeur.

L’utilisateur peut ins ´erer de l’argent dans le distributeur (50 ou 100 unit´es d’argent par

le biais des ´ev ´enementsinsert50 etinsert100 respectivement) puis demander un caf ´e (par

activation de l’ ´ev ´enement cofReq) dont le prix est fix ´e `a 50 unit´es. Il peut ´egalement

de-mander `a r ´ecup ´erer l’argent qu’il a ins ´er ´e dans le distributeur (par le biais de l’ ´ev ´enement

changeReq) dans le cas o `u il ne souhaite plus de caf ´e.

Le distributeur d ´elivre un caf ´e (serveCof) `a l’utilisateur si et seulement si il a demand ´e

un caf ´e, s’il reste des caf ´es en stock et si au moins50 unit´es d’argent ont ´et´e ins´er´ees

par l’utilisateur. Le distributeur rend l’argent ins ´er ´e `a l’utilisateur (backBalance) si celui-ci

l’a r ´eclam ´e (par l’ ´ev ´enementchangeReq) et rend la monnaie si l’utilisateur a demand ´e un

caf ´e et introduit une somme sup ´erieure `a50 unit´es.

Le technicien peut mettre la machine en ´etat de marche (powerUp) ou l’arr ˆeter (powerDown)

pour ajouter du caf ´e (addCof), r ´ecup ´erer l’argent gagn ´e gr ˆace aux ventes de caf ´es (

(25)

lorsque le pot est plein ou que le dernier caf ´e a ´et ´e d ´elivr ´e).

En cas d’erreur, le distributeur n’accepte plus d’argent de la part de l’utilisateur tant que le technicien ne l’a pas remise en ´etat de marche.

Exemple 1 : Illustration des concepts li ´es aux syst `emes ´ev ´enementiels

Dans cet exemple, les concepts li ´es aux syst `emes ´ev ´enementiels sont illustr ´es sur l’exemple fil rouge du distributeur de caf ´e.

La garde de l’ ´ev ´enement powerUp se d ´etermine ainsi :

grd(powerUp) de f= Status= off ∧ CofLeft > 0 ∧ Pot ≤ MAX POT ∧

grd(Status := on || Balance := 0 || AskCof := false || AskChange := false) = Status= off ∧ CofLeft > 0 ∧ Pot ≤ MAX POT ∧ true

= Status= off ∧ CofLeft > 0 ∧ Pot ≤ MAX POT

L’ ´ev ´enement powerUp applique une substitution gard ´ee dont la garde estgrd(powerUp)et

la substitution appliqu ´ee lorsque cette garde est satisfaite est la substitution multiple

sui-vante :Status:= on || Balance := 0 || AskCof := false || AskChange := false.

Le pr ´edicat avant-apr `es correspondant `a la substitution gard ´ee appliqu ´ee par

l’ ´ev ´enementpowerUpse d ´etermine donc ainsi :

prdX(powerUp) de f

= Status= off ∧ CofLeft > 0 ∧ Pot ≤ MAX POT ∧

prdX(Status := on || Balance := 0 || AskCof := false || AskChange := false) de f

= Status= off ∧ CofLeft > 0 ∧ Pot ≤ MAX POT ∧

Status’ = on ∧ Balance’ = 0 ∧ AskCof’ = false ∧ AskChange’ = false ∧ Pot’= Pot ∧ CofLeft’ = CofLeft

N.B. Seules les variables Status,Balance,AskCof et AskChange sont modifi ´ees par la

sub-stitution multiple appliqu ´ee par powerUp. Les variables restantesPot etCofLeft restent en

revanche inchang ´ees, ce qu’exprime la conditionPot’= Pot ∧ CofLeft’ = CofLeft.

Soient les ´etats concrets suivants :

• c0 de f

= Balance = 0 ∧ Pot = 0 ∧ Status = off ∧ CofLeft = 10 ∧ AskCof = false ∧ AskChange = false • c1de f= Balance = 0 ∧ Pot = 0 ∧ Status = on ∧ CofLeft = 10 ∧ AskCof = false ∧ AskChange = false

On note que c0 est un ´etat initial du syst `eme car il correspond exactement `a l’application

de la substitution d’initialisationInitde f= Balance := 0 || Pot := 0 || Status := off || CofLeft := 10 || AskCof

:= false || AskChange := false. Cette substitution d’initialisation ´etant d ´eterministe et portant

sur toutes les variables d’ ´etat du syst `eme, c0est en r ´ealit ´e le seul ´etat initial du syst `eme.

La substitution gard ´ee correspondant `a l’ ´ev ´enementpowerUp peut ˆetre appliqu ´ee `a c0car

il satisfait sa garde grd(powerUp) (leStatus estoff,CofLeft vaut10 ce qui est sup´erieur `a 0,

et lePotvaut0 ce qui est inf´erieur `aMAX POT).

L’application de cette substitution `a c0 ne modifie pas la valeur du Pot ni de CofLeft qui

restent donc respectivement `a0 et 10. En revanche, elle modifie les valeurs des autres

variables (comme exprim ´e par prdX(powerUp)) en mettant le Status `a on, la Balance `a 0,

AskCof `a false et AskChange `a false. L’ ´etat concret atteint par l’application de powerUp `a c0

(26)

respectives duStatus, de laBalance, deAskCof et deAskChangesont fix ´ees `a on,0,false et

falsedans c1.

L’application de powerUp `a c1 est en revanche impossible car la garde de powerUp

(grd(powerUp)) requiert que leStatussoitoff, ce qui n’est pas le cas dans c1o `u leStatusest

on.

La figure 2.2 montre une partie du LTS s ´emantique du distributeur de caf ´e sous la forme d’un graphe.

FIGURE2.2 – LTS s ´emantique partiel du distributeur de caf ´e

Les ´etats concrets (de c0 `a c4) sont repr ´esent ´es par des rectangles aux coins arrondis.

L’ ´etat initial c0 est mis en ´evidence par une bordure plus ´epaisse que les autres ´etats

concrets et par la fl `eche (tout `a gauche) ayant pour ´etat cible c0 et n’ayant aucun ´etat

source. Les transitions sont repr ´esent ´ees par des fl `eches allant d’un ´etat `a un autre et portant le nom de l’ ´ev ´enement qu’elles appliquent.

On obtient ainsi le LTS partiel hC, C0, L, Ri o`u :

• C= {c0, c1, c2, c3, c4},

• C0= {c0},

• L = {insert50, insert100, powerUp, powerDown, autoOut, takePot, cofReq, changeReq, addCof , serveCof , backBalance}, • R= { c0 powerUp −−−−−−→ c1, c1 powerDown −−−−−−−−→ c0, c1 autoOut −−−−−−→ c2, c2 powerDown −−−−−−−−→ c0, c1 insert100 −−−−−−−→ c4, c1 insert50 −−−−−−→ c3 }

Dans l’objectif de g ´en ´erer des tests, calculer le LTS s ´emantique complet d’un syst `eme n’est pas envisageable en raison de son tr `es grand nombre d’ ´etats et de transitions poten-tiels. Afin de limiter une explosion de l’espace d’ ´etats consid ´er ´e, on propose l’utilisation de la technique d’abstraction par pr ´edicats pr ´esent ´ee par la section 2.2.

2.2/

A

BSTRACTION PAR PREDICATS

´

L’abstraction par pr ´edicats [Graf et al., 1997] est une technique qui permet de r ´eduire l’es-pace d’ ´etats `a traiter et de le ramener `a un ensemble fini (m ˆeme dans le cas o `u l’ensemble d’ ´etats concrets est infini). Avec des pr ´edicats d’abstraction bien choisis, le syst `eme

(27)

abs-trait permet de se focaliser sur les ´etats et transitions ayant un int ´er ˆet particulier vis- `a-vis d’un objectif de test ou d’une propri ´et ´e du mod `ele `a v ´erifier par exemple.

L’abstraction par pr ´edicat n ´ecessite un ensemble non vide P de f= {p1, ..., pn} de n ∈ N

pr ´edicats d’abstraction pr ´esent ´es par la d ´efinition 9.

D ´efinition 9 :Pr ´edicat d’abstraction

Unpr ´edicat d’abstractionest un pr ´edicat exprim ´e en logique du premier ordre et portant sur les variables d’ ´etat du syst `eme `a abstraire.

Les pr ´edicats d’abstraction permettent de construire des classes d’ ´equivalence pour tous les ´etats concrets d’un syst `eme ´ev ´enementiel. Ces classes d’ ´equivalence constituent des

´etats dits abstraits pr ´esent ´es par la d ´efinition 10.

D ´efinition 10 :Etat abstrait

Soit Pde f= {p1, ..., pn}un ensemble de pr ´edicats d’abstraction.

Un ´etat abstraitest un n-uplet qde f= (q1, q2, ..., qn) avec qi ´egal `a ¬piou `a pi pour i ∈1..n. Un ´etat abstrait est ´egalement consid ´er ´e comme le pr ´edicatVn

i=1qi.

Par la suite, on note A l’ensemble des ´etats abstraits. Par d ´efinition d’un ´etat abstrait, cet

ensemble contient2n ´etats, o `u n est le nombre de pr ´edicats d’abstraction.

On associe `a un ´etat concret d’un syst `eme l’ ´etat abstrait auquel il correspond (i.e. la classe d’ ´equivalence `a laquelle il appartient) par le biais d’une fonction d’abstraction pr ´esent ´ee par la d ´efinition 11.

D ´efinition 11 :Fonction d’abstraction

Soient C un ensemble d’ ´etats concrets et A un ensemble d’ ´etats abstraits.

Unefonction d’abstractionest une fonction totale α: C → A qui `a un ´etat concret c de C associe l’ ´etat abstrait q de A qu’il satisfait. Ainsi, α(c) est l’´etat abstrait qde f= (q1, q2, ..., qn) tel que c ∧ qiest une formule valide pour tout i ∈1..n.

Par abus de langage, on dit que q contient c, qu’un ´etat concret c est dans l’ ´etat abstrait

q, ou encore que c est un ´etat concret de q, lorsque α(c)= q.

La d ´efinition 12 pr ´esente la notion de syst `eme d’ ´etats et de transitions abstraits

D ´efinition 12 :Syst `eme abstrait

Soit P un ensemble de pr ´edicats d’abstraction.

Lesyst `eme abstraitissu de P est un 4-uplet hA, A0, L, Ri o`u : • Aest l’ensemble des ´etats abstraits constitu ´es `a partir de P, • A0⊆ Aest un ensemble d’ ´etats abstraits initiaux,

• Lest un ensemble d’ ´etiquettes,

• R ⊆ A × L × Aest une relation de transitions abstraites.

Une transition(q, e, q0) ∈ R est dite abstraite (car q et q0 sont des ´etats abstraits). Elle est

not ´ee q→ q−e 0.

L’exemple 2 illustre, `a l’aide du distributeur de caf ´e, les principaux concepts li ´es `a l’abs-traction par pr ´edicats. La notion de syst `eme abstrait n’est pas illustr ´ee ici mais sera exem-plifi ´ee dans la section 2.3.

(28)

Exemple 2 : Illustration des concepts d’abstraction par pr ´edicats

On utilise l’ensemble de pr ´edicats d’abstraction Pde f= {p0, p1, p2}o `u :

• p0de f= Status = off ∧ Pot ≥ MAX POT −50 (garde de takePot),

• p1de f= Status = on (garde de autoOut),

• p2de f= (Status = on ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0) ∨ Status = error (garde

de powerDown).

L’ensemble A des ´etats abstraits contient ainsi2|P| = 23 = 8 ´etats, not´es qi avec i ∈ 0..7

o `u : • q0de f= ¬p0∧ ¬p1∧ ¬p2 • q1de f= ¬p0∧ ¬p1∧ p2 • q2de f= ¬p0∧ p1∧ ¬p2 • q3de f= ¬p0∧ p1∧ p2 • q4de f= p0∧ ¬p1∧ ¬p2 • q5de f= p0∧ ¬p1∧ p2 • q6de f= p0∧ p1∧ ¬p2 • q7de f= p0∧ p1∧ p2

N.B. Tous les ´etats abstraits doivent ´egalement satisfaire l’invariant pour appartenir au

syst `eme abstrait. De plus, les ´etats abstraits dont la formule logique qui leur correspond ne peut pas ˆetre satisfaite sont dits vides. Dans cet exemple, les ´etats abstraits suivants sont vides :

• q5 car leStatus ne peut pas ˆetre `a la fois ´egal `aoff comme requis par p0 et ´egal `a

onouerror comme requis par p2

• q6 et q7 car le Status ne peut pas ˆetre `a la fois ´egal `a off comme requis par p0 et

´egal `aoncomme requis par p1

On consid `ere g ´en ´eralement que A ne contient que les ´etats abstraits non vides : A =

{q0, q1, q2, q3, q4}.

Soient les ´etats concrets suivants :

• c5 de f= Status = error ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0 ∧ Pot = 100 ∧ CofLeft

= 0

• c6de f= Status = on ∧ AskChange = true ∧ AskCof = false ∧ Balance = 0 ∧ Pot = 100 ∧ CofLeft = 10

• c7 de f

= Status = on ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0 ∧ Pot = 100 ∧ CofLeft = 10 • c8de f= Status = on ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0 ∧ Pot = 500 ∧ CofLeft = 0

• c9de f= Status = off ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0 ∧ Pot = 50 ∧ CofLeft = 0

• c10 de f= Status = off ∧ AskChange = false ∧ AskCof = false ∧ Balance = 0 ∧ Pot = MAX POT ∧

CofLeft= 0

L’association r ´ealis ´ee par la fonction d’abstraction α sur ces ´etats sera alors la suivante :

• α(c5)= q1car, dans c5, leStatusn’est nioff nioncomme requis par p0et p1

respec-tivement mais vauterror, ce qui suffit `a satisfaire le pr ´edicat p2.

• α(c6)= q2 car, dans c6, leStatusn’est pasoff comme requis par p0, vautoncomme

requis par p1 et le bool ´een AskChange vaut true, ce qui rend le pr ´edicat p2 non

satisfiable puisqu’il requiert soit queAskChangesoittrue, soit que leStatussoiterror.

• α(c7) = α(c8) = q3 car, dans c7 et c8, le Status n’est pas off comme requis par p0,

vaut on comme requis par p1 et toutes les conditions impos ´ees par la premi `ere

partie de la disjonction de p2(Status= on ∧ AskChange = false ∧ AskCof = false ∧ Balance

= 0) sont vraies.

(29)

qui ne satisfait pas p0, leStatus n’est pason comme requis par p1 et leStatusn’est nion, nierror comme requis par p2.

• α(c10)= q4car, dans c10, leStatusestoff et lePotest ´egal `aMAX POT comme requis

par p0, le Status n’est pas on comme requis par p1, et le Status n’est ni on ni error

comme requis par p2.

Les syst `emes abstraits permettent donc de concentrer une ´etude sur une ou plu-sieurs propri ´et ´es d’un syst `eme ´ev ´enementiel en s ´electionnant des pr ´edicats d’abstrac-tion adapt ´es et de r ´eduire l’espace d’ ´etats `a un ensemble fini et r ´eduit d’ ´etats abstraits. L’abstraction par pr ´edicats entraˆıne en revanche une perte d’information sur l’atteignabi-lit ´e des ´etats et transitions abstraits : il peut ne pas exister d’ ´etat concret (respectivement de transition concr `ete) atteignable instanciant un ´etat abstrait (respectivement une tran-sition abstraite).

2.3/

S

YSTEMES DE TRANSITIONS MODAUX

`

On associe des modalit ´es aux transitions abstraites afin de les classer en fonction de leur atteignabilit ´e et de l’atteignabilit ´e des ´etats abstraits qui les composent. La notion de modalit ´e est pr ´esent ´ee par la d ´efinition 13.

D ´efinition 13 :Modalit ´e d’une transition abstraite

Soient un syst `eme ´ev ´enementiel ES de f= hX, Inv, Init, Evi, P un ensemble de pr´edicats d’abstraction et ASde f= hA, A0, L, Ri un syst`eme abstrait.

On consid `ere quatre modalit ´es possibles pour une transition abstraite q→ q−e 0∈ Rd ´efinies comme suit :

1. La modalit ´e may est attribu ´ee `a q → q−e 0 lorsqu’il existe une transition concr `ete c→ c−e 0du LTS s ´emantique de ES telle que α(c)= q, α(c0)= q0.

2. La modalit ´emust−est attribu ´ee `a q→ qe 0lorsqu’elle poss `ede la modalit ´e may et que pour tout c0 tel que α(c0) = q0, il existe un ´etat concret c tel que α(c)= q et c→ c−e 0est une transition du LTS s ´emantique de ES.

3. La modalit ´emust+est attribu ´ee `a q→ q−e 0lorsqu’elle poss `ede la modalit ´e may et que pour tout c tel que α(c) = q, il existe un ´etat concret c0 tel que α(c0) = q0 et c→ c−e 0est une transition du LTS s ´emantique de ES.

4. La modalit ´emust# est attribu ´ee `a q→ q−e 0lorsqu’elle poss `ede `a la fois la modalit ´e must−et must+.

La figure 2.3 illustre les quatre modalit ´es possibles pour une transition. La modalit ´e may est attribu ´ee `a toute transition abstraite pour laquelle il existe au moins une instance

concr `ete correspondante. La modalit ´e must−est attribu ´ee `a toute transition abstraite pour

laquelle tous les ´etats concrets de l’ ´etat abstrait cible poss `edent un pr ´ed ´ecesseur dans

l’ ´etat abstrait source par cette transition. La modalit ´e must+ est attribu ´ee `a toute

transi-tion abstraite pour laquelle tous les ´etats concrets de l’ ´etat abstrait source poss `edent un successeur dans l’ ´etat abstrait cible par cette transition.

Sur la figure 2.3a, il existe une instance (c0q0

e1 −→ c3q1) de la transition abstraite q0 e1 −→ q1 et deux instances (c3q1 e1 −→ c7q2 et c5q1 e1 −→ c8q2) de la transition q1 e2 −→ q2. Les transitions

(30)

q0−→ qe1 1et q1 −→ qe2 2 sont donc des may-transitions.

Sur la figure 2.3b, tous les ´etats concrets (c3q1, c3q1 et c3q1) de l’ ´etat abstrait q1 sont la

cible d’une instance de la transition abstraite q0

e1

−→ q1. De m ˆeme, tous les ´etats concrets

(c6q2, c7q2et c8q2) de l’ ´etat abstrait q2sont la cible d’une instance de la transition abstraite

q1 −→ qe2 2. Les transitions q0

e1

−→ q1 et q1

e2

−→ q2 sont donc des must−-transitions qu’on

notera ainsi respectivement q0

e−1

−−→ q1et q1

e−2

−−→ q2.

Sur la figure 2.3c, tous les ´etats concrets (c0q0, c1q0 et c2q0) de l’ ´etat abstrait q0 sont

la source d’une instance de la transition abstraite q0

e1

−→ q1. De m ˆeme, tous les ´etats

concrets (c3q1, c4q1 et c5q1) de l’ ´etat abstrait q1 sont la source d’une instance de la

transition abstraite q1 e2 −→ q2. Les transitions q0 e1 −→ q1 et q1 e2

−→ q2 sont donc des

must+-transitions qu’on notera respectivement q0

e+1

−−→ q1 et q1

e+2

−−→ q2.

Enfin, sur la figure 2.3d, les transitions abstraites q0

e1

−→ q1 et q1

e2

−→ q2 poss `edent `a la

fois les propri ´et ´es d’une must−-transition et d’une must+-transition. Il s’agit donc de deux

must#-transitions qu’on notera respectivement q0

e#1 −→ q1 et q1 e#2 −→ q2. q0 e1 q1 c0q0 e1 c3q1 c1q0 c2q0 q2 e2 c7q2 e2 c4q1 c5q1 e2 c8q2 c6q2

(a) Illustration d’une s ´equence de may-transitions compos ´ee des may-transitions q0

e1 −→ q1et q1 e2 −→ q2 q0 e1- q1 c0q0 e1 c3q1 c4q1 e1 c1q0 c5q1 e1 c2q0 q2 e 2-c6q2 e2 c7q2 e2 c8q2 e2

(b) Illustration d’une s ´equence de must− -transitions compos ´ee des -transitions q0 e

− 1 −→ q1et q1 e − 2 −→ q2 q0 e1+ q1 c0q0 c4q1 e1 c1q0 e1 c2q0 e1 q2 e2+ c3q1 ee2 c6q2 2 c5q1 c7q2 e2 c8q2

(c) Illustration d’une s ´equence de must+ -transitions compos ´ee des -transitions q0 e

+ 1 −→ q1et q1 e + 2 −→ q2 q0 e1# q1 c0q0 e1 c3q1 c4q1 e1 c1q0 c5q1 e1 c2q0 e1 q2 e2# c6q2 e2 c7q2 e2 e2 c8q2 e2

(d) Illustration d’une s ´equence de must# -transitions compos ´ee des -transitions q0

e#1 −→ q1et q1 e # 2 −→ q2

Références

Documents relatifs

[r]

[r]

Le but du probl`eme ci-dessous est de d´efinir une classe de mots (les grands Dycks) de deux mani`eres (par une condition num´erique, par une grammaire) et de donner

Le sujet est (en principe) trop long pour le temps imparti, il est donc conseill´e de traiter en priorit´e les questions que l’on sait faire en en indiquant clairement la

[r]

Mais il y a une différence tout de même entre le coup frappé qui depuis le début était représenté par qui est un son bref avec les mains par exemple, et la note qui en

[r]

• Si les deux racines sont réelles, elles sont négatives (les coefficients du polynôme caractéristique indiquent deux racines de même signe dont la somme est négative)