0% ont trouvé ce document utile (0 vote)
3 vues58 pages

UML : Machines à états et communication

Le document présente les diagrammes d'états en UML, en expliquant les principes de communication, la spécification du comportement et les machines à états. Il décrit les concepts clés tels que les états, les transitions, les actions et les événements, ainsi que leur utilisation dans des exemples pratiques comme un distributeur de boissons. La présentation est destinée à des étudiants de l'Université Paul Sabatier pour l'année universitaire 2023-2024.

Transféré par

med.harrane
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues58 pages

UML : Machines à états et communication

Le document présente les diagrammes d'états en UML, en expliquant les principes de communication, la spécification du comportement et les machines à états. Il décrit les concepts clés tels que les états, les transitions, les actions et les événements, ainsi que leur utilisation dans des exemples pratiques comme un distributeur de boissons. La présentation est destinée à des étudiants de l'Université Paul Sabatier pour l'année universitaire 2023-2024.

Transféré par

med.harrane
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MCDC

Diagrammes d’états

Ileana Ober
Université Paul Sabatier
IRIT
[Link]

Année Universitaire 2023-2024


©Ileana Ober
Une démarche

(classes métier)
+ diags activité
(processus métier)

Adapté de
"UML : modéliser un site e-commerce",
Pascal ROQUES, Eyrolles, 2002
Exemples - signaux
dé nition
«signal» de signal
InitierAppel RéseauGSM
noAppelé : String
«signal» InitierAppel

La classe
RéseauGSM est
capable de traiter le
signal Initier Appel

©Ileana Ober, 2013


fi
Mécanismes de communication en
UML

✤ Si dans le modèle il n’y a pas d’information explicite liée à la


communication (i.e. pas de diagramme d’architecture avec des
connecteurs)
Point à point - entre des objets se connaissent
(des liens existent, retours d’opération, etc.)
Diffusion - le message arrive à tous les objets accessibles et
disponibles

✤ Si une structure de communication existe - la communication respecte


ses contraintes (e.g. spéci ée par un diagramme d’architecture)

©Ileana Ober, 2013


fi
Plan

✤ Principes de la communication en UML

✤ Description du comportement en UML

✤ Notions de base dans les machines à états

✤ Utilisation des machines à états

©Ileana Ober, 2013


Spécification du comportement
en UML
préscriptif descriptif
(qu’est-ce que ?) (comment?)
OCL, DI
niveau système MàE, DA

niveau paquetage DI, contraintes


MàE, DA
(ensemble classes) OCL

niveau classe contraintes OCL MàE

niveau opération contraintes OCL actions, MàE


©Ileana Ober, 2013
Machine à états
✤ Qu’est-ce que c’est?

✤ automate à états nis, qui détaille (décrit) le comportement

✤ Contexte

✤ système / pacquage - décrit le comportement d’un ensemble d’objets


✤ une diagramme d’activités plus complexe et plus détaillé
✤ s’utilise surtout dans le cas des systèmes /pacquages statiques (faiblement dynamiques),
i.e. peu de création destruction d’objets, peu d’instances /classe

✤ classe - décrit le comportement de chaque instance de la classe


✤ décrit le comportement détaille en termes de réactions aux événements
✤ peut dé nir la politique de gestion des appels concurrents

✤ opération - décrit le comportement de l’objet englobant en réponse aux appels de l’opération


✤ décrit le comportement détaille en termes de réactions aux événements

©Ileana Ober, 2013


fi
fi
Plan

✤ Principes de la communication en UML

✤ Description du comportement en UML

✤ Notions de base dans les machines à états

✤ Utilisation des machines à états

©Ileana Ober, 2013


Notions de base

✤ Etat Connecté

✤ Transition

✤ Action send terminé to caller

✤ Evénement fermer, timeout, ...

✤ File d’attente (sans notation explicite)

©Ileana Ober, 2013


Exemple simple

Transitio
Etat initial

OFF ON

Etat Transitio Etat

©Ileana Ober, 2013


Exemple distributeur boissons
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Exemple exécution
nouvellePièce pasAssez

Attente
CompterMonnaie
mauvaisePièce

abandon assezMonnaie

RendreMonnaie
abandon ChoisirBoisson
mauvaisChoix

ok
DistribuerBoisson

©Ileana Ober, 2013


Etat Attente

✤ décrit une situation de l’objet et du système

✤ une façon de garder de l’information sur le passé

✤ états

✤ initial - l’exécution de la machine à états commence avec ça


dans le cas de la machine à état d’un objet activé dans le
constructeur
max 1/machine à états
✤ nal - l’exécution de la machine à états se termine ici
une fois atteint l’objet est détruit
il peut y avoir plusieurs / machine à états
✤ Il peut avoir des actions qui lui sont associées
©Ileana Ober, 2013
fi
Transition
nouvellePièce
✤ Décrit un échange d’états Attente
CompterMonnaie
✤ A un état source et un état destination

✤ Peut être déclenchée par la réception d’un événement

✤ Peut être conditionnée par une garde

✤ Peut être spontanée, i.e. pas de condition, pas de garde elle est
déclenchée par la terminaison de l’action effectué dans son état
source

✤ Peut avoir une action qui lui est associée


©Ileana Ober, 2013
Action

✤ Décrit un bout de fonctionnalité


(affectation, envoi de signal, appel opération, etc.)

✤ Le moment d’exécution d’un action permet de les classi er en:

✤ Entry action - action qui s’exécute à l’entrée dans un état

✤ Exit action - action qui s’exécute juste avant la sortie d’un état

✤ Do action - action qui s’exécute pendant la résidence dans un


état

✤ Action associée à une transition


©Ileana Ober, 2013
fi
Syntaxe des transitions
[événement][“[“garde”]”] [/effet]
<garde> ::= <condition booléenne>
<effet> ::= [<action>][^<signal envoyé>]
<action> - syntaxe qui dépend du langage d’actions

Exemples

sig1 transition déclenchée par la


réception du signal sig1

©Ileana Ober, 2013


Syntaxe des transitions
[événement][“[“garde”]”] [/effet]
<garde> ::= <condition booléenne>
<effet> ::= [<action>][^<signal envoyé>]
<action> - syntaxe qui dépend du langage d’actions

Exemples
transition déclenchée
sig1 par la réception du signal
sig2, si la valeur de a est
sig2 [a<7] inférieure à 7

©Ileana Ober, 2013


Syntaxe des transitions
[événement][“[“garde”]”] [/effet]
<garde> ::= <condition booléenne>
<effet> ::= [<action>][^<signal envoyé>]
<action> - syntaxe qui dépend du langage d’actions

Exemples

sig1 transition déclenchée si la


valeur de a est inférieure à 7
sig2 [a<7]

[a<7]

©Ileana Ober, 2013


Syntaxe des transitions
[événement][“[“garde”]”] [/effet]
<garde> ::= <condition booléenne>
<effet> ::= [<action>][^<signal envoyé>]
<action> - syntaxe qui dépend du langage d’actions

Exemples
transition déclenchée par la
sig1 réception de sig1. L’action
associée à la transition est
sig2 [a<7]
i:=i+1
[a<7]

sig 1 / i:=i+1
©Ileana Ober, 2013
Syntaxe des transitions
[événement][“[“garde”]”] [/effet]
<garde> ::= <condition booléenne>
<effet> ::= [<action>][^<signal envoyé>]
<action> - syntaxe qui dépend du langage d’actions

Exemples
sig1 transition déclenchée par la
réception de sig1. L’effet de la
sig2 [a<7] transition est l’envoi du signal
[a<7] sig2 à l’objet o.

sig 1 / i:=i+1
sig1 / ^ sig2 to o
©Ileana Ober, 2013
Exemple simple
action
trigger

setOn/nb:=nb+1
Off On

setOff

©Ileana Ober, 2013


Variation - interrupteur à un
bouton
action
trigger

switch/nb:=nb+1
Off On

switch

le même signal
apparaît sur les 2
transitions

©Ileana Ober, 2013


Variation - interrupteur à un
bouton
action

switch/nb:=nb+1
Off On

switch [nb>250000]
Le même signal
état nal
peut déclencher
plusieurs transitions
garde
On modélise le fait qu’après
250000 allumages, l’interrupteur
ne marche plus ©Ileana Ober, 2013
fi
Evénement

✤ quelque chose d’important qui se passe dans le système ou son


environnement

✤ utilisé comme trigger (déclencheur) des transitions

✤ types
signal event - la réception d’un signal
call event - la réception d’un appel (d’opération)
time event - la réception d’un signal lié au temps
change event - le fait qu’une variable ait changée de valeur
....

©Ileana Ober, 2013


Etats hiérarchiques

✤ Avec tous les états au même niveau - la modélisation ne re ète pas


les parties communes qui peuvent exister entre états

✤ Etats hiérarchiques - permettent de structurer les machines à états

✤ Etat hiérarchique de type “or” - un état qui contient


une sous-machine à états

✤ Etat hiérarchique de type “and” - un état qui contient


2+ machines à états concurrentes

fl
©Ileana Ober, 2013
Exemple d’état composé (type or)

switch/nb:=nb+1 On

Off

switch
cd
radio CD
radio

[nb>250000]

©Ileana Ober, 2013


Exemple d’état composé parallèle
(type and)
switch/nb:=nb+1 On

Off
cd
switch
radio CD
radio

volumeManager
[nb>250000]
dec/if vol>0 then vol--
inc/if vol<volMax then vol++

©Ileana Ober, 2013


switch/nb:=nb+1 On

Off

switch
cd
radio CD
radio

[nb>250000]

©Ileana Ober, 2013


Etat histoire

switch/nb:=nb+1 On

Off H
switch
cd
radio CD
radio
H représente le plus récent
état actif de l’état composée [nb>250000]

©Ileana Ober, 2013


Changement d’état -
un problème complexe

Et1 Et4

Et2 Et5
ev/action

Et3 Et6

©Ileana Ober, 2013


Changement d’état -
un problème complexe
Est-ce que la transition
Et1 Et4 Et3->Et4 est autorisée?

Et2 Et5
ev/action
Oui

Et3 Et6

©Ileana Ober, 2013


Changement d’état -
un problème complexe
Lors de la
transition Et3→Et4
Et1 Et4 l’enchaînement
des actions est:

Et2 Et5
ev/action

Et3 Et6

©Ileana Ober, 2013


Changement d’état -
enchaînement des actions
Lors de la
transition Et3→Et4
Et1 Et4 l’enchaînement
des actions est:

Et2 Et5 ExitAction Et3


ev/action

Et3 Et6

©Ileana Ober, 2013


Changement d’état -
enchaînement des actions
Lors de la
transition Et3→Et4
Et1 Et4 l’enchaînement
des actions est:

Et2 Et5 ExitAction Et3


ev/action
ExitAction Et1

Et3 Et6

©Ileana Ober, 2013


Changement d’état -
enchaînement des actions
Lors de la
transition Et3→Et4
Et1 Et4 l’enchaînement
des actions est:

Et2 Et5 ExitAction Et3


ev/action
ExitAction Et1
action
Et3 Et6

©Ileana Ober, 2013


Changement d’état -
enchaînement des actions
Lors de la
transition Et3→Et4
Et1 Et4 l’enchaînement
des actions est:

Et2 Et5 ExitAction Et3


ev/action
ExitAction Et1
action
Et3 Et6 EntryAction Et4

©Ileana Ober, 2013


Changement d’état -
enchaînement des actions
Lors de la
transition Et3→Et4
Et1 Et4 l’enchaînement
des actions est:

Et2 Et5 ExitAction Et3


ev/action
ExitAction Et1
action
Et3 Et6 EntryAction Et4
EntryAction Et5

©Ileana Ober, 2013


Plan

✤ Principes de la communication en UML

✤ Description du comportement en UML

✤ Notions de base dans les machines à états

✤ Utilisation des machines à états

©Ileana Ober, 2013


Utilisation des diagrammes états-
transition
✤ En phase d’analyse

✤ Description de la dynamique du systèmes vu de l’extérieur

✤ Synthèse de scénarios des cas d’utilisation

✤ Evénements = actions des acteurs

✤ En phase de conception

✤ Description de la dynamique d’un objet (d’une classe)

✤ Evénements = appels d’opérations, interactions avec


l’environnement
©Ileana Ober, 2013
Utilisation des machines à états?

✤ pour quels systèmes?


pour des systèmes réactifs (comportement fortement dépendant de
ce qui se passe dans son environnement)

✤ pourquoi les utiliser?


Si on les utilise judicieusement:
facile à lire
donnent des résultats de véri cation intéressants
code généré plus ef cace

✤ Attention la spéci cation du comportement avec des machines à


états ne se prête pas à tout système (e.g. compilateur)

©Ileana Ober, 2013


fi
fi
fi
Conclusions

✤ La modélisation peut couvrir le comportement

✤ Les machines à états permettent de décrire le comportement des


systèmes réactives

✤ Les modèles de comportement sont utilisés comme entrée pour des


outils de validation et pour des générateurs de code

©Ileana Ober, 2013

Vous aimerez peut-être aussi