Correction_TD_Modélisation dynamique

Exercice 1 - Inscription d'un membre à un cours privé Puisque les schémas graphiques ne peuvent pas être affichés ici, nous allons décomposer la modélisation sous forme textuelle, étape par étape, afin que vous puissiez tracer ou vérifier vos propres diagrammes.

D'après le document Correction_TD_Modélisation dynamique

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Correction_TD_Modélisation dynamique

Document source

Correction_TD_Modélisation dynamique

Informatique, Modélisation, Gestion de Système · École Nationale des Sciences de l'Informatique (ENSI) · PDF · 4 pages · 2012

Afficher l'aperçu du document

Consulter le document original →

Exercice 1 - Inscription d'un membre à un cours privé

Puisque les schémas graphiques ne peuvent pas être affichés ici, nous allons décomposer la modélisation sous forme textuelle, étape par étape, afin que vous puissiez tracer ou vérifier vos propres diagrammes.

Diagramme de Séquence

Le diagramme de séquence met en évidence la chronologie des échanges (messages) entre les différents objets au cours de ce scénario.

Acteur et Objets identifiés (les lignes de vie) :

  • Préposé : L'acteur principal (représenté par un bonhomme).
  • PageInscription : L'objet d'interface (frontière) avec lequel le préposé interagit.
  • Système (ou Contrôleur d'inscription) : L'objet de contrôle qui orchestre la logique.
  • RepertoireProfs : Objet entité gérant la liste des professeurs.
  • Professeur : Objet entité représentant le professeur cherché.
  • Planning : Objet entité contenant les disponibilités du professeur.
  • RepertoireMembres : Objet entité gérant la liste des membres.
  • Membre : Objet entité représentant le membre à inscrire.

Chronologie des messages :

  1. Préposé envoie saisirInfos(typeCours, nomProf) à PageInscription.
  2. PageInscription envoie chercherDispo(typeCours, nomProf) à Système.
  3. Système envoie chercher(nomProf) à RepertoireProfs (qui retourne le professeur correspondant).
  4. Système envoie chercherPlageLibre(typeCours) à Professeur.
  5. Professeur interroge son Planning avec le message verifierDisponibilite().
  6. Une fois la plage trouvée, Système envoie ajouterPlageReservee(horaire) au Planning (la réservation temporaire).
  7. Système envoie afficherResultat(cours, prof, horaire) à PageInscription.
  8. Préposé envoie saisirNomMembre(nomMembre) à PageInscription.
  9. Préposé envoie cliquerConfirmer() à PageInscription.
  10. PageInscription envoie confirmerInscription(nomMembre) à Système.
  11. Système envoie chercher(nomMembre) à RepertoireMembres (qui retourne le membre).
  12. Système envoie assigner(plageCours) à l'objet Membre.
  13. Système déclenche un appel de cas d'utilisation inclus (généralement modélisé par un message ou une note d'inclusion) : ref: Facturation d'un cours.
  14. Système envoie afficherMessageConfirmation() à PageInscription.

Diagramme de Collaboration (Communication)

Le diagramme de collaboration contient exactement les mêmes objets et les mêmes messages que le diagramme de séquence. La différence réside dans la présentation : la dimension temporelle n'est pas représentée par un axe vertical, mais par la numérotation des messages.

Construction :

  • Placez les objets sous forme de rectangles reliés par des traits (les liens de communication).
  • Le Système (ou Contrôleur) est généralement au centre, relié à la PageInscription d'un côté, et aux entités (RepertoireProfs, Professeur, Planning, RepertoireMembres, Membre) de l'autre.
  • Reportez chaque message de la liste ci-dessus sur le lien correspondant, en lui ajoutant un numéro d'ordre (1, 1.1, 1.2, 2, 2.1, etc.) et une flèche de direction pour indiquer l'expéditeur et le destinataire.

Exercice 2 - Montre à cadran numérique simplifiée

Ce diagramme d'états-transitions (ou automate à états finis) modélise le cycle de vie de la montre en fonction des actions de l'utilisateur sur les boutons.

États :

  • État initial (rond noir plein).
  • Affichage : Le mode courant et par défaut.
  • Modification heure : L'état permettant de régler les heures.
  • Modification minute : L'état permettant de régler les minutes.

Transitions et événements (Syntaxe : Événement [Condition] / Action) :

  1. Transition de l'État initial vers l'état Affichage.
  2. Transition de l'état Affichage vers l'état Modification heure.
    • Événement : appuyer_mode()
  • Transition sur lui-même (boucle) sur l'état Modification heure.
    • Événement : appuyer_avance()
    • Action : incrémenter_heure()
  • Transition de l'état Modification heure vers l'état Modification minute.
    • Événement : appuyer_mode()
  • Transition sur lui-même (boucle) sur l'état Modification minute.
    • Événement : appuyer_avance()
    • Action : incrémenter_minute()
  • Transition de l'état Modification minute vers l'état Affichage.
    • Événement : appuyer_mode()
  • Exercice 3 - Retrait d'argent avec une carte VISA

    Le diagramme d'activités modélise un flux de contrôle (et de données). L'enjeu de cet exercice est de bien modéliser les branchements conditionnels (losanges) et le parallélisme (barres de synchronisation).

    Déroulement étape par étape (à traduire en symboles graphiques) :

    1. Nœud initial (rond noir) pointant vers l'action Vérifier carte.
    2. Nœud de décision (Losange 1) :
      • Garde : [Carte invalide] -> Action Avaler carte -> Nœud final.
      • Garde : [Carte valide] -> Action Taper le code.
  • Nœud de décision (Losange 2 - Vérification du code et des tentatives) :
    • Garde : [Code faux ET essais < 3] -> Retour à l'action Taper le code (boucle).
    • Garde : [Code faux ET essais = 3] -> Action Avaler carte -> Nœud final.
    • Garde : [Code correct] -> Action Demander autorisation (SA VISA).
  • Nœud de décision (Losange 3 - Retour du SA VISA) :
    • Garde : [Retrait refusé] -> Action Ejecter carte -> Nœud final.
    • Garde : [Retrait autorisé] -> Barre de synchronisation (début d'un fork). Le texte précise que "Un ticket est toujours imprimé pendant que les billets sont proposés", ce qui implique des actions simultanées.
  • Flux parallèles (en aval de la barre de synchronisation) :
    • Branche 1 : Action Imprimer ticket.
    • Branche 2 : Action Proposer billets. À la suite de cette action, il faut un nœud de décision :
      • Garde : [Billets récupérés par le client] -> On continue.
      • Garde : [Délai expiré / Billets non récupérés] -> Action Reprendre billets -> On continue.
    • Branche 3 : Action Restituer/Ejecter carte (implicite pour finir l'opération). À la suite de cette action, un autre nœud de décision :
      • Garde : [Carte récupérée] -> On continue.
      • Garde : [Délai expiré / Carte non récupérée] -> Action Avaler carte -> On continue.
  • Barre de synchronisation (Join) : Les flux issus des branches 1, 2 et 3 se rejoignent sur une nouvelle barre noire épaisse.
  • Flux sortant de la barre de synchronisation vers le Nœud final d'activité (rond noir entouré d'un cercle).
  • Méthode

    Face à une épreuve de modélisation dynamique (UML), la démarche la plus sûre est l'analyse syntaxique du texte :

    • Pour un diagramme de séquence (Ex 1) : Soulignez chaque nom (qui devient un acteur ou un objet) et chaque verbe d'action (qui devient un message ou une méthode). Identifiez clairement qui est l'émetteur de l'action et qui en est le récepteur.
    • Pour un diagramme d'états (Ex 2) : Cherchez les noms qui qualifient "dans quelle situation" se trouve le système (affichage, modification) : ce sont vos états. Les déclencheurs (appuyer sur tel bouton) sont les événements des transitions.
    • Pour un diagramme d'activités (Ex 3) : Repérez les mots de liaison logiques. "Si", "Ou", "Sinon" indiquent des losanges de décision. "Pendant que", "En même temps" indiquent des barres de synchronisation (parallélisme). Pensez toujours à boucler vos chemins parallèles par une barre de jonction avant d'atteindre l'état final. Toujours gérer les cas d'erreur (carte avalée, refus) pour qu'ils aboutissent proprement à un nœud final.

    Partager

    Commentaires

    Aucun commentaire pour le moment. Posez la première question.

    Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

    ← Toutes les révisions