La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "4 Modèles et langages Les statecharts Ingénierie du Logiciel : Spécification2 Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général)"— Transcription de la présentation:

1

2 4 Modèles et langages Les statecharts

3 Ingénierie du Logiciel : Spécification2 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

4 Ingénierie du Logiciel : Spécification3 Etat_AEtat_CEtat_B événement_1 événement_3 événement_1 événement_2 Les diagrammes Etat/Transition - Exemple - 1

5 Ingénierie du Logiciel : Spécification4 Les diagrammes Etat/Transition - Exemple - 2

6 Ingénierie du Logiciel : Spécification5 P1 P2 produce write C1 C2 read consume 0 12 write read producteur consommateur tampon Les diagrammes Etat/Transition - Exemple - 3

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

8 Ingénierie du Logiciel : Spécification7 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

9 Ingénierie du Logiciel : Spécification8 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)

10 Ingénierie du Logiciel : Spécification9 Etat_A Etat_C Etat_B événement_1 événement_3/Action_Y événement_1 événement_2/Action_X trigger : event[condition]/action les statecharts : notation d'un diagramme d'état conventionnel

11 Ingénierie du Logiciel : Spécification10 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.

12 Ingénierie du Logiciel : Spécification11 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

13 Ingénierie du Logiciel : Spécification12 Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée lancer reset valeur_anormale time_out reset début_réglage fin_réglage exemple (1)

14 Ingénierie du Logiciel : Spécification13 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

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

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

17 Ingénierie du Logiciel : Spécification16 Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée lancer reset valeur_anormale reset début_réglage fin_réglage time_out C [signal_capté] [signal_non_capté] exemple (2ter)

18 Ingénierie du Logiciel : Spécification17 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

19 Ingénierie du Logiciel : Spécification18 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

20 Ingénierie du Logiciel : Spécification19 Exemple.3 Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée lancer[signal_capté] reset valeur_anormale time_out/message_1 reset début_réglage fin_réglage exemple (3)

21 Ingénierie du Logiciel : Spécification20 Exemple.3bis Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée lancer reset valeur_anormale reset début_réglage fin_réglage time_out/message_1 [signal_capté] [signal_non_capté]/message_2 C exemple (3bis)

22 Ingénierie du Logiciel : Spécification21 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

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

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

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

26 Ingénierie du Logiciel : Spécification25 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

27 Ingénierie du Logiciel : Spécification26 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) º...

28 Ingénierie du Logiciel : Spécification27 Etat_X Etat_CEtat_B événement_1 événement_3/Action_Y événement_1 événement_2/Action_X Etat_DEtat_EEtat_A Etat_Y événement_4 événement_3 états orthogonaux : décomposition AND

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

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

31 Ingénierie du Logiciel : Spécification30 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 dans un état orthogonal Une action générée dans un état peut être "captée" dans tous les états orthogonaux

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

33 Ingénierie du Logiciel : Spécification32 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

34 Ingénierie du Logiciel : Spécification33 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

35 Ingénierie du Logiciel : Spécification34 en(Traitement) 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 valeur_anormale/ stop reset début_réglage fin_réglage time_out/message_1 [in(Connecté)]/go [in(Déconnecté)]/message_2 C ex(Traitement) déconnecter connecter senseur exemple (6)

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

37 Ingénierie du Logiciel : Spécification36 in(Traitement) Exemple.6bis moniteur (on) Déconnecté Connecté en attente ex(Traitement) déconnecter connecter senseur en marche calculéchantillonnage exemple (6bis) Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée lance r reset / stop valeur_anormale/ stop reset début_réglage fin_réglage time_out/message_1 [in(Connecté)]/go [in(Déconnecté)]/message_2 C

38 Ingénierie du Logiciel : Spécification37 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é] Et1Et2Et3 C Ev [c1] [c2] Et1Et2Et3 Ev[c1] Ev[c2]

39 Ingénierie du Logiciel : Spécification38 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 S lancer démarrer_une_commande Revient à nommer un nouveau événement pour l'utiliser plus tard

40 Ingénierie du Logiciel : Spécification39 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 Et1Et2 E1/A1 E2/A2 Et1Et2 E1 & E2 /A1;A2

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

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

43 Ingénierie du Logiciel : Spécification42 Et1Et2Et3Et4Et5 Et E1/A1 E2/A2 E le déclencheur est E1 et E2 et E3 factorisation et orthogonalité

44 Ingénierie du Logiciel : Spécification43 Et1Et2Et3Et4Et5 Et entrée en Et1 mais aussi Et3 factorisation et orthogonalité

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

46 Ingénierie du Logiciel : Spécification45 Et1 Et2 Et3 Et4 Et5 Et je sors aussi de Et3 ou de Et5 factorisation et orthogonalité

47 Ingénierie du Logiciel : Spécification46 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*

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

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

50 Ingénierie du Logiciel : Spécification49 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

51 Ingénierie du Logiciel : Spécification50 Réseau de Petri : processus concurrents parallèles t0 t3t2t1 cobegin coend

52 Ingénierie du Logiciel : Spécification51 Réseau de Petri : exemple ? 00 t1 11 t2 deadlock

53 Ingénierie du Logiciel : Spécification52 Réseau de Petri : exemple ? exclusion mutuelle 1 t1 11 t2

54 Ingénierie du Logiciel : Spécification53 Réseau de Petri : exemple producteur/consommateur/buffer t2 1 0 t1 p1 p2 t4 1 0 t3 p3 p4 1 p6 N 0 p7 p5


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

Présentations similaires


Annonces Google