4 Modles et langages Les statecharts Ingnierie du

  • Slides: 53
Download presentation
4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification

4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification

Les diagrammes Etat/Transition • Les diagrammes Etat/Transition (général) • le modèle – – ensemble

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 s 0 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 2

Les diagrammes Etat/Transition - Exemple - 1 Etat_C _1 ne évé Etat_A évén eme

Les diagrammes Etat/Transition - Exemple - 1 Etat_C _1 ne évé Etat_A évén eme évén e _1 nt me nt_2 événement_2 ne événement_1 nt me men t_3 Ingénierie du Logiciel : Spécification Etat_B 3

Les diagrammes Etat/Transition - Exemple - 2 Ingénierie du Logiciel : Spécification 4

Les diagrammes Etat/Transition - Exemple - 2 Ingénierie du Logiciel : Spécification 4

Les diagrammes Etat/Transition - Exemple - 3 read produce P 2 P 1 producteur

Les diagrammes Etat/Transition - Exemple - 3 read produce P 2 P 1 producteur C 2 C 1 write consume write 1 0 read consommateur 2 read tampon Ingénierie du Logiciel : Spécification 5

Les diagrammes Etat/Transition - Exemple - 3 (bis) Ingénierie du Logiciel : Spécification 6

Les diagrammes Etat/Transition - Exemple - 3 (bis) Ingénierie du Logiciel : Spécification 6

Les diagrammes Etat/Transition • Les diagrammes Etat/Transition : caractéristiques • • • modélisation du

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 7

les statecharts • Les "statechart"s • Sur base des diagrammes d'états classiques avec •

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 8

les statecharts : notation d'un diagramme d'état conventionnel Etat_C _1 nt me ne évé

les statecharts : notation d'un diagramme d'état conventionnel Etat_C _1 nt me ne évé Etat_A évén eme évén e men trigger : t_3/ nt_2 / Acti on_X Acti on_Y événement_1 ne événement_2/Action_X _1 nt me Etat_B event[condition]/action Ingénierie du Logiciel : Spécification 9

 • Exemple complet • le système est un moniteur qui reçoit le signal

• Exemple complet • le système est un moniteur qui reçoit le signal d'un senseur externe si 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 10

Exemple : première analyse du moniteur • Etats – – en attente en marche

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 11

exemple (1) lancer Attente Traitement du signal reset re tim se e_ t ou

exemple (1) lancer Attente Traitement du signal reset re tim se e_ t ou t valeur_anormale fin_réglage début_réglage de commande Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 12

 • les conditions un trigger de transition = event[cond] / action • condition

• 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 13

exemple (2) lancer[signal_capté] Attente Traitement du signal reset re tim se e_ t ou

exemple (2) lancer[signal_capté] Attente Traitement du signal reset re tim se e_ t ou t valeur_anormale fin_réglage début_réglage de commande Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 14

exemple (2. bis) Attente fin_réglage début_réglage de commande reset re tim e_ se t

exemple (2. bis) Attente fin_réglage début_réglage de commande reset re tim e_ se t ou t Traitement du signal valeur_anormale lancer [signal_non_capté] Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 15

exemple (2 ter) [signal_non_capté] reset tim fin_réglage début_réglage de commande [signal_capté] C e_ re

exemple (2 ter) [signal_non_capté] reset tim fin_réglage début_réglage de commande [signal_capté] C e_ re se ou t t Traitement du signal valeur_anormale Attente lancer Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 16

 • les connecteurs - 1 • un connecteur sur une transition peut être

• 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 17

 • Les actions • un trigger de transition = event[cond] / action •

• 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] / action 1 ; action 2 ; action 3 Ingénierie du Logiciel : Spécification 18

Exemple. 3 exemple (3) lancer[signal_capté] Attente Traitement e_ re se t ou t/ me

Exemple. 3 exemple (3) lancer[signal_capté] Attente Traitement e_ re se t ou t/ me s sa ge _1 valeur_anormale du signal reset tim fin_réglage début_réglage de commande Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 19

Exemple. 3 bis exemple (3 bis) [signal_non_capté]/message_2 e_ re se t ou t/ Traitement

Exemple. 3 bis exemple (3 bis) [signal_non_capté]/message_2 e_ re se t ou t/ Traitement du signal reset tim fin_réglage début_réglage de commande [signal_capté] C me s sa ge _1 valeur_anormale Attente lancer Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 20

La décomposition hiérarchique des états • Décomposition hiérarchique des états • problème : la

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 21

exemple (4) lancer[signal_capté] Attente lancé Traitement de commande du signal res e tim e_

exemple (4) lancer[signal_capté] Attente lancé Traitement de commande du signal res e tim e_ ou t/m es sa ge _1 valeur_anormale fin_réglage début_réglage t Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 22

exemple (4 bis) allumer On éteindre lancer[signal_capté] Attente Traitement tim fin_réglage du signal reset

exemple (4 bis) allumer On éteindre lancer[signal_capté] Attente Traitement tim fin_réglage du signal reset e_ re s et ou t/m es sa ge _1 valeur_anormale de commande début_réglage Off Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 23

exemple (4 ter) On lancer[signal_capté] Attente Traitement e_ re s et ou t/m es

exemple (4 ter) On lancer[signal_capté] Attente Traitement e_ re s et ou t/m es sa ge _1 valeur_anormale éteindre du signal reset tim fin_réglage Off allumer début_réglage de commande Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 24

Entrer et sortir d'un état cluster • entrer et sortir d'un état cluster •

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 25

La décomposition des états en état orthogonaux • décomposition des états en états orthogonaux

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-)autonomes et 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 26

états orthogonaux : décomposition AND Etat_X événement_4 Etat_D Etat_E événement_3 Etat_C Etat_Y _1 nt

états orthogonaux : décomposition AND Etat_X événement_4 Etat_D Etat_E événement_3 Etat_C Etat_Y _1 nt me ne évé Etat_A évén eme nt_3 / nt_2 / Acti on_Y Ingénierie du Logiciel : Spécification on_X événement_1 ne événement_2/Action_X _1 nt me Etat_B 27

exemple (5) moniteur (on) senseur en marche C [signal_capté] Traitement du signal reset tim

exemple (5) moniteur (on) senseur en marche C [signal_capté] Traitement du signal reset tim e_ re s et ou t/ me s sa ge _1 valeur_anormale stop go en attente lancer de commande fin_réglage Connecté Attente début_réglage connecter déconnecter Déconnecté [signal_non_capté]/message_2 Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 28

exemple (5) moniteur (on) senseur en marche C [signal_capté]/go Traitement du signal reset /

exemple (5) moniteur (on) senseur en marche C [signal_capté]/go Traitement du signal reset / stop tim e_ re s et ou t/ me s sa ge _1 valeur_anormale/ stop go en attente lancer de commande fin_réglage Connecté Attente début_réglage connecter déconnecter Déconnecté [signal_non_capté]/message_2 Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 29

Synchronisation entre états orthogonaux (1) • actions / événements : • Une action générée

Synchronisation entre états orthogonaux (1) • actions / événements : • Une action générée dans un état peut être (peut provoquer) un événement 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 30

exemple (5 bis) senseur 1 senseur 2 . . . moniteur en marche Réglage

exemple (5 bis) senseur 1 senseur 2 . . . moniteur en marche Réglage des valeurs Ingénierie du Logiciel : Spécification C [_capté]/go stop Traitement du signal valeur_anormale/ stop lanc er _1 stop go en attente Attente de commande fin_réglage Connecté [signal_ début_réglage connecter déconnecter Déconnecté Alarme déclenchée 31

synchronisation d'états orthogonaux Synchronisation entre états orthogonaux (2) • états / conditions • être

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 32

synchronisation d'états orthogonaux Synchronisation entre états orthogonaux (3) • états / événements • l'entrée

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 33

Exemple. 6 exemple (6) moniteur (on) senseur [in(Déconnecté)]/message_2 Attente lancer de commande tim fin_réglage

Exemple. 6 exemple (6) moniteur (on) senseur [in(Déconnecté)]/message_2 Attente lancer de commande tim fin_réglage début_réglage ex(Traitement) en marche Traitement du signal reset / stop Connecté en attente C [in(Connecté)]/go e_ re s et ou t/ me s sa ge _1 valeur_anormale/ stop connecter déconnecter Déconnecté Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 34

l'orthogonalité multi niveaux la découpe (AND) peut s'effectuer à plusieurs niveaux imbriqués Ingénierie du

l'orthogonalité multi niveaux la découpe (AND) peut s'effectuer à plusieurs niveaux imbriqués Ingénierie du Logiciel : Spécification 35

Exemple. 6 bis exemple (6 bis) moniteur (on) senseur [in(Déconnecté)]/message_2 Attente lancer de commande

Exemple. 6 bis exemple (6 bis) moniteur (on) senseur [in(Déconnecté)]/message_2 Attente lancer de commande calcul échantillonnage tim fin_réglage début_réglage ex(Traitement) in(Traitement) en marche Traitement du signal reset / stop Connecté en attente C [in(Connecté)]/go e_ re s et ou t/ me ss a ge _1 valeur_anormale/ stop connecter déconnecter Déconnecté Réglage Alarme des valeurs déclenchée Ingénierie du Logiciel : Spécification 36

 • Factorisation et connecteurs – C-connecteurs : conditions – conditions mutuellement exclusives (sinon

• Factorisation et connecteurs – C-connecteurs : conditions – conditions mutuellement exclusives (sinon non-déterminisme) [signal_non_capté] lancer Attente C [signal_capté] de commande 1] Et 1 Ev [c Traitement du signal 1] Ev[c Et 2 Et 1 C [c 2] Et 3 Ingénierie du Logiciel : Spécification Ev[c 2 ] Et 3 37

 • factorisation et connecteurs – S-connecteurs : switch connectors (factorisation des événements) Attente

• factorisation et connecteurs – S-connecteurs : switch connectors (factorisation des événements) Attente de commande démarrer_une_commande S reset lancer Traitement du signal ge a l ég r Réglage d t_ u b é des valeurs Revient à nommer un nouveau événement pour l'utiliser plus tard Ingénierie du Logiciel : Spécification 38

 • factorisation et connecteurs • généralisation : les connecteurs de jonctions • principe

• 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 Et 1 E 1/A 1 E 2/A 2 Et 1 Ingénierie du Logiciel : Spécification E 1 & E 2 /A 1; A 2 Et 2 39

factorisation et connecteurs Attente Traitement reset de commande du signal rese t Alarme déclenchée

factorisation et connecteurs Attente Traitement reset de commande du signal rese t Alarme déclenchée Attente de commande reset Traitement du signal Alarme déclenchée Ingénierie du Logiciel : Spécification 40

factorisation et connecteurs Traitement reset/stop de commande Attente de commande reset /stop Traitement du

factorisation et connecteurs Traitement reset/stop de commande Attente de commande reset /stop Traitement du signal va leu r_ an or m du signal valeur_anormale/ stop Attente Alarme déclenchée ale Alarme déclenchée Ingénierie du Logiciel : Spécification 41

factorisation et orthogonalité E 1/A 1 Et Et 2 Et 4 Et 3 Et

factorisation et orthogonalité E 1/A 1 Et Et 2 Et 4 Et 3 Et 5 E E 2/A 2 le déclencheur est E 1 et E 2 et E 3 Ingénierie du Logiciel : Spécification 42

factorisation et orthogonalité Et Et 1 entrée en Et 1 mais aussi Et 3

factorisation et orthogonalité Et Et 1 entrée en Et 1 mais aussi Et 3 Et 2 Et 4 Et 3 Et 5 Ingénierie du Logiciel : Spécification 43

factorisation et orthogonalité Et Et 2 Et 4 E Et 3 Et 1 Et

factorisation et orthogonalité Et Et 2 Et 4 E Et 3 Et 1 Et 5 je sors si je suis en Et 4 et Et 5 et que E arrive Ingénierie du Logiciel : Spécification 44

factorisation et orthogonalité Et Et 2 Et 4 Et 3 Et 5 Et 1

factorisation et orthogonalité Et Et 2 Et 4 Et 3 Et 5 Et 1 je sors aussi de Et 3 ou de Et 5 Ingénierie du Logiciel : Spécification 45

Entrée et sauvegarde de l'histoire • l'histoire et sa sauvegarde • problème : –

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 46

exemple (7) senseur connecter déconnecter Déconnecté H Connecté ex(Traitement) in(Traitement) en attente en marche

exemple (7) senseur connecter déconnecter Déconnecté H Connecté ex(Traitement) in(Traitement) en attente en marche Ingénierie du Logiciel : Spécification 47

exemple (8) senseur connecter déconnecter Déconnecté H* Connecté en attente en marche rapide lent

exemple (8) senseur connecter déconnecter Déconnecté H* Connecté en attente en marche rapide lent Ingénierie du Logiciel : Spécification 48

les réseaux de Petri • Réseaux de Petri • modélisation principalement du contrôle •

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 49

Réseau de Petri : processus concurrents parallèles 1 t 0 0 cobegin 0 0

Réseau de Petri : processus concurrents parallèles 1 t 0 0 cobegin 0 0 t 1 0 t 2 0 0 t 3 0 coend 0 Ingénierie du Logiciel : Spécification 50

Réseau de Petri : exemple ? 1 0 0 1 t 2 t 1

Réseau de Petri : exemple ? 1 0 0 1 t 2 t 1 deadlock Ingénierie du Logiciel : Spécification 51

Réseau de Petri : exemple ? 1 1 1 t 2 t 1 exclusion

Réseau de Petri : exemple ? 1 1 1 t 2 t 1 exclusion mutuelle Ingénierie du Logiciel : Spécification 52

Réseau de Petri : exemple producteur/consommateur/buffer 1 p 5 N t 1 0 t

Réseau de Petri : exemple producteur/consommateur/buffer 1 p 5 N t 1 0 t 2 1 p 2 p 3 t 3 1 p 6 0 p 4 t 4 p 7 0 Ingénierie du Logiciel : Spécification 53