• Aucun résultat trouvé

Nous supposerons à partir de maintenant que la spécification comportementale fournie par un utilisateur du système de vérification désigne les comportements valides de tout ou partie de l’application. Cette description des comportements corrects sera notée Spec.

2.3.1

Symptômes d’erreur associés à Spec

La notion de symptôme d’erreur désigne les traces qui lorsqu’elles sont observées déclenchent le signalement d’une erreur. Dans le cas qui nous concerne les symptômes d’erreur sont définis de manière indirecte. En effet, il convient de déduire leur nature à partir de celle de Spec. La spécification détermine un ensemble de traces dites valides. Les traces considérées sont des traces finies. Les traces invalides correspondraient naturel- lement au complémentaire de Spec dans l’ensemble des traces possibles. Nous noteronsΣ le support de Spec. Ainsi, l’ensemble des traces possibles correspond à TΣ∗. Cependant,

avec une telle définition des traces invalides, bon nombre d’entre elles pourraient être des préfixes de traces valides. Cela signifie qu’une trace invalides pourrait être continuée en une trace correcte sous certaines conditions.

Les traces représentant des exécutions complètes sont souvent représentées par des séquences infinies pour «occuper le futur» et évacuer ce problème de poursuite d’exé- cution. L’utilisation de traces temps-réel offre une alternative. Soit l’on utilise des traces représentant une infinité d’événements, soit l’on considère des traces représentant une ac- tivité finie sur une durée infinie. Ce subterfuge permet de déclarer la fin d’une exécution en accolant à la fin de la trace une durée infinie interdisant tout nouvel événement. Le complémentaire de Spec.∞ serait alors défini par rapport à TΣ∗.∞. Ainsi, toute trace ap- partenant au complémentaire de la spécification ne pourra être le préfixe d’aucune trace finie.

Un mauvais préfixe pour un ensemble de traces de durée infinie noté L, est une trace finie u telle que u.TΣ∗.∞ ait une intersection nulle avec L. Cela signifie que u ne peut plus désormais être «continué» en une trace de L. Un ensemble de traces L est dit un langage de sûreté si son complémentaire peut s’écrire comme l’union des langages u.TΣ∗.∞, pour chaque mauvais préfixe de L, noté ici u. De manière pratique toute trace finie, qui n’est pas un préfixe fini d’une trace appartenant à Spec.∞ est un mauvais préfixe de Spec.∞ et permet donc d’identifier tout un ensemble de traces invalides.

Définition 6 (Symptômes d’erreur de Spec) Soit Spec l’ensemble de traces identifiées comme valides. L’ensemble des symptômes d’erreur pour Spec correspond à l’ensemble

2.3. SYMPTÔMES D’ERREUR ET APPARITION DE L’ERREUR 47 des traces n’appartenant pas aux préfixes finis de Spec.∞

Nous noterons Pre f (L) l’ensemble des préfixes finis d’un ensemble de traces L. La pro- cédure de détection repose sur l’identification d’un ensemble de symptômes d’erreur per- mettant de capturer toutes les traces invalides associées à Spec.∞.

2.3.2

Date d’apparition de l’erreur

Pour pouvoir définir la latence de détection, il faut être capable de définir une date de référence identifiant l’apparition des erreurs dans la trace représentant l’état du système. Cela revient à déterminer les plus petites séquences d’observations correspondant à des symptômes d’erreur. Ce concept est à rapprocher de la notion de «minimal bad préfix» définie sur les traces non temporisées, [KV01], et en constitue l’extension au cadre des traces temporisées.

Propriété 1 (Monotonie du processus d’identification des symptômes d’erreur) Pour tout symptôme d’erreur s, alors toutes les continuations finies de s sont des symp- tômes d’erreur.

Pour tout préfixe de la spécification s0, alors tout préfixe de s0 est aussi un préfixe de la spécification

La première partie de la propriété est l’une des conséquences directes de la définition d’un symptôme d’erreur. Si u est un symptôme d’erreur alors pour tout w tel que u est un préfixe de w, w peut s’écrire u.v d’où w.TΣ∗.∞ est inclus dans u.T Σ∗.∞. Or tout élément

de u.TΣ∗.∞ est une trace incorrecte puisque u est un symptôme d’erreur. il en découle que w est aussi un symptôme d’erreur. La seconde partie de la propriété de monotonie est déduite de la propriété de transitivité intrinsèque à toute relation d’ordre : si u est inférieur à v et v est inférieur à w, alors u est inférieur à w. Ainsi, si s00 est un préfixe de s0, et s0 est un préfixe d’une trace correcte, alors s00 est aussi un préfixe de cette trace. L’ensemble des passés d’un symptôme d’erreur peut être totalement ordonné. Une fois cet ensemble ordonné, la monotonie nous assure que cet ensemble est décomposé en deux sous-ensembles eux mêmes ordonnés : l’ensemble des passés exempts d’erreur, et l’ensemble des passés qui sont des symptôme d’erreur. Il est donc possible de trouver une unique trace à la frontière de ces deux ensembles, et cette trace constituera le plus petit symptôme d’erreur associé au symptôme d’erreur traité.

Pour chaque symptôme d’erreur s, Pre f (s) contient l’ensemble des traces représen- tant un instant passé de l’exécution de s. Pre f (Spec.∞) et son complémentaire dans l’en- semble des traces finies forment une partition en deux de l’ensemble des traces finies TΣ∗. Il en va de même pour tout sous ensemble de TΣ∗. Ainsi, Pre f (s) est séparé en deux sous

exécution correcte, noté Pre f+(s). De l’autre, on trouve l’ensemble des passés de s qui font partie des symptômes d’erreur, notés Pre f−(s).

Propriété 2 (Séparation unique de Pre f+(s) et Pre f−(s)) Il existe une unique trace de

Pre f(s) telle que tout préfixe correct de s est inférieur à cette trace, et que tout préfixe incorrect est supérieur à cette trace : la borne inférieure de Pre f−(s) selon la relation préfixe.

Preuve :

A cause de la propriété de monotonie du processus de décision concernant la pré- sence d’une erreur dans une trace, nous pouvons affirmer que ∀x, y, x ∈ Pre f+(s) ∧ y ∈ Pre f−(s) ⇒ x est un préfixe de y. En effet, le contraire serait absurde puisque tout préfixe d’un préfixe correct est un préfixe correct, et qu’une trace ne peut appartenir à la fois à l’ensemble des préfixes de traces correctes et à l’ensemble des symptômes d’erreur. À partir de là, nous en déduisons que Pre f−(s) succède à Pre f+(s). Or, tout sous-ensemble X totalement ordonné d’un ensemble Y, possède au moins une borne inférieure contenue dans Y. Deux cas de figure peuvent se présenter en fonction de la façon dont on considère l’écoulement du temps. Si le temps s’écoule de manière discrète, alors Pre f−(s) est un domaine discret2 et contient sa borne inférieure. Si le temps s’écoule de manière conti-

nue, alors la borne inférieure de Pre f−(s) peut en toute théorie ne pas faire partie de cet ensemble et donc appartenir à Pre f+(s). Ainsi, la borne inférieure de Pre f−(s) peut ne pas être stricto sensu un symptôme d’erreur. Cependant, nous souhaitons utiliser cette borne inférieure comme un marqueur permettant d’identifier les erreurs dans tous les cas. Cette approximation se justifie puisque lorsque cette borne inférieure n’est pas un mini- mum, alors elle possède des successeurs infiniment proches qui eux sont des symptômes d’erreur.

Notons ≺ la relation d’ordre définie par la relation préfixe sur les traces. La borne inférieure d’un ensemble de traces totalement ordonnées selon ≺ se note In f≺(L). Ceci

nous permet de simplement définir la plus petite séquence d’observation permettant de «prouver» la présence d’une erreur, ou son infinie proximité.

Définition 7 (Ensemble des plus petits symptômes d’erreur) Étant donnée une spéci- fication Spec, l’ensemble des plus petit symptômes d’erreur correspond à

S ymptmin(Spec)=

[

u∈Pre f(Spec.∞)

In f≺(Pre f−(u))

2un ensemble est discret si la distance entre deux de ses éléments est minorée. Ici la distance utilisée sur

2.4. LATENCE DE DÉTECTION ET DÉTECTION AU PLUS TÔT 49