1 / 53

4 Modèles et langages

4 Modèles et langages. Les statecharts. 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

Télécharger la présentation

4 Modèles et langages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4 Modèles et langages Les statecharts

  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 Les diagrammes Etat/Transition - Exemple - 1 événement_1 événement_2 événement_1 événement_1 événement_2 événement_3 Ingénierie du Logiciel : Spécification

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

  5. Les diagrammes Etat/Transition - Exemple - 3 read produce C2 P2 C1 P1 write consume producteur consommateur write write 1 2 0 read read tampon 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_2/Action_X événement_1 événement_2/Action_X événement_3/Action_Y les statecharts : notation d'un diagramme d'état conventionnel trigger: event[condition]/action 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 exemple (1) lancer reset time_out valeur_anormale fin_réglage début_réglage reset 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 exemple (2) lancer[signal_capté] reset time_out valeur_anormale fin_réglage début_réglage reset Ingénierie du Logiciel : Spécification

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

  16. Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée exemple (2ter) [signal_non_capté] [signal_capté] lancer C reset valeur_anormale fin_réglage début_réglage time_out reset 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. Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée Exemple.3 exemple (3) lancer[signal_capté] reset valeur_anormale fin_réglage début_réglage time_out/message_1 reset Ingénierie du Logiciel : Spécification

  20. Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée Exemple.3bis exemple (3bis) [signal_non_capté]/message_2 [signal_capté] lancer C reset valeur_anormale fin_réglage début_réglage time_out/message_1 reset 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 exemple (4) lancé lancer[signal_capté] reset valeur_anormale fin_réglage début_réglage time_out/message_1 Ingénierie du Logiciel : Spécification

  23. Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée exemple (4bis) allumer On Off éteindre lancer[signal_capté] reset valeur_anormale fin_réglage début_réglage time_out/message_1 reset Ingénierie du Logiciel : Spécification

  24. Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée Off exemple (4ter) On lancer[signal_capté] reset allumer valeur_anormale fin_réglage début_réglage time_out/message_1 reset éteindre 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_C Etat_A Etat_D Etat_B Etat_E é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 Ingénierie du Logiciel : Spécification

  28. moniteur (on) senseur en marche en attente Attente de commande Traitement du signal Déconnecté Connecté Réglage des valeurs Alarme déclenchée exemple (5) [signal_non_capté]/message_2 [signal_capté] lancer C connecter déconnecter reset valeur_anormale fin_réglage début_réglage time_out/message_1 reset go stop Ingénierie du Logiciel : Spécification

  29. moniteur (on) senseur en marche en attente Attente de commande Traitement du signal Déconnecté Connecté Réglage des valeurs Alarme déclenchée exemple (5) [signal_non_capté]/message_2 [signal_capté]/go lancer C connecter déconnecter reset /stop valeur_anormale/ stop fin_réglage début_réglage time_out/message_1 reset go stop 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. senseur1 moniteur senseur2 ... [signal_ en marche en attente Déconnecté Connecté Attente de commande Traitement du signal Alarme déclenchée Réglage des valeurs lancer [_capté]/go C stop valeur_anormale/ stop fin_réglage début_réglage _1 exemple (5bis) connecter déconnecter go stop 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. senseur moniteur (on) en marche Attente de commande Traitement du signal Déconnecté Connecté Réglage des valeurs Alarme déclenchée en attente Exemple.6 exemple (6) [in(Déconnecté)]/message_2 [in(Connecté)]/go lancer connecter C déconnecter reset / stop valeur_anormale/ stop fin_réglage début_réglage en(Traitement) time_out/message_1 reset ex(Traitement) 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. moniteur (on) senseur Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée Déconnecté en attente Exemple.6bis exemple (6bis) [in(Déconnecté)]/message_2 [in(Connecté)]/go lancer connecter C déconnecter reset / stop Connecté valeur_anormale/ stop fin_réglage début_réglage time_out/message_1 in(Traitement) reset ex(Traitement) en marche calcul échantillonnage Ingénierie du Logiciel : Spécification

  37. Attente de commande Traitement du signal Et2 Et1 Et3 Et2 Et1 Et3 [signal_non_capté] [signal_capté] lancer C • Factorisation et connecteurs • C-connecteurs : conditions • conditions mutuellement exclusives (sinon non-déterminisme) Ev[c1] [c1] Ev C [c2] Ev[c2] Ingénierie du Logiciel : Spécification

  38. Attente de commande Traitement du signal Réglage des valeurs • 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 Ingénierie du Logiciel : Spécification

  39. Et1 Et2 Et1 Et2 • 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 /A1;A2 E2/A2 Ingénierie du Logiciel : Spécification

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

  41. Attente de commande Attente de commande Traitement du signal Traitement du signal Alarme déclenchée Alarme déclenchée factorisation et connecteurs reset/stop valeur_anormale/ stop reset /stop valeur_anormale Ingénierie du Logiciel : Spécification

  42. Et1 Et2 Et3 Et4 Et5 Et factorisation et orthogonalité E1/A1 E E2/A2 le déclencheur est E1 et E2 et E3 Ingénierie du Logiciel : Spécification

  43. Et1 Et2 Et3 Et4 Et5 Et factorisation et orthogonalité entrée en Et1 mais aussi Et3 Ingénierie du Logiciel : Spécification

  44. Et1 Et2 Et3 Et4 Et5 Et factorisation et orthogonalité E je sors si je suis en Et4 et Et5 et que E arrive Ingénierie du Logiciel : Spécification

  45. Et1 Et2 Et3 Et4 Et5 Et factorisation et orthogonalité je sors aussi de Et3 ou de Et5 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. senseur en marche Déconnecté Connecté en attente exemple (7) connecter déconnecter H in(Traitement) ex(Traitement) Ingénierie du Logiciel : Spécification

  48. senseur en marche Déconnecté Connecté en attente exemple (8) connecter déconnecter H* rapide lent 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 t0 0 cobegin 0 0 0 t1 t2 t3 0 0 0 coend 0 Ingénierie du Logiciel : Spécification

More Related