530 likes | 909 Views
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.
E N D
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
Diagrammes état-transition • automate • machine à états finie • Mealy • Moore • machine à états étendue • SDL • statechart • ROOM IGL301 - Spécification et vérification des exgiences
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
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
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
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
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
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
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
Exercice 3 • Décomposez votre spécification en plusieurs diagrammes • Exprimez les liens entre les diagrammes IGL301 - Spécification et vérification des exgiences
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
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
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
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
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
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
Exercice 7 • Définissez la notion d’équivalence de deux automates IGL301 - Spécification et vérification des exgiences
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
Machine à états de Mealy IGL301 - Spécification et vérification des exgiences
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
Exercice • Spécifier une pile avec une machine de Mealy IGL301 - Spécification et vérification des exgiences
Machine Mealy : exemple d’une pile état initial IGL301 - Spécification et vérification des exgiences
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
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
Machine de Mealy : sémantique IGL301 - Spécification et vérification des exgiences
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
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
STD : exemple d’une pile (UML) IGL301 - Spécification et vérification des exgiences
SDL • SDL - Specification and Description Language • norme CCITT IGL301 - Spécification et vérification des exgiences
SDL Message State Transition Trigger or Response or (action with output) Action (no output) Decision IGL301 - Spécification et vérification des exgiences
SDL - Guichet bancaire IGL301 - Spécification et vérification des exgiences
SDL - Concurrence un trait pointillé dénote un envoi de message IGL301 - Spécification et vérification des exgiences
SDL - Temporisateur (timer) Timer 1 10 secs Timer 1 IGL301 - Spécification et vérification des exgiences
SDL - Exemple temporisateur IGL301 - Spécification et vérification des exgiences
SDL - exemple alarme incendie IGL301 - Spécification et vérification des exgiences
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
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
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
1 2 1.2 1.1 Statechart - état hiérarchique T1 T5 T2 T3 T4 T2 IGL301 - Spécification et vérification des exgiences
T4 T4 T3 T3 T4 T2 T2 3 2 1 3 2 1 Statechart - hiérarchisation IGL301 - Spécification et vérification des exgiences
1 1.2 1.1 2 T2 H T3 T4 Statechart - historique IGL301 - Spécification et vérification des exgiences
class editing boat editing race editing series editing results editing entry editing Statechart - hiérarchisation IGL301 - Spécification et vérification des exgiences
Statechart - hiérarchisation ces deux notations sont équivalentes IGL301 - Spécification et vérification des exgiences
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
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
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
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
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