• Aucun résultat trouvé

Slice & Test : options avanc´ees

Dans le document The DART-Europe E-theses Portal (Page 105-110)

Partie II Contributions 65

4.8 Slice & Test : options avanc´ees

130 •150

•170

•200

Figure 4.9 – D´ependances entre alarmes pour le programmeeurocheck

sont d´efinis de mani`ere unique.

Pour l’exemple de la figure 4.4, les d´ependances entre les alarmes sont illustr´ees dans la figure 4.9. Les alarmes 130et 200 sont des alarmes finales et l’ensemble{130,200}d´efinit une couverture minimale des alarmes par slicing. Les ensembles couvrants sont{6,13}et {6,15,17,20}.

4.8 Slice & Test : options avanc´ ees

Dans cette partie, nous introduisons les options avanc´ees de la fonction Slice & Test : min et smart, en nous basant sur les d´ependances entre les menaces ´etudi´ees dans la partie 4.7. Soit A l’ensemble des alarmes dep.

4.8.1 Option min

Cette option pr´esente une solution interm´ediaire entre les deux options all et each pr´esent´ees pr´ec´edemment (partie 4.6). Avec cette option (voir figure 4.10a), l’op´eration deslicing est effectu´eek fois pour les ensembles couvrantsA1, A2, . . . , Akd’unecouverture minimale des alarmes par slicing de A et les slices pA1, pA2, . . . , pAk sont produites telles que

∀i∈ {1,2, . . . , k}, Ai 6=∅ etA1∪A2∪. . .∪Ak =A.

Ensuite, l’analyse dynamique est appliqu´ee s´epar´ement `apA1, pA2, . . . , pAk.

Les crit`eres du slicing A1, A2, . . . , Ak sont choisis en fonction de d´ependances entre les alarmes. Si toutes les alarmes sont d´ependantes les unes des autres alors l’option min devient identique `a l’option all. Si toutes les alarmes sont ind´ependantes, alors l’option min devient identique `a l’option each.

4.8. Slice & Test : options avanc´ees

Figure 4.10 – Slice & Test : options avanc´ees

Nous avons montr´e dans le lemme 4.7.2 que ce type de couverture existe et que ses ensembles couvrants sont d´efinis d’une mani`ere unique. Techniquement, il suffit de choisir un ensemble de repr´esentants a1, . . . , ak des alarmes finales de A, ensuite d´eterminer les ensembles Ai avecAi =labels(pai)∩Aet calculer lesslices pai parce quepai =pAi d’apr`es le lemme 4.7.1(e).

La fonctionmin d´ecrite dans l’algorithme 1 proc`ede ainsi. Elle initialise les ensembles S, B et U d’alarmes contenant les alarmes avec le statut respectivement, safe, bug et

Algorithme 1 :min

Entr´ees : p: programme

A : ensemble des alarmes dep

Sorties : S, B, U : ensembles d’alarmes respectivement safe, bug etunknown.

Donn´ees : A1, . . . , Ak les ensembles couvrant de la couverture des alarmes de

unknown:S etB sont vides et U contient toutes les alarmes (lignes 1–3). Puis la fonction AnalyseDependance calcule les d´ependances de la relation ; (ligne 4). L’algorithme cal-cule les ensembles couvrantsA1, . . . , Akde lacouverture minimale des alarmes par slicing de l’ensemble A, en appliquant la fonction SelectionnerMin (ligne 5). Puis, pour chaque ensemble Ai, i ∈ {1, . . . , k}, le programme est simplifi´e par la fonction Slice et analys´e dynamiquement par la fonction AnalyseDynamique (lignes 6–9). Cette derni`ere construit le diagnostic pour les alarmes dep`a partir d’une analyse dynamique sur laslice pAi (voir la d´efinition 2). Le diagnostic est cumul´e par fusion de diagnostics `a chaque ´etape. Le diagnostic final est retourn´e par la fonction (ligne 10).

Cette option combine les avantages des options de base all et each d´ecrites dans la partie 4.6. En effet elle produit desslices plus simples que celle de l’optionall, par cons´e-quent, les alarmes les plus faciles `a classer sont moins p´enalis´ees par l’analyse des alarmes complexes. Le nombre de slices est au plusk, souvent beaucoup moins qu’avec each. De plus, chaque slice pAi est importante car elle peut permettre de classer le nœud feuille ai

qu’aucune autre slice pAj ne permettra de classer, donc l’analyse dynamique de pAi n’est jamais superflue.

Pour l’exemple de la figure 4.3, la figure 4.9 montre les d´ependances entre les alarmes et la figure 4.11 montre les crit`eres de slicing pour chacune des 4 m´ethodes : all, each, min et smart. Pour l’option min, les ensembles couvrants de la couverture minimale des alarmes par slicing sont A0 = {60,130} et A1 = {60,150,170,200}. sante produit deux slices : pA0 et pA1. Le temps complet requis par sante pour analyser les deux slices et classer les cinq alarmes est d’environ 6 secondes. Rappelons que ce temps ´etait de 25 secondes pour none, de 7 secondes pour all et de 13 secondes pour each.

4.8. Slice & Test : options avanc´ees crit`eres de slicing avec chaque option

all : {60,130,150,170,200}

each : {60},{130},{150},{170},{200}

min : A0 ={60,130},A1 ={60,150,170,200} smart : A01 ={60,130},A02 ={60,150,170,200} et si 60,150,170 restent unknown,A11 ={60,150,170} et si 60,150 restent unknown, A21 ={60,150}

et si 60 reste unknown,A31 ={60}

Figure 4.11 – D´eroulement de l’´etape Slice & Test pour le programme eurocheck avec les diff´erentes options

La faiblesse de cette option apparaˆıt lorsque l’analyse dynamique de pAi d´epasse le temps limite sans classer certaines alarmesa ∈Ai, tandis que l’analyse dynamique d’une slice ´eventuellement plus simple (par exemplepa) permettrait de classera. L’option sui-vante pallie cet inconv´enient.

4.8.2 Option smart

Cette option (voir figure 4.10b) applique l’optionmin it´erativement sur une s´equence d’ensembles d’alarmes Ai dont la taille card(Ai) diminue apr`es chaque it´eration. Initiale-ment, i = 0 et A0 = A. Pour chaque i ≥ 0, l’algorithme calcule la couverture minimale des alarmes par slicing {Ai1, Ai2, . . . , Aiki} de l’ensemble Ai en appliquant la fonction Se-lectionnerMin et ensuite g´en`ere les slices correspondantes. L’analyse dynamique g´en`ere Diagnostici pour Ai. Ensuite, la fonction Raffiner calcule Ai+1 comme l’ensemble des alarmes dans Ai\ends(Ai) qui demeurent non class´ees (unknown) par Diagnostici. No-tons que les alarmes finales deAi sont explicitement exclues dansAi+1, sinon nous aurions pu avoirAi+1=Ai et donc r´ep´eter la mˆeme op´eration. Enfin, on incr´ementeiet on r´ep`ete l’it´eration pour le nouvel ensemble Ai jusqu’`a ce que Ai+1 devienne vide.

La fonctionsmart d´ecrite dans l’algorithme 2 proc`ede ainsi. Elle initialise les ensembles S,B etU d’alarmes avec le statut, repectivement,safe,bugetunknown.S etB sont vides etU contient toutes les alarmes (lignes 1–3). Puis la fonctionAnalyseDependance calcule les d´ependances ; (ligne 4) et l’ensemble d’alarmes `a traiter dans la prochaine it´era-tion, appel´e Ai, par toutes les alarmes (ligne 6). Tant que l’ensemble d’alarmes `a traiter n’est pas vide, l’algorithme calcule les ensembles couvrants de la couverture minimale des alarmes de l’ensemble Ai par slicing (Ai1, . . . , Aiki) form´es de ki ensembles, en appliquant la fonction SelectionnerMin (ligne 8). Puis, pour chaque ensemble Aij, j ∈ {1, . . . , k}, le programme est simplifi´e par la fonction Slice et analys´e dynamiquement par la fonction AnalyseDynamique (lignes 9–12). Cette derni`ere (ligne 11) construit le diagnostic pour les alarmes de p `a partir d’une analyse dynamique sur la slice pAi

j (voir la d´efinition 2).

Algorithme 2 :smart Entr´ees : p: programme

A : ensemble des alarmes dep

Sorties : S, B, U : ensembles d’alarmes respectivement safe, bug etunknown.

Donn´ees : Ai : ensemble des alarmes trait´ees `a chaque it´erationi

Ai1, Ai2, . . . , Aiki les ensembles couvrants de la couverture minimale des alarmes par slicing de Ai

; relation de d´ependances surA

Le diagnostic est cumul´e par fusion de diagnostics `a chaque ´etape.

Ensuite, on calcule la valeur suivante de Ai (ligne 13) ce qui correspond `a la fonction

“Raffiner” dans la figure 4.10b. Le diagnostic final est retourn´e par la fonction (ligne 16).

Par exemple, dans la figure 4.11, A0 = A = {60,130,150,170,200} et l’ensemble {130,200} d´efinit une couverture minimale des alarmes par slicing de A0. Les ensembles couvrants sontA01 ={60,130}etA02 ={60,150,170,200}. Si l’analyse dynamique depA0

1 et pA02 ne classe pas 60, 150 et 170, les deux alarmes finales 130 et 200 sont retir´ees deA0 pour la prochaine it´eration (i= 1) etA1 ={60,150,170}. PourA1, l’ensemble{170}d´efinit une couverture minimale des alarmes par slicing et l’ensemble couvrant estA11 ={60,150,170} De nouveau, si l’analyse dynamique depA11 ne classe pas 60 et 150, seule l’alarme finale 170

est retir´ee de A1, et A2 =A21 ={60,150} pour la prochaine it´eration (i= 2). De nouveau si l’analyse dynamique de pA21 ne classe pas 60, seule l’alarme finale 150 est retir´ee de A2, etA3 =A31 ={60} pour la prochaine it´eration (i= 3) qui sera la derni`ere.

Lorsque Ai+1 devient vide, le diagnostic final classea ∈Acommesafe(respectivement

4.9. Correction de la m´ethode

Dans le document The DART-Europe E-theses Portal (Page 105-110)