Série N°2 – Modélisation structurelle UML
Cet article présente des exercices corrigés de modélisation structurelle UML, couvrant les relations statiques, les diagrammes de classes et d'objets, ainsi qu'une analyse d'expression mathématique et un cas d'étude d'entreprise.
D'après le document Série N°2 – Modélisation structurelle UML
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Informatique, Modélisation UML, Analyse de systèmes · École Nationale des Sciences de l'Informatique (ENSI) · PDF · 2 pages · 2011
Afficher l'aperçu du document
Exercice n°1 - Relations statiques appropriées
Pour chaque énoncé, il convient d'identifier les concepts métiers (classes), leurs instances (objets) et la nature exacte des liens qui les unissent (généralisation, composition, agrégation ou association simple).
Phrase a) La Tunisie est frontalière à l’Algérie. La Lybie est frontalière à la Tunisie.
- Relation statique : Association réflexive (une classe reliée à elle-même).
- Diagramme de classes :
- Classe :
Pays - Association : Une association reliant
PaysàPays, avec pour rôle "est frontalière de". La multiplicité est de0..*de chaque côté (un pays peut avoir plusieurs pays frontaliers, ou aucun s'il s'agit d'une île).
- Classe :
- Diagramme d'objets :
- Objets :
tunisie : Pays,algerie : Pays,lybie : Pays. - Liens : Un lien d'association entre
tunisieetalgerie. Un lien d'association entrelybieettunisie.
- Objets :
Phrase b) Une personne est dans une foule. Une foule contient plusieurs personnes.
- Relation statique : Agrégation. La foule regroupe des personnes, mais les personnes existent indépendamment de la foule (si la foule se disperse, les personnes continuent d'exister).
- Diagramme de classes :
- Classes :
FouleetPersonne. - Relation : La classe
Foulea un losange vide de son côté, relié par un trait à la classePersonne. - Multiplicités :
1(ou0..1) du côté deFoule, et1..*(ou2..*selon la définition stricte d'une foule) du côté dePersonne.
- Classes :
- Diagramme d'objets :
- Objets :
f1 : Foule,p1 : Personne,p2 : Personne. - Liens : Des liens d'agrégation partent de
f1versp1etp2.
- Objets :
Phrase c) Une personne fait partie de plusieurs équipes. Une équipe contient plusieurs personnes.
- Relation statique : Association simple (ou Agrégation partagée). Le terme "fait partie de" peut justifier une agrégation, mais l'association multiple (plusieurs équipes pour une personne) rend l'association simple tout aussi correcte.
- Diagramme de classes :
- Classes :
EquipeetPersonne. - Relation : Association "fait partie / contient".
- Multiplicités :
1..*du côté dePersonne(l'équipe a plusieurs personnes) et1..*du côté d'Equipe(la personne est dans plusieurs équipes).
- Classes :
- Diagramme d'objets :
- Objets :
e1 : Equipe,e2 : Equipe,p1 : Personne. - Liens :
p1est relié à la fois àe1et àe2par des liens d'association.
- Objets :
Phrase d) Une transaction bancaire est un achat ou une vente.
- Relation statique : Généralisation (Héritage). Le mot "est un" est le marqueur classique de l'héritage.
- Diagramme de classes :
- Super-classe :
Transaction(idéalement abstraite). - Sous-classes :
AchatetVente. - Relation : Flèches à pointe triangulaire vide partant de
AchatetVenteversTransaction.
- Super-classe :
- Diagramme d'objets :
- Objets :
achat1 : Achat,vente1 : Vente. - Note : On n'instancie pas la classe mère si elle est abstraite, on ne peut créer que des instances des classes filles. Il n'y a pas de lien structurel à dessiner entre ces objets dans ce contexte.
- Objets :
Phrase e) Un compte bancaire peut appartenir à une personne physique ou morale.
- Relation statique : Généralisation (pour les types de personnes) et Association (pour l'appartenance du compte).
- Diagramme de classes :
- Classes :
Titulaire(ouPersonne, classe mère),PersonnePhysique(fille),PersonneMorale(fille), etCompteBancaire. - Relations : Héritage entre
PersonnePhysique/PersonneMoraleet la classe mèreTitulaire. Association "appartient à" entreCompteBancaireetTitulaire. - Multiplicités :
1..*côtéCompteBancaire(le titulaire peut avoir plusieurs comptes) et1côtéTitulaire.
- Classes :
- Diagramme d'objets :
- Objets :
entrepriseX : PersonneMorale,jean : PersonnePhysique,compte1 : CompteBancaire,compte2 : CompteBancaire. - Liens :
compte1relié àentrepriseXetcompte2relié àjean.
- Objets :
Exercice n°2 - Lecture de diagrammes de classes
L'énoncé fait référence à deux diagrammes, mais nous ne disposons visuellement que des informations extraites du premier, qui définit une classe Personne avec les rôles associatifs : -enfants 0..*, -père 1, -mère 1, et -conjoint 0..*.
Répondons aux questions de déduction pour une personne donnée :
- Peut-on savoir ses fils ? Non. Le modèle liste les
-enfants, mais il n'y a aucun attribut de genre (sexe) ou de sous-classe explicite dans ce premier diagramme pour distinguer les fils des filles. - Peut-on savoir ses garçons (resp. ses filles) ? Non, pour la même raison que ci-dessus. L'information sur le sexe de l'enfant est manquante.
- Peut-on savoir son père (resp. sa mère) ? Oui. Les rôles
-pèreavec la multiplicité1et-mèreavec la multiplicité1permettent de remonter directement aux parents spécifiques. - Peut-on savoir son conjoint ? Oui. Le rôle
-conjointest modélisé de manière explicite.
Note relative au 2ème diagramme (mentionné à droite dans votre sujet d'origine) : S'il introduit des sous-classes Homme et Femme héritant de Personne, alors il devient possible de déterminer qui sont les fils et les filles en vérifiant le type des instances reliées par le rôle "enfants".
Diagramme d’objets relatif à la famille
En supposant le modèle standard où un Homme et une Femme héritent de Personne :
- Objets instanciés :
ali : Homme(ouali : Personnesi l'héritage n'est pas utilisé), avecnom="...",prénom="Ali"emna : Femme, avecnom="...",prénom="Emna"houda : Femme, avecnom="...",prénom="Houda"maher : Homme, avecnom="...",prénom="Maher"
- Liens entre les objets :
- Lien "conjoint" bidirectionnel entre
alietemna. - Lien "père" partant de
houdaversaliet demaherversali. - Lien "mère" partant de
houdaversemnaet demaherversemna. - Liens "enfants" partant de
alivershoudaetmaher, et deemnavershoudaetmaher.
- Lien "conjoint" bidirectionnel entre
Exercice n° 3 - Modélisation complexe d'analyse
Question 3.1.a - Le Bateau de croisière
- Classes pertinentes :
Bateau,Cabine,Personne(super-classe abstraite),Guide,Animateur,Passager,Visite,Animation. - Relations et Argumentations :
- Composition entre
BateauetCabine: "Un bateau contient des cabines". Physiquement, la cabine n'existe pas sans le bateau. - Association entre
CabineetPersonne: "occupées par des personnes". Multiplicités :1..*(Personnes) occupent1(Cabine). - Généralisation : "Les personnes sont ou bien des guides, ou bien...".
Guide,Animateur, etPassagerhéritent de la classe mèrePersonne. - Association entre
GuideetVisite: "expliquent des visites". - Association entre
AnimateuretAnimation: "animent des animations". - Association entre
PassageretVisite/Animation: Le passager participe aux activités.
- Composition entre
Question 3.1.b - Le logiciel et ses fenêtres
- Classes pertinentes :
Fenetre(super-classe abstraite),Menu,Bouton,Texte,ListeDeroulante,Rubrique(super-classe abstraite),RubriqueFichier,RubriqueEdition,RubriqueAffichage,FenetrePrincipale,FenetreSecondaire. - Relations et Argumentations :
- Composition
Fenetre*--Menu,Fenetre*--Bouton,Fenetre*--Texte: "Une fenêtre est toujours composée d’un...". Si on détruit la fenêtre, ses éléments d'interface disparaissent. - Agrégation (ou Composition optionnelle)
Fenetreo--0..1 ListeDeroulante: "contient parfois". - Composition
Menu*--Rubrique: "Un menu contient plusieurs rubriques". - Généralisation :
RubriqueFichier,RubriqueEdition,RubriqueAffichagehéritent deRubrique("différents types de rubriques"). - Généralisation :
FenetrePrincipaleetFenetreSecondairehéritent deFenetre. - Association dirigée de
FenetrePrincipaleversFenetreSecondaire: "ouvrir une fenêtre secondaire à partir de la fenêtre principale".
- Composition
- Opérations : La classe abstraite
Fenetredoit posséder une méthodefermer(), qui sera héritée par toutes les fenêtres pour satisfaire la contrainte "il doit être possible de fermer toutes les fenêtres".
Question 3.2 - Diagrammes d'objets
Pour l'énoncé (a) - Le bateau :
- Objet
bat1 : Bateau - Objets
cab1 : Cabine,cab2 : Cabine(liés par composition àbat1). - Objet
passager1 : Passager(lié àcab1par le rôle "occupe"). - Objet
guide1 : Guide(lié àcab2par le rôle "occupe"). - Objet
visiteRome : Visite. Liens d'association depuisguide1("explique") et depuispassager1("participe").
Pour l'énoncé (b) - Les fenêtres :
- Objet
fenPrin : FenetrePrincipale. - Objets
menu1 : Menu,btn1 : Bouton,txt1 : Texte(liés par composition àfenPrin). - Objets
rubF : RubriqueFichier,rubE : RubriqueEdition(liés par composition àmenu1). - Objet
fenSec : FenetreSecondaire. Un lien part defenPrinversfenSec(représentant l'ouverture).fenSecpossèdera ses propres objetsMenu,Boutonpar composition.
Exercice n°4 - Modélisation d'une expression mathématique
Soit l’expression : (X + Y ÷ 2) ÷ (X ÷ 3 + Y)
Cette problématique fait appel au patron de conception Composite, classique pour la représentation des arbres syntaxiques.
Identification des classes pertinentes
Expression: classe mère abstraite représentant tout élément évaluable.Binaire: classe mère abstraite pour les opérations à deux opérandes (hérite deExpression).AdditionetDivision: sous-classes deBinaire.VariableetConstante: sous-classes deExpression(feuilles de l'arbre).
Diagramme de classes
- Généralisation :
Binaire,VariableetConstantehéritent deExpression. - Généralisation :
AdditionetDivisionhéritent deBinaire. - Agrégation / Association : La classe
Binairepossède deux associations dirigées versExpressionnommées respectivementoperandeGaucheetoperandeDroite(multiplicité1de chaque côté).
Diagramme d’objets
Le diagramme d'objets prend la forme d'un arbre reflétant l'ordre de priorité des opérations (les parenthèses forcent la structure) :
- Nœud Racine :
div_principale : Division- Lien operandeGauche vers :
add_gauche : Addition- Lien operandeGauche vers :
varX1 : Variable (nom="X") - Lien operandeDroite vers :
div_interne1 : Division- Lien operandeGauche vers :
varY1 : Variable (nom="Y") - Lien operandeDroite vers :
const2 : Constante (valeur=2)
- Lien operandeGauche vers :
- Lien operandeGauche vers :
- Lien operandeGauche vers :
add_droite : Addition
- Lien operandeGauche vers :
div_interne2 : Division- Lien operandeGauche vers :
varX2 : Variable (nom="X") - Lien operandeDroite vers :
const3 : Constante (valeur=3)
- Lien operandeGauche vers :
- Lien operandeDroite vers :
varY2 : Variable (nom="Y")
(Note : Dans de nombreux modèles d'arbres, varX1 et varX2 peuvent pointer vers la même instance d'un objet si l'on applique le patron Poids-Mouche / Flyweight, mais l'instanciation de deux objets distincts est la norme pour un diagramme d'objets basique).
Exercice n°5 - Analyse du SI de l'entreprise
Il s'agit d'extraire les entités et leurs attributs directement du texte fourni.
- Classe
DirectionRegionale- Attributs :
code,libellé - Relation : Pilote des agences locales (Association dirigée). Multiplicité :
1(Direction) →1..*(Agences).
- Attributs :
- Classe
AgenceLocale- Attributs :
code,intitulé,date_creation,date_fermeture - Relation : A pour personnel des personnes (Association). Multiplicité :
1(Agence) →1..*(Personnes).
- Attributs :
- Classe
Personne- Attributs :
numero,qualite,nom,prenom,date_naissance,date_previsionnelle_arrivee,date_arrivee,date_depart.
- Attributs :
Le diagramme de classes final est strictement linéaire (une hiérarchie organisationnelle) : DirectionRegionale (1) --- pilote ---> (1..*) AgenceLocale (1) --- rattache ---> (1..*) Personne.
Méthode
Pour aborder une épreuve de modélisation structurelle UML :
- L'analyse lexicale : Repérez les substantifs (noms communs) dans l'énoncé : ce sont vos classes candidates. Repérez les verbes (est, contient, possède, dirige) : ce sont vos associations.
- Identification des relations :
- "Est un", "est une sorte de" → Généralisation (héritage).
- "Possède", "Fait partie de", où l'élément contenu peut survivre sans le conteneur → Agrégation.
- "Est composé de", "Est détruit si le parent l'est" → Composition.
- Abstraction : Ne modélisez que ce que l'énoncé vous donne. N'inventez pas d'attributs qui semblent "logiques" (comme l'adresse d'une personne) s'ils ne sont pas explicitement demandés ou déductibles du texte.
- Instanciation (Diagramme d'objets) : C'est la preuve que votre modèle fonctionne. Vérifiez que la création d'un objet respecte les règles (on ne peut pas instancier une classe abstraite, on doit respecter les multiplicités de la classe).
Commentaires
Aucun commentaire pour le moment. Posez la première question.