+ All Categories
Home > Documents > Diagramme état-transition

Diagramme état-transition

Date post: 31-Jan-2016
Category:
Upload: bian
View: 143 times
Download: 0 times
Share this document with a friend
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 Presentation
Popular Tags:
48
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. )
Transcript
Page 1: Diagramme état-transition

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. )

Page 2: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

2

Diagrammes état-transition

• automate • machine à états finie

– Mealy– Moore

• machine à états étendue– SDL– statechart– ROOM

Page 3: Diagramme état-transition

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

Page 4: Diagramme état-transition

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}

Page 5: Diagramme état-transition

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

Page 6: Diagramme état-transition

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

Page 7: Diagramme état-transition

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

Page 8: Diagramme état-transition

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

Page 9: Diagramme état-transition

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

Page 10: Diagramme état-transition

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

Page 11: Diagramme état-transition

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

Page 12: Diagramme état-transition

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

Page 13: Diagramme état-transition

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

Page 14: Diagramme état-transition

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???

Page 15: Diagramme état-transition

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

Page 16: Diagramme état-transition

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

Page 17: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

17

Exercice 7

• Définissez la notion d’équivalence de deux automates

Page 18: Diagramme état-transition

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)

Page 19: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

19

Machine à états de Mealy

Page 20: Diagramme état-transition

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)

Page 21: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

21

Exercice

• Spécifier une pile avec une machine de Mealy

Page 22: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

22

Machine Mealy : exemple d’une pile

état initial

Page 23: Diagramme état-transition

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

Page 24: Diagramme état-transition

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

Page 25: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

25

Machine de Mealy : sémantique

Page 26: Diagramme état-transition

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)

Page 27: Diagramme état-transition

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

Page 28: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

28

STD : exemple d’une pile (UML)

Page 29: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

29

SDL

• SDL - Specification and Description Language

• norme CCITT

Page 30: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

30

SDL 

State

Transition

Trigger

Response (action with output)

Action (no output)

Decision

or

or

Message

Page 31: Diagramme état-transition

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"

Page 32: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

32

SDL - Concurrence

un trait pointillé dénote un envoi de message

Page 33: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

33

SDL - Temporisateur (timer)

Timer 1 10 secs

Timer 1

Page 34: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

34

SDL - Exemple temporisateur

Page 35: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

35

SDL - exemple alarme incendie

Page 36: Diagramme état-transition

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

Page 37: Diagramme état-transition

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

Page 38: Diagramme état-transition

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.

Page 39: Diagramme état-transition

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

Page 40: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

40

Statechart - hiérarchisation

3

2

1T4

T3

T4 T2

3

2

1T4

T3

T2

Page 41: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

41

Statechart - historique

1

1.21.1

T3

2HT2

T4

Page 42: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

42

Statechart - hiérarchisation

class editing

boat editing

race editing

seriesediting

entry editing

results editing

Page 43: Diagramme état-transition

IGL301 - Spécification et vérification des exgiences

43

Statechart - hiérarchisation

ces deux notations sont équivalentes

Page 44: Diagramme état-transition

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

Page 45: Diagramme état-transition

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

Page 46: Diagramme état-transition

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

Page 47: Diagramme état-transition

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

Page 48: Diagramme état-transition

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é


Recommended