• Aucun résultat trouvé

3.2 Structure et contenu du modèle

3.2.4 Propriétés

Comme décrit par le méta-modèle de la figure 3.4, les propriétés de sécurité et de permissivité portent sur le comportement modifié par la stratégie, c’est-à-dire sur l’automate AN. La vérification des propriétés de sécurité et de permissivité

nécessite de raisonner sur des chemins d’exécution dans AN. Classiquement, on

va considérer AN comme une structure de Kripke dont les états sont étiquetés

par la satisfaction de l’invariant Inv?et des prédicats caractéristiques. Cette struc- ture nous permet d’interpréter des formules de logique temporelles, énonçant des

propriétés sur l’enchaînement des états le long des chemins d’exécution.

Les deux principales logiques temporelles outillées sont la LTL (Linear Time Lo- gic [Pnueli 1977]) et la CTL (Computation Tree Logic [Clarke 1986]). Pour un premier abord de ces logiques, le lecteur peut se référer à [Schnoebelen 1999]. La LTL ex- prime des propriétés pour des traces au cours du temps grâce aux quantificateurs X, pour l’état suivant, G, pour tous les états de la trace, F pour l’existence d’un état dans la trace. Cependant, cette logique ne permet pas d’exprimer les différentes possibilités d’évolution au cours du temps. On utilise pour cela la CTL qui définit les quantificateurs de branche A pour toutes les branches possibles, E pour l’exis- tence d’une branche. Un opérateur de CTL est la combinaison d’un quantificateur de temps de la LTL et d’un quantificateur de branche. En particulier, AG est l’opé- rateur d’invariance, EF est l’opérateur d’existence et EG l’invariance au sein d’une branche. Nous choisissons la CTL qui nous permet d’exprimer l’atteignabilité, base de la permissivité.

La propriété de sécurité s’énonce comme l’impossibilité d’atteindre un état catastrophique, c’est-à-dire AG Inv?.

La permissivité est la capacité du moniteur à ne pas empêcher le système d’évoluer dans son espace d’état. Cette définition ouvre de larges possibilités de modélisation. Nous choisissons de retenir l’existence de chemins entre états. Ce faisant, nous négligeons la longueur et le nombre des chemins. Un autre sacrifice, en faveur de la sécurité, consiste à ne requérir l’existence d’un chemin qu’au départ et à destination d’états non-catastrophiques.

Nous adoptons une modélisation de la permissivité décomposée par état de S et avec des degrés d’intensité. Les degrés sont obtenus par trois propriétés appliquées à un état non-catastrophique s ∈ S, de plus en plus fortes :

Atteignabilité simple de l’état s : EF Carac(s) L’état s est atteignable depuis l’état initial.

Atteignabilité universelle de l’état s : AGInv? ⇒EF Carac(s)

L’état s est atteignable depuis chaque état non-catastrophique. Atteignabilité continue de l’état s : AG



Inv? ⇒EFCarac(s) ∧ EG Carac(s) 

L’état s est atteignable depuis chaque état non-catastrophique et le système peut y rester indéfiniment.

Certaines transitions du comportement correspondent à des changements si- multanés de valeur de plusieurs variables abstraites indépendantes (correspon- dant à des franchissements de seuil des variables concrètes). En référence au cas à deux variables (cf. figure 3.2), ces transitions sont appelées diagonales. Elles sont possibles, et la vérification de la sécurité doit en tenir compte. Mais elles sont hau- tement improbables. Faire reposer la permissivité sur ces transitions, très difficiles à obtenir en pratique par la commande principale, n’est pas raisonnable. Les tran- sitions diagonales ne doivent donc pas être empruntées lors de la vérification de la permissivité. Pour repérer ces transitions, on ajoute une variable complémentaire booléenne diag. Initialement fausse, diag devient (définitivement) vraie lorsqu’une

3.2. Structure et contenu du modèle 47

transition diagonale est franchie. Pour ignorer les transitions diagonales, les pro- priétés d’atteignabilité sont renforcées :

Atteignabilité simple de l’état s : EF( Carac(s) ∧ ¬diag)

L’état s est atteignable par un chemin n’empruntant aucune transition diago- nale.

Atteignabilité universelle de l’état s : AG



¬diag ∧ Inv? ⇒EFCarac(s) ∧ ¬diag 

On exclut les chemins qui partent d’un état tel que diag = vrai. L’état à atteindre doit évidemment être tel que diag= f aux.

Atteignabilité continue de l’état s : AG



¬diag ∧ Inv? ⇒EFCarac(s) ∧ ¬diag ∧ EGCarac(s) 

On transforme de même la propriété d’atteignabilité continue.

Sur la figure 3.3, on constate que l’atteignabilité universelle de l’état A1 est vraie. En particulier, le chemin de A3 à A1 est possible en passant par A2, puis S1, puis S2. Il est à noter que sans la stratégie, une transition directe est possible. La permissivité modélisée rend donc bien compte d’une propriété globale qui s’abstrait de l’existence de transitions particulières.

Par défaut, la permissivité est choisie comme la conjonction des atteignabilités universelles de tous les états non-catastrophiques. Elle peut être ajustée, en degré et par état, en fonction du comportement et des tâches du système. D’une part, le comportement, en l’absence de moniteur, peut ne pas satisfaire toutes les propriétés d’atteignabilité par défaut, notamment à cause de dépendances. Les propriétés d’atteignabilité non-satisfaites ne modélisent pas la permissivité car le moniteur ne peut pas rendre atteignable un état qui ne l’était pas en son absence. Elles ne doivent donc pas être prises en compte dans la permissivité lors de la synthèse. D’autre part, en l’absence de solutions, la permissivité sera diminuée pour arriver à un compromis avec la sécurité : l’atteignabilité de certains états peut être sacrifiée. Si l’atteignabilité continue est fausse, le système ne peut pas toujours rester dans l’état et donc y accomplir des tâches. Si l’atteignabilité universelle est fausse, le moniteur a un effet irréversible, il peut confiner le système dans un sous-ensemble d’états.

On veut vérifier qu’une stratégie N associe les interventions correctement vis- à-vis de leurs pré-conditions statiques. Pour ce faire, définissons pour chaque intervention i la variable booléenne Assoi, vraie dans un état s ∈ S0 si et seulement

si ∃sA∈SA, Carac(sA)= Carac(s) ∧ i ∈ N(sA), c’est-à-dire que la projection de s dans

S est associée à l’intervention i. La validité s’exprime alors par :

AG^

i∈I

Assoi ⇒Stati

Au sein du même modèle, il peut arriver que plusieurs interventions modélisées ne soient pas compatibles, c’est-à-dire que leur application concomitante soulève

des conflits dommageables pour la sécurité. Un conflit entre les interventions de l’ensemble Icon f lse modélise parVi∈Icon f lAssoi. La validité est enrichie pour vérifier

l’absence de conflit. Pour un modèle contenant deux interventions a et b, qui sont conflictuelles, la validité devient par exemple :

AG ¬AssoaAssob∧AssoaStata∧AssobStatb !

Documents relatifs