Corrigé

Analyse UML

Ce guide d'exercices d'analyse UML couvre la modélisation structurelle, de l'identification des relations statiques (association, agrégation, composition, généralisation) à la conception de diagrammes de classes et d'objets complets.

D'après le document Analyse UML

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

Analyse UML

Document source

Analyse UML

Informatique, Modélisation structurelle, UML · UNIVERSITE DE LA MANOUBA -----¤¤¤¤----- ECOLE NATIONALE DES SCIENCES DE L&#39 · PDF · 2 pages · 2016

Afficher l'aperçu du document

Consulter le document original

Ce document présente une série d'exercices d'analyse UML destinés à tester les compétences en modélisation structurelle, notamment la détermination des relations entre classes, la construction de diagrammes de classes et d'objets, ainsi que la justification des choix de modélisation.

Exercice n°1

L'objectif de cet exercice est de déterminer la relation statique appropriée (généralisation, composition, agrégation ou association) pour chaque phrase, puis de définir la structure du diagramme d’objets et du diagramme de classes correspondant.

a) La Tunisie est frontalière à l’Algérie. La Lybie est frontalière à la Tunisie.

La relation "frontalière à" est une association réflexive sur la classe Pays.

  • La relation "frontalière à" est une association binaire entre les instances de la classe Pays.
  • Il ne s'agit pas d'une généralisation (pas de hiérarchie), ni d'une composition ou agrégation (pas de relation de partie à tout).
  • On modélise donc une association réflexive sur la classe Pays, avec un lien bidirectionnel "frontalière à".

Relation : association réflexive entre Pays.

b) Une personne est dans une foule. Une foule contient plusieurs personnes (au minimum deux personnes).

La relation entre Foule et Personne est une agrégation avec une contrainte de cardinalité minimale.

  • Une foule contient plusieurs personnes, ce qui indique une relation de contenu à contenant.
  • La foule est un ensemble de personnes, mais les personnes existent indépendamment de la foule.
  • On choisit une agrégation (relation partie-tout faible).
  • Cardinalité : une foule (1..1) contient au moins 2 personnes (2..*).

Relation : agrégation entre Foule (tout) et Personne (partie).

c) Une personne fait partie de plusieurs équipes. Une équipe contient plusieurs personnes.

Il s'agit d'une association binaire plusieurs-à-plusieurs entre Personne et Équipe.

  • Relation plusieurs-à-plusieurs entre Personne et Équipe.
  • Il s'agit d'une association simple, pas d'agrégation ni de composition, car les personnes et équipes existent indépendamment.

Relation : association plusieurs-à-plusieurs entre Personne et Équipe.

d) Une transaction bancaire est un achat ou une vente.

Cette structure représente une hiérarchie d'héritage entre une super-classe et ses sous-classes.

  • Il s'agit d'une spécialisation/généralisation : Transaction bancaire est la super-classe, Achat et Vente sont des sous-classes.

Relation : généralisation entre Transaction bancaire (super-classe) et Achat, Vente (sous-classes).

e) Un compte bancaire peut appartenir à une personne physique ou morale.

Cette modélisation combine une association simple et un héritage de classes.

  • Personne physique et Personne morale sont deux sous-classes de Personne.
  • Un compte appartient à une Personne (physique ou morale), donc association entre Compte bancaire et Personne.
  • On modélise la généralisation Personne ➔ Personne physique, Personne morale.
  • L'association est entre Compte bancaire et Personne.

Relation : association entre Compte bancaire et Personne, avec généralisation Personne ➔ Personne physique, Personne morale.

Exercice n°2

Cette section analyse les types de relations UML fondamentaux et applique les règles de conformité d'instanciation.

1. Identification du type de relation

a) Une classe ‘Ordinateur’ et une classe ‘Système d'Exploitation’

Le système d'exploitation dépend organiquement de l'ordinateur pour son exécution directe dans ce contexte.

  • Relation de composition, car le système d'exploitation est une partie intégrante de l'ordinateur.

Relation : composition entre Ordinateur (tout) et Système d'Exploitation (partie).

b) Une classe ‘Outil’ et une classe ‘Marteau’

Le marteau constitue un cas particulier de la catégorie générale des outils.

  • Relation de généralisation/spécialisation : Marteau est une sous-classe d’Outil.

Relation : généralisation entre Outil (super-classe) et Marteau (sous-classe).

c) Une classe ‘Document’ et une classe ‘Feuille’

Une feuille constitue un composant d'un document tout en restant une entité manipulable séparément.

  • Relation d’agrégation, car une feuille est une partie d’un document, mais peut exister seule.

Relation : agrégation entre Document (tout) et Feuille (partie).

2. Conformité des diagrammes d'objets

Le document original ne fournissant pas les visuels des diagrammes d’objets (1), (2) et (3) ni le diagramme de classes associées, l'évaluation de conformité exacte ne peut être directement extraite de la source.

3. Navigation et accès entre instances

L'analyse de l'accès de la classe B vers C et D nécessite la lecture directe des cardinalités du diagramme de classes, non reproduit dans la source brute.

Exercice n°3

Conception de diagrammes de classes d'analyse avec justification des liens et définition des opérations associées.

1. Analyse des énoncés et modélisation

a) Domaine maritime : Bateau, cabines et passagers

Le système combine des liens de composition, d'association et une hiérarchie d'acteurs.

  • Un bateau contient des cabines ➔ relation de composition (une cabine ne peut exister sans bateau).
  • Une cabine est occupée par des personnes ➔ association entre Cabine et Personne.
  • Personnes sont spécialisées en Guides, Animateurs, Passagers ➔ généralisation.
  • Les guides expliquent des visites aux passagers ➔ association entre Guide et Passager.
  • Les animateurs animent des animations pour les passagers ➔ association entre Animateur et Passager.

Les opérations des classes comprennent notamment :

  • Bateau : ajouterCabine(), retirerCabine()
  • Cabine : occuper(Personne), liberer()
  • Guide : expliquerVisite()
  • Animateur : animer()

Relations principales : composition Bateau–Cabine, association Cabine–Personne, généralisation Personne ➔ Guide, Animateur, Passager, associations Guide–Passager et Animateur–Passager.

b) Interface graphique : Fenêtres de dialogues

L'IHM repose sur une structure composite forte complétée par de l'héritage d'éléments d'interface.

  • Une fenêtre est composée d’un menu, d’un ou plusieurs boutons et de texte ➔ composition Fenêtre–Menu, Fenêtre–Bouton, Fenêtre–Texte.
  • Une fenêtre contient parfois une liste déroulante ➔ association optionnelle Fenêtre–ListeDéroulante.
  • Un menu contient plusieurs rubriques ➔ composition Menu–Rubrique.
  • Plusieurs types de rubriques : fichier, édition, affichage ➔ généralisation Rubrique ➔ Fichier, Edition, Affichage.
  • Deux types de fenêtres : principales et secondaires ➔ généralisation Fenêtre ➔ FenêtrePrincipale, FenêtreSecondaire.
  • Une fenêtre secondaire peut s’ouvrir à partir d’une fenêtre principale ➔ association FenêtrePrincipale–FenêtreSecondaire.
  • Il doit être possible de fermer toutes les fenêtres ➔ opération fermer() dans Fenêtre.

Les opérations des classes incluent :

  • Fenêtre : ouvrir(), fermer()
  • Menu : ajouterRubrique()
  • Rubrique : action()

Relations principales : composition Fenêtre–Menu/Bouton/Texte, association optionnelle Fenêtre–ListeDéroulante, composition Menu–Rubrique, généralisation Rubrique, généralisation Fenêtre, association FenêtrePrincipale–FenêtreSecondaire.

2. Diagrammes d'objets associés

Les diagrammes d'objets instancient directement les classes définies ci-dessus en respectant les contraintes de composition et d'association énoncées.

Exercice n°4

Modélisation de figures géométriques emboîtées et de leurs propriétés structurelles.

1. Hiérarchie d'héritage

Les figures géométriques partagent une structure commune représentée par une classe de base.

  • Figure (classe abstraite ou générale)
  • Cercle, Triangle, Carré (sous-classes de Figure)
  • Côté (classe associée aux figures)

Diagramme d’héritage : Figure ➔ Cercle, Triangle, Carré.

2. Diagramme d'objets emboîtés

La représentation sous forme de diagramme d'objets nécessite l'instanciation des liens de contenance récursive entre les figures représentées sur le dessin initial.

3. Diagramme de classes complet avec compositions

Le diagramme intègre les contraintes de contenance et la composition des côtés.

  • Chaque figure possède des côtés ➔ association Figure–Côté.
  • Les cercles ont un seul côté ➔ cardinalité 1 côté pour Cercle.
  • Les triangles ont trois côtés ➔ cardinalité 3 côtés pour Triangle.
  • Les carrés ont quatre côtés ➔ cardinalité 4 côtés pour Carré.
  • Les triangles contiennent une ou plusieurs figures ➔ composition Triangle–Figure (récursive).
  • Les cercles contiennent exactement une figure ➔ composition Cercle–Figure.
  • Les carrés ne contiennent rien ➔ pas d’association de contenance.

Justification des choix :

  • La composition est utilisée pour la contenance car les figures contenues ne peuvent exister indépendamment du conteneur dans ce dessin.
  • Les côtés sont parties intégrantes des figures, justifiant la composition Figure–Côté.

Relations principales : généralisation Figure ➔ Cercle, Triangle, Carré ; composition Figure–Côté ; composition Triangle–Figure ; composition Cercle–Figure.

Exercice n°5

Conception du diagramme de classes d'analyse pour le système de gestion des cours universitaires.

Structure des classes et attributs

  • Établissement : identifiant, nom. Contient plusieurs départements.
  • Département : nom. Regroupe des enseignants, un responsable (enseignant).
  • Enseignant : nom, prénom, tél, mail, datePriseFonction, indice ; dispense une seule matière.
  • Étudiant : nom, prénom, tél, mail, annéeEntrée ; suit plusieurs matières, reçoit une note par matière.
  • Matière : libellé. Enseignée par plusieurs enseignants, a lieu dans une salle.
  • Salle : numéro, nbPlaces.

Relations et cardinalités

  • Établissement contient plusieurs Départements ➔ composition (1..1 vers 1..*).
  • Département contient plusieurs Enseignants ➔ composition (1..1 vers 1..*).
  • Un Enseignant est responsable d’un Département ➔ association 1..1 vers 0..1.
  • Enseignant dispense une seule Matière ➔ association 0..* vers 1..1.
  • Étudiant suit plusieurs Matières ➔ association plusieurs-à-plusieurs (1..* vers 0..*) portée par une classe d'association ou un lien de notation.
  • Matière a lieu dans une Salle ➔ association 0..* vers 1..1.
  • Matière est enseignée par plusieurs Enseignants ➔ association 1..1 vers 1..*.

Méthodes de classe

  • Enseignant : imprimerFicheSignalétique()
  • Étudiant : imprimerFicheSignalétique(), calculerMoyenneGénérale(), afficherMatieresNonNotées()
  • Matière : calculerMoyenne()
  • Département : calculerMoyenne()

Méthode

Ce sujet valorise la capacité à identifier correctement les types de relations UML (association, agrégation, composition, généralisation) en s'appuyant sur la nature des liens entre entités. Il faut justifier chaque choix en fonction de la dépendance d'existence, de la cardinalité et du sens du lien.

Les diagrammes de classes doivent refléter fidèlement ces relations, avec une attention particulière portée aux cardinalités et aux contraintes spécifiques (par exemple, nombre minimum d’éléments, exclusivité des liens).

Les diagrammes d’objets doivent être conformes au diagramme de classes, respectant les instances et les liens possibles.

Les erreurs fréquentes à éviter sont :

  • Confondre agrégation et composition.
  • Omettre les cardinalités ou les mal interpréter.
  • Ne pas justifier les choix de relations.
  • Ne pas respecter les contraintes d’existence ou d’exclusivité.

Enfin, la rigueur dans la modélisation des opérations et attributs est essentielle pour une bonne compréhension du modèle.

Toutes les révisions