Série N°2 – Analyse : Modélisation structurelle UML
Ce TP porte sur la modélisation structurelle en UML, visant à apprendre à identifier et représenter les différentes relations entre classes (généralisation, composition, agrégation, association) à partir d'énoncés textuels. Il s'agit également de dessiner des diagrammes de classes et d'objets conformes aux situations données.
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: Object-Oriented Analysis and Design (OOAD) · École Nationale des Sciences de l'Informatique (ENSI) · PDF · 2 pages · 2017
Afficher l'aperçu du document
Ce TP porte sur la modélisation structurelle en UML, visant à apprendre à identifier et représenter les différentes relations entre classes (généralisation, composition, agrégation, association) à partir d'énoncés textuels. Il s'agit également de dessiner des diagrammes de classes et d'objets conformes aux situations données. Pour réaliser ce TP, il est nécessaire de connaître les concepts de base d’UML, notamment les types de relations et la structure des diagrammes de classes et d’objets.
Objectifs
- Identifier correctement les relations statiques entre classes (association, composition, agrégation, généralisation).
- Modéliser des situations réelles sous forme de diagrammes de classes et d’objets UML.
- Analyser la conformité d’un diagramme d’objets par rapport à un diagramme de classes.
- Définir les attributs et méthodes pertinents dans un diagramme de classes d’analyse.
Prérequis et installation
- Connaissance des concepts UML : classes, objets, relations (association, composition, agrégation, généralisation).
- Logiciel de modélisation UML (facultatif mais recommandé pour dessiner les diagrammes).
- Compréhension des notions de base en programmation orientée objet.
Exercice 1 : Identification des relations et dessin des diagrammes
Dans cet exercice, vous devez déterminer la relation statique appropriée entre les entités données et dessiner le diagramme d’objets (si possible) ainsi que le diagramme de classes correspondant à chaque phrase.
- Phrase a) : "La Tunisie est frontalière à l’Algérie. La Lybie est frontalière à la Tunisie."
Action : Identifier la relation entre les pays. Il s'agit d'une association simple (relation de voisinage).
Résultat attendu : Un diagramme de classes avec une association bidirectionnelle "frontalière à" entre les classes "Tunisie", "Algérie" et "Lybie".
- Phrase b) : "Une personne est dans une foule. Une foule contient plusieurs personnes (au minimum deux personnes)."
Action : Modéliser la relation entre "Personne" et "Foule". La foule contient plusieurs personnes, ce qui correspond à une agrégation.
Résultat attendu : Diagramme de classes avec une agrégation de "Foule" vers "Personne" avec une multiplicité de 2..* du côté "Personne".
- Phrase c) : "Une personne fait partie de plusieurs équipes. Une équipe contient plusieurs personnes."
Action : Identifier une association multiple entre "Personne" et "Équipe".
Résultat attendu : Diagramme de classes avec une association bidirectionnelle entre "Personne" et "Équipe", chacune avec multiplicité multiple.
- Phrase d) : "Une transaction bancaire est un achat ou une vente."
Action : Modéliser la relation de spécialisation/généralisation entre "Transaction bancaire" et les sous-classes "Achat" et "Vente".
Résultat attendu : Diagramme de classes avec une généralisation de "Transaction bancaire" vers "Achat" et "Vente".
Action : Modéliser l’association entre "Compte bancaire" et "Personne physique" ou "Personne morale".
Résultat attendu : Diagramme de classes avec une association entre "Compte bancaire" et une super-classe "Personne" qui est spécialisée en "Personne physique" et "Personne morale".
Exercice 2 : Analyse des relations et conformité des diagrammes d’objets
Cette étape consiste à préciser le type de relation dans des situations données, puis à vérifier la conformité de diagrammes d’objets par rapport à un diagramme de classes.
- Identification des relations :
- a) Entre "Ordinateur" et "Système d’Exploitation" : il s'agit d'une association, car un ordinateur utilise un système d’exploitation.
- b) Entre "Outil" et "Marteau" : relation de généralisation, car "Marteau" est un type d’outil.
- c) Entre "Document" et "Feuille" : relation de composition ou agrégation selon le contexte, car un document est composé de feuilles.
- Conformité des diagrammes d’objets :
Pour chaque diagramme d’objets (1), (2) et (3), vérifier si les instances (a, b, c, d) et les liens (alpha1, beta1) respectent les associations définies dans le diagramme de classes.
Action : Examiner les liens entre objets et vérifier la cohérence avec les multiplicité et types d’association du diagramme de classes.
Résultat attendu : Indication claire pour chaque diagramme s’il est conforme ou non, avec justification.
- Accès aux instances :
Pour la classe "B", déterminer le nombre d’objets instances de "D" et "C" accessibles.
Action : Analyser les associations dans le diagramme de classes UML donné.
Résultat attendu : Nombre d’objets accessibles justifié par les relations et multiplicité.
Exercice 3 : Modélisation avancée et diagrammes d’objets
Modéliser des énoncés complexes par des diagrammes de classes d’analyse, en justifiant les relations et en commentant les opérations des classes. Puis proposer des diagrammes d’objets instanciant ces classes.
- Énoncé a) :
Un bateau contient des cabines occupées par des personnes qui effectuent des activités. Les personnes sont des guides, animateurs ou passagers. Les guides expliquent des visites aux passagers, les animateurs animent des animations pour les passagers.
Action : Modéliser les classes "Bateau", "Cabine", "Personne" (avec spécialisation en "Guide", "Animateur", "Passager") et "Activité". Définir les relations de composition (ex : bateau contient cabines), d’association (ex : guides expliquent visites aux passagers).
Résultat attendu : Diagramme de classes avec généralisation pour les types de personnes, composition bateau-cabines, associations entre personnes et activités.
- Énoncé b) :
Modéliser une interface de fenêtres de dialogue de type Windows :
- Une fenêtre est composée d’un menu, d’un ou plusieurs boutons et de texte.
- Une fenêtre contient parfois une liste déroulante.
- Un menu contient plusieurs rubriques, dont "fichier", "édition", "affichage".
- Il existe deux types de fenêtres : principales et secondaires.
- Une fenêtre secondaire peut s’ouvrir à partir d’une fenêtre principale.
- Il doit être possible de fermer toutes les fenêtres.
Action : Modéliser les classes "Fenêtre", "Menu", "Bouton", "Texte", "Liste déroulante", "Rubrique" (avec spécialisation), et les relations entre elles, en précisant composition et associations. Ajouter les opérations d’ouverture et de fermeture.
Résultat attendu : Diagramme de classes complet avec spécialisation des fenêtres et rubriques, et relations de composition.
- Diagrammes d’objets :
Proposer un diagramme d’objets instanciant les diagrammes de classes des deux énoncés précédents.
Exercice 4 : Modélisation de figures géométriques emboîtées
À partir d’une description textuelle de figures géométriques emboîtées (triangles, carrés, cercles), modéliser les classes et leurs relations.
- Détermination des classes et héritage :
Classes : "Figure", "Triangle", "Carré", "Cercle", "Côté".
Les triangles contiennent une ou plusieurs figures, les carrés ne contiennent rien, les cercles contiennent exactement une figure. Les figures ont des côtés : cercles 1 côté, triangles 3 côtés, carrés 4 côtés.
Action : Définir les relations de généralisation entre "Figure" et ses sous-classes.
Dessiner un diagramme d’objets correspondant au dessin donné, sans représenter les instances de la classe "Côté".
Dessiner un diagramme de classes incluant "Figure", "Cercle", "Carré", "Triangle" et "Côté". Déterminer les associations en privilégiant la composition ou l’agrégation, avec justification.
Exercice 5 : Gestion des cours dans une université
Modéliser un système de gestion des cours dans plusieurs établissements universitaires, en tenant compte des contraintes suivantes :
- Chaque établissement est structuré en départements, regroupant des enseignants. Un enseignant est responsable d’un département.
- Un enseignant est défini par nom, prénom, téléphone, mail, date de prise de fonction, indice, et dispense une seule matière.
- Les étudiants suivent plusieurs matières et reçoivent une note pour chacune. Ils sont définis par nom, prénom, téléphone, mail, et année d’entrée.
- Une matière peut être enseignée par plusieurs enseignants, mais a lieu dans une seule salle de cours avec un nombre de places défini.
- Calculer la moyenne par matière, par département, la moyenne générale d’un étudiant, et afficher les matières non notées.
- Imprimer la fiche signalétique (prénom, téléphone, mail) d’un enseignant ou d’un étudiant.
Action : Construire le diagramme de classes d’analyse en précisant les attributs et méthodes de chaque classe.
Résultats attendus
- Diagrammes de classes clairs et cohérents avec les relations appropriées (composition, agrégation, association, généralisation).
- Diagrammes d’objets conformes aux diagrammes de classes, respectant les multiplicité et types de liens.
- Justifications précises des choix de relations pour chaque situation.
- Diagramme de classes complet pour la gestion universitaire, incluant attributs et méthodes permettant le calcul des moyennes et l’affichage des fiches signalétiques.
Pièges courants
- Confondre composition et agrégation : la composition implique une relation de propriété forte avec cycle de vie partagé, l’agrégation est plus faible.
- Omettre les multiplicité dans les relations, ce qui rend le modèle incomplet ou ambigu.
- Ne pas respecter la spécialisation/généralisation lorsque des classes sont clairement des sous-types.
- Dans les diagrammes d’objets, ne pas vérifier la cohérence des liens entre instances par rapport aux associations du diagramme de classes.
- Ne pas définir les opérations (méthodes) dans les classes, ce qui limite la modélisation fonctionnelle.
Commentaires
Aucun commentaire pour le moment. Posez la première question.