Travaux dirigés 3 – exercices diagramme d’états-transitions

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 :

  1. Dessiner le diagramme d’états correspondant.
  2. 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 ».

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne