Vous êtes sur la page 1sur 36

UML : Diagrammes d’Etats-Transitions

UML : Diagrammes d’Etats-Transitions


• Un diagramme d’états-transition décrit le comportement interne d’un
objet individual (logiciel, composant, objet…)
• Il permet de connaître son évolution dans le temps (cycle de vie de
l’objet)
Transition

Evènement externe

• Il permet d’énumérer les états importants d’un objet ainsi que les
événements externes qui permettent à un objet de passer d’un état à
un autre ( transition d’états)
UML : Diagrammes d’Etats-Transitions
• Le comportement dynamique d’une entité est décrit par:
Etat+Transition
• Etat: abstraction d’un moment de la vie d’une entité pendant lequel elle
satisfait un ensemble de conditions
• Transition: changement d’état
UML : Diagrammes d’Etats-Transitions
• Pour réaliser un diagramme d’états, il ne faut pas choisir un objet qui
n’a pas d’états ou qui ne change pas.
• On choisit les objets qui ont un cycle de vie particulièrement riche
pour comprendre leur comportement dynamique complexe.
• Exemple: Panier dans un site d’achat en ligne

• Quels sont les états que peut prendre la classe


Panier au cours de sa vie?
• Quels sont les causes de son passage d’un état
à un autre?
• Comment cette entité statique se comporte?
UML : Diagrammes d’Etats-Transitions
• Exemple: Panier dans un site d’achat en ligne
Etat du Panier Description
PanierCréé Le panier est créé mais vide.
PanierVide Aucun article n'a été ajouté au panier.
PanierActif Des articles ont été ajoutés au panier mais l'utilisateur n'a pas encore validé sa commande.

PanierEnCoursModification L'utilisateur est en train de modifier le contenu du panier en ajoutant, supprimant ou


modifiant des articles.
PanierConfirmé L'utilisateur a validé son panier et est prêt à passer à l'étape suivante, généralement le
paiement.
PanierEnCoursPaiement Le panier est en cours de traitement pour le paiement.
PanierAbandonné L'utilisateur a abandonné le processus d'achat avant de finaliser la commande.

PanierPayé Le paiement pour le panier a été effectué avec succès.


PanierDétruit Le panier a été supprimé ou vidé après l'achat.
UML : Diagrammes d’Etats-Transitions
• Exemple: Panier dans un site d’achat en ligne
Etat du Panier Description
PanierCréé Le panier est créé mais vide.
PanierVide Aucun article n'a été ajouté au panier.
PanierActif Des articles ont été ajoutés au panier mais l'utilisateur n'a pas encore validé sa commande.

PanierEnCoursModification L'utilisateur est en train de modifier le contenu du panier en ajoutant, supprimant ou


modifiant des articles.
PanierConfirmé L'utilisateur a validé son panier et est prêt à passer à l'étape suivante, généralement le
paiement.
PanierEnCoursPaiement Le panier est en cours de traitement pour le paiement.
PanierAbandonné L'utilisateur a abandonné le processus d'achat avant de finaliser la commande.

PanierPayé Le paiement pour le panier a été effectué avec succès.


PanierDétruit Le panier a été supprimé ou vidé après l'achat.
UML : Diagrammes d’Etats-Transitions
• Exemple: Commande dans un site d’achat en ligne
Etat du Panier Description
CommandeCréé La commande est créée lorsque le panier est confirmé.
EnAttentePaiement La commande a été créée mais le paiement n'a pas encore été effectué.
EnCoursTraitement (Etat La commande est en cours de traitement, elle peut être modifiée ou annulée avant
Composite) l'expédition.
EnCoursModification L'utilisateur est en train de modifier les données de commande en ajoutant, supprimant ou
modifiant des articles, modifiant les coordonnées de livraison….
CommandeExpédiée La commande a été expédiée et est en transit vers le client.

CommandeLivree La commande a été livrée avec succès et est archivée dans le système.

CommandeAnnulée Le paiement pour la commande a été effectué avec succès.


CommandeDétruite La commande a été supprimée après l'achat.
UML : Diagrammes d’Etats-Transitions
Etat
• Un état représente une situation Durant la vie d’un objet pendant laquelle:
• Il exécute une certaine activité
• Ou bien, il attend un certain évènement.
• Un état a une durée de vie finie. On symbolise cela par:
• Un état initial : l’état dans lequel se trouve l’objet lors de sa création.
• Un état final : correspond à la destruction de l’objet
• Des états intermédiaires
• Un diagramme d’états a toujours un et un seul état initial.
• Par contre il peut n’avoir aucun état final ou en avoir plusieurs.
UML : Diagrammes d’Etats-Transitions
Exemples
1. Exécution d'une certaine activité :
Exemple : L'état "En cours de traitement" d'une commande en ligne, pendant lequel le système effectue des vérifications et des
calculs avant de confirmer la commande.
2. Attente d'un certain événement :
Exemple : L'état "En attente de paiement" d'une commande en ligne, pendant lequel le système attend que le client effectue le
paiement.
3. Durée de vie finie :
Exemple : L'état "En livraison" d'un colis, pendant lequel le colis est en transit vers sa destination. Une fois qu'il est livré, il passe
à l'état final "Livré".
4. État initial :
Exemple : L'état initial "En attente" d'une demande de service client, qui représente l'état de la demande dès sa création avant
qu'elle ne soit traitée.
5. Un seul État final ou plusieurs États finaux:
1. Exemple : L'état final "Terminé" d'un processus de commande, qui représente la fin du processus une fois que la commande
est complètement traitée et livrée.
2. Exemple : Dans un système de gestion de projet, un état final peut être atteint lorsque toutes les tâches ont été complétées
et que le projet est marqué comme "Terminé". Cependant, il peut également y avoir des états finaux intermédiaires pour
indiquer des arrêts anticipés ou des annulations de projet.
UML : Diagrammes d’Etats-Transitions
Transition
• Une transition décrit la réponse d’un objet lorsqu’un évènement se produit provoquant le passage
d’un objet d’un état source dans un autre état cible.
• La transition est representée par une flèche orientée de l’état source vers l’état cible.
• L’évènement qui determine le franchissement de la transition est indiqué sous forme de texte.
• Si aucun évènement n’est spécifié, alors il s’agit d’une transition automatique.
UML : Diagrammes d’Etats-Transitions
• Exemple: Panier dans un site d’achat en ligne
UML : Diagrammes d’Etats-Transitions
Evènement
• Un évènement est un stimulus qui arrive à un moment précis et pouvant déclencher une transition entre états.
• La syntaxe de la structure de l’évènement correspond aux details de la transition.

• La transition n’est que le résultat produit suite à un évènement qui s’est produit avec une condition (garde) vérifiée et
déclanchant une action effectuée.
UML : Diagrammes d’Etats-Transitions
Exemples
UML : Diagrammes d’Etats-Transitions
• Types d’évènement
• On distingue 4 types d’évènements:
• Evènement signal (signal event): correspond à la reception d’un signal
asynchrone émit par un autre objet ou par un acteur.
• Evènement appel d’opération (call event): appel d’une méthode de l’objet
courant . temporisation
• Evènement de changement (change event): se produit lorsqu’une condition
passe de faux à vrai
When (expression booléénne)

• Evènement temporal (time event): cause par l’exipiration d’une.


When (date = “expression date precise”) ou After (“durée”)
UML : Diagrammes d’Etats-Transitions
Types d’évènement
• Exemple: Panier dans un site d’achat en ligne
1.Evènement signal (signal event):
1. Exemple : Lorsqu'un utilisateur clique sur le bouton "Ajouter au panier", un signal est émis par
l'interface utilisateur pour informer l'application qu'un article doit être ajouté au panier.
2.Evènement appel d’opération (call event):
1. Exemple : Lorsqu'un utilisateur valide son panier en appuyant sur le bouton "Valider le panier", un
appel d'opération est effectué pour déclencher la méthode de validation dans la classe Panier.
3.Evènement de changement (change event):
1. Exemple : Lorsque le nombre d'articles dans le panier passe de zéro à un, un événement de
changement se produit, indiquant que le panier est désormais actif.
4.Evènement temporal (time event):
1. Exemple : Si un utilisateur laisse son panier inactif pendant un certain temps, par exemple cinq
minutes, un événement temporel se produit lorsque cette période d'inactivité expire, ce qui peut
déclencher une action comme vider le panier automatiquement pour libérer les ressources.
UML : Diagrammes d’Etats-Transitions
• Exemples:
UML : Diagrammes d’Etats-Transitions
Evènement
UML : Diagrammes d’Etats-Transitions
TD: Render-vous vaccination contre le covid
Un centre de vaccination souhaite développer une application web pour la gestion automatique des rendez-vous de vaccination contre le
Covid-19.
Dans cette application web, on souhaite modéliser l’état d’un rendez-vous.
L’état d’un rendez-vous peut être : libre, réservé, validé et consommé.
Plusieurs actions-événements sont pris en compte : la réservation, la validation, l’annulation, la « consommation » du rendez-vous (son
utilisation effective).
La réservation d’un rendez-vous n’est pas une validation.
On peut valider un rendez-vous directement sans passer par une réservation.
Un rendez-vous peut être annulé après validation.
Seuls les rendez-vous validés peuvent être consommés.
Les rendez-vous réservés sous plus de 24h sans validation sans automatiquement annulés.
Travail demandé :
Donner un diagramme états-transitions pour modéliser les états d’un rendez-vous
UML : Diagrammes d’Etats-Transitions
TD: Render-vous vaccination contre le covid
UML : Diagrammes d’Etats-Transitions
TD: Ascenseur
Un ascenseur desservant un immeuble est constitué d'un contrôleur et de l'ascenseur proprement dit, lui-même constitué de
la cabine et des portes.

Le contrôleur sert d'interface entre l'utilisateur et l'ascenseur.

L’ascenseur ne peut bouger que si le poids total est inférieur à 200 kg

Le contrôleur reçoit une demande pour que l'ascenseur se rende à un étage donné. Il

On considérera que l'ascenseur n'accepte une nouvelle demande que lorsqu'il est à l'arrêt.

Travail demandé :

Après avoir identifié les différents états de l'ascenseur et déterminer les événements mis en jeu, décrire le comportement de
l'ascenseur à l'aide d'un diagramme états-transitions
UML : Diagrammes d’Etats-Transitions
TD: Ascenseur
UML : Diagrammes d’Etats-Transitions
Evènements internes:
• On peut avoir des états qui effectuent plusieurs activités successivement ou en parallèle.
• L’enchainement de ces activités à l’intérieur d’un même état peut être spécifié grâce aux évènements internes
qui ont la même syntaxe que les évènements externes.
• Les événements internes s’écrivent à l’intérieur de l’état, séparé du nom de l’état par un trait.
• UML définit des mots clé correspondant à des événements internes particuliers :
• Entry / activité entrée : événement à l’entrée dans l’état.
• Do / activité : définit l’activité à exécuter dès que celle définie par entry est terminée.
• On event / activité : (optionnel) définit l’activité à exécuter à chaque fois que nous avons un évènement
particulier.
• Exit / activité sortie : événement à la sortie de l’état.
UML : Diagrammes d’Etats-Transitions
• Exemples:
UML : Diagrammes d’Etats-Transitions
Evènement externes vs internes
UML : Diagrammes d’Etats-Transitions
Dynamique d’un état
UML : Diagrammes d’Etats-Transitions
Dynamique d’un état
UML : Diagrammes d’Etats-Transitions
Dynamique d’un état
UML : Diagrammes d’Etats-Transitions
TD: Ascenseur
Un ascenseur desservant un immeuble est constitué d'un contrôleur et de l'ascenseur proprement dit, lui-même constitué de la cabine et des
portes.

Le contrôleur sert d'interface entre l'utilisateur et l'ascenseur.

L'ascenseur est initialement à l'étage 0 et ses portes sont ouvertes. L’ascenseur ne peut bouger que si le poids total est inférieur à 200 kg

Le contrôleur reçoit une demande pour que l'ascenseur se rende à un étage donné. Il contrôle les portes et la cabine de l'ascenseur de manière
à ce que les portes soient toujours fermées lorsque la cabine est en mouvement et ne s'ouvrent que lorsque l'étage demandé est atteint.

L'ascenseur émet un son lorsqu'il atteint l'étage demandé. Les portes se referment automatiquement après 20 secondes d'inactivité de
l'ascenseur.

Lorsqu'il est en mouvement, l'ascenseur reçoit un signal à chaque changement d'étage.

On considérera que l'ascenseur n'accepte une nouvelle demande que lorsqu'il est à l'arrêt.

Travail demandé :

Après avoir identifié les différents états de l'ascenseur et déterminer les événements mis en jeu, décrire le comportement de l'ascenseur à
l'aide d'un diagramme états-transitions
UML : Diagrammes d’Etats-Transitions
• TD:
UML : Diagrammes d’Etats-Transitions
Etats composites:
UML : Diagrammes d’Etats-Transitions
Etats composites:
UML : Diagrammes d’Etats-Transitions
Exemple
UML : Diagrammes d’Etats-Transitions
Exemple: Etat-Transition Vidéo-Projecteur
Etat simple
Etat initial

Evènement

Etats:
• Débranché
Transaction • Eteint
• Allumé
• Connecté
Evènement:
• Brancher : signal
• Power: appel méthode
• Connecter_source : appel méthode
• Déconnecter_source : appel méthode
Etats:
• Débranché
• Eteint

UML : Diagrammes d’Etats-Transitions


• Allumé
• Connecté
Evènement:
• Brancher : appel méthode
Exemple: Etat-Transition Vidéo-Projecteur • Power: appel méthode
• Connecter_source : appel méthode
Etats Composites • Déconnecter_source : appel méthode
• Débrancher : appel méthode

débrancher

débrancher

débrancher
UML : Diagrammes d’Etats-Transitions
Exemple: Etat-Transition Vidéo-Projecteur Etats avec
Etats simples Evènements
UML : Diagrammes d’Etats-Transitions
Exemple: Etat-Transition Vidéo-Projecteur

Conditions

Evènement de
type Temps

Vous aimerez peut-être aussi