Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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
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)
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
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
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
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
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