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.

Document source
Software Engineering (UML Analysis and Structural Modeling) · École Nationale des Sciences de l'Informatique (ENSI) · DOCX · 2 pages · 2016
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 classePaysà elle-même). Multiplicité de 0..* vers 0..*.
- Classe :
- Diagramme d'objets :
- Objets :
tunisie : Pays,algerie : Pays,lybie : Pays. - Liens : Un lien "est frontalier" entre l'objet
tunisieet l'objetalgerie. Un lien "est frontalier" entre l'objetlybieet l'objettunisie.
- Objets :
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.
- Classes :
- Diagramme d'objets :
- Objets :
foule1 : Foule,p1 : Personne,p2 : Personne. - Liens :
foule1est reliée par un lien d'agrégation àp1et àp2.
- Objets :
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.
- Classes :
- Diagramme d'objets :
- Objets :
eqA : Equipe,eqB : Equipe,p1 : Personne. - Liens : L'objet
p1est lié àeqAet àeqB.
- Objets :
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 deTransactionBancaire).
- Super-classe :
- 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).
- Objet :
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(ouTitulaire). - Sous-classes :
PersonnePhysique,PersonneMoralehéritant dePersonne. - Classe :
CompteBancaire. - Association :
CompteBancaire(multiplicité 0..*) ---- appartient à ---- (multiplicité 1..1)Personne.
- Super-classe :
- Diagramme d'objets :
- Objets :
compte1 : CompteBancaire,clientA : PersonnePhysique. - Lien :
compte1est lié àclientA.
- Objets :
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 :
Bateauest composé deCabine(Composition). Justification : les cabines font partie intégrante de la structure du bateau.Personneest une super-classe.Guide,AnimateuretPassageren héritent (Généralisation). Justification : ce sont des types spécifiques de personnes.Personneeffectue uneActivité(Association).Guideanime uneVisite(sous-classe d'Activitépar Généralisation) pour desPassager(Association ternaire ou multiples associations).Animateuranime uneAnimation(sous-classe d'Activité) pour desPassager(Association).Cabineest occupée parPersonne(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êtreest la classe centrale.FenêtrePrincipaleetFenêtreSecondaireen héritent (Généralisation).Fenêtreest composée d'unMenu(1..1), d'unBouton(1..*) et d'unTexte(1..1) (Composition). Justification : "est toujours composée de", cycle de vie partagé.Fenêtrecontient uneListeDéroulante(0..1) (Composition). Justification : l'énoncé dit "parfois", donc multiplicité 0..1, mais c'est un élément interne à la fenêtre.Menucontient desRubrique(1..*) (Composition).Rubriqueest une super-classe.Fichier,EditionetAffichageen héritent (Généralisation).FenêtrePrincipaleouvreFenê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 : Bateaulié (lien de composition) àc1 : Cabine.c1lié (lien d'occupation) àp1 : Passageretg1 : Guide.g1lié (lien d'explication) àv1 : Visiteet au passagerp1.
Pour l'énoncé 2 (Fenêtres) :
fp : FenêtrePrincipaleliée (compo) àm1 : Menu,btn1 : Bouton,txt1 : Texte.m1liée (compo) àrub1 : Fichieretrub2 : Edition.fpliée (association "ouvre") àfs : FenêtreSecondaire.fslié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é, etTrianglehéritent toutes deFigure.
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 :
-
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
Cerclela multiplicité côtéCôtéest exactement 1. PourTriangleelle est de 3. PourCarréelle est de 4.
-
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
EtudiantetMatiere. (Relation Many-to-Many "suit"). - Attributs :
valeurNote(Réel).
Méthode
Face à une épreuve de modélisation structurelle (UML) :
- 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).
- 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.
- 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) ?
- 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. - 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.
Commentaires
Aucun commentaire pour le moment. Posez la première question.