Title: Mod
1Les statecharts
2Les diagrammes Etat/Transition
- Les diagrammes Etat/Transition (général)
- le modèle
- ensemble d'états S nœuds du graphe
- ensemble de transitions T S x I ? S arcs du
graphe - ensemble d'inputs I (ou événements) étiquette de
arcs - un état initial s0 ? S
- la sémantique
- ensemble de toutes les suites possibles de inputs
- gt
- ensemble de toutes les suites possibles
d'événements - scénarios possibles
- comportements possibles
3 Les diagrammes Etat/Transition - Exemple - 1
événement_1
événement_2
événement_1
événement_1
événement_2
événement_3
4 Les diagrammes Etat/Transition - Exemple - 2
5 Les diagrammes Etat/Transition - Exemple - 3
read
produce
C2
P2
C1
P1
write
consume
producteur
consommateur
write
write
0
1
2
read
read
tampon
6 Les diagrammes Etat/Transition - Exemple - 3 (bis)
7Les diagrammes Etat/Transition
- Les diagrammes Etat/Transition caractéristiques
- modélisation du contrôle (de la dynamique)
- modélisation exhaustive tous les scénarios
- modélisation simple et lisible (et formel)
- modélisation opérationnelle
- équivaut à une grammaire ? interprétation /
simulation possible - pas de concurrence, pas de // , pas de temps
réel - besoin de structuration
- états hiérarchiques et/ou complémentaires)
- besoin de distinction des statuts des arcs
- conditions / événements - externes /
internes - ... - besoin d'outils de simulation
8les statecharts
- Les "statechart"s
- Sur base des diagrammes d'états classiques avec
- transitions déclenchées par des triggers qui sont
des événements et/ou des conditions, externes ou
internes - à une transition on associe un concept d'action
si la transition a lieu l'action est exécutée - mécanisme de structuration hiérarchique (les
petits états dans les grands (composition XOR) - mécanisme de composition orthogonale
(composition AND) - accent sur le langage graphique (des
constructeurs syntaxiques utiles)
9les statecharts notation d'un diagramme d'état
conventionnel
trigger eventcondition/action
10- Exemple complet
- le système est un moniteur qui reçoit le signal
d'un senseur externesi le senseur est connecté
le moniteur traite le signal, si la valeur du
signal est en dehors d'une intervalle définie, le
système affiche un message et lance une alarme,
si l'opérateur ne répond pas à l'alarme dans un
délai fixé le système arrête le monitoring et
envoie un message. - l'opérateur peut ajuster l'intervalle des valeurs
acceptables après un arrêt dû à la détection
d'une anomalie ou après un autre arrêt volontaire
de l'opérateur.
11Exemple première analyse du moniteur
- Etats
- en attente
- en marche pour traiter le signal
- en réglage
- alarme déclenchée
- Evénements
- externes
- démarrer le traitement du signal lancer
- démarrer le réglage début_réglage
- revenir à l'état d'attente reset
- internes
- fin_réglage provient d'une horloge interne si
pas de commande de réglage pendant plus de x
secondes - time_out provient d'une horloge interne si
l'alarme est déclenchée depuis plus de y secondes
sans réaction - valeur_anormale provient de la comparaison de
la valeur captée par le senseur avec les limites
fixées par l'utilisateur
12 exemple (1)
lancer
reset
time_out
valeur_anormale
début_réglage
fin_réglage
reset
13- les conditions
- un trigger de transition eventcond / action
- condition seule cond
- la condition est testée tant qu'on est dans
l'état du départ de la transition, si elle est
vraie la transition a lieu immédiatement - événement seul event
- la transition a lieu immédiatement quand
l'événement a lieu - événement conditionnel eventcond
- la condition est testée à l'instant où
l'événement a lieu, si elle est vraie la
transition a lieu sinon pas de transition
14 exemple (2)
lancersignal_capté
reset
time_out
valeur_anormale
début_réglage
fin_réglage
reset
15 exemple (2.bis)
lancer
signal_non_capté
reset
time_out
valeur_anormale
début_réglage
fin_réglage
reset
16 exemple (2ter)
signal_non_capté
signal_capté
lancer
C
reset
valeur_anormale
début_réglage
fin_réglage
time_out
reset
17 - les connecteurs - 1
- un connecteur sur une transition peut être vu
comme un faux état (état sans durée) - il permet de scinder une partie de l'expression
du trigger eventcond en deux (ou plus) - équivalent à deux transitions (ou plus)
- il permet de factoriser une partie commune de
l'expression d'un trigger eventcond - un connecteur "condition" factorisation de
la partie event
18 - Les actions
- un trigger de transition eventcond / action
- l'action est lancée immédiatement quand la
transition a lieu (si cette transition a lieu) - une action
- génère un événement ailleurs dans la description
- modifie une condition
- modifie une donnée
- décrit un autre effet ...
- une transition peut déclencher plusieurs actions
simultanées eventcond / action1 action2
action3
19Exemple.3
exemple (3)
lancersignal_capté
reset
valeur_anormale
début_réglage
fin_réglage
time_out/message_1
reset
20Exemple.3bis
exemple (3bis)
signal_non_capté/message_2
signal_capté
lancer
C
reset
valeur_anormale
début_réglage
fin_réglage
time_out/message_1
reset
21La décomposition hiérarchique des états
- Décomposition hiérarchique des états
- problème la complexité des diagrammes à partir
d'un certain nombre d'états - idée un diagramme d'état peut être vu comme un
état simple (clustering) et il sera intégré dans
un diagramme de plus haut niveau qui, à son tour,
peut être vu comme un état simple... - principe on sait qu'à un moment donné le
système se trouve dans un seul état - au niveau cluster on voit tout un diagramme
comme un état ---gt on ne voit pas dans quel état
élémentaire il se trouve - au niveau diagramme détaillant cet état cluster
--gt on voit les transitions internes dans ce
cluster - questions gérer la dépendance
- entrer dans un cluster / entrer dans ses
composantes - sortir du cluster / sortir des composantes
22 exemple (4)
lancé
lancersignal_capté
reset
valeur_anormale
début_réglage
fin_réglage
time_out/message_1
23 exemple (4bis)
allumer
On
Off
éteindre
lancersignal_capté
reset
valeur_anormale
début_réglage
fin_réglage
time_out/message_1
reset
24 exemple (4ter)
On
lancersignal_capté
reset
allumer
valeur_anormale
début_réglage
fin_réglage
time_out/message_1
reset
éteindre
25Entrer et sortir d'un état cluster
- entrer et sortir d'un état cluster
- Une entrée à la bordure d'un état cluster
équivaut àune entrée à l'état marqué "entrée par
défaut" parmi ses états composants (ses
descendants) une entrée directe à un état
descendant est toujours possible - Une sortie de la bordure du cluster provoque la
sortie de l'état descendant dans lequel il se
trouve quelque soit cet état une sortie
directe d'un état descendant est toujours possible
26La décomposition des états en état orthogonaux
- décomposition des états en états orthogonaux
- problème l'explosion combinatoire du nombre
d'états à partir d'une certaine complexité du
comportement à décrire. - idée identifier des parties d'un comportement
comme des comportements (quasi-)autonomeset les
décrire séparément par des diagrammes
"orthogonaux" - principe à tout moment le système se trouve à
un état précis de chacun de ses diagrammes
orthogonaux - questions gérer la dépendance
- actions d'un diagramme / événements d'un
diagramme orthogonal - événement des différents diagrammes orthogonaux
- gt (synchronisation)
- ...
27 états orthogonaux décomposition AND
événement_4
Etat_X
événement_3
événement_1
événement_1
événement_2/Action_X
Etat_Y
événement_1
événement_2/Action_X
événement_3/Action_Y
28 exemple (5)
signal_non_capté/message_2
signal_capté
lancer
C
connecter
déconnecter
reset
valeur_anormale
début_réglage
fin_réglage
time_out/message_1
reset
go
stop
29 exemple (5)
signal_non_capté/message_2
signal_capté/go
lancer
C
connecter
déconnecter
reset / stop
valeur_anormale/ stop
début_réglage
fin_réglage
time_out/message_1
reset
go
stop
30 - Synchronisation entre états orthogonaux (1)
- actions / événements
- Une action générée dans un étatpeut être (peut
provoquer) un événement dans dans un état
orthogonal - Une action générée dans un état peut être
"captée" dans tous les états orthogonaux
31 exemple (5bis)
connecter
déconnecter
go
stop
32synchronisation d'états orthogonaux
- Synchronisation entre états orthogonaux (2)
- états / conditions
- être ou ne pas être dans un état peut être vu et
utilisécomme condition dans un état orthogonal - in (state) / not in (state)
- si le système est dans un état il est dans tous
ses sous-états
33synchronisation d'états orthogonaux
- Synchronisation entre états orthogonaux (3)
- états / événements
- l'entrée et la sortie d'un état peuvent être vues
et utilisées comme événements dans un état
orthogonal - en(state) entered (state) / ex(state)
exited (state) - si le système entre dans un état S, il déclenche
en(S) mais aussi en(AS) pour tout état AS qui est
ancêtre de A dans lequel il ne se trouvait pas
quand S est rentré - si le système sort d'un état S, il déclenche
ex(S) mais aussi ex(AS) pour tout état AS qui est
ancêtre de A dans lequel il ne se trouve pas
après la transition S
34Exemple.6
exemple (6)
in(Déconnecté)/message_2
in(Connecté)/go
lancer
connecter
C
déconnecter
reset / stop
valeur_anormale/ stop
début_réglage
fin_réglage
en(Traitement)
time_out/message_1
reset
ex(Traitement)
35 - l'orthogonalité multi niveaux
- la découpe (AND)
- peut s'effectuer à plusieurs niveaux imbriqués
36Exemple.6bis
exemple (6bis)
in(Déconnecté)/message_2
in(Connecté)/go
lancer
connecter
C
déconnecter
reset / stop
Connecté
valeur_anormale/ stop
début_réglage
fin_réglage
time_out/message_1
in(Traitement)
reset
ex(Traitement)
en marche
calcul
échantillonnage
37- Factorisation et connecteurs
- C-connecteurs conditions
- conditions mutuellement exclusives (sinon
non-déterminisme)
Evc1
c1
Ev
C
c2
Evc2
38- factorisation et connecteurs
- S-connecteurs switch connectors
(factorisation des événements)
démarrer_une_commande
lancer
reset
S
début_réglage
Revient à nommer un nouveau événement pour
l'utiliser plus tard
39 - factorisation et connecteurs
- généralisation les connecteurs de jonctions
- principe
- répartir les événements/condition et actions sur
un graphe - un seul chemin est parcouru
- le temps de parcours est toujours nul
E1/A1
E1 E2 /A1A2
E2/A2
40 factorisation et connecteurs
reset
reset
reset
41 factorisation et connecteurs
reset/stop
valeur_anormale/ stop
/stop
reset
valeur_anormale
42 factorisation et orthogonalité
E1/A1
E
E2/A2
le déclencheur est E1 et E2 et E3
43 factorisation et orthogonalité
entrée en Et1 mais aussi Et3
44 factorisation et orthogonalité
E
je sors si je suis en Et4 et Et5 et que E arrive
45 factorisation et orthogonalité
je sors aussi de Et3 ou de Et5
46Entrée et sauvegarde de l'histoire
- l'histoire et sa sauvegarde
- problème
- quand un état "cluster" est quitté on oublie tout
ce qui s'est passé si on re-rentre on doit
prendre l'état initial. Or, on souhaite parfois
retrouver un état "cluster" là ou l'a quitté - idée
- indiquer à un état "cluster" de se rappeler le
dernier état visité - une notation supplémentaire pour une entrée
'avec souvenance' - question
- gestion d'une entrée standard et d'une entrée
avec souvenance - quid des états imbriqués ? gt distinction
historique superficielle à une couche H
historique profond à tous les niveaux H
47 exemple (7)
connecter
déconnecter
H
in(Traitement)
ex(Traitement)
48 exemple (8)
connecter
déconnecter
H
rapide
lent
49les réseaux de Petri
- Réseaux de Petri
- modélisation principalement du contrôle
- - modélisation asynchrone et non déterministe
- concurrence - inter-blocage (deadlock) - famine
(starvation) - le modèle
- ensemble de places P (premier type de nœuds)
- ensemble de transitions T (second type de nœuds)
- ensemble d'arcs reliant places à transition ou
l'inverse A P x T U T x P - un marquage des places M M P ? Int
- un entier (nombre de jetons) associé à chaque
place - règles
- une transition t peut avoir lieu (enabled) si le
nombre de jetons de chaque place entrante est gt 0
- si une transition est effectuée un jeton est
retiré de chaque place entrante et un jeton est
ajouté à chaque place sortante
50Réseau de Petri processus concurrents parallèles
1
t0
0
cobegin
0
0
0
t3
t2
t1
0
0
0
coend
0
51Réseau de Petri exemple ?
deadlock
52Réseau de Petri exemple ?
exclusion mutuelle
53Réseau de Petri exemple producteur/consommateur/
buffer