IGL301 - Spécification et vérification des exgiences 1 Diagramme état-transition (ref : Bray section 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, , ,q 0 ) où –Q : ensemble des états – : alphabet – : fonction de transition définie sur Q Q –q 0 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 q0q0 q1q1 q2q2 a b c Q = {q 0, q 1, q 2 } = {a, b, c} = {(q 0,a) q 1, (q 1,b) q 1, (q 1,c) q 2 } F = {q 2 }
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 q0q0 q1q1 créer emprunter q2q2 renouveler retourner 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 supprimer
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 q0q0 q1q1 créer emprunter q2q2 renouveler retourner q3q3 réserver q4q4 retourner prêter SurRes q5q5 réserver q6q6 retourner prêter SurRes 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 réserver annulerRés... supprimer
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 emprunter renouveler retourner supprimer inscrire désinscrire reserver preterSurRes annulerRes 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? trigger action é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 State Transition Trigger Response (action with output) Action (no output) Decision or Message
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 statechart - notation trigger (guard) / action 1 state A 2 state B bad PIN (1 st attempt) 2 await PIN 1 await card entry card entered bad PIN (2nd attempt)/ eject card good PIN etc.
IGL301 - Spécification et vérification des exgiences 39 Statechart - état hiérarchique T1 T2 T3 T4 T2 T5
IGL301 - Spécification et vérification des exgiences 40 Statechart - hiérarchisation T4 T3 T4 T T4 T3 T2
IGL301 - Spécification et vérification des exgiences 41 Statechart - historique T3 2 H T2 T4
IGL301 - Spécification et vérification des exgiences 42 Statechart - hiérarchisation class editing boat editing race editing series editing entry editing results editing
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 Statechart - hiérarchisation class editing boat editing race editing series editing entry editing results editing class-buttonseries-buttonrace-button results-button boat-buttonentry-button
IGL301 - Spécification et vérification des exgiences 45 Statechart - concurrence await IR signal await 2 nd IR signal < 10 sec, await 2 nd smoke signal await smoke signal alarm off alarm on +ve -ve alarm signal reset smoke signal time-out smoke signal/ send alarm signal +ve/ send alarm signal
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é