Вы находитесь на странице: 1из 48

Diagramme tat-transition

(ref : Bray section 12.6 - pages


266 283 et article Desharnais,
J., Frappier, M., Mili, A.: State
Transition Diagrams. )
IGL301 -

Diagrammes tat-transition
automate
machine tats finie
Mealy
Moore

machine tats tendue


SDL
statechart
ROOM
IGL301 -

Automate dterministe
structure (Q,,,q0) o
Q : ensemble des tats
: alphabet
: fonction de transition dfinie sur
QQ
q0 Q : tat initial
peut aussi inclure lensemble F Q des tats
finaux

lautomate est dit dterministe pcq est une


fonction plutt quune relation
IGL301 -

Automate : reprsentation
graphique
b

q0

q1

q2

Q = {q0, q1, q2}


= {a, b, c}
= {(q0,a) q1, (q1,b) q1, (q1,c) q2}
F = {q2}
IGL301 -

Automate : modlisation
on sen sert pour rprsenter les squences
dvnements valides dun systme
un vmenent peut prendre plusieurs formes
une entre, une sortie, un appel de mthode, etc

les tats sont souvent une abstraction de ltat


du systme
habituellement impossible de reprsenter tous les
tats du systme avec un automate
founit un point de vue partiel

difficile de reprsenter le paralllisme


IGL301 -

Exercice 1
Utilisez un automate pour spcifier le
comportement dune bibliothque
Prenez en compte seulement les prts
de livres aux membres
Dcrivez les limitations et les
informations implicites

IGL301 -

Solution 1
q0

crer

supprimer

q1

emprunter

q2

renouveler

retourner

information implicite et limitations


point de vue dun livre seulement
nexprime pas les contraintes sur le membre
limite de prt
nindique pas si un membre peut
emprunter plusieurs livres la fois
IGL301 -

Exercice 2
Ajouter les rservations lexercice
prcdent
Dcrivez les limitations et les
informations implicites

IGL301 -

Solution 2
renouveler

q0

crer

supprimer

q1

emprunter

retourner

q2

annulerRs

rserver
prter
SurRes

q3

annulerRs
rserver

q5

...

rserver
retourner

q4

retourner
prter
SurRes

q6

...

limitations et informations implicites


ne reprsente que deux rservations la fois
impossible de reprsenter toutes les rservations
nexprime pas les contraintes sur le membre :
lemprunteur courant ne peut rserver son livre
rservations servies dans lordre darrive, mais annuls dans nimporte
quel ordre

IGL301 -

Exercice 3
Dcomposez votre spcification en
plusieurs diagrammes
Exprimez les liens entre les
diagrammes

IGL301 -

10

Exercice 4
crivez le pseudo-code dun
programme qui traite les vnements
dune bibliothque
soyez le plus prcis possible;
faites rfrence au modle de donnes;
donnez toutes les prconditions et toutes
les mises--jour de chaque vnement
IGL301 -

11

Exercice 4 (suite)
traitez les vnements suivants :
creer <idLivre> <titre> <auteur> <dateAcquisition>
emprunter <idLivre> <idMembre> <dateEmprunt>
renouveler <idLivre> <dateRenouvellement>
retourner <idLivre> <dateRetour>
supprimer <idLivre>
inscrire <idMembre> <nom> <telephone> <limitePret>
dsinscrire <idMembre>
reserver <idReservation> <idLivre> <idMembre>
<dateReservation>
preterSurRes <idReservation> <dateEmprunt>
annulerRes <idReservation>
afficherPrets

IGL301 -

12

Exercice 5
Dcrivez les liens entre vos automates
et votre pseudo-code pour la
bibliothque
indiquez quel tat du systme
correspond un tat de lautomate
indiquez le lien entre les prconditions des
vnements et le pseudo-code
indiquez les forces et les limitations de la
notation dautomate
IGL301 -

13

Solution 5
limitations des automates
les paramtres dentre et de sortie des
vnements ne sont pas explicites
difficile de reprsenter entirement
lespace du systme
difficile de donner toutes les prconditions
ne donne pas les messages derreurs
comment dterminer si un programme
satisfait un automate???
IGL301 -

14

Exercice 6
Spcifiez laide dun automate le
comportement dun systme
tlphonique de base (POTS)
dcrochez
composer un numro
rpondre un appel

identifiez bien les entres et les sorties


IGL301 -

15

Exercice 6 (suite)
faire le modle conceptuel de donnes
du POTS
faire le diagramme de classe du POTS
faire les cas dutilisation du POTS
quels liens y a-t-il entre ces
diagrammes

IGL301 -

16

Exercice 7
Dfinissez la notion dquivalence de
deux automates

IGL301 -

17

Machine tats finie


propos par Mealy et Moore (sparment)
Mealy : sortie associe une transition
Moore : sortie associe un tat

distingue entre les entres et les sorties


sur rception dune entre, une sortie est produite

distinction avec automate


automate ne distingue pas entre et sortie
on identifie dans le texte accompagnant lautomate
la nature dun vnement (entre ou sortie)

IGL301 -

18

Machine tats de Mealy

IGL301 -

19

Machine de Mealy :
convention
transition s1 --- i / o --> s2:
si lentre i est reue alors que le systme est
dans ltat s1, la sortie o est produite et le nouvel
tat du systme est s2
i est aussi appel le dclencheur (trigger)

O : sortie inintressante, ou absente


si une entre est reue et quaucune
transition nest dfinie pour cette entre, il ne
se passe rien (lentre est ignore)
IGL301 -

20

Exercice
Spcifier une pile avec une machine de
Mealy

IGL301 -

21

Machine Mealy : exemple


dune pile
tat initial

IGL301 -

22

Caractristiques dune
machine de Mealy
non hirarchique
un tat dnote ltat complet du
systme
le systme est dans un seul tat la
fois
une transition est atomique; elle ne peut
tre dcompose
IGL301 -

23

Squence : dfinitions
S* dnote lensemble de toutes les
squences (incluant la squence vide )
formes partir dlments de S
S+ dnote lensemble de toutes les
squences non vides formes partir
dlments de S
S* = S+ {}
on dnote par t1t2 la concatnation des
squence t1 et t2
IGL301 -

24

Machine de Mealy :
smantique

IGL301 -

25

Diagramme tat-transition
gnralis
plusieurs notations utilises
SDL
Statechart
ROOM
ad hoc (ex: celle du livre)

IGL301 -

26

STD : exemple dun guichet


bancaire
comment
Quel est
ltat
initial?

action

dterminer
good ou
bad?

trigger

tat

IGL301 -

27

STD : exemple dune pile


(UML)

IGL301 -

28

SDL
SDL - Specification and Description
Language
norme CCITT

IGL301 -

29

SDL

Message
State
Transition
Trigger

Response
(action with output)

or

or

Action
(no output)

Decision

IGL301 -

30

SDL - Guichet bancaire


Await
card

Card
entry

Display
"Enter PIN"

Await
PIN

Good
PIN

Press
END
Eject card

Bad
PIN

Display
"Enter card"
Retain card
Display
"Enter card"

1st
try
?

Display
"Re-try"

Amount
entered

Dispense
cash

IGL301 -

Display
"select
amount"

Await
amount

31

SDL - Concurrence
un trait
pointill
dnote un
envoi de
message

IGL301 -

32

SDL - Temporisateur (timer)

Timer 1
10 secs

Timer 1

IGL301 -

33

SDL - Exemple temporisateur

IGL301 -

34

SDL - exemple alarme


incendie

IGL301 -

35

Exercice 8
Spcifier le comportement dun livre
avec SDL
prenez en compte les prts, les
rservations et les retards

IGL301 -

36

Statechart
machine tats hierarchique
concurrence
actions associes aux transitions et aux
tats
condition associe aux transitions

IGL301 -

37

statechart - notation
1
state A

1
await card
entry

2
state B

trigger (guard) /
action

2
await
PIN

card
entered

bad PIN (2nd attempt)/


eject card

good PIN

IGL301 -

bad PIN (1st attempt)

etc.

38

Statechart - tat hirarchique


1
T1
2
1.1

T5
T2

T3
T4
T2
1.2

IGL301 -

39

Statechart - hirarchisation
1

T4

T4

T3

T3

T4

T2

T2

IGL301 -

40

Statechart - historique
2

T2

1.1

1.2
T3

T4

IGL301 -

41

Statechart - hirarchisation
series
editing

class
editing

race
editing
results
editing

boat
editing

IGL301 -

entry
editing

42

Statechart - hirarchisation
ces deux
notations sont
quivalentes

IGL301 -

43

Statechart - hirarchisation
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 -

44

Statechart - concurrence
alarm off

await IR
signal

+ve

-ve

await 2nd
IR signal

+ve/
send
alarm
signal

alarm
signal

reset

alarm on

IGL301 -

await smoke
signal

smoke
signal/
send
alarm
signal

smoke
signal time-out

< 10 sec,
await 2nd
smoke signal

45

Exercice 9
Donnez un statechart pour le systme
de guichet bancaire
Donnez un statechart pour le POTS

IGL301 -

46

TP4 - partie I
Spcifiez laide dun statechart un four micro-onde ayant les
caractristiques suivantes
trois niveaux de temprature (low, medium, high)
timer (chronomtre)
defrost (3 tapes de dure gale : la premire high, la deuxime medium
et la dernire low)
programmation jusqu 3 tapes o lutilisateur peut spcifier la temprature
et la dure
dfinissez les touches appropries et ralistes pour permettre lutilisateur
dutiliser ces fonctions
par souci de simplicit, ne spcifiez pas laffichage lcran; spcifiez
seulement les actions de contrle pour llment chauffant et les alarmes
sonores (fin de cuisson ou fin dun timer, par exemple)
dcrivez le traitement des actions sous forme de pseudo-code quand cela est
ncessaire
dclarez les variables dtat que vous utilisez dans les actions

IGL301 -

47

TP4 - partie II
Utilisez un statechart pour spcifier un aspect
de votre projet de session
Dcrivez le problme sous forme textuelle et
donnez le statechart
La taille du problme doit tre similaire celle
du micro-onde
Soyez suffisamment prcis pour quun
observateur externe (comme moi) qui ne
connait pas du tout le problme puisse
interprter votre spcification sans ambigut
IGL301 -

48

Вам также может понравиться