Chapitre 1 - Informatique
Download
Report
Transcript Chapitre 1 - Informatique
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
1
Diagrammes état-transition
• automate
• machine à états finie
– Mealy
– Moore
• machine à états étendue
– SDL
– statechart
– ROOM
IGL301 - Spécification et
vérification des exgiences
2
Automate déterministe
• structure (Q,,,q0) où
– Q : ensemble des états
– : alphabet
– : fonction de transition définie sur
QQ
– 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
3
Automate : représentation
graphique
b
q0
a
q1
c
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
4
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
5
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
6
Solution 1
q0
créer
supprimer
q1
emprunter
q2
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
IGL301 - Spécification et
vérification des exgiences
7
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
8
Solution 2
renouveler
q0
créer
q1
emprunter
q2
annulerRés
réserver
q3
annulerRés
réserver
q5
...
réserver
supprimer
retourner
prêter
SurRes
retourner
retourner
prêter
SurRes
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
9
Exercice 3
• Décomposez votre spécification en
plusieurs diagrammes
• Exprimez les liens entre les
diagrammes
IGL301 - Spécification et
vérification des exgiences
10
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
11
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
12
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
13
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
14
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
15
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
16
Exercice 7
• Définissez la notion d’équivalence de
deux automates
IGL301 - Spécification et
vérification des exgiences
17
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
18
Machine à états de Mealy
IGL301 - Spécification et
vérification des exgiences
19
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
20
Exercice
• Spécifier une pile avec une machine de
Mealy
IGL301 - Spécification et
vérification des exgiences
21
Machine Mealy : exemple
d’une pile
état initial
IGL301 - Spécification et
vérification des exgiences
22
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
23
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
24
Machine de Mealy :
sémantique
IGL301 - Spécification et
vérification des exgiences
25
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
26
STD : exemple d’un guichet
bancaire
comment
Quel est
l’état
initial?
action
déterminer
good ou
bad?
trigger
état
IGL301 - Spécification et
vérification des exgiences
27
STD : exemple d’une pile
(UML)
IGL301 - Spécification et
vérification des exgiences
28
SDL
• SDL - Specification and Description
Language
• norme CCITT
IGL301 - Spécification et
vérification des exgiences
29
SDL
Message
State
Transition
Trigger
Response
(action with output)
or
or
Action
(no output)
Decision
IGL301 - Spécification et
vérification des exgiences
30
SDL - Guichet bancaire
Await
card
Card
ent ry
Display
"Enter PIN"
Await
PIN
Good
PIN
Press
END
Eject card
Bad
PIN
Display
"Enter card"
Retain card
N
Display
"Enter card"
1st
try
?
Display
"select
amount"
Y
Display
"Re-t ry "
Amount
ent ered
Dispense
cash
IGL301 - Spécification et
vérification des exgiences
Await
amount
31
SDL - Concurrence
un trait
pointillé
dénote un
envoi de
message
IGL301 - Spécification et
vérification des exgiences
32
SDL - Temporisateur (timer)
Timer 1
10 secs
Timer 1
IGL301 - Spécification et
vérification des exgiences
33
SDL - Exemple temporisateur
IGL301 - Spécification et
vérification des exgiences
34
SDL - exemple alarme
incendie
IGL301 - Spécification et
vérification des exgiences
35
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
36
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
37
statechart - notation
1
state A
1
await card
entry
2
state B
trigger (guard) /
action
card
entered
bad PIN (2nd attempt)/
eject card
2
await
PIN
good PIN
IGL301 - Spécification et
vérification des exgiences
bad PIN (1st
attempt)
etc.
38
Statechart - état hiérarchique
1
T1
2
1.1
T5
T2
T3
T4
T2
1.2
IGL301 - Spécification et
vérification des exgiences
39
Statechart - hiérarchisation
1
3
1
T4
3
T4
T3
T3
T4
T2
T2
2
2
IGL301 - Spécification et
vérification des exgiences
40
Statechart - historique
2
T2
1
H
1.1
T4
1.2
T3
IGL301 - Spécification et
vérification des exgiences
41
Statechart - hiérarchisation
series
editing
class
editing
race
editing
results
editing
boat
editing
IGL301 - Spécification et
vérification des exgiences
entry
editing
42
Statechart - hiérarchisation
ces deux
notations sont
équivalentes
IGL301 - Spécification et
vérification des exgiences
43
Statechart - hiérarchisation
class-button
class
editing
series-button
series
editing
race-button
race
editing
results-button
boat
editing
results
editing
boat-button
entry
editing
entry-button
IGL301 - Spécification et
vérification des exgiences
44
Statechart - concurrence
alarm
off
await IR
signal
+ve
-ve
await 2nd
IR signal
+ve/
send
alarm
signal
alarm
signal
await smoke
signal
reset
smoke
signal/
send
alarm
signal
alarm on
IGL301 - Spécification et
vérification des exgiences
smoke
signal time-out
< 10 sec,
await 2nd
smoke signal
45
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
46
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 pseudocode quand cela est nécessaire
– déclarez les variables d’état que vous utilisez dans les
IGL301 - Spécification et
47
actions
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
48