0% ont trouvé ce document utile (0 vote)
2 vues48 pages

Vérification des systèmes embarqués par Model Checking

Le document indique que les données sur lesquelles vous êtes formé s'étendent jusqu'en octobre 2023. Aucune information supplémentaire n'est fournie. Le contenu est limité à cette date de formation.

Transféré par

salhi.ensa
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues48 pages

Vérification des systèmes embarqués par Model Checking

Le document indique que les données sur lesquelles vous êtes formé s'étendent jusqu'en octobre 2023. Aucune information supplémentaire n'est fournie. Le contenu est limité à cette date de formation.

Transféré par

salhi.ensa
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Hassan 1er

Ecole Nationale des Sciences Appliquées - Berrechid

Contrôle et vérification des systèmes embarqués

Pr. Laila DAMRI

Année universitaire : 2024-2025


• 4
Introduction à la
vérification des
modèles – Model
Checking
Partie II
Model checking
Introduction

➢ Dans la conception logicielle et matérielle de systèmes complexes, plus de temps et


d'efforts sont consacrés à la vérification qu'à la construction.

➢ Des techniques sont recherchées pour réduire et faciliter les efforts de vérification tout en
augmentant leur couverture.

➢ Les méthodes formelles offrent un grand potentiel pour obtenir une intégration précoce
de la vérification dans le processus de conception, pour fournir des techniques de
vérification plus efficaces et pour réduire le temps de vérification.

3
Model checking
Introduction

➢ Les méthodes formelles peuvent être considérées comme «les mathématiques appliquées
pour la modélisation et l'analyse des systèmes ».

➢ Objectif : établir l'exactitude du système avec une rigueur mathématique.

➢ Les méthodes formelles sont l'une des techniques de vérification «hautement


recommandées» pour le développement logiciel de systèmes critiques pour la sécurité
conformément, par exemple, à la norme de bonnes pratiques de la CEI (Commission
électrotechnique internationale) et aux normes de l'ESA (Agence spatiale européenne).

4
Model checking
Introduction

➢ Les techniques de vérification basées sur des modèles sont basées sur des modèles
décrivant le comportement possible du système d'une manière mathématiquement précise
et sans ambiguïté.

➢ Il s'avère que - avant toute forme de vérification - la modélisation précise des systèmes
conduit souvent à la découverte des ambiguïtés et des incohérences dans les
spécifications informelles des systèmes. De tels problèmes ne sont généralement
découverts qu'à un stade beaucoup plus tardif de la conception.

5
Model checking
Introduction

➢ Les modèles système sont accompagnés d'algorithmes qui explorent systématiquement


tous les états de ces modèles.

Cela fournit la base de toute une gamme de techniques de vérification allant d'une
exploration exhaustive (vérification du modèle) à des expériences avec un ensemble
restrictif de scénarios dans le modèle (simulation), ou en réalité (test).

6
Model checking
Introduction

7
Model checking
Introduction

➢ Le model checking est une technique de vérification qui explore tous les états possibles
du système de manière brutale.

➢ Semblable à un programme d'échecs informatique qui vérifie les mouvements possibles,


un model checker, l'outil logiciel qui effectue la vérification du modèle, examine tous les
scénarios système possibles de manière systématique.

➢ De cette manière, on peut montrer qu'un modèle de système donné satisfait vraiment une
certaine propriété.

8
Model checking
Définitions

➢ « Model …
▪ connaître ou caractériser tous les états d’évolution du programme de contrôle
nécessaire la vérification.
▪ Exemple : le graphe des situations accessibles d’un GRAFCET ou d’un réseau de
Pétri.

➢ ... - Checking »
▪ vérifier des propriétés sur ces états ou la relation entre ces états.

➢ État
▪ Valeur des variables un instant donn .

9



Model checking
Vie du système et model checking

10
Model checking
Principe de model checking

11
Model checking
Principe de model checking

12
Model checking
Approches du model checking

➢ Le model checking utilise le même principe des approches reconnues dans la conception
d’un système. À voir :

▪ L’approche Top-down (ou Top-bottom).


▪ L’approche Bottom-up (ou Bottom-top).

13
Model checking
Approches du model checking

14
Model checking
Les systèmes réactifs

Programme classique

Caractéristiques :

▪ Termine.
▪ Retourne un résultat.
▪ Données complexes, contrôle séquentiel (≈ simple).

Exemple : compilateur, algo de tri

15
Model checking
Les systèmes réactifs

Programme classique

Vérifier un programme classique :

▪ Aspect temporel toujours identique, mais les prédicats sur les données peuvent être
complexes.

“Le programme termine et le tableau est trié”

16
Model checking
Les systèmes réactifs

Système réactif

➢ Les systèmes informatiques modernes se caractérisent par le fait qu’ils sont le résultat
d’un processus d’intégration complexe.

➢ Les systèmes informatiques modernes sont décrits en interconnectant des sous-systèmes


au travers de connecteurs architecturaux définissant des politiques de communications.
On parle alors de systèmes réactifs.

➢ C’est des systèmes qui interagissent avec un environnement par le bais de capteurs (prise
d’information) et d’actionneurs (action).

17
Model checking
Les systèmes réactifs

Système réactif

Caractéristiques :

▪ Ne doit pas terminer.

▪ Ne retourne pas de résultat.

▪ Données simples, contrôle distribué (≈ complexe).

Exemple : protocole, OS

18
Model checking
Les systèmes réactifs

Système réactif

Vérifier un système réactif :

▪ Aspect temporel très varié mais les prédicats sur les données sont souvent simples.

▪ “Si un processus demande infiniment souvent à être exécuté, alors l’OS finira par l’exécuter”.

▪ “Il est toujours possible de revenir à l’état initial”.

▪ “Chaque fois qu’une panne est détectée, une alarme est émise”.

▪ “Chaque fois qu’une alarme est émise, une panne a été détectée”. 19
Model checking
Les systèmes réactifs

Système de transition = systèmes réactifs


Exemple :

20
Model checking
Les systèmes réactifs

Propriétés sur systèmes réactifs

▪ Accessibilité. Une certaine situation peut être atteinte


✓ x peut valoir 0, toute instruction peut être exécutée.

▪ Invariance. Chaque état local respecte une bonne propriété


✓ x ne vaut jamais 0, le tableau ne déborde jamais.

▪ Sûreté. Quelque chose de mauvais n’arrive jamais


✓ J’accède au fichier uniquement si j’ai entré le bon PIN.

21
Model checking
Les systèmes réactifs

Propriétés sur systèmes réactifs

▪ Vivacité. Quelque chose de bon finit par arriver


✓ Le programme termine, le message finit toujours par être transmis.
✓ Le programme revient toujours à l’état initial.

▪ Équité. Quelque chose de bon se répète infiniment souvent


✓ Si un processus demande toujours la main, il l’aura infiniment.

▪ Équivalence. comportementale Est-ce que 2 systèmes sont équivalents ?


✓ Système simple de référence VS système optimisé

22
Model checking
Les systèmes réactifs

Propri t s de s curit (safety)


Exemple : L’ascenseur ne peut pas voyager la porte ouverte

A vérifier
1. Au départ, l’ascenseur ferme sa porte avant de démarrer
2. Après un start, open ne doit jamais arriver jusqu’ stopped
3. Après un open, start ne doit jamais arriver jusqu’ closed

Condition d’environnement
L’ascenseur est initialement arrêté, porte ouverte

23






Model checking
Les systèmes réactifs

Propri t s de vivacité (liveness)


Exemple : L’ascenseur ramasse les passagers qui l’appellent

A vérifier
Après call[i], l’ascenseur finit par s’arrêter l’étage i et y ouvre sa porte avant de redémarrer.

Condition d’environnement
Quand il monte (rep. descend), l’ascenseur parcourt tous les étages dans l’ordre de la direction
donnée, jusqu’ l’ordre d’arrêt (qui doit nécessairement arriver).

24




Model checking
Les systèmes réactifs : récapitulatif

➢ Système réactif = système de départ, monde réel.

➢ Machine à état P = syntaxe du modèle.

➢ Système de transition S = sémantique de P.

➢ Structure de Kripke M = adaptation de S pour MC.

25
Logique temporelle
Mots infinis

Présentation
Soit Σ un alphabet fini. Un mot infini sur Σ est une suite infinie d’éléments de Σ. In note Σω
l’ensemble des mots infinis sur Σ.

Exemple :
u = ababbbbbbb …
• u(1) = a
• u(2) = b
• u(3) = a
• u(4) = b
• u(5) = b
• u(4) = b 26
Logique temporelle
Mots infinis

Produit
Impossible  produit de concaténation de deux mots infinis.

Possible  concaténer un mot fini v avec un mot infini u.

Exemple :
v = babba
u = ababbbb …
vu = babbaababbbb …

Ce produit s’étend aux langages.


{ab, ba, aa, bb}* {bbbb …}
27
Logique temporelle
Mots infinis

Notation ω
Soit L un langage de mots finis. On note Lω l’ensemble des mots infinis obtenus par concatenation
(infinie) de mot L.

Exemples :
• {ab}ω : ne contient que le mot abababababab…
• {ab, b, c}ω : tous les mots sur {a, b, c} où tout a est suivi d’un b.
• {aa, b, c}ω : tous les mots sur {a, b, c} où les blocs de a sont de longueurs paire.
• {b*a}ω : tous les mots sur {a, b}, contenant un nombre infini de a.

Si u est un mot infini non vide, alors uω désigne l’unique mot de {u}ω.

28
Logique temporelle
Présentation de la logique temporelle

➢ Permettent d’exprimer les propriétés sur séquences d’observations.

➢ Utilisation de connecteurs temporels et de quantificateurs sur les chemins.

➢ Deux approches :

o Temps linéaire : propriétés des séquences d’exécutions (futur déterminé).

o Temps arborescent : propriétés de l’ arbre d’exécutions (tous les futurs possibles).

29
Logique temporelle

Logique Temporelle Linéaire


LTL

30
Logique temporelle
Logique Temporelle Linéaire (LTL)

La logique du temps linéaire (Linear temporal logic) sert à la modélisation d’événements pour un
temps discret (non quantifié) et linéaire.

➢ Syntaxe.
➢ Sémantique (mots infinis).
➢ Autres opérateurs et exemples.

31
Logique temporelle
Logique Temporelle Linéaire (LTL)

Syntaxe
On considère un alphabet fini Σ. Une formule LTL est construite en utilisant :

1. Les lettres de Σ (comme formules atomiques).

Exemple :
a est une formule LTL.

32
Logique temporelle
Logique Temporelle Linéaire (LTL)

Syntaxe
On considère un alphabet fini Σ. Une formule LTL est construite en utilisant :

2. Les opérateurs booléens classiques :

Exemple :

est une formule LTL.


33
Logique temporelle
Logique Temporelle Linéaire (LTL)

Syntaxe
On considère un alphabet fini Σ. Une formule LTL est construite en utilisant :

3. L’opérateur temporel unaire ο (next).

Exemple :

est une formule LTL.

34
Logique temporelle
Logique Temporelle Linéaire (LTL)

Syntaxe
On considère un alphabet fini Σ. Une formule LTL est construite en utilisant :

4. L’opérateur temporel binaire U (until).

Exemple :

est une formule LTL.

35
Logique temporelle
Logique Temporelle Linéaire (LTL)

Sémantique (1/ 4)
On considère une formule LTL φ sur Σ. On dit qu’un mot infini u ∈ ∑ω satisfait φ à la position i
,noté
(i ∈ N * ) quand :

• ,

Exemple :

36
Logique temporelle
Logique Temporelle Linéaire (LTL)

Sémantique (2/ 4)
On considère une formule LTL φ sur Σ. On dit qu’un mot infini u ∈ ∑ω satisfait φ à la position i
,noté
(i ∈ N * ) quand :

• (idem pour les autres opérateurs booléens).

37
Logique temporelle
Logique Temporelle Linéaire (LTL)

Sémantique (3/ 4)
On considère une formule LTL φ sur Σ. On dit qu’un mot infini u ∈ ∑ω satisfait φ à la position i
,noté
(i ∈ N * ) quand :

• ,

Exemple :

38
Logique temporelle
Logique Temporelle Linéaire (LTL)

Sémantique (4/ 4)
On considère une formule LTL φ sur Σ. On dit qu’un mot infini u ∈ ∑ω satisfait φ à la position i
,noté
(i ∈ N * ) quand :

• , s’il existe j ≥ 0 tel que :

✓ ,

✓ Pour tout 0 ≤ k < j,

Exemple :

39
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exemple explicatif
On considère :

40
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exemple explicatif
On considère :

41
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exemple explicatif
On considère :

42
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exercice d’application
On considère :

? 43
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exercice d’application
On considère :

 oui

 oui

 oui 44
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exercice d’application
On considère :

? ?

? 45
Logique temporelle
Logique Temporelle Linéaire (LTL)

Exercice d’application
On considère :

 oui  non

 oui avec j = 2

 oui avec j = 0 46
Logique temporelle
Logique Temporelle Linéaire (LTL)

Sémantique (suite)

Exemple :

47
Logique temporelle
Logique Temporelle Linéaire (LTL)

Opérateurs

48

Vous aimerez peut-être aussi