Vous êtes sur la page 1sur 62

Université Hassan 1er

Faculté des Sciences et Techniques


-Settat-

Département : Mathématiques & Informatique


Filière : Licence Génie Informatique
Module : Génie logiciel et UML

Chapitre 4 : Diagramme de classes

Prof. Said El Kafhali

Département Mathématiques & Informatique


Faculté des Sciences et Techniques, Settat
Université Hassan 1er

Année Universitaire : 2022/2023


Année Universitaire : 2022/2023
Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 1 / 62
Plan

1 Présentation de diagramme de classes

2 Contraintes sur les associations

3 Héritage

4 Classes abstraites et interfaces

5 Classe paramétrée

6 Paquetage ou package

7 Exercices corrigés

8 Références

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 2 / 62
Présentation de diagramme de classes

Objectifs de diagramme de classes

Le diagramme de classes est considéré comme le plus important de la


modélisation orientée objet, il est le seul obligatoire lors d’une telle
modélisation.
Le diagramme de cas d’utilisation montre un système du point de vue
des acteurs, le diagramme de classes en montre la structure interne.
Il permet de fournir une représentation abstraite des objets du système
qui vont interagir ensemble pour réaliser les cas d’utilisation.
Le diagramme de classes est la représentation de la structure statique
des classes du modèle et de leurs relations.
Les principaux éléments de cette vue statique sont les classes et leurs
relations : association, généralisation et plusieurs types de
dépendances, telles que la réalisation et l’utilisation.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 3 / 62
Présentation de diagramme de classes

Représentation graphique des classes avec UML


Une classe est représentée par un rectangle divisé en trois
compartiments.
Le premier indique le nom de la classe, le deuxième ses attributs et le
troisième ses méthodes (opérations).

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 4 / 62
Présentation de diagramme de classes

Syntaxe des attributs

L’attribut doit être inscrit en minuscule mais s’il s’agit d’un nom
composé la première lettre de chaque mot peut être mise en majuscule,
à l’exception de la première lettre du premier mot : nomDeLAttribut.
Syntaxe
Pour un attribut, la syntaxe est :
Visibilité nomAttribut : modificateurs type multiplicité = valeur_initiale

Visibilité : + (public) / # (protégé) / - (privé) / ~(package);


Modificateurs : const (constant) / static ou nom de l’attribut souligné
(statique).
Type : boolean / short / int / char / float / double (types primitifs) /
autre classe ( type complexe).
Multiplicité : [ ] (tableau) / * (pointeur) / & ( référence);

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 5 / 62
Présentation de diagramme de classes

Syntaxe des méthodes


Les règles d’écriture du nom, la spécification de la visibilité et du type
de retour s’effectue de la même manière que pour un attribut.
Syntaxe
Pour une méthode, la syntaxe est :
Visibilité nomMéthode (paramètres) : modificateurs type multiplicité

Visibilité : + (public) / # (protégé) / - (privé);


Paramètres : type primitifs ou complexe de chaque paramètre, séparés
par une virgule, éventuellement avec leur nom
Modificateurs : const (constant) / static ou nom de la méthode
soulignée (statique) / virtual ( virtuelle) / abstract ou nom de la
méthode en italique ( abstraite / virtuelle pure);
Type : void / boolean / short / int / char / float / double (types
primitifs) / autre classe ( type complexe).
Multiplicité : [ ] (tableau) / * (pointeur) / & ( référence);
Année Universitaire : 2022/2023
Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 6 / 62
Présentation de diagramme de classes

Associations entre classes

Une association désigne le cas où une instance d’une classe utilise un


objet d’une autre classe en tant qu’attribut objet.
Une association a pour objectif de définir les propriétés d’un ensemble
de liens que l’on pourra établir entre les objets.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 7 / 62
Présentation de diagramme de classes

Association : rôles

nomRole : indique ce que représente l’ensemble des instances


associées à une instance de la classe par la relation R. L’accès peut
être +, # ou -
nomRoleB : nom de l’ensemble des instances de la classe B qui sont
en relation avec l’instance de la classe A par la relation R.
nomRoleA : nom de l’ensemble des instances de la classe A qui sont
en relation avec 1’instance de la classe B par la relation R.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 8 / 62
Présentation de diagramme de classes

Association : multiplicités

nomRole : indique les valeurs possibles du cardinal de l’ensemble des


instances associées à une instance de la classe par la relation R.
multB : cardinal de l’ensemble des instances de la classe B qui sont en
relation avec 1 instance de la classe A par la relation R.
multA : cardinal de l’ensemble des instances de la classe A qui sont en
relation avec 1 instance de la classe B par la relation R.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 9 / 62
Présentation de diagramme de classes

Multiplicité des associations

Chaque extrémité d’une association peut porter une indication de


multiplicité qui montre combien d’objets (d’instances) de la classe
considérée (classe B) peuvent être liés à un seul objet (une seule
instance) de l’autre classe (classe A).

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 10 / 62
Présentation de diagramme de classes

Représentation des associations


Une association est explicitée par des attributs en phase finale de
conception.
Selon la cardinalité (multiplicité) du rôle, on peut utiliser :
Un objet simple (0..1 ; 1..1);
Un tableau d’objets (0..5 ; 3..10, etc);
Une collection d’objets (0..*, 1..*, n..*);

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 11 / 62
Présentation de diagramme de classes

Navigabilité des associations


Orientation d’une association : définit l’accessibilité des objets.
Souvent laissée implicite jusqu’à la phase finale de conception, voire
l’implémentation.

Exemple
On peut accéder à ses voitures à partir d’une personne ; pas à ses
propriétaires à partir d’une voiture.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 12 / 62
Présentation de diagramme de classes

Association bidirectionnelle

Certaines associations doivent être navigables dans les deux sens.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 13 / 62
Présentation de diagramme de classes

Association réflexive
Une classe peut être associée à elle-même.
Une classe peut contenir une référence à des objets de même classe.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 14 / 62
Présentation de diagramme de classes

Association multiple

Les classes ont plusieurs relations distinctes entre elles; auquel cas,
on prend alors soin de préciser le nom de chaque association et
pour chacune d’entre elles le rôle de chaque classe, afin de distinguer
l’utilité des différentes relations.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 15 / 62
Présentation de diagramme de classes

Attributs d’association
Un attribut d’association est un attribut qui caractérise l’association et
pas seulement une de ses classes extrémités.
Dans le cas d’une multiplicité 1, il est possible mais non souhaitable
d’attacher l’attribut d’association à la classe (salaire sur Personne si
elle ne peut travailler que dans une seule entreprise).

Exemple
Le salaire sur Personne si elle ne peut travailler que dans une seule
entreprise.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 16 / 62
Présentation de diagramme de classes

Classe d’association : association porteuse d’informations

Une classe-association possède les propriétés des associations et des


classes : elle se connecte à deux ou plusieurs classes et possède
également des attributs et des opérations.
Une classe-association est caractérisée par un trait discontinu entre la
classe et l’association qu’elle représente.
Cette relation est parfois difficile à « voir » lors de la conception.
Elle apparaît par exemple lorsque des données sont propres à une
association entre objets, non à l’un des objets associés.
Elle n’est pas nécessaire lorsqu’une des cardinalités au moins est égale
à 1.
Classe d’association = Elément ayant à la fois les propriétés d’une
classe et d’une association.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 17 / 62
Présentation de diagramme de classes

Classe d’association : exemple 1

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 18 / 62
Présentation de diagramme de classes

Classe d’association : exemple 2

Une commande est constituée d’une série d’articles, un article peut


apparaître dans différentes commandes :

Chaque article peut être commandé en quantité arbitraire :

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 19 / 62
Présentation de diagramme de classes

Classe d’association : implémentation


La classe association contient deux attributs pointant vers les objets
qui constituent l’association.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 20 / 62
Présentation de diagramme de classes

Association n-aire
Association n-aire = une association parmi 3 classes ou plus.
Chaque instance de l’association est un n-tuple de valeurs des classes
respectives.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 21 / 62
Présentation de diagramme de classes

Agrégation

L’agrégation est une association qui exprime un couplage fort entre


un objet composite et un objet composant. C’est une relation de
subordination de type « ensemble / élément ».
Un composant peut apparaître dans plusieurs composites.
La création du composite n’entraine pas la création du ou des
composants.
La destruction du composite n’entraine pas forcément la destruction
du ou des composants.
Graphiquement, on ajoute un losange vide (♢) du côté du composite
(de l’agrégat).

Remmarque
L’agrégation signifie qu’un objet en contient d’autres.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 22 / 62
Présentation de diagramme de classes

Agrégation : exemples

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 23 / 62
Présentation de diagramme de classes

Composition

La composition, également appelée agrégation composite, décrit une


contenance structurelle entre instances. Le composite contient ses
composants.
La création de l’objet composite implique la création des composants
(par le composite).
Ainsi, la destruction de l’objet composite implique la destruction de
ses composants.
Un composant appartient toujours à un instance de l’élément
composite.
Graphiquement, on ajoute un losange plein (♦) du côté de l’agrégat.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 24 / 62
Présentation de diagramme de classes

Composition : exemples

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 25 / 62
Présentation de diagramme de classes

Agrégation et composition : Quelle est la différence?

Composition
La composition peut être vue comme une relation “fait partie de” (“part
of”), c’est à dire que si un objet B fait partie d’un objet A alors B ne peut
pas exister sans A. Ainsi si A disparaît alors B également.

Agrégation
L’agrégation quant à elle est vue comme une relation de type “a un” (“as
a”), c’est à dire que si un objet A a un objet B alors B peut vivre sans A.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 26 / 62
Présentation de diagramme de classes

Différence entre agrégation et composition : exemple


La classe Employe possède deux attributs : Salaire et ProjetCourant.
L’instance de Salaire fait partie de l’instance d’employé, si on supprime
l’employé alors son salaire aussi est supprimé, c’est une relation de
composition.
En revanche l’employé a un projet courant. Si l’utilisateur part de
l’entreprise le projet perdurera, c’est une relation d’agrégation.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 27 / 62
Contraintes sur les associations

Contraintes sur les associations

Concepts avancés des associations.


Permettent d’imposer des règles à respecter lors du passage à
l’implémentation.
Il est possible d’attribuer toutes sortes de contraintes à une
association.
Les contraintes sont représentées entre accolades et peuvent être
exprimées dans n’importe quel langage (y compris OCL (Object
Constraint Language)).
Les contraintes (prédéfinies) souvent utilisées :
{ordonné},
{sous ensemble},
{xor},
{addOnly},
{frozen}.
Année Universitaire : 2022/2023
Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 28 / 62
Contraintes sur les associations

Contraintes sur les associations : {ordonné}

{ordonné} ou {ordered} indique que les objets seront ordonnés à


chaque opération de création, modification, suppression, ...

Exemple

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 29 / 62
Contraintes sur les associations

Contraintes sur les associations : {sous-ensemble}

{sous-ensemble} ou {subset} indique qu’une collection est incluse


dans une autre.
Nécessite la présence d’au moins deux relations.

Exemple

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 30 / 62
Contraintes sur les associations

Contraintes sur les associations : {xor}


{xor} indique que parmi un groupe d’associations, une seule est valide
à la fois.

Exemple

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 31 / 62
Contraintes sur les associations

Contraintes sur les associations : {addOnly}


{addOnly} autorise l’ajout de nouveaux objets, mais pas leur
suppression ni leur mise à jour.

Exemple

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 32 / 62
Contraintes sur les associations

Contraintes sur les associations : {frozen}

{frozen} interdit l’ajout, la suppression ou la mise à jour des liens d’un


objet vers les objets de la classe associée, après l’initialisation du
premier.

Exemple

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 33 / 62
Héritage

Relation d’héritage

L’héritage est une relation de spécialisation/généralisation.


La généralisation dans un ensemble de classes désigne la mise en
commun d’attributs et de méthodes au sein d’une classe mère;
chaque classe possède les attributs et méthodes de sa classe mère
auxquels viennent s’ajouter les membres propres à la classe.
Inversement, la spécialisation désigne la propagation des attributs et
des méthodes d’une classe dans une classe fille, laquelle peut intégrer
des membres supplémentaires.
La classe dérivée possède toutes les propriétés de ses classes mères
(attributs et méthodes).
Toutefois, la classe dérivée n’a pas accès aux propriétés privées de la
classe mère.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 34 / 62
Héritage

Relation d’héritage : exemple


Par héritage d’Article, un livre a d’office un prix, une désignation et
une opération acheter(), sans qu’il soit nécessaire de le préciser.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 35 / 62
Héritage

Terminologie de l’héritage

Une classe dérivée peut redéfinir (même signature) une ou plusieurs


méthodes de la classe mère.
Sauf indications contraires, un objet utilise les opérations les plus
spécialisées dans la hiérarchie des classes.
La surcharge d’opérations (même nom, mais signatures des opérations
différentes) est possible dans toutes les classes.
Toutes les associations de la classe mère s’appliquent, par ,défaut, aux
classes dérivées.
Principe de substitution : une instance d’une classe peut être
utilisée partout où une instance de sa classe parent est attendue.
Par exemple, toute opération acceptant un objet d’une classe Animal
doit accepter tout objet de la classe Chat (l’inverse n’est pas toujours
vrai).

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 36 / 62
Héritage

Héritage multiple
En UML une classe peut hériter de plusieurs super-classes.
La classe dérivée hérite alors les attributs et méthodes de toutes ses
super-classes.
C++ un des langages objet permettant son implantation effective.
Java ne le permet pas.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 37 / 62
Héritage

Exemple de diagramme de classes

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 38 / 62
Classes abstraites et interfaces

Classes abstraites
Une méthode est dite abstraite lorsqu’on connaît son entête mais pas
la manière dont elle peut être réalisée.
Il appartient aux classes dérivées de définir les méthodes abstraites.
Une classe est dite abstraite lorsqu’elle définit au moins une méthode
abstraite ou lorsqu’une classe parent contient une méthode abstraite
non encore réalisée.
Une classe abstraite est représentée comme une classe avec un nom en
italique ou avec le mot clé {abstract}.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 39 / 62
Classes abstraites et interfaces

Classes abstraites : exemple


Un Média peut être transporté, dupliqué, affiché. Le transport et la
duplication sont indépendants du type de Média (copie de fichiers).
Par contre, tout Média peut être affiché et ce n’est pas la même chose
pour Livre, Vidéo, Graphique ou Texte.
Un Média ne peut pas définir comment il s’affiche tant qu’il ne sait
pas ce qu’il est. Il n’existe pas d’instance de la classe Média. Un
Média n’existe qu’en tant que Livre, Texte, Graphique ou Vidéo.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 40 / 62
Classes abstraites et interfaces

Interface

Une interface n’est pas une classe, c’est une liste d’opérations.
Une interface, comme une classe abstraite, ne peut pas servir à créer
un objet.
Le rôle d’une interface est de regrouper un ensemble d’opérations
assurant un service cohérent offert par un classeur et une classe en
particulier.
Une interface est définie comme une classe, avec les mêmes
compartiments. On ajoute le stéréotype interface avant le nom de
l’interface.
On utilise une relation de type réalisation entre une interface et une
classe qui l’implémente.
Les classes implémentant une interface doivent implémenter toutes les
opérations décrites dans l’interface.
Année Universitaire : 2022/2023
Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 41 / 62
Classes abstraites et interfaces

Exemple d’interface

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 42 / 62
Classes abstraites et interfaces

Implémentation-héritage

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 43 / 62
Classe paramétrée

Classe paramétrée/générique *
Classe paramétrée/générique = paramétrée par des types.
Attributs génériques = typés avec le type en paramètre.
Opérations génériques = arguments et / ou type de retour génériques.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 44 / 62
Classe paramétrée

Définition d’une classe paramétrée


Pour définir une classe générique et paramétrable en fonction de
valeurs et/ou de types :
Définition d’une classe paramétrée par des éléments spécifiés dans un
rectangle en pointillés ;
Utilisation d’une dépendance stéréotypée « bind » pour définir des
classes en fonction de la classe paramétrée.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 45 / 62
Classe paramétrée

Classe paramétrée : exemple

Ce type de classe apparaît rarement au début de la modélisation.

A noter que les classes paramétrables peuvent être remplacées, de


façon moins élégante, par des généralisations.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 46 / 62
Paquetage ou package

Package

Un paquetage permet de regrouper sous une même appellation un


ensemble d’éléments de modélisation UML tels que :
Des classes, des composants, des nœuds, des collaborations, des cas
d’utilisation, ...
Des diagrammes de classes, de collaboration, de séquence, de cas
d’utilisation, ...
D’autres paquetages.
Les objectifs sont :
Organisation cohérente des classes et interfaces.
Facilite le développement de bibliothèques.
Protection supplémentaire avec le mode protégé.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 47 / 62
Paquetage ou package

Notation
Un paquetage est représenté par un dossier contenant un nom.
Le nom du paquetage peut être préfixé par le nom du paquetage qui le
contient.
Le contenu du paquetage peut être exposé.
Les éléments constituant le paquetage donne la visibilité (privée,
publique, protégée) qu’ils affichent vis-à-vis de l’extérieur.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 48 / 62
Paquetage ou package

Utilisation des classes d’un package

Les classes (ou interfaces) d’un package peuvent être utilisées


(importées) individuellement ou de manière globale (le package entier)
par toute autre unité de compilation désirant les utiliser.
Seules les classes déclarées publiques (public) dans le package sont
accessibles.
En dehors du package, les noms des classes sont:
NomDuPackage.NomDeLaClasse.
En java, l’instruction import NomDuPackage permet d’utiliser
(importer) les classes sans les préfixer par leur nom de package.
Si pas d’importation (import), il faut indiquer le nom complet de la
classeNomDuPackage.NomDeLaClasse pour l’exploiter.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 49 / 62
Paquetage ou package

Paquetage : exemple

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 50 / 62
Paquetage ou package

Dépendances entre paquetages

Il existe 4 types de dépendances entre paquetages :


Les dépendances amies : accès à tous les éléments d’un paquetage
quelque soit leur visibilité. Une dépendance amie est étiquetée par
«friend».
Les dépendances d’importation : importation d’éléments dans
l’espace de nommage en tenant compte des visibilités. Une dépendance
d’importation est étiquetée par «import».
Les dépendances d’accès : accès à des éléments en tenant compte de
leur visibilité. Une dépendance d’accès est étiquetée par «access».
Les dépendances de généralisation : généralisation/spécialisation de
paquetage. Une dépendance de généralisation utilise la flèche de
généralisation.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 51 / 62
Paquetage ou package

Notation de dépendances entre paquetages

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 52 / 62
Paquetage ou package

Encapsulation

L’encapsulation est un principe de conception consistant à protéger le


cœur d’un système des accès intempestifs venant de l’extérieur.
En UML, utilisation de médicateurs d’accès sur les attributs ou les
classes :
Public ou + : propriété ou classe visible partout.
Protected ou # : propriété ou classe visible dans la classe et par tous
ses descendants.
Private ou - : propriété ou classe visible uniquement dans la classe.
Package, ou ~ : propriété ou classe visible uniquement dans le
paquetage.
Il n’y a pas de visibilité par défaut.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 53 / 62
Paquetage ou package

Exemple d’encapsulation

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 54 / 62
Paquetage ou package

Paquetage (Recommandations)

Penser à utiliser les paquetages pour structurer votre projet.


Penser que le paquetage permet de hiérarchiser des diagrammes
(classes, cas d’utilisation, ...), mais aussi de regrouper un ensemble de
diagrammes entre-eux.
L’utilisation du paquetage est fondamentale pour la mise en place
d’une démarche système.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 55 / 62
Exercices corrigés

Exercice 1

Enoncé
Des personnes définies par leur nom peuvent acheter une ou plusieurs
voitures (définies par leur modèle).
Chaque voiture peut posséder un autoradio (avec ou sans lecteur de
CD).
Cet autoradio est extractible. Le propriétaire de l’autoradio est une
personne qui n’est pas obligatoirement celui de la voiture.

Question
Tracer le diagramme de classe correspondant.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 56 / 62
Exercices corrigés

Corrigé de l’exercice 1

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 57 / 62
Exercices corrigés

Exercice 2

On veut manipuler dans un même programme des objets caractérisés par


leur couleur et leur position (respectivement de type Color et Position) et
que l’on pourra déplacer et afficher. Parmi ces objets, on trouve : des
photos, caractérisées par leur taille et que l’on pourra compresser des
figures géométriques, carrés et des hexagones et plus généralement des
polygones réguliers définis par le nombre et la longueur de leurs cotés et
des cercles définis par leur rayon dont on pourra calculer la surface. Notons
que le calcul de la surface d’une photo ou que la compression d’une figure
géométrique quelconque ne nous intéresse pas. On souhaite pouvoir ajouter
d’autres figures géométriques possédant les mêmes caractéristiques et qu’on
pourra afficher à l’écran, déplacer et dont on pourra aussi calculer surface.
Proposer le diagramme de classe qui vous paraît la plus adaptée.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 58 / 62
Exercices corrigés

Corrigé de l’exercice 2

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 59 / 62
Exercices corrigés

Exercice 3

Un hôtel est composé d’au moins deux chambres. Chaque chambre dispose
d’une salle d’eau qui peut être une douche ou une salle de bain. L’hôtel
héberge des personnes. Il peut employer du personnel et est dirigé par un
des employés. L’hôtel a les caractéristiques suivantes : une adresse, le
nombre de pièces, la catégorie. Une chambre est caractérisée par le nombre
et le type de lits, le prix et le numéro. On peut calculer le chiffre d’affaires
et le prix de la chambre en fonction du nombre d’occupants. On gère aussi
la réservation des chambres. On peut connaître à tout moment la
disponibilité des chambres.
Proposer le diagramme de classe qui vous paraît la plus adaptée.

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 60 / 62
Exercices corrigés

Corrigé de l’exercice 3

Année Universitaire : 2022/2023


Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 61 / 62
Références

Références
1 Pascal Roques, UML 2 par la pratique: études de cas et exercices
corrigés, Groupe Eyrolles.
2 Xavier Blanc Isabelle Mounier, UML 2 pour les développeurs: Cours
avec exercices corrigés, Groupe Eyrolles, Code éditeur : G12029 •
ISBN : 2-212-12029-X.
3 Pierre Gérard, Introduction à UML 2: Modélisation Orientée Objet de
Systèmes Logiciels, Cours DUT Informatique S2D, Université de Paris
13 IUT Villetaneuse.
4 G. BOOCH, J. RUMBAUGH et Y. JACOBSON, Le guide de
l’utilisateur UML , (Eyrolles, 2000).
5 P. A. MULLER et N. GAERTNER, Modélisation objet avec UML ,
(Eyrolles, 2000).
6 Pierre-Alain Muller and Nathalie Gaertner. Modélisation objet avec
UML. Eyrolles, 2è edition, 2003.
7 James Rumbaugh et al. Modélisation et conception orientée objet.
Masson, 1994. Année Universitaire : 2022/2023
8 Prof. Said El Kafhali Chapitre 4 : Diagramme de classes 62 / 62

Vous aimerez peut-être aussi