diagramme état-transition
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
IGL301 - Spécification et vérification des exgiences
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
q0 q1 q2
a
b
c
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
q0 q1
créer emprunterq2 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
q0 q1
créer emprunterq2
renouveler
retourner
q3réserver
q4
retournerprêterSurRes
q5réserver
q6
retourner
prêterSurRes
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 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 <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?
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
or
Message
IGL301 - Spécification et vérification des exgiences
31
SDL - Guichet bancaire
Await card
Await PIN
Display "Re-try"
Display "Enter card"
Eject card
Await amount
Dispense cash
Amount entered
1st try ?
YN
Card entry
Good PIN
Bad PIN
Press END
Display "Enter card"
Retain card
Display "Enter PIN"
Display "select amount"
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
1state A
2state B
bad PIN (1st attempt)2
await PIN
1await card
entry
card entered
bad PIN (2nd attempt)/eject card
good PINetc.
IGL301 - Spécification et vérification des exgiences
39
Statechart - état hiérarchique
1
2
1.2
1.1
T1
T2
T3
T4
T2
T5
IGL301 - Spécification et vérification des exgiences
40
Statechart - hiérarchisation
3
2
1T4
T3
T4 T2
3
2
1T4
T3
T2
IGL301 - Spécification et vérification des exgiences
41
Statechart - historique
1
1.21.1
T3
2HT2
T4
IGL301 - Spécification et vérification des exgiences
42
Statechart - hiérarchisation
class editing
boat editing
race editing
seriesediting
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 editingresults
editing
class-button series-button race-button
results-button
boat-button entry-button
IGL301 - Spécification et vérification des exgiences
45
Statechart - concurrence
await IR signal
await 2nd
IR signal
< 10 sec,await 2nd smoke signal
await smoke signal
alarm off
alarm on
+ve-ve
alarm signal reset
smokesignal time-out
smokesignal/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é