4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes...

53
4 Modèles et langages Les statecharts

Transcript of 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes...

Page 1: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

4

Modèles et langages

Les statecharts

Page 2: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 3: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 4: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 4

Les diagrammes Etat/Transition - Exemple - 2

Page 5: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 6: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 6

Les diagrammes Etat/Transition - Exemple - 3 (bis)

Page 7: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 8: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 9: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 10: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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.

Page 11: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 12: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 13: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 14: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 15: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 16: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 17: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 18: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 19: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 20: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 21: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 22: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 23: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 24: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 25: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 26: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)º ...

Page 27: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 28: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 29: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 30: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 31: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 32: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 33: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 34: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 35: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 35

l'orthogonalité multi niveaux

la découpe (AND)

peut s'effectuer à plusieurs niveaux imbriqués

Page 36: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 37: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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]

Page 38: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 39: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 40: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 41: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 42: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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é

Page 43: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 43

Et1 Et2

Et3

Et4

Et5

Et

entrée en Et1 mais aussi Et3

factorisation et orthogonalité

Page 44: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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é

Page 45: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 45

Et1Et2

Et3

Et4

Et5

Et

je sors aussi de Et3 ou de Et5

factorisation et orthogonalité

Page 46: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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*

Page 47: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 48: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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)

Page 49: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 50: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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

Page 51: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 51

Réseau de Petri : exemple ?

00

t1

1 1

t2

deadlock

Page 52: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

Ingénierie du Logiciel : Spécification 52

Réseau de Petri : exemple ?

exclusion mutuelle

1

t1

1 1

t2

Page 53: 4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)

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