Partie I : L’analyse des systèmes 13
10.3 Réduction par bisimulation
S R
C1 C2
Figure 10.3: Le circuit 10.2 oùIest remplacé par deux commutateursC1etC2.
Nous allons montrer que si l’on ne distingue pas les actions sur
C
1etC
2alors le sous-système formé des deux commutateurs est en bisimulation avec l’interrupteurI
(ce sous-système peut donc être remplacé par
I
dans la description du circuit).10.3.2 M
ODÉLISATIONNous ne nous interessons ici qu’à la modélisation de l’interrupteur, des commutateurs et du mécanisme de va-et-vient.
La description de l’interrupteur
I
est sans surprise. Elle utilise deux fluxf
1etf
2 pour les tensions, un événementPression
modélisant une action sur le bouton de l’interrupteur et une variable d’étatouvert
indiquant la position (ouvert ou fermé) du composant. Le système de transition deI
est présenté sur la figure 10.4.node Interrupteur
flow f1, f2: bool; event Pression; state ouvert: bool;
trans true |- Pression -> ouvert: = not ouvert; assert (not ouvert) => (f1=f2);
edon F,{FF,TT} T,tt ε ε Pression Pression
Figure 10.4: Système de transition d’un interrupteur simple.
Les commutateurs se modélisent de manière tout aussi simple. Pour ce type de composant, une variable d’état (posHaut) indique simplement quel fil est connecté; celui du haut ou celui du bas. Le système de transition d’un commutateur est représenté sur la figure 10.5.
node Commutateur
flow f, haut, bas: bool; event Pression;
state posHaut: bool;
trans true |- Pression -> posHaut: = not posHaut; assert posHaut => (f=haut);
(not posHaut) => (f=bas); edon
{FFF,TTT, TTF,FFT} T, F,{FFF,TTT, TFT,FTF} ε ε Pression Pression
Figure 10.5: STI d’un commutateur utilisé pour un système va-et-vient. Les configurations sont représentées par des affectations du vecteur (posHaut, f, haut, bas).
Afin de comparer le sous-système constitué par les deux commutateurs à l’inter-rupteur simple, nous modélisons un noeud VaEtVient qui intègre et connecte les deux commutateurs comme représenté sur la figure 10.6. Le modèle de ce sous-système ne comporte pas de difficulté particulière mais on notera toutefois que, puisque l’on ne distingue pas les actions sur
C
1etC
2, le noeud VaEtVient ne possède qu’un événement Pression qui modélise, soit une pression surC
1soit une pression surC
2; d’où les deux vecteurs de synchronisation.Le système de transition du système va-et-vient est représenté sur la figure 10.7. node VaEtVient
flow f1, f2: bool; event Pression;
trans true |- Pression -> ; sub B1, B2: Commutateur; sync <Pression,B1.Pression>;
<Pression,B2.Pression>; assert f1 = B1.f; B2.f = f2; B1.haut = B2.haut; B1.bas = B2.bas; edon C1 C2 VaEtVient f1 haut f2 bas haut bas f f
Figure 10.6: Le sous-système va-et-vient
FTtt FF{TT,FF} {TT,FF} TT TFtt Pression Pression Pression Pression ε ε ε ε
Figure 10.7: STI du système va-et-vient. Les configurations sont représentées par des affectations du vecteur (B1.posHaut, B2.posHaut, f1, f2).
10.3. RÉDUCTION PAR BISIMULATION
Pour montrer que les STI du va-et-vient et de l’interrupteur (figure 10.4) sont en bisimulation il suffit de remarquer l’autobisimulation [22] pour le va-et-vient: elle nous fournit les classes d’équivalence d’états suivantes: f
FF;TT
getfFT;TF
g. Lorsque l’on se ramène au graphe quotient par cette relation d’équivalence, on obtient le STI de la figure 10.8 qui isomorphe à celui de l’interrupteur.FTtt TFtt TT{TT,FF} FF{TT,FF} Pression Pression ε ε
Figure 10.8: Le STI quotient du système va-et-vient par la relation d’équiva-lencefFF;TTgetfFT;TFg.
11
11
SIMULATION ET ANALYSES QUALITATIVES
11.1 LA SIMULATION DES MODÈLES ALTARICA
La simulation d’un modèle consiste à « jouer » de manière plus ou moins dirigée les règles d’évolution (données par la sémantique du modèle) du système modélisé. La simulation est employée lors de deux types d’activité:
La validation du modèle : avant même de se soucier du problème de la vérification de propriétés il est nécessaire de s’assurer que le modèle est valide par rapport aux comportements étudiés du système. Cette démarche consiste à se poser la question: le modèle réalisé est-il une vue abstraite du système? Pour répondre à cette question, les utilisateurs de MECprônent l’utilisation de l’outil de véri-fication. En effet, puisque le model-checker permet de vérifier des propriétés du modèle, il autorise en particulier la vérification de sa conformité par rapport au système. Bien qu’elle augmente la confiance que l’on peut avoir en son modèle, cette méthode a le facheux inconvénient de nécessiter (justement) un calcul de propriété qui peut prendre du temps et de l’espace mémoire (dans MEC, le prin-cipal problème est l’obtention du modèle global par le calcul du produit synchro-nisé).
La méthode la plus répandue pour valider un modèle est la simulation pas-à-pas. Elle est non exhaustive mais elle permet de s’assurer que pour les scénarios joués par l’utilisateur, le modèle se comporte comme le système. Les simulateurs de modèle sont souvent dotés d’une interface graphique afin de faciliter la visuali-sation des comportements du système (p. ex. UPPAAL[25] ou FIABEX[1]). L’étude du système : la simulation consistant à générer des comportements du
système à partir du modèle, elle peut être utilisée pour la construction du graphe des états du système. De nombreux algorithmes de vérification sont basés sur cette construction.
Bien que AltaRica soit un langage essentiellement textuel, il est mis en œuvre dans un atelier de saisie graphique (l’atelier AltaRica) qui ressemble à un logiciel de CAO. Les spécifications de cet atelier comprenait l’intégration d’un simulateur graphique de modèles.
Du fait de la mise en parallèle des tâches du projet, l’atelier AltaRica ne met pas tout à fait en œuvre la sémantique du langage telle que spécifiée au chapitre 9.
La mise en œuvre de la sémantique du langage est délicate car elle nécessite le développement d’un « solveur » de contraintes. Ce solveur est nécessaire pour le calcul
des valeurs de flux pour un état donné. À l’heure actuelle le solveur utilisé n’est pas très performant; ceci n’est pas surprenant dans la mesure où nous n’avons posé aucune restriction sur les contraintes acceptées par le langage.
AltaRica est un modèle hiérarchique. La simulation d’un modèle AltaRica repose sur sa mise « à plat » ; celle-ci est formellement définie par la sémantique symbo-lique du langage (section 9.4, page 9.4). Cette sémantique nous permet de considérer un système AltaRica comme un seul composant. Toutefois elle nécessite que le sol-veur soit capable de résoudre des contraintes quantifiées. Le développement d’un tel solveur est prévu à court terme afin, en particulier, d’intégrer dans l’atelier AltaRica la sémantique définitive du langage.
11.2 ANALYSE QUALITATIVE DE SÉQUENCES
Dans cette section nous nous intéressons à la génération et à l’analyse de séquences d’événements à partir de modèles AltaRica. Ces séquences ont la particularité de me-ner le système dans des états critiques non souhaités (p. ex. la perte du système). L’ob-tention de ces séquences permet une étude qualitative des scénarios de défaillance et la prise de décision sur l’amélioration des parties les moins fiables du système. Cette prise de décision ne peut se faire à partir d’une liste exhaustive des scénarios de panne. En effet, si l’on considère un système à
N
composants, chacun pouvant subir une dé-faillance, alors le nombre de scénarios potentiels est2N
. Cette remarque justifie le faitque l’on ne s’intéresse qu’à un sous-ensemble de scénarios dits minimaux.
11.2.1 N
OTION DE SÉQUENCES MINIMALESDans la suite de cette section nous considérons une ensemble
E
d’événements. Nous notonsE?
l’ensemble des mots finis surE
etle mot vide. Étant donné un ordre<
surE?
et un sous-ensembleL
E?
représentant l’ensemble des scénarios critiques, notreobjectif est le calcul des mots minimaux de
L
pour<
. En d’autres termes, nous nous intéressons au calcul de l’ensemblemin
(L
)définit par :min
(L
)=fw
2L
j8w
02
L;w
06
< w
g.La pertinence du résultat du calcul des séquences est conditionnée par l’ordre
<
. Plusieurs critères de minimalité (l’ordre<
) pourraient être utilisés.La longueur : une séquence est minimale si sa longueur est minimale. Bien qu’il soit naturel de penser à ce critère il est bien trop restrictif pour être utilisé. En effet, si l’on suppose qu’il existe deux séquences menant à l’état non souhaité,
ab
etc
alors, l’ensemble des séquences minimales estf
c
g. Un tel résultat cache l’impli-cation dea
et deb
dans la réalisation de l’événement redouté. De plus, d’un point de probabiliste, rien ne permet d’affirmer queab
se produise moins souvent quec
(il suffit quec
soit une défaillance d’un composant très fiable).L’ordre préfixe : une séquence
s
est minimale si il n’existe pas dansL
(l’ensemble des séquences critiques), une séquences
0qui soit un préfixe de (c’est-à-dire qui commence)