Vous êtes sur la page 1sur 58

Chapitre 2 : Diagramme de classes

24/12/2020 1
Le diagramme de classes : Définition

Définition

Le diagramme de classes définit la structure d’un système en terme de


classes et de relations entre classes.
le diagramme de classes représente la structure d’un code orienté
objet.
Le diagramme de classe représente le cœur d’un système orienté
objets.

24/12/2020 2
Le diagramme de classes : Définition

Représentation du diagramme de classe

Le diagramme de classes met en œuvre des classes, contenant des


attributs et des opérations, et reliées par des associations ou des
généralisations.

24/12/2020 3
Le diagramme de classes : Exemple

24/12/2020 4
Le diagramme de classes : classe et objets
Classe Vs. Objet
• Une classe représente la description abstraite d’un ensemble d’objets
possédant les mêmes caractéristiques.

• Exemples : la classe Voiture, la classe Personne.

• Un objet est une instance (ou occurrence) d’une classe.

•Exemple :
 Abdelhadi est une instance de Personne
 mercedes_Benz est une instance de voiture

24/12/2020 5
Le diagramme de classes : Attributs et opérations
Attributs et opérations
• Un attribut représente un type d’information contenu dans une classe.

•Exemple :
 nom , prénom, âge, CIN, sont des attributs de la classe Personne.

• Une opération (méthode) représente un élément de comportement (un


service, une fonction) contenu dans une classe.

24/12/2020 6
Le diagramme de classes : Exemple de classe

24/12/2020 7
Le diagramme de classes : Représentation des classes
Il existe plusieurs niveaux de représentation

Aucun détail Niveau Analyse

Niveau Conception
• On y précise, en plus :
– le type des variables (Integer, String, Boolean, Date …)
– les valeurs par défaut
– les signatures des opérations
– le niveau de visibilité

24/12/2020 8
Le diagramme de classes : Visibilité
4 classifications en UML

Visibilité public : (+)


• Propriété ou classe visible partout.
Visibilité protected : (#)
• Propriété ou classe visible dans la classe et par tous ses descendants.
Visibilité package (~) ou ou rien :
• Propriété ou classe visible uniquement dans le paquetage où la classe est définie.
Visibilité private : (-)
• Propriété ou classe visible uniquement dans la classe.

24/12/2020 9
Le diagramme de classes : Visibilité

24/12/2020 10
Le diagramme de classes : Exemple de visibilité

24/12/2020 11
Le diagramme de classes : Exemple de visibilité

24/12/2020 12
Le diagramme de classes : ASSOCIATION

Une association représente une relation sémantique durable entre


deux classes.

Exemple : une personne peut posséder des voitures.


La relation possède est une association entre les classes Personne
et Voiture.

24/12/2020 13
Le diagramme de classes : Représentation d’une ASSOCIATION

Aux deux extrémités d’une association, on doit faire figurer une


indication de multiplicité.

La multiplicité spécifie sous la forme d’un intervalle d’entiers


positifs ou nuls le nombre d’objets qui peuvent participer à une
relation avec un objet de l’autre classe dans le cadre d’une
association.

24/12/2020 14
Le diagramme de classes : Représentation d’une ASSOCIATION

Exemple :

 une personne peut posséder plusieurs voitures (entre zéro et un


nombre quelconque) ; une voiture est possédée par une seule
personne.

24/12/2020 15
Le diagramme de classes : Représentation d’une ASSOCIATION

La multiplicité : min .. max

Exactement un : 1 ou 1..1 ;
Plusieurs : * ou 0..* ;
Au moins un : 1..* ;
De un à six : 1..6.

24/12/2020 16
Le diagramme de classes : Représentation d’une ASSOCIATION
La multiplicité est placée de l’autre côté de la classe utilisée comme sujet,
du côté du complément d’objet direct.

Dans cet exemple, une personne organise 0 ou plusieurs scrutins, et un


scrutin est organisé par 1 personne.

24/12/2020 17
Le diagramme de classes : Représentation d’une ASSOCIATION

24/12/2020 18
Le diagramme de classes : Représentation d’une ASSOCIATION
Association avec navigabilité

La navigation est possible uniquement du polygone vers les points.

24/12/2020 19
Le diagramme de classes : Représentation d’une ASSOCIATION
Association avec navigabilité

24/12/2020 20
Le diagramme de classes : Représentation d’une ASSOCIATION
Association réflexive

24/12/2020 21
Le diagramme de classes : Représentation d’une ASSOCIATION
Classe association
Une association peut être raffinée et avoir ses propres propriétés, qui ne
sont disponibles dans aucune des classes qu’elle lie.

24/12/2020 22
Le diagramme de classes : Représentation d’une ASSOCIATION
ASSOCIATION N-AIRE
Une association n-aire lie plus de deux classes. La gestion de ce type d’association est
très délicate, notamment quand on ajoute la multiplicité.

Pour cette raison, elles sont très peu utilisées. On leur préfère des associations
binaires combinées avec des contraintes du langage OCL.

24/12/2020 23
Le diagramme de classes : Représentation d’une ASSOCIATION
ASSOCIATION N-AIRE :
Dans une association n-aire, la multiplicité apparaissant sur le lien de
chaque classe s'applique sur une instance de chacune des classes, à
l'exclusion de la classe-association et de la classe considérée.

Par exemple, si on prend une association ternaire entre les classes (A, B,
C), la multiplicité de la terminaison C indique le nombre d'objets C qui
peuvent apparaître dans l'association avec une paire particulière
d'objets A et B.

24/12/2020 24
Le diagramme de classes : Représentation d’une ASSOCIATION
ASSOCIATION N-AIRE :

Pour une association n-aire, la multiplicité minimale doit en principe, mais pas
nécessairement, être 0. En effet, une multiplicité minimale de 1 (ou plus) sur une
extrémité implique qu'il doit exister un lien (ou plus) pour TOUTES les combinaisons
possibles des instances des classes situées aux autres extrémités de l'association n-
aire !

Il faut noter que, pour les habitués du modèle entité/relation, les multiplicités sont
en UML « à l'envers » (par référence à Merise) pour les associations binaires et « à
l'endroit » pour les n-aires avec n>2.

24/12/2020 25
Le diagramme de classes : Représentation d’une ASSOCIATION
ASSOCIATION N-AIRE :

à remplacer par :

24/12/2020 26
Le diagramme de classes : Représentation d’une ASSOCIATION
ASSOCIATION N-AIRE :

à remplacer par :

24/12/2020 27
Le diagramme de classes : Représentation d’une ASSOCIATION
ASSOCIATION N-AIRE :

24/12/2020 28
Le diagramme de classes : AGRÉGATION ET COMPOSITION

Une agrégation est un cas particulier d’association non symétrique


exprimant une relation de contenance.

Les agrégations n’ont pas besoin d’être nommées : implicitement elles


signifient « contient », « est composé de ».

24/12/2020 29
Le diagramme de classes : AGRÉGATION ET COMPOSITION

Une composition est une agrégation plus forte impliquant que :


 un élément ne peut appartenir qu’à un seul agrégat composite

(agrégation non partagée) ;


 la destruction de l’agrégat composite entraîne la destruction de tous
ses éléments.

24/12/2020 30
Le diagramme de classes : AGRÉGATION ET COMPOSITION

24/12/2020 31
Le diagramme de classes : AGRÉGATION ET COMPOSITION

Remarque : La relation de composition étant structurelle, le


langage UML autorise la représentation suivante :

24/12/2020 32
Le diagramme de classes : GÉNÉRALISATION (Héritage)

Un des intérêts de la modélisation objet est la possibilité de manipuler des concepts


abstraits.

par exemple, quand on parle d’un véhicule, c’est une vue de l’esprit ; dans la réalité,
il s’agit de voitures, de camions, etc. Les camions se distinguent par des marques, des
tailles différentes, etc.

Ces différents niveaux d’abstraction permettent, entre autres, de simplifier le langage


et de factoriser les propriétés.

Ce principe d’abstraction est assuré par le concept de l’héritage.

24/12/2020 33
Le diagramme de classes : GÉNÉRALISATION (Héritage)

Véhicule
Héritage
Généralisation Spécialisation

Camion Voiture Autocar

24/12/2020 34
Le diagramme de classes : GÉNÉRALISATION (Héritage)

24/12/2020 35
Le diagramme de classes : GÉNÉRALISATION (Héritage)

24/12/2020 36
Le diagramme de classes : GÉNÉRALISATION (Héritage)

24/12/2020 37
Le diagramme de classes : Classe abstraite

Une classe abstraite est simplement une classe qui ne s’instancie pas
directement mais qui représente une pure abstraction afin de factoriser des
propriétés communes. Elle se note en italique. C’est le cas de Moyen de
Transport dans l’exemple précédent.

24/12/2020 38
Le diagramme de classes : La relation de dépendance
Définition :

La dépendance est la forme la plus faible de relation entre classes. Une


dépendance entre deux classes signifie que l’une des deux utilise l’autre.
Typiquement, il s’agit d’une relation transitoire, au sens où la première
interagit brièvement avec la seconde sans conserver à terme de relation
avec elle (liaison ponctuelle).

Les objets peuvent travailler ensemble pendant un laps de temps courts

24/12/2020 39
Le diagramme de classes : La relation de dépendance

24/12/2020 40
Le diagramme de classes : Les relations entre classes

Le couplage de deux ou plusieurs classes dépend du la nature de


la relation existante entre eux.

24/12/2020 41
Le diagramme de classes : PACKAGE

Package : mécanisme général de regroupement d’éléments en UML, qui


est principalement utilisé en analyse et conception objet pour regrouper
des classes et des associations.

Les packages sont des espaces de noms : deux éléments ne peuvent pas
porter le même nom au sein du même package. Par contre, deux
éléments appartenant à des packages différents peuvent porter le même
nom.

24/12/2020 42
Le diagramme de classes : PACKAGE

La structuration d’un modèle en packages est une activité délicate. Elle


doit s’appuyer sur deux principes fondamentaux : cohérence et
indépendance.

Le premier principe consiste à regrouper les classes qui sont proches


d’un point de vue sémantique.

Le deuxième principe s’efforce de minimiser les relations entre


packages, c’est-à-dire plus concrètement les relations entre classes de
packages différents.

24/12/2020 43
Le diagramme de classes : PACKAGE

24/12/2020 44
Le diagramme de classes : Exercices

Considérons les phrases suivantes :

1. Un répertoire contient des fichiers.


2. Une pièce contient des murs.
3. Les modems et les claviers sont des périphériques d’entrée/sortie.
4. Une transaction boursière est un achat ou une vente.
5. Un compte bancaire peut appartenir à une personne physique ou morale.
6. Deux personnes peuvent être mariées.

•Déterminez la relation statique appropriée (généralisation, composition, agrégation ou association) dans


chaque phrase de l’énoncé précédent. Dessinez le diagramme de classes correspondant.

24/12/2020 45
Le diagramme de classes : Exercices

24/12/2020 46
Le diagramme de classes : Exercices

24/12/2020 47
Le diagramme de classes : Exercices

24/12/2020 48
Le diagramme de classes : Exercices

24/12/2020 49
Le diagramme de classes : Exercices

24/12/2020 50
Le diagramme de classes : Exercices

Proposez plusieurs solutions pour modéliser la phrase suivante : « un pays a une capitale. »

24/12/2020 51
Le diagramme de classes : Exercices
Proposez plusieurs solutions pour modéliser la phrase suivante : « un pays a une capitale. »

24/12/2020 52
Le diagramme de classes : Exercices
Proposez plusieurs solutions pour modéliser la phrase suivante : « un pays a une capitale. »

24/12/2020 53
Le diagramme de classes : Exercices

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, le loyer en fonction des occupants.

1. Donnez le diagramme de classes.

24/12/2020 54
Le diagramme de classes : Exercices

Une figure géométrique peut être une figure simple ou composée. Une
figure composée est constituée de plusieurs figures et une figure simple
peut être un point, une ligne ou un cercle.

1. Donnez la modélisation des classes de cette situation.

24/12/2020 55
Le diagramme de classes : Exercices

24/12/2020 56
Le diagramme de classes : Contraintes OCL

24/12/2020 57
Le diagramme de classes : Exercices

24/12/2020 58

Vous aimerez peut-être aussi