Série N°2 – Analyse : Modélisation structurelle UML

Exercice 1 - Détermination des relations statiques Pour chaque phrase, nous devons identifier les classes, la relation structurelle qui les lie, et proposer une représentation des diagrammes de classes et d'objets sous forme textuelle. Phrase 1 - Frontières entre pays Énoncé : La Tunisie est frontalière à l’Algérie. La Lybie est frontalière à la Tunisie.

D'après le document Série N°2 – Analyse : Modélisation structurelle UML

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

Série N°2 – Analyse : Modélisation structurelle UML

Document source

Série N°2 – Analyse : Modélisation structurelle UML

Software Engineering (UML Analysis and Structural Modeling) · École Nationale des Sciences de l'Informatique (ENSI) · DOCX · 2 pages · 2016

Consulter le document original →

Exercice 1 - Détermination des relations statiques

Pour chaque phrase, nous devons identifier les classes, la relation structurelle qui les lie, et proposer une représentation des diagrammes de classes et d'objets sous forme textuelle.

Phrase 1 - Frontières entre pays

  • Énoncé : La Tunisie est frontalière à l’Algérie. La Lybie est frontalière à la Tunisie.
  • Relation : Association réflexive et symétrique.
  • Diagramme de classes :
    • Classe : Pays
    • Association : est frontalier (relie la classe Pays à elle-même). Multiplicité de 0..* vers 0..*.
  • Diagramme d'objets :
    • Objets : tunisie : Pays, algerie : Pays, lybie : Pays.
    • Liens : Un lien "est frontalier" entre l'objet tunisie et l'objet algerie. Un lien "est frontalier" entre l'objet lybie et l'objet tunisie.

Phrase 2 - Personne et foule

  • Énoncé : Une personne est dans une foule. Une foule contient plusieurs personnes (au minimum deux personnes).
  • Relation : Agrégation. Une foule est un ensemble (un tout) constitué de personnes (les parties). La destruction de la foule n'entraîne pas la destruction des personnes (couplage faible).
  • Diagramme de classes :
    • Classes : Foule, Personne
    • Agrégation : Foule (côté losange vide, multiplicité 0..) <>---- contient ---- (multiplicité 2..) Personne.
  • Diagramme d'objets :
    • Objets : foule1 : Foule, p1 : Personne, p2 : Personne.
    • Liens : foule1 est reliée par un lien d'agrégation à p1 et à p2.

Phrase 3 - Personne et équipe

  • Énoncé : Une personne fait partie de plusieurs équipes. Une équipe contient plusieurs personnes.
  • Relation : Agrégation (ou association simple). Le terme "fait partie de" indique une relation tout/partie non vitale.
  • Diagramme de classes :
    • Classes : Equipe, Personne
    • Agrégation : Equipe (côté losange vide, multiplicité 0..) <>---- est composée de ---- (multiplicité 1..) Personne.
  • Diagramme d'objets :
    • Objets : eqA : Equipe, eqB : Equipe, p1 : Personne.
    • Liens : L'objet p1 est lié à eqA et à eqB.

Phrase 4 - Transaction bancaire

  • Énoncé : Une transaction bancaire est un achat ou une vente.
  • Relation : Généralisation / Spécialisation (Héritage). "est un" indique clairement l'héritage.
  • Diagramme de classes :
    • Super-classe : TransactionBancaire
    • Sous-classes : Achat, Vente (les deux héritent de TransactionBancaire).
  • Diagramme d'objets : L'héritage ne se représente pas par un lien entre instances dans un diagramme d'objets. On instanciera simplement une sous-classe.
    • Objet : achat1 : Achat (qui possède intrinsèquement les propriétés de la super-classe).

Phrase 5 - Compte bancaire et titulaire

  • Énoncé : Un compte bancaire peut appartenir à une personne physique ou morale.
  • Relation : Combinaison de Généralisation (Personne physique et morale) et d'Association (appartenance).
  • Diagramme de classes :
    • Super-classe : Personne (ou Titulaire).
    • Sous-classes : PersonnePhysique, PersonneMorale héritant de Personne.
    • Classe : CompteBancaire.
    • Association : CompteBancaire (multiplicité 0..*) ---- appartient à ---- (multiplicité 1..1) Personne.
  • Diagramme d'objets :
    • Objets : compte1 : CompteBancaire, clientA : PersonnePhysique.
    • Lien : compte1 est lié à clientA.

Exercice 2 - Typologie des relations et conformité

Question 1 - Précision du type de relation

  • 1.1. Une classe ‘Ordinateur’ et une classe ‘Système d'Exploitation’

    • Type de relation : Association (ou Agrégation).
    • Justification : Un système d'exploitation est installé sur un ordinateur, il s'agit d'un lien structurel. L'ordinateur et le système d'exploitation ont des cycles de vie indépendants (on peut formater l'ordinateur et installer un autre OS, et l'OS en tant que logiciel existe indépendamment de la machine matérielle). Une association "est installé sur" est adéquate.
  • 1.2. Une classe ‘Outil’ et une classe ‘Marteau’

    • Type de relation : Généralisation / Spécialisation (Héritage).
    • Justification : Un marteau est une sorte d'outil. Le marteau possède toutes les caractéristiques d'un outil avec des spécificités en plus.
  • 1.3. Une classe ‘Document’ et une classe ‘Feuille’

    • Type de relation : Composition.
    • Justification : Il s'agit d'une relation tout-partie très forte. Une feuille fait partie intégrante d'un document physique. Si on détruit le document, les feuilles qui le composent sont détruites avec lui (cycle de vie dépendant).

Question 2 - Conformité des diagrammes d'objets

Le document source ne contient pas les images du diagramme de classes ni des diagrammes d'objets (1), (2) et (3) (mention "data:image/png;base64..." non résolue). Il est donc impossible de procéder à l'analyse de conformité demandée. Dans une situation normale, la méthode consisterait à vérifier que chaque lien entre objets respecte les associations, les navigabilités et les multiplicités définies dans le diagramme de classes.

Question 3 - Accès aux objets instances

De même, le diagramme de classes nécessaire pour répondre à cette question est manquant dans l'énoncé source. Il est impossible de déterminer combien d'instances des classes C et D sont accessibles depuis un objet B sans visualiser les multiplicités et la navigabilité des associations sur le schéma.

Exercice 3 - Modélisation par diagrammes de classes d'analyse

Question 1 - Modélisation des énoncés

Énoncé 1 - Le bateau

Classes et Relations :

  • Bateau est composé de Cabine (Composition). Justification : les cabines font partie intégrante de la structure du bateau.
  • Personne est une super-classe. Guide, Animateur et Passager en héritent (Généralisation). Justification : ce sont des types spécifiques de personnes.
  • Personne effectue une Activité (Association).
  • Guide anime une Visite (sous-classe d'Activité par Généralisation) pour des Passager (Association ternaire ou multiples associations).
  • Animateur anime une Animation (sous-classe d'Activité) pour des Passager (Association).
  • Cabine est occupée par Personne (Association).

Opérations :

  • Guide : expliquerVisite(Passager p, Visite v)
  • Animateur : animer(Passager p, Animation a)

Énoncé 2 - Les fenêtres de dialogue

Classes et Relations :

  • Fenêtre est la classe centrale. FenêtrePrincipale et FenêtreSecondaire en héritent (Généralisation).
  • Fenêtre est composée d'un Menu (1..1), d'un Bouton (1..*) et d'un Texte (1..1) (Composition). Justification : "est toujours composée de", cycle de vie partagé.
  • Fenêtre contient une ListeDéroulante (0..1) (Composition). Justification : l'énoncé dit "parfois", donc multiplicité 0..1, mais c'est un élément interne à la fenêtre.
  • Menu contient des Rubrique (1..*) (Composition).
  • Rubrique est une super-classe. Fichier, Edition et Affichage en héritent (Généralisation).
  • FenêtrePrincipale ouvre FenêtreSecondaire (Association).

Opérations :

  • Fenêtre : fermer() (l'énoncé précise "fermer toutes les fenêtres").
  • FenêtrePrincipale : ouvrir(FenêtreSecondaire fs).

Question 2 - Diagrammes d'objets

Pour l'énoncé 1 (Bateau) :

  • b : Bateau lié (lien de composition) à c1 : Cabine.
  • c1 lié (lien d'occupation) à p1 : Passager et g1 : Guide.
  • g1 lié (lien d'explication) à v1 : Visite et au passager p1.

Pour l'énoncé 2 (Fenêtres) :

  • fp : FenêtrePrincipale liée (compo) à m1 : Menu, btn1 : Bouton, txt1 : Texte.
  • m1 liée (compo) à rub1 : Fichier et rub2 : Edition.
  • fp liée (association "ouvre") à fs : FenêtreSecondaire.
  • fs liée (compo) à m2 : Menu, btn2 : Bouton, txt2 : Texte, liste1 : ListeDéroulante.

Exercice 4 - Modélisation des figures géométriques

Question 1 - Classes du domaine et généralisation

Les classes du domaine sont : Figure, Cercle, Carré, Triangle et Côté. La notion d'héritage s'applique ici :

  • La classe mère (générique) est Figure.
  • Les classes Cercle, Carré, et Triangle héritent toutes de Figure.

Question 2 - Diagramme d'objets du dessin

L'image du dessin ("figures emboîtées") est absente du document source. S'il s'agissait, par exemple, d'un triangle contenant un carré et un cercle, le diagramme listerait un objet t1 : Triangle lié à c1 : Carré et c2 : Cercle via un lien d'emboîtement, en omettant les objets Côté comme demandé.

Question 3 - Diagramme de classes complet (compositions et agrégations)

Pour modéliser l'emboîtement et les côtés, nous utilisons des associations fortes :

  1. Relation avec les Côtés (Composition) : Une figure possède intrinsèquement ses côtés. Si on supprime la figure, on supprime ses côtés.

    • Figure (1..1) <>- (composition) -> (1..*) Côté.
    • Contraintes locales par héritage : Pour Cercle la multiplicité côté Côté est exactement 1. Pour Triangle elle est de 3. Pour Carré elle est de 4.
  2. Relation d'emboîtement (Composition ou Agrégation) : L'énoncé dit "emboîtées". Si une figure emboîtée n'existe que dans le cadre de la figure englobante, c'est une composition. Si elle peut être retirée et exister à part, c'est une agrégation. La composition est généralement préférée pour des dessins géométriques stricts.

    • Modélisons l'emboîtement via la classe parente et précisons les multiplicités sur les classes filles (ou créons des associations spécifiques) :
    • Triangle (1..1) <>- (composition) -> (1..) Figure. (Le triangle contient 1.. figures).
    • Cercle (1..1) <>- (composition) -> (1..1) Figure. (Le cercle contient exactement 1 figure).
    • Carré ne possède aucune association d'emboîtement sortante (il ne contient rien, multiplicité 0).

Exercice 5 - Gestion universitaire (Diagramme de classes d'analyse)

Pour modéliser ce système d'information, nous allons d'abord identifier les attributs communs entre les enseignants et les étudiants pour créer une classe mère abstraite, puis structurer les relations.

Classe abstraite Personne

  • Attributs : nom (String), prenom (String), tel (String), mail (String).
  • Méthode : imprimerFicheSignaletique()

Classe Enseignant (hérite de Personne)

  • Attributs : datePriseFonction (Date), indice (Entier).
  • (Hérite de la méthode d'impression de sa classe mère).

Classe Etudiant (hérite de Personne)

  • Attributs : anneeEntree (Entier).
  • Méthodes : calculerMoyenneGenerale(), afficherMatieresNonNotees().

Classe Universite

  • Composée de plusieurs Etablissement.

Classe Etablissement

  • Composé de plusieurs Departement (Composition).
  • Association vers Etudiant (les étudiants sont inscrits dans l'établissement pour justifier "anneeEntree au sein de cet établissement").

Classe Departement

  • Regroupe des enseignants : Departement <>-- (agrégation) -> (1..*) Enseignant.
  • A un responsable : Association (0..1) Departement ---- est dirigé par ---- (1..1) Enseignant.
  • Méthode : calculerMoyenne().

Classe Matiere

  • Méthode : calculerMoyenne().
  • Association avec Salle : Matiere (0..*) ---- a lieu dans ---- (1..1) Salle.
  • Association avec Enseignant : Matiere (1..1) ---- enseignée par ---- (1..*) Enseignant. (L'énoncé dit : un enseignant dispense 1 seule matière, une matière a plusieurs enseignants).

Classe Salle

  • Attributs : numero (String), capacite (Entier).

Classe d'association Evaluation (ou Note)

  • Relie Etudiant et Matiere. (Relation Many-to-Many "suit").
  • Attributs : valeurNote (Réel).

Méthode

Face à une épreuve de modélisation structurelle (UML) :

  1. Extraction des entités et relations : Lisez le texte phrase par phrase en soulignant les noms (qui deviendront des classes ou des attributs) et les verbes (qui deviendront des associations ou des méthodes).
  2. Identification des relations fortes : Cherchez les mots-clés. "Est un", "sorte de" signalent une généralisation (héritage). "Fait partie de", "composé de" signalent une agrégation ou une composition.
  3. Différencier Agrégation et Composition : Posez-vous la question du cycle de vie. Si vous supprimez le conteneur, le contenu doit-il logiquement disparaître de votre système (Composition) ou peut-il exister indépendamment (Agrégation) ?
  4. Factorisation : Dès que deux classes partagent au moins trois attributs ou méthodes identiques (ex: Nom, Prénom, Mail, Tél pour Étudiants et Enseignants), créez une classe mère (ex: Personne) pour simplifier le modèle.
  5. Vérification des multiplicités : Relisez le texte pour justifier chaque chiffre (ex: "toujours" = 1, "plusieurs" = , "au minimum deux" = 2..). Si le texte ne précise rien, utilisez votre bon sens métier mais justifiez-le.

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