Modélisation UML : Travaux Dirigés 3 – Exercices sur les Diagrammes d’États-Transitions
Exercice 1 : Contrôleur d’accès par carte magnétique
Un dispositif de contrôle d’accès par carte magnétique à un photocopieur est équipé d’un écran de visualisation pouvant afficher les messages suivants :
- « INSÉREZ VOTRE CARTE » lorsque le dispositif est inutilisé.
- « PATIENTER » pendant que le dispositif lit le code d’une carte introduite.
- « CARTE INVALIDE » lorsque le code n’est pas reconnu (illisible) ; la carte est alors automatiquement éjectée.
- « COMPOSEZ VOTRE CODE » lorsque le code a pu être lu.
- « CODE REFUSÉ » si le code composé n’est pas identique au code lu ; la carte est alors automatiquement éjectée.
- « UTILISATION EN COURS » lorsque le code composé est correct.
L’utilisateur peut à tout moment actionner un bouton provoquant l’éjection de la carte. Après toute éjection, le dispositif affiche « INSÉRER CARTE ».
Proposer un graphe d’états-transitions du lecteur de carte.
Exercice 2 : Réveil-matin et montre digitale
Partie 1 : Réveil-matin simplifié
Considérons un réveil-matin simplifié avec les fonctionnalités suivantes :
- On peut activer ou désactiver l’alarme (« on » ou « off »).
- Quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans s’arrêter.
- On peut interrompre la sonnerie.
Questions :
- Dessiner le diagramme d’états correspondant.
- Compléter le diagramme d’états précédent pour prendre en compte le fait que la sonnerie du réveil s’arrête d’elle-même après un certain temps.
Partie 2 : Montre digitale avec éclairage et alarme
Nous ajoutons maintenant à cette montre digitale deux autres boutons :
- Un bouton éclairage : en le pressant, on éclaire le cadran jusqu’à ce qu’on le relâche.
- Un bouton alarme, qui ajoute une fonctionnalité classique de réveil-matin (comme dans l’exercice 1).
Question : Dessiner le diagramme d’états complet incluant tous les comportements de la montre.
Exercice 3 : Partie d’échecs et afficheur graphique
Partie 1 : Diagramme d’états-transitions du contrôleur
Une partie d’échecs peut être décrite comme suit :
- Au départ, le tour de jouer appartient au joueur possédant les pièces blanches.
- Quand le joueur aux pièces blanches joue, le tour passe à celui aux pièces noires, et vice versa.
- Si le joueur aux pièces blanches (ou noires) réalise un échec et mat, il gagne la partie.
- En cas de pat, la partie se termine par un nul.
Imaginer un contrôleur surveillant la partie. Décrire, sous son angle, le diagramme d’états-transitions de la partie d’échecs.
Partie 2 : Comportement de l’objet Afficheur
Supposons maintenant une description de la même partie d’échecs du point de vue d’un objet Afficheur (interface graphique). Son rôle est d’afficher sur un écran :
- L’échiquier et les pièces du jeu.
- À chaque déplacement d’une pièce, l’effacement de sa position initiale, son réaffichage dans la nouvelle position, et une simulation graphique de la trajectoire.
FAQ sur les Diagrammes d’États-Transitions
1. Quels sont les éléments clés d’un diagramme d’états-transitions ?
Un diagramme d’états-transitions comprend :
- Des **états** (représentés par des rectangles avec des coins arrondis).
- Des **transitions** (flèches reliant les états, souvent déclenchées par des événements ou des actions).
- Des **actions** ou **activités** (associées aux transitions ou aux états).
- Des **guards** (conditions logiques pour activer une transition).
- Des **pseudo-états** (comme *Initial* ou *Final*, indiqués par des points ou des flèches noires).
2. Comment modéliser un bouton qui déclenche une transition ?
Utilisez une transition étiquetée avec le nom de l’événement (ex. : presser_bouton), sans condition de garde, reliant l’état actuel à l’état suivant. Exemple :
- État « Carte insérée » → Transition
éjection_manuelle→ État « Carte éjectée ».
3. Que faire si un état nécessite un retour automatique après un délai ?
Ajouter une transition temporisée avec la syntaxe : [délai]. Exemple pour un réveil :
- État « Sonnerie active » → Transition
[10s]→ État « Sonnerie désactivée ».