1 / 48

Diagramme état-transition

Diagramme état-transition. (ref : Bray section 12. 6 - pages 2 66 à 2 83 et article Desharnais, J., Frappier, M., Mili, A.: State Transition Diagrams. ). Diagrammes état-transition. automate machine à états finie Mealy Moore machine à états étendue SDL statechart ROOM.

vine
Download Presentation

Diagramme état-transition

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. Diagramme état-transition (ref : Bray section 12.6- pages 266 à 283 et article Desharnais, J., Frappier, M., Mili, A.: State Transition Diagrams. ) IGL301 - Spécification et vérification des exgiences

  2. Diagrammes état-transition • automate • machine à états finie • Mealy • Moore • machine à états étendue • SDL • statechart • ROOM IGL301 - Spécification et vérification des exgiences

  3. Automate déterministe • structure (Q,,,q0) où • Q : ensemble des états •  : alphabet •  : fonction de transition définie sur Q    Q • q0  Q : état initial • peut aussi inclure l’ensemble F  Q des états finaux • l’automate est dit déterministe pcq  est une fonction plutôt qu’une relation IGL301 - Spécification et vérification des exgiences

  4. Automate : représentation graphique b a c q0 q1 q2 Q = {q0, q1, q2}  = {a, b, c}  = {(q0,a) q1, (q1,b) q1, (q1,c) q2} F = {q2} IGL301 - Spécification et vérification des exgiences

  5. Automate : modélisation • on s’en sert pour réprésenter les séquences d’évènements valides d’un système • un évèmenent peut prendre plusieurs formes • une entrée, une sortie, un appel de méthode, etc • les états sont souvent une abstraction de l’état du système • habituellement impossible de représenter tous les états du système avec un automate • founit un point de vue partiel • difficile de représenter le parallélisme IGL301 - Spécification et vérification des exgiences

  6. Exercice 1 • Utilisez un automate pour spécifier le comportement d’une bibliothèque • Prenez en compte seulement les prêts de livres aux membres • Décrivez les limitations et les informations implicites IGL301 - Spécification et vérification des exgiences

  7. Solution 1 créer emprunter q0 q1 q2 renouveler retourner supprimer • information implicite et limitations • point de vue d’un livre seulement • n’exprime pas les contraintes sur le membre • limite de prêt • n’indique pas si un membre peut emprunter plusieurs livres à la fois IGL301 - Spécification et vérification des exgiences

  8. Exercice 2 • Ajouter les réservations à l’exercice précédent • Décrivez les limitations et les informations implicites IGL301 - Spécification et vérification des exgiences

  9. Solution 2 annulerRés renouveler annulerRés ... créer emprunter q0 q1 q5 q2 réserver q3 réserver réserver prêterSurRes retourner retourner retourner supprimer prêterSurRes q4 q6 ... • limitations et informations implicites • ne représente que deux réservations à la fois • impossible de représenter toutes les réservations • n’exprime pas les contraintes sur le membre : • l’emprunteur courant ne peut réserver son livre • réservations servies dans l’ordre d’arrivée, mais annulés dans n’importe quel ordre IGL301 - Spécification et vérification des exgiences

  10. Exercice 3 • Décomposez votre spécification en plusieurs diagrammes • Exprimez les liens entre les diagrammes IGL301 - Spécification et vérification des exgiences

  11. Exercice 4 • Écrivez le pseudo-code d’un programme qui traite les évènements d’une bibliothèque • soyez le plus précis possible; • faites référence au modèle de données; • donnez toutes les préconditions et toutes les mises-à-jour de chaque évènement IGL301 - Spécification et vérification des exgiences

  12. Exercice 4 (suite) • traitez les évènements suivants : creer <idLivre> <titre> <auteur> <dateAcquisition> emprunter <idLivre> <idMembre> <dateEmprunt> renouveler <idLivre> <dateRenouvellement> retourner <idLivre> <dateRetour> supprimer <idLivre> inscrire <idMembre> <nom> <telephone> <limitePret> désinscrire <idMembre> reserver <idReservation> <idLivre> <idMembre><dateReservation> preterSurRes <idReservation> <dateEmprunt> annulerRes <idReservation> afficherPrets IGL301 - Spécification et vérification des exgiences

  13. Exercice 5 • Décrivez les liens entre vos automates et votre pseudo-code pour la bibliothèque • indiquez à quel état du système correspond un état de l’automate • indiquez le lien entre les préconditions des évènements et le pseudo-code • indiquez les forces et les limitations de la notation d’automate IGL301 - Spécification et vérification des exgiences

  14. Solution 5 • limitations des automates • les paramètres d’entrée et de sortie des évènements ne sont pas explicites • difficile de représenter entièrement l’espace du système • difficile de donner toutes les préconditions • ne donne pas les messages d’erreurs • comment déterminer si un programme satisfait un automate??? IGL301 - Spécification et vérification des exgiences

  15. Exercice 6 • Spécifiez à l’aide d’un automate le comportement d’un système téléphonique de base (POTS) • décrochez • composer un numéro • répondre à un appel • identifiez bien les entrées et les sorties IGL301 - Spécification et vérification des exgiences

  16. Exercice 6 (suite) • faire le modèle conceptuel de données du POTS • faire le diagramme de classe du POTS • faire les cas d’utilisation du POTS • quels liens y a-t-il entre ces diagrammes IGL301 - Spécification et vérification des exgiences

  17. Exercice 7 • Définissez la notion d’équivalence de deux automates IGL301 - Spécification et vérification des exgiences

  18. Machine à états finie • proposé par Mealy et Moore (séparément) • Mealy : sortie associée à une transition • Moore : sortie associée à un état • distingue entre les entrées et les sorties • sur réception d’une entrée, une sortie est produite • distinction avec automate • automate ne distingue pas entrée et sortie • on identifie dans le texte accompagnant l’automate la nature d’un évènement (entrée ou sortie) IGL301 - Spécification et vérification des exgiences

  19. Machine à états de Mealy IGL301 - Spécification et vérification des exgiences

  20. Machine de Mealy : convention • transition s1 --- i / o --> s2: • si l’entrée i est reçue alors que le système est dans l’état s1, la sortie o est produite et le nouvel état du système est s2 • i est aussi appelé le déclencheur (trigger) •   O : sortie inintéressante, ou absente • si une entrée est reçue et qu’aucune transition n’est définie pour cette entrée, il ne se passe rien (l’entrée est ignorée) IGL301 - Spécification et vérification des exgiences

  21. Exercice • Spécifier une pile avec une machine de Mealy IGL301 - Spécification et vérification des exgiences

  22. Machine Mealy : exemple d’une pile état initial IGL301 - Spécification et vérification des exgiences

  23. Caractéristiques d’une machine de Mealy • non hiérarchique • un état dénote l’état complet du système • le système est dans un seul état à la fois • une transition est atomique; elle ne peut être décomposée IGL301 - Spécification et vérification des exgiences

  24. Séquence : définitions • S* dénote l’ensemble de toutes les séquences (incluant la séquence vide ) formées à partir d’éléments de S • S+ dénote l’ensemble de toutes les séquences non vides formées à partir d’éléments de S • S* = S+  {} • on dénote par t1t2 la concaténation des séquence t1 et t2 IGL301 - Spécification et vérification des exgiences

  25. Machine de Mealy : sémantique IGL301 - Spécification et vérification des exgiences

  26. Diagramme état-transition généralisé • plusieurs notations utilisées • SDL • Statechart • ROOM • ad hoc (ex: celle du livre) IGL301 - Spécification et vérification des exgiences

  27. STD : exemple d’un guichet bancaire comment déterminer good ou bad? Quel est l’état initial? action trigger état IGL301 - Spécification et vérification des exgiences

  28. STD : exemple d’une pile (UML) IGL301 - Spécification et vérification des exgiences

  29. SDL • SDL - Specification and Description Language • norme CCITT IGL301 - Spécification et vérification des exgiences

  30. SDL Message State Transition Trigger or Response or (action with output) Action (no output) Decision IGL301 - Spécification et vérification des exgiences

  31. SDL - Guichet bancaire IGL301 - Spécification et vérification des exgiences

  32. SDL - Concurrence un trait pointillé dénote un envoi de message IGL301 - Spécification et vérification des exgiences

  33. SDL - Temporisateur (timer) Timer 1 10 secs Timer 1 IGL301 - Spécification et vérification des exgiences

  34. SDL - Exemple temporisateur IGL301 - Spécification et vérification des exgiences

  35. SDL - exemple alarme incendie IGL301 - Spécification et vérification des exgiences

  36. Exercice 8 • Spécifier le comportement d’un livre avec SDL • prenez en compte les prêts, les réservations et les retards IGL301 - Spécification et vérification des exgiences

  37. Statechart • machine à états hierarchique • concurrence • actions associées aux transitions et aux états • condition associée aux transitions IGL301 - Spécification et vérification des exgiences

  38. 1 state A 2 await PIN 2 state B 1 await card entry statechart - notation trigger (guard) / action card entered bad PIN (1st attempt) etc. bad PIN (2nd attempt)/ eject card good PIN IGL301 - Spécification et vérification des exgiences

  39. 1 2 1.2 1.1 Statechart - état hiérarchique T1 T5 T2 T3 T4 T2 IGL301 - Spécification et vérification des exgiences

  40. T4 T4 T3 T3 T4 T2 T2 3 2 1 3 2 1 Statechart - hiérarchisation IGL301 - Spécification et vérification des exgiences

  41. 1 1.2 1.1 2 T2 H T3 T4 Statechart - historique IGL301 - Spécification et vérification des exgiences

  42. class editing boat editing race editing series editing results editing entry editing Statechart - hiérarchisation IGL301 - Spécification et vérification des exgiences

  43. Statechart - hiérarchisation ces deux notations sont équivalentes IGL301 - Spécification et vérification des exgiences

  44. class editing boat editing race editing series editing results editing entry editing class-button series-button race-button results-button boat-button entry-button Statechart - hiérarchisation IGL301 - Spécification et vérification des exgiences

  45. await IR signal await 2nd IR signal alarm off alarm on < 10 sec, await 2nd smoke signal await smoke signal Statechart - concurrence smoke signal/ send alarm signal smoke signal +ve/ send alarm signal alarm signal +ve time-out reset -ve IGL301 - Spécification et vérification des exgiences

  46. Exercice 9 • Donnez un statechart pour le système de guichet bancaire • Donnez un statechart pour le POTS IGL301 - Spécification et vérification des exgiences

  47. TP4 - partie I • Spécifiez à l’aide d’un statechart un four micro-onde ayant les caractéristiques suivantes • trois niveaux de température (low, medium, high) • timer (chronomètre) • defrost (3 étapes de durée égale : la première à high, la deuxième à medium et la dernière à low) • programmation jusqu’à 3 étapes où l’utilisateur peut spécifier la température et la durée • définissez les touches appropriées et réalistes pour permettre à l’utilisateur d’utiliser ces fonctions • par souci de simplicité, ne spécifiez pas l’affichage à l’écran; spécifiez seulement les actions de contrôle pour l’élément chauffant et les alarmes sonores (fin de cuisson ou fin d’un timer, par exemple) • décrivez le traitement des actions sous forme de pseudo-code quand cela est nécessaire • déclarez les variables d’état que vous utilisez dans les actions IGL301 - Spécification et vérification des exgiences

  48. TP4 - partie II • Utilisez un statechart pour spécifier un aspect de votre projet de session • Décrivez le problème sous forme textuelle et donnez le statechart • La taille du problème doit être similaire à celle du micro-onde • Soyez suffisamment précis pour qu’un observateur externe (comme moi) qui ne connait pas du tout le problème puisse interpréter votre spécification sans ambiguïté IGL301 - Spécification et vérification des exgiences

More Related