Série N°2 – Analyse : Modélisation structurelle UML
Exercice n°1 - Relations statiques et diagrammes Cet exercice demande d'identifier la bonne relation UML (association, agrégation, composition, généralisation) et de représenter les diagrammes d'objets et de classes. Étant donné le format textuel, les diagrammes sont décrits par leurs éléments constitutifs (classes, instances, liens).
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
Information Systems Engineering · École Nationale des Sciences de l'Informatique (ENSI) · DOCX · 2 pages · 2016
Exercice n°1 - Relations statiques et diagrammes
Cet exercice demande d'identifier la bonne relation UML (association, agrégation, composition, généralisation) et de représenter les diagrammes d'objets et de classes. Étant donné le format textuel, les diagrammes sont décrits par leurs éléments constitutifs (classes, instances, liens).
Question 1 - Pays frontaliers
Phrase : La Tunisie est frontalière à l’Algérie. La Lybie est frontalière à la Tunisie.
- Relation statique : Association réflexive (ou association unaire). L'association relie la classe à elle-même car tous les objets sont de la même nature (des pays).
- Diagramme de classes :
- Classe :
Pays - Association :
est_frontalierqui reliePays(0..) àPays(0..).
- Classe :
- Diagramme d'objets :
- Objets :
t : Pays(attribut nom = "Tunisie"),a : Pays(nom = "Algérie"),l : Pays(nom = "Lybie"). - Liens : Un lien
est_frontalierentreteta. Un lienest_frontalierentrelett.
- Objets :
Question 2 - Foule et personnes
Phrase : Une personne est dans une foule. Une foule contient plusieurs personnes (au minimum deux).
- Relation statique : Agrégation. Une foule est un regroupement de personnes, mais les personnes existent indépendamment de la foule (elles survivent à la disparition de la foule).
- Diagramme de classes :
- Classes :
FouleetPersonne. - Relation : Agrégation (losange vide côté
Foule). Multiplicités :Foule(0..) <>---- (2..)Personne.
- Classes :
- Diagramme d'objets :
- Objets :
f1 : Foule,p1 : Personne,p2 : Personne. - Liens : Lien d'agrégation entre
f1etp1, lien d'agrégation entref1etp2.
- Objets :
Question 3 - Équipes et personnes
Phrase : Une personne fait partie de plusieurs équipes. Une équipe contient plusieurs personnes.
- Relation statique : Association simple ou Agrégation. Comme une personne peut appartenir à plusieurs équipes en même temps, l'agrégation forte (composition) est exclue. Une simple association multiple-multiple est souvent privilégiée.
- Diagramme de classes :
- Classes :
EquipeetPersonne. - Relation : Association (ou agrégation avec losange vide côté
Equipe). Multiplicités :Equipe(1..) ---- (1..)Personne.
- Classes :
- Diagramme d'objets :
- Objets :
e1 : Equipe,e2 : Equipe,p1 : Personne. - Liens : Lien entre
e1etp1, lien entree2etp1.
- Objets :
Question 4 - Transactions bancaires
Phrase : Une transaction bancaire est un achat ou une vente.
- Relation statique : Généralisation (Héritage). Le terme "est un" indique clairement une relation de spécialisation.
- Diagramme de classes :
- Super-classe :
TransactionBancaire(peut être abstraite). - Sous-classes :
AchatetVente. - Relation : Flèche à bout triangulaire vide de
AchatversTransactionBancaire, et deVenteversTransactionBancaire.
- Super-classe :
- Diagramme d'objets :
- Les diagrammes d'objets ne représentent pas la généralisation directement. On instancie simplement les classes filles :
a1 : Achatetv1 : Vente.
- Les diagrammes d'objets ne représentent pas la généralisation directement. On instancie simplement les classes filles :
Question 5 - Comptes et personnes
Phrase : Un compte bancaire peut appartenir à une personne physique ou morale.
- Relation statique : Généralisation (pour les types de personnes) et Association (pour la relation de possession).
- Diagramme de classes :
- Classes :
Personne(Super-classe),PersonnePhysique(Sous-classe),PersonneMorale(Sous-classe). ClasseCompteBancaire. - Relations : Héritage de
PersonnePhysiqueetPersonneMoraleversPersonne. Associationappartient_aentreCompteBancaire(0..*) etPersonne(1).
- Classes :
- Objets :
c1 : CompteBancaire,pp1 : PersonnePhysique. - Lien : Un lien d'association entre
c1etpp1.
Exercice n°2 - Types de relations et conformité
Question 1 - Précision des types de relations
| Classes | Type de relation UML | Justification |
|---|---|---|
| Ordinateur / Système d'Exploitation | Association (ou dépendance) | Un système d'exploitation est installé sur un ordinateur. L'ordinateur existe physiquement sans OS, et l'OS existe en tant que logiciel distinct. Leurs cycles de vie ne sont pas liés de manière stricte (on peut changer d'OS, formater l'ordinateur). |
| Outil / Marteau | Généralisation / Spécialisation | Un marteau est un outil spécifique. Il hérite des caractéristiques générales de la classe abstraite ou parentale Outil. |
| Document / Feuille | Composition (Agrégation forte) | Dans le contexte d'un document physique, une feuille fait partie intégrante du document. Si on détruit le document, on détruit ses feuilles. Le losange plein serait du côté de Document. |
Question 2 - Conformité des diagrammes d'objets
Remarque : Les images correspondant au diagramme de classes et aux diagrammes d'objets (1), (2) et (3) sont manquantes dans le document source. Il est par conséquent impossible de répondre à cette question avec certitude. Pour qu'un diagramme d'objets soit conforme, il faut vérifier que :
- Chaque objet est l'instance d'une classe existante dans le diagramme de classes.
- Chaque lien entre objets correspond à une association valide entre leurs classes respectives.
- Le nombre de liens attachés à un objet respecte strictement les multiplicités définies sur le diagramme de classes.
Question 3 - Multiplicités et instances
Remarque : L'image du diagramme de classes UML incluant les classes B, C et D est manquante dans le document source. Il est impossible de déterminer le nombre exact d'instances de D et C auxquelles un objet B peut accéder sans voir les multiplicités (comme 1..*, 0..1, etc.) figurant sur les associations du diagramme manquant.
Exercice n° 3 - Modélisation d'analyse
Question 1 - Modèles de classes et argumentation
Énoncé A - Bateau de croisière
Classes identifiées : Bateau, Cabine, Personne, Guide, Animateur, Passager, Visite, Animation.
Relations et argumentations :
- Composition entre
Bateau(1) etCabine(1..*) : L'énoncé dit "Un bateau contient des cabines". Une cabine fait partie intégrante de la structure du bateau. - Association entre
Cabine(1) etPersonne(0..*) : Les cabines sont "occupées par des personnes". - Généralisation de
Guide,Animateur,PassagerversPersonne: "Les personnes sont ou bien des guides, ou bien...". Cela indique un héritage. - Association ternaire ou classes d'association pour les activités :
Guide"explique"Visite"aux"Passager. Une classe associationExplicationrelie Guide, Visite et Passager.Animateur"anime"Animation"pour"Passager. Une classe associationSéanceAnimationrelie Animateur, Animation et Passager.
Opérations :
- Dans
Guide:expliquerVisite(v: Visite, p: Liste<Passager>)- Méthode permettant d'associer un guide à une activité. - Dans
Animateur:animerAnimation(a: Animation, p: Liste<Passager>)- Méthode gérant l'animation.
Énoncé B - Fenêtres de dialogue
Classes identifiées : Fenetre, FenetrePrincipale, FenetreSecondaire, Menu, Bouton, Texte, ListeDeroulante, Rubrique, RubriqueFichier, RubriqueEdition, RubriqueAffichage.
Relations et argumentations :
- Composition entre
FenetreetMenu(1),Bouton(1..*),Texte(1) : L'énoncé dit "toujours composée d'un". Le cycle de vie des widgets est lié à la fenêtre. - Composition entre
FenetreetListeDeroulante(0..1) : "Contient parfois", indiquant une multiplicité de 0 à 1, mais la relation structurelle reste forte. - Composition entre
Menu(1) etRubrique(1..*) : "Un menu contient plusieurs rubriques". - Généralisation :
FenetrePrincipaleetFenetreSecondairehéritent deFenetre("Il existe deux types de fenêtres").RubriqueFichier,RubriqueEdition,RubriqueAffichagehéritent deRubrique("types de rubriques, dont...").
- Association entre
FenetrePrincipale(1) etFenetreSecondaire(0..*) : "Ouvrir une fenêtre secondaire à partir de la principale".
Opérations :
- Dans
FenetrePrincipale:ouvrirFenetreSecondaire()- Instancie et affiche une nouvelle sous-fenêtre. - Dans
Fenetre:fermer()- Méthode d'instance pour se fermer. - Dans le système global (ou méthode statique dans
Fenetre) :fermerToutes()- Pour satisfaire "fermer toutes les fenêtres".
Question 2 - Diagrammes d'objets
Pour l'énoncé A (Bateau) :
b1 : Bateaucontient (liens de composition)cab1 : Cabine.cab1est occupée par (lien d'association)p1 : Passager.g1 : Guideest lié àv1 : Visiteet àp1 : Passager(représentant le fait que ce guide explique cette visite à ce passager).
Pour l'énoncé B (Logiciel Windows) :
fMain : FenetrePrincipalecomposée dem1 : Menu,btn1 : Bouton,txt1 : Texte.m1composée derub1 : RubriqueFichier.fMainpossède un lien "ouvre" versfSec : FenetreSecondaire.fSecest composée de ses propres widgets :m2 : Menu,btn2 : Bouton,txt2 : Texte,list1 : ListeDeroulante.
Exercice n°4 - Figures emboîtées
Question 1 - Classes du domaine et généralisation
- Classes du domaine :
Figure,Cercle,Carre,Triangle. - Généralisation : Les classes
Cercle,CarreetTrianglesont des sous-classes qui héritent de la super-classe abstraiteFigure.Figureest en haut.- Flèches de généralisation remontant de
Cercle,Carre, etTriangleversFigure.
Question 2 - Diagramme d'objets du dessin
Remarque : Le dessin emf "figures (triangles, carrés ou cercles) emboîtées" n'est pas fourni dans le sujet. Il est impossible de dessiner le diagramme d'objets correspondant à la scène précise car nous ne connaissons pas l'arrangement visuel (qui est à l'intérieur de qui dans ce dessin spécifique).
Question 3 - Diagramme de classes complet
- Classes :
Figure(abstraite),Cercle,Carre,Triangle,Cote. - Relation Héritage : Identique à la question 1.
- Relations d'emboîtement (Composition ou Agrégation forte) :
L'énoncé demande de privilégier la composition. On justifie la composition car si le conteneur principal est détruit sur le plan de dessin, ses composants internes le sont généralement aussi.
Triangle(1) <>---- (1..)Figure(Les triangles contiennent au moins une figure).Cercle(1) <*>---- (1)Figure(Les cercles contiennent exactement une figure).Carren'a pas d'association de contenance (il ne contient rien, multiplicité 0).
- Relation avec les Côtés (Composition) :
Une figure géométrique est strictement composée de ses côtés.
Figure(1) <*>---- (n)Cote.- Note de modélisation : La multiplicité exacte des côtés varie par sous-classe. En UML, on peut placer l'association au niveau de la super-classe avec une contrainte OCL (ex:
{Cercle: n=1, Triangle: n=3, Carre: n=4}) ou associerCoteindividuellement à chaque sous-classe avec les multiplicités respectives :Cercle(1) -- (1)Cote,Triangle(1) -- (3)Cote,Carre(1) -*- (4)Cote.
Exercice n°5 - Gestion des cours universitaires
Il s'agit ici de construire un diagramme de classes d'analyse en tenant compte des attributs et méthodes pour chaque entité décrite.
Classes, attributs et opérations :
-
Classe abstraite
Personne- Attributs : nom, prenom, tel, mail.
- Opérations :
imprimerFicheSignaletique()(qui affichera prénom, tel, mail).
-
Classe
Enseignant(hérite dePersonne)- Attributs : datePriseFonction, indice.
-
Classe
Etudiant(hérite dePersonne)- Attributs : anneeEntree.
- Opérations :
calculerMoyenneGenerale(),afficherMatieresNonNotees().
Classe Etablissement
- Attributs : nomEtablissement.
Classe Departement
- Attributs : nomDepartement.
- Opérations :
calculerMoyenne().
Classe Matiere
- Attributs : intitule.
- Opérations :
calculerMoyenne().
Classe Salle
- Attributs : numeroSalle, nbPlaces.
Classe-Association Evaluation (Reliant Etudiant et Matiere)
- Attributs : valeurNote.
Relations UML entre les entités :
- Composition
Etablissement/Departement: Un établissement est structuré en départements.Etablissement(1) <>---- (1..)Departement.
- Agrégation
Departement/Enseignant(Appartenance) : Les départements regroupent des enseignants.Departement(1) <>---- (1..*)Enseignant.
- Association
Departement/Enseignant(Responsabilité) : Un des enseignants est responsable.Departement(0..1) ---- (1)Enseignant(Rôle du côté enseignant : chef de département).
- Association
Enseignant/Matiere: Un enseignant ne dispense qu'une seule matière, une matière est enseignée par plusieurs enseignants.Enseignant(1..*) ---- (1)Matiere.
- Association
Etudiant/Matiere: Les étudiants suivent plusieurs matières. C'est ici que l'on greffe la classe d'associationEvaluationpour porter la note.Etudiant(0..) ---- (0..)Matiere. Ligne pointillée vers la classeEvaluation.
- Association
Matiere/Salle: Une matière a toujours lieu dans la même salle de cours.Matiere(0..*) ---- (1)Salle. (Plusieurs matières peuvent partager une même salle sur des créneaux différents).
Méthode
Pour aborder efficacement une épreuve de modélisation structurelle UML :
- Extraction des entités (Noms) : Lisez le texte en soulignant les substantifs. Ils deviendront vos classes (ex: Bateau, Fenêtre, Étudiant). Les caractéristiques propres à ces noms (numéro, nom, année) deviennent les attributs.
- Identification des relations (Verbes) : Les verbes d'action ou d'état ("contient", "est un", "possède", "travaille dans") définissent les associations entre vos classes.
- Différenciation Héritage / Agrégation / Composition :
- Si la phrase peut se traduire par "X est un type de Y", c'est un héritage (Généralisation).
- Si la phrase indique "X possède un Y" ou "X fait partie de Y", c'est une agrégation.
- Si, en plus, la destruction de X entraîne obligatoirement la destruction de Y sans que Y n'ait de sens ailleurs (ex: le bouton d'une interface graphique ou la pièce d'une maison), c'est une composition (losange plein).
- Pose des multiplicités : Posez-vous la question dans les deux sens : "Un A est lié à combien de B (minimum et maximum) ?" et "Un B est lié à combien de A ?". Soyez particulièrement vigilant aux mots quantificateurs dans le texte (exactement un, un ou plusieurs, parfois).
- Gestion des manques : Lors d'un examen, si une information ou un schéma manque, indiquez-le toujours explicitement par écrit sur votre copie pour justifier l'impossibilité de répondre, plutôt que d'essayer d'inventer le contexte.
Commentaires
Aucun commentaire pour le moment. Posez la première question.