Vous êtes sur la page 1sur 8

Vus dans ce Cours

„ Complé
Compléments diagramme d'é d'états :
Modé
Modélisation dynamique – pseudo évts : entry/exit
entry/exit
avec UML – États imbriqué
imbriqués, synchronisation
– History
– Partage d’
d’évts /de messages entre diagrammes
(Fin du Cours sur les Diagrammes d’é
d’état)
tat)
„ Mise en cohé
cohérence statique / dynamique
– Class in state

UML VDe 1 UML VDe 2

Action d'entré
d'entrée / de sortie de
Action d'entré
d'entrée de l'é
l'état (2)
l'é
l'état
„ Cela permet aussi de factoriser une action
„ En plus des actions associé
associées à un événement – pseudo-
pseudo-événement "entry
"entry"" associé
associé à un état, vers lequel
toutes les transitions portant l'action à factoriser
– évenement / action commutent
„ on a la possibilité
possibilité de dé
définir des actions ré
réalisé
alisées à – ex.: l'action ANNULER qui peut intervenir n'importe quand
l'entré
l'entrée ou à la sortie d'un état donné
donné dans le GAB
– On les mentionne dans l'é l'état aprè
après les mot-
mot-clefs
entry et exit. Do/ demander
annuler
Do/afficher
(montant) ("Retirer Carte")
annuler
entry / éjecter carte
Do/ demander
(type opération)
UML VDe 3 UML VDe 4

1
Action de sortie de l'é
l'état (3) Etats imbriqué
imbriqués

„ exit „ Pour éviter qu'un diagramme ne ressemble à un


– pseudo-
pseudo-événement "exit" associé
associé à un état, à partir duquel plat de spaghettis
toutes les transitions quittant l'é
l'état portent l'action
(factorisé
(factorisée)
– du fait du trop grand nombre de connexions
– ex.: l'action CLIGNOTER du curseur qui se met en marche entre les états...
dès que l'on rend la fenêtre active „ UML permet de dé décomposer un état en sous-
sous-états :
– on gé
généralise les états plus gé
généraux dans des
Fenêtre active
enregistrer
Fenêtre dormante
super-
super-états
Do/ enregistrer Do/cacher curseur – les états spé
spécifiques d'un état gé
général sont
modifier
détaillé
taillés dans un sous-
sous-diagramme d'é
d'états,
exit / clignoter curseur associé
Fenêtre active associé à l'é
l'état.
Do/ lire buffer
UML VDe 5 UML VDe 6

Etats imbriqué
imbriqués (2) Syntaxe états imbriqué
imbriqués

„ Sous-
Sous-états sé
séquentiels état1
état2
– ou disjoints
état11
– ex. Mission en attente: affecterCommandes puis
affecterRessources
„ Sous-
Sous-états concurrents état13
état12
– ou parallè
parallèles
– ex. Banque : effectuerTransaction et transition
AutorisationGAB(transaction)
AutorisationGAB(transaction) directe
„ Les sous-
sous-états peuvent eux-
eux-mêmes être composites
sous-états transition héritée par tous les
séquentiels sous-états
UML VDe 7 UML VDe 8

2
Syntaxe états imbriqué
imbriqués (2) Ex. SIVEX mission
En attente
état1 Affectation commandes

état11 état12
Affectation ressources
[ erreurTonnage ]
Erreur tonnage
état2 affecter( vehicule )
affecter( vehicule )
Sans Avec
véhicule véhicule [ tonnageOK ]
état21 état22 état23 Véhicule OK
Prête
[ chauffeurOK ]
affecter( chauffeur ) Chauffeur OK
Sans Avec affecter( chauffeur )
chauffeur chauffeur
Erreur qualification
sous-états [ chauffeurNonQualifié ]
concurrents transition
UML VDe automatique de 9 UML VDe 10

synchronisation

Etat : notion d'History


d'History Activité
Activité

„ La notation H (history
(history)) pré
précisé
cisé dans le coin bas-
bas- „ Pour dé
détailler une activité
activité complexe dans un
gauche de l'é
l'état, indique que le dernier sous-
sous-état diagramme d'é d'états
actif est mé
mémorisé
morisé – soit on dédécompose en sous-
sous-états,
tats, chacun
„ Exemple du lave-
lave-vaisselle : ayant la charge d'une activité
activité composant
l'activité
l'activité complexe -> état composite Mission en
attente
rinçage lavage séchage
do / DéfinirMission qui devient :
do / AffecterCommandes et do/ AffecterRessources
H
Ouverture porte – soit on dé
découpe l'activité
l'activité en sé
séquence d'actions
Fermeture élémentaires :
porte attente
„ do /affecterCommandes
/affecterCommandes ; affecterRessources ;
UML VDe 11 UML VDe définirEtapes 12

3
Événement complexe Transitions automatiques

„ Un événement complexe peut aussi être dé


détaillé
taillé „ Transitions portant des conditions
dans un sous-
sous-diagramme d’é
d’états,
tats, en sous–
sous– – sans événement : souvent le rérésultat binaire
événements élémentaires d'un test
– ex.: affecterRessources
„ Ex. appel tétéléphonique résultat = [OK] ou [pas OK]
– taper(numé
taper(numéro) „ Transitions portant une action "send
"send"" vers un objet
détaillé
taillé en taper (chiffre1); taper (chiffre2) etc…
etc… autre que la classe
– ex.: / send Répartiteur.tonnageEstimé
partiteur.tonnageEstimé
pour la classe Mission

UML VDe 13 UML VDe 14

Point de synchronisation Partage d'é


d'événements
Affectation ressources
[ erreurTonnage ] Erreur „ Pour assurer la cohé
cohérence des diagrammes d'é
d'état
séparation tonnage
de classes diffé
différentes
affecter( vehicule )
Sans affecter( vehicule )
Avec
véhicule véhicule

État de synchronisation [ tonnageOK ]


Véhicule OK
„ On a la possibilité
possibilité avec UML de pré
préciser quel
1
Prête
événement d'une classe X est dé déclenché
clenché par un
[ chauffeurOK ] Chauffeur OK événement d'une classe Y
affecter( chauffeur )
Sans Avec affecter( chauffeur ) – on utilise le nom de la classe d'où
d'où provient
chauffeur chauffeur
l'é
l'événement
Erreur
jonction qualification
[ chauffeurNonQualifié ]

UML VDe 15 UML VDe 16

4
Ex. partage d'é
d'événements Partage de messages

Classe Té
Téléviseur Télécommande. appuyer(boutonN) „ On peut signifier qu'un événement de la classe
Appuyer(BoutonMarche) décrite conduit à un envoi de message à une autre
éteinte veille classe
Appuyer(BoutonMarche)
Télécommande. appuyer(stop)
– ex. SIVEX état Mission
Classe Télécommande
marche send répartiteur.missionNonModifiable
Téléviseur. Appuyer(BoutonMarche)
signal envoyé
envoyé lorsque
Attente appuyer(boutonN) heure courante = heure dé
départ pré
prévue -1h
/envoyer signal(N)

UML VDe 17 UML VDe 18

Diagramme d'é
d'état : bonnes
Syntaxe globale
pratiques
évt (paramètres) [condition] / action3
„ Toutes les astuces de notation proposé
proposées par UML état1
sont sé état2
séduisantes, mais né
nécessitent une expertise de
la part du lecteur ! pseudo- entry / action1
„ Les concepts avancé
avancés sont ceux qui ont le plus état initial do/activité1
évolué
volués depuis les dé
débuts d'UML, ce qui explique
exit / action2 transition propre
que certains AGL ne les prennent pas en compte
– ex. send dans ROSE : noté
noté ^
„ La plupart des diag.
diag. d'é
d'états peuvent être bien
exprimé
exprimés avec les concepts de base Diagramme d’état
pseudo-
UML VDe 19 UML VDe
état final 20

5
Confronter les diagrammes Dynamique Æ Statique

„ Diagrammes d'interaction et diagramme d'é d'états „ un message peut être :


sont complé
complémentaires, et non redondants – un appel d'opé
d'opération sur l'objet (ré
(récepteur) par
„ Il faut donc confronter leur points de vue une fois un autre objet (é(émetteur)
les diagrammes d'éd'état terminé
terminés „ un événement / une action peuvent correspondre
à:
„ Vérifier que les diagrammes d'é d'états des classes
impliqué
impliquées dans les diag.
diag. d'int
d'inté
éractions prennent – l'appel d'une opé
opération
bien en compte tous les scéscénarios dé
décrits „ une activité
activité dans un état peut correspondre à
– l'exé
l'exécution d'une opé
opération
„ une action sur une transition peut manipuler des
attributs ou des liens statiques

UML VDe 21 UML VDe 22

Dynamique Æ Statique (2)


Exemple de correspondances

„ Les objets d'un diagramme d'interaction sont :


– soit des objets du digramme d'instances
Extrait du diagramme de collaboration pour la
création d'une mission
– soit des rôles
„ Une condition et un événement de changement 1: <<create>> (nom, nature)
(when)
when) peuvent se traduire par : 2: destination = AgenceXX
8: valider(heureDepart ) 9: <<create>>
– une consultation d'attributs ou de liens nouvelleMT :

„ Le paramè
paramètre d'un message peut être : {new} MissionTraction {new}
: Répartiteur 5: tonnageEstime
– un attribut ou un objet tout entier nouvelleFR :
FeuilleDeRoute

UML VDe 23 UML VDe 24

6
Or Classe Mission (version1) Correspondances de l'exemple
Mission
reference
dateDepartPrevue n 1 Agence
dateArriveePrevue
commentaire
responsable
(from Ressources)
„ Paramètre nom incohé
Paramè incohérent avec attribut
1 destination
Référence de Mission :
0..1 – à changer
„ Paramè
Paramètre nature se traduit par le discriminant de
MissionDeTournee
MissionTraction spé
spécialisation de Mission : missionTraction ou
nature n missionDeTourné
missionDeTournée :
numero
traite
– OK, c’
c’est cohé
cohérent
1 „ L'affectation destination = AgenceXX correspond à une
{ordered}
Commande
cré
création de lien vers une instance de Agence jouant
1..n (from Commandes) le rôle de "destination«
"destination«
0..1 1
– Cré
Création d’
d’un attribut ré référence Destination
est planifiée pour
Etape
UML VDe 25 UML VDe 26
0..2

Correspondances de l'exemple Correspondances (fin)

„ Le message valider(heureDepart
valider(heureDepart ) correspond à un appel „ Le message tonnageEstime envoyé
envoyé au ré
répartiteur
d'opé
d'opération avec un attribut en paramè paramètre est en fait une opé
opération
– accord des noms d'attribut : DateDepartPrevue – Méthode estimerTonnage()
estimerTonnage() de la classe
et HeureDepart
Mission
l'opération Valider() à la classe
– ajout de l'opé
missionTraction ...et gé généralisation à toutes „ Qui dé
définit la valeur retour :
les Missions;
Missions; – un attribut de Mission à ajouter :
– idem pour Annuler() et Libé
LibérerRessources()
rerRessources() qui tonnageEstimé
tonnageEstimé
reviennent à la Classe Mission

UML VDe 27 UML VDe 28

7
Classe Mission version2
Class-
Class-in-
in-state
Mission
reference
dateDepartPrevue
dateArriveePrevue „ UML fournit la possibilité
possibilité de repré
représenter l'é
l'état des
tonnageEstimé
commentaire
objets d'une classe directement sur le diagramme
valider()
de classes
modifier() – c'est la classe avec état
annuler()
estimerTonnage() – elle se comporte comme une sous- sous-classe de la
créerFeuilleMission()
créerSuiviMission() classe elle-
elle-même
libérerRessources()
archiver()
– l'inté
l'intérêt est de pré
préciser ou réduire les multipli-
multipli-
cité
cités associé
associées, quand elles dé dépendent
justement de l'é l'état de la classe
MissionDeTournee
MissionTraction
nature
UML VDe 29 UML VDe 30

ex. class-
class-in-
in-state ex. class-
class-in-
in-state
Mission Mission
reference reference
Mission dateDepartPrevue
dateArriveePrevue
Mission dateDepartPrevue
dateArriveePrevue
version1 commentaire
version2 commentaire class-in-state
1 1
{frozen}
Mission [validée] Mission [en Cours]
donne lieu à
1
0..1 1 1 {frozen}
donne lieu à
0..1
SuiviMission 1 1
<<application>> / dateDepart <<application>> SuiviMission
FeuilleDeRoute / dateArrivee FeuilleDeRoute / dateDepart
/ dateArrivee
UML VDe 31 UML VDe 32

Vous aimerez peut-être aussi