Upload
placide-gauthier
View
107
Download
0
Embed Size (px)
Citation preview
4
Modèles et langages
Les statecharts
Ingénierie du Logiciel : Spécification 2
Les 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 – =>– ensemble de toutes les suites possibles d'événements– scénarios
possibles – comportements
possibles
Ingénierie du Logiciel : Spécification 3
Etat_A
Etat_C
Etat_B
événement_1
événement_1
événement_3
évén
emen
t_1
évén
emen
t_2
événement_2
Les diagrammes Etat/Transition - Exemple - 1
Ingénierie du Logiciel : Spécification 4
Les diagrammes Etat/Transition - Exemple - 2
Ingénierie du Logiciel : Spécification 5
P1 P2
produce
write
C1 C2
read
consume
0 1 2
write write
read read
producteur consommateur
tampon
Les diagrammes Etat/Transition - Exemple - 3
Ingénierie du Logiciel : Spécification 6
Les diagrammes Etat/Transition - Exemple - 3 (bis)
Ingénierie du Logiciel : Spécification 7
Les 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
Ingénierie du Logiciel : Spécification 8
les 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)
Ingénierie du Logiciel : Spécification 9
Etat_A
Etat_C
Etat_B
événement_1
événement_1
événement_3/Action_Y
évén
emen
t_1
évén
emen
t_2 /
Act
ion _
X
événement_2/Action_X
trigger : event[condition]/action
les statecharts : notation d'un diagramme d'état conventionnel
Ingénierie du Logiciel : Spécification 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.
Ingénierie du Logiciel : Spécification 11
Exemple : 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
Ingénierie du Logiciel : Spécification 12
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset
vale
ur_a
norm
ale
time_outreset
débu
t_ré
glag
e
fin_
régl
age
exemple (1)
Ingénierie du Logiciel : Spécification 13
• les conditions
un trigger de transition = event[cond] / 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 : event[cond]– 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
Ingénierie du Logiciel : Spécification 14
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer[signal_capté]
reset
vale
ur_a
norm
ale
time_outreset
débu
t_ré
glag
e
fin_
régl
age
exemple (2)
Ingénierie du Logiciel : Spécification 15
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset
vale
ur_a
norm
ale
time_outreset
débu
t_ré
glag
e
fin_
régl
age
[signal_non_capté]
exemple (2.bis)
Ingénierie du Logiciel : Spécification 16
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset
vale
ur_a
norm
ale
reset
débu
t_ré
glag
e
fin_
régl
age
time_out
C[signal_capté]
[signal_non_capté]
exemple (2ter)
Ingénierie du Logiciel : Spécification 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 event[cond] en deux (ou plus)
• équivalent à deux transitions (ou plus)
• il permet de factoriser une partie commune de
l'expression d'un trigger event[cond]
un connecteur "condition" = factorisation de la partie event
Ingénierie du Logiciel : Spécification 18
• Les actions• un trigger de transition = event[cond] / 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 : event[cond] / action1 ; action2 ; action3
Ingénierie du Logiciel : Spécification 19
Exemple.3
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer[signal_capté]
reset
vale
ur_a
norm
aletime_out/message_1
reset
débu
t_ré
glag
e
fin_
régl
age
exemple (3)
Ingénierie du Logiciel : Spécification 20
Exemple.3bis
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset
vale
ur_a
norm
ale
reset
débu
t_ré
glag
e
fin_
régl
age
time_out/message_1
[signal_capté]
[signal_non_capté]/message_2
C
exemple (3bis)
Ingénierie du Logiciel : Spécification 21
La 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 ---> on ne voit pas dans quel état élémentaire il se trouve
– au niveau diagramme détaillant cet état cluster : --> 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
Ingénierie du Logiciel : Spécification 22
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer[signal_capté]
reset
vale
ur_a
norm
ale
time_out/message_1débu
t_ré
glag
e
fin_
régl
age
lancé
exemple (4)
Ingénierie du Logiciel : Spécification 23
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer[signal_capté]
reset
vale
ur_a
norm
aletime_out/message_1
reset
débu
t_ré
glag
e
fin_
régl
age
On Offallumer
éteindre
exemple (4bis)
Ingénierie du Logiciel : Spécification 24
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer[signal_capté]
reset
vale
ur_a
norm
aletime_out/message_1
reset
débu
t_ré
glag
e
fin_
régl
age
Offallumer
éteindre
On
exemple (4ter)
Ingénierie du Logiciel : Spécification 25
Entrer 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
Ingénierie du Logiciel : Spécification 26
La 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 º ==> (synchronisation)º ...
Ingénierie du Logiciel : Spécification 27
Etat_X
Etat_C
Etat_B
événement_1
événement_1
événement_3/Action_Y
évén
emen
t_1
évén
emen
t_2 /
Act
ion _
X
événement_2/Action_X
Etat_D Etat_E
Etat_AEtat_Y
événement_4
événement_3
états orthogonaux : décomposition AND
Ingénierie du Logiciel : Spécification 28
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset
vale
ur_a
norm
ale
reset
débu
t_ré
glag
e
fin_
régl
age
time_out/message_1
[signal_capté]
[signal_non_capté]/message_2
C
moniteur (on)
Déconnecté
Connecté
en attente
en marche
go stop
déco
nnec
ter
conn
ecte
r senseur
exemple (5)
Ingénierie du Logiciel : Spécification 29
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset / stop
vale
ur_a
norm
ale/
sto
p
reset
débu
t_ré
glag
e
fin_
régl
age
time_out/message_1
[signal_capté]/go
[signal_non_capté]/message_2
C
moniteur (on)
Déconnecté
Connecté
en attente
en marche
go stop
déco
nnec
ter
conn
ecte
r senseur
exemple (5)
Ingénierie du Logiciel : Spécification 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
Ingénierie du Logiciel : Spécification 31
moniteur
Déconnecté
Connecté
en attente
en marche
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
stop
vale
ur_a
norm
ale/
sto
p
débu
t_ré
glag
e
fin_
régl
age
_1
[_capté]/go
[signal_
C
go stop
déco
nnec
ter
conn
ecte
r senseur1 senseur2 ...
exemple (5bis)
Ingénierie du Logiciel : Spécification 32
synchronisation 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
Ingénierie du Logiciel : Spécification 33
synchronisation 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
Ingénierie du Logiciel : Spécification 34
en(T
rait
emen
t)
Exemple.6
moniteur (on)
Déconnecté
Connecté
en attente
en marche
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset / stop
vale
ur_a
norm
ale/
sto
p
reset
débu
t_ré
glag
e
fin_
régl
age
time_out/message_1
[in(Connecté)]/go
[in(Déconnecté)]/message_2
C
ex(T
rait
emen
t)dé
conn
ecte
r
conn
ecte
r senseur
exemple (6)
Ingénierie du Logiciel : Spécification 35
l'orthogonalité multi niveaux
la découpe (AND)
peut s'effectuer à plusieurs niveaux imbriqués
Ingénierie du Logiciel : Spécification 36
in(T
rait
emen
t)
Exemple.6bis
moniteur (on)
Déconnecté
Connecté
en attente
ex(T
rait
emen
t)
déco
nnec
ter
conn
ecte
r senseur
en marche
calcul échantillonnage
exemple (6bis)
Attente de commande
Traitement du signal
Réglage des valeurs
Alarme déclenchée
lancer
reset / stop
vale
ur_a
norm
ale/
sto
p
resetdé
but_
régl
age
fin_
régl
age
time_out/message_1
[in(Connecté)]/go
[in(Déconnecté)]/message_2
C
Ingénierie du Logiciel : Spécification 37
• Factorisation et connecteurs – C-connecteurs : conditions– conditions mutuellement exclusives (sinon non-déterminisme)
Attente de commande
Traitement du signal
lancer C[signal_capté]
[signal_non_capté]
Et1
Et2
Et3
CEv
[c1]
[c2]
Et1
Et2
Et3
Ev[c1]
Ev[c2]
Ingénierie du Logiciel : Spécification 38
• factorisation et connecteurs – S-connecteurs : switch connectors
(factorisation des événements)
Attente de commande
Traitement du signal
Réglage des valeurs
reset
début_réglage
Slancer
démarrer_une_commande
Revient à nommer un nouveau événement pour l'utiliser plus tard
Ingénierie du Logiciel : Spécification 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
Et1 Et2E1/A1 E2/A2 Et1 Et2 E1 & E2 /A1;A2
Ingénierie du Logiciel : Spécification 40
Attente de commande
Traitement du signal
Alarme déclenchée
reset
reset
Attente de commande
Traitement du signal
Alarme déclenchée
reset
factorisation et connecteurs
Ingénierie du Logiciel : Spécification 41
Attente de commande
Traitement du signal
Alarme déclenchée
reset/stop
vale
ur_a
norm
ale/
sto
p
Attente de commande
Traitement du signal
Alarme déclenchée
/stop
valeur_anormale
reset
factorisation et connecteurs
Ingénierie du Logiciel : Spécification 42
Et1
Et2
Et3
Et4
Et5
EtE1/A1
E2/A2
E
le déclencheur est E1 et E2 et E3
factorisation et orthogonalité
Ingénierie du Logiciel : Spécification 43
Et1 Et2
Et3
Et4
Et5
Et
entrée en Et1 mais aussi Et3
factorisation et orthogonalité
Ingénierie du Logiciel : Spécification 44
Et1
Et2
Et3
Et4
Et5
Et
E
je sors si je suis en Et4 et Et5 et que E arrive
factorisation et orthogonalité
Ingénierie du Logiciel : Spécification 45
Et1Et2
Et3
Et4
Et5
Et
je sors aussi de Et3 ou de Et5
factorisation et orthogonalité
Ingénierie du Logiciel : Spécification 46
Entré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 ? ==> distinction historique superficielle à une couche H historique profond à tous les niveaux H*
Ingénierie du Logiciel : Spécification 47
in(T
rait
emen
t)
Déconnecté
Connecté
en attente
en marche
ex(T
rait
emen
t)dé
conn
ecte
r
conn
ecte
r
senseur
H
exemple (7)
Ingénierie du Logiciel : Spécification 48
Déconnecté
Connecté
en attente
en marche
déco
nnec
ter
conn
ecte
r
senseur
H*
rapide
lent
exemple (8)
Ingénierie du Logiciel : Spécification 49
les 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 > 0 º si une transition est effectuée un jeton est retiré de chaque
place entrante et un jeton est ajouté à chaque place sortante
Ingénierie du Logiciel : Spécification 50
Réseau de Petri : processus concurrents parallèles
1
0
0
0
0
0
0
0
0
t0
t3t2t1
cobegin
coend
Ingénierie du Logiciel : Spécification 51
Réseau de Petri : exemple ?
00
t1
1 1
t2
deadlock
Ingénierie du Logiciel : Spécification 52
Réseau de Petri : exemple ?
exclusion mutuelle
1
t1
1 1
t2
Ingénierie du Logiciel : Spécification 53
Réseau de Petri : exemple producteur/consommateur/buffer
t2
1
0
t1
p1
p2
t4
1
0
t3
p3
p4
1
p6
N
0p7
p5