Vous êtes sur la page 1sur 16

25/03/2022

Diagramme de Classes

UML -Langage Unifié pour la Modélisation Objet 1

Le concept de classe
 Une classe peut être comparée à un moule, qui, lorsque nous le
remplissons, nous donne un objet ayant la forme du moule, et toutes ses
caractéristiques
 Une classe est une description abstraite d'un objet

Objet : maison 1

Classe : Maison Objet : maison 2


UML -Langage Unifié pour la Modélisation Objet

1
25/03/2022

Le concept de classe

Personne Nom de la classe


Nom
Prénom Attributs de la classe
Age (variable)
decrisToi() Méthodes de la classe
Mange(); (fonction)
Marche();

UML -Langage Unifié pour la Modélisation Objet

Le concept de classe

• Une classe regroupe une famille d’objets dont


les caractéristiques sont les mêmes.

Caractéristiques des objets :

même structure : mêmes attributs


valeurs des attributs différentes
même manière de répondre à un

UML -Langage Unifié pour la Modélisation Objet

2
25/03/2022

Modèle statique / Diagramme des classes


Définitions / Exemple
Structure statique d’un système, en termes de classes et de relations entre
ces classes.
Voiture
Couleur
Nom de classe
Cylindrée
Attributs exemple :
Vitesse max
Opérations ()
Démarrer ()
Accélérer ()

Syntaxe: Freiner ()

• nom_attribut : type_attribut = valeur initiale


• nom_methode (nom_argument : type_argument = valeur_par_défaut, …) : type_retourné

Visibilité : trois niveaux de visibilité pour les attributs et les méthodes:


• public (+) : élément visible à tous les clients de la classe
• protégé ( #) : élément visible aux sous-classes de la classe
• privé (-) : élément visible à la classe seule

UML -Langage Unifié pour la Modélisation Objet 5

Modèle statique / Diagramme des classes


Principe de l'encapsulation/ Exemple
 Peut-on accéder à tous les attributs ou à toutes les méthodes d'un objet ?
NON
• La classe définit ce qui est accessible.
C'est le principe de l'encapsulation.
Un objet complexe ne peut être utilisé qu'au travers de ce qui est
accessible.
Exemple :
 On ne peut utiliser une voiture qu'à travers son volant, son frein, son
accélérateur, etc.
 L’accès au carburateur est impossible sauf par les méthodes qui le font de
manière cohérente (méthode accélérer de l’accélérateur)..

UML -Langage Unifié pour la Modélisation Objet 6

3
25/03/2022

Modèle statique / Diagramme des classes


Synthèse: Attributs

UML -Langage Unifié pour la Modélisation Objet 7

Modèle statique / Diagramme des classes


Association

• L’association exprime une connexion sémantique


bidirectionnelle entre classes.

• Une association est une abstraction des liens qui existent


entre les objets instances des classes associées.

• Les associations se représentent de la même manière que


les liens.

UML -Langage Unifié pour la Modélisation Objet 8

4
25/03/2022

Modèle statique / Diagramme des classes


Association

Rôle
• Il est possible de préciser le rôle d’une classe au sein d’une
association: un nom de rôle peut être spécifié de part et d’autre
de l’association.

UML -Langage Unifié pour la Modélisation Objet 9

Modèle statique / Diagramme des classes


Nommage des associations

constructeur véhicule
Construire> produit
fabricant <construit par

passager <Transporte véhicule


personne véhicule
conducteur Conduit> véhicule

propriétaire Possède> véhicule

employé <Emploie employeur


personne entreprise
directeur Dirige> société

actionnaire Possède> société

UML -Langage Unifié pour la Modélisation Objet 10

5
25/03/2022

Modèle statique / Diagramme des classes


Multiplicité des associations
• Les rôles portent également une information de multiplicité qui
précise le nombre d’instances qui participent à la relation

1 Un et un seul (obligatoire)
0 .. 1 Zéro ou un (optionnel)
m .. n De m à n (entiers)
* ou 0 .. * quelconque

1 .. * Au moins 1

Personne 0..* Employeur Société


Employé 1

UML -Langage Unifié pour la Modélisation Objet 11

Modèle statique / Diagramme des classes


Placement des attributs et des associations

1 Etudiant Réalise > Travail


0..* 0..*

0..* 1
Diplôme Note
Mention

0..1
Chambre
Numéro

UML -Langage Unifié pour la Modélisation Objet 12

6
25/03/2022

Modèle statique / Diagramme des classes


Arité des associations
Une association n-aire est un groupe de liens entre au moins trois
(ou davantage) instances.
L'association se note par un grand losange.

Salle

lieu
Etudiant Cours Enseignant

Début
Fin

UML -Langage Unifié pour la Modélisation Objet 13

Modèle statique / Diagramme des classes


Exemple de diagramme de classes

• Un client peut exister sans avoir de lien avec une commande. Par contre,
une commande n’a pas de sens sans lien vers son « parent » le client.
→ Notion d’agrégat
• Une ligne de commande n’est en aucun cas partageable entre plusieurs
commandes; la suppression d’une commande implique nécessairement la
suppression de toutes ses lignes.
→ Notion de composition
UML -Langage Unifié pour la Modélisation Objet 14

7
25/03/2022

Agrégation et 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.

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

UML -Langage Unifié pour la Modélisation Objet 15

Agrégation et composition
- Une page peut contenir des images mais
celles-ci peuvent appartenir à d'autres pages.
- la destruction d'une page n'entraîne pas celle
de l'image mais seulement la suppression du
lien.
- Le châssis est un élément indissociable
d'une voiture, d'où la composition.
- Le moteur et les roues peuvent être
utilisés dans d'autres voitures.
- Notez les valeurs 4..4 qui caractérisent
plus précisément les valeurs de
multiplicité
- Les absences de cardinalité sont
assimilable à 1..1

UML -Langage Unifié pour la Modélisation Objet 16

8
25/03/2022

Modèle statique / Diagramme des classes


Agrégation (2)

UML -Langage Unifié pour la Modélisation Objet 18

Modèle statique / Diagramme des classes


Composition (1) : Agrégation forte

Homme 1 1 Tête

Composition

La composition traduit une dépendance existentielle forte.

UML -Langage Unifié pour la Modélisation Objet 19

9
25/03/2022

Modèle statique / Diagramme des classes


Exemples

UML -Langage Unifié pour la Modélisation Objet 21

Modèle statique / Diagramme des classes


Deux notations autorisées en UML

UML -Langage Unifié pour la Modélisation Objet 22

10
25/03/2022

Modèle statique / Diagramme des classes


Les hiérarchies de classes

• Les hiérarchies de classes ou classifications permettent de gérer


la complexité en ordonnant les objets au sein d’arborescences
de classes d’abstraction croissante.
• La généralisation: il s’agit de prendre des classes existantes
(déjà mises en évidence) et de créer de nouvelles classes qui
regroupent leurs parties communes; il faut aller du plus
spécifique vers le plus général.
• La spécialisation: il s’agit de sélectionner des classes existantes
(déjà identifiées) et d’en dériver de nouvelles classes plus
spécialisées, en spécifiant simplement les différences.

UML -Langage Unifié pour la Modélisation Objet 23

Modèle statique / Diagramme des classes


Les hiérarchies de classes / Généralisation
• La généralisation consiste à factoriser les éléments communs
d’un ensemble de classes dans une classe plus générale
appelée super-classe.
• Les classes sont ordonnées selon une hiérarchie; une super-
classe est une abstraction de ses sous-classes.
• La généralisation est une démarche assez difficile car elle
demande une bonne capacité d’abstraction. La mise au point
d’une hiérarchie est délicate et itérative.
• Les arbres de classes ne poussent pas à partir de leur racine.
Au contraire, ils se déterminent en partant des feuilles car les
feuilles appartiennent au monde réel alors que les niveaux
supérieurs sont des abstractions construites pour ordonner et
comprendre.
UML -Langage Unifié pour la Modélisation Objet 24

11
25/03/2022

Modèle statique / Diagramme des classes


Les hiérarchies de classes / Généralisation

Abstractions
plus générales

• Il y a généralisation car on s’intéresse d’abord aux voitures, motos,


avions et hélicoptères et ensuite seulement on les classe en
véhicules.
• L’itération de la démarche se justifie pour opérer un classement
plus fin sous forme de véhicules terrestres et de véhicules aériens.
UML -Langage Unifié pour la Modélisation Objet 25

Modèle statique / Diagramme des classes


Les hiérarchies de classes / Règles de Généralisation
Spécialisation
Généralisation

• La généralisation ne porte aucun nom particulier; elle signifie toujours: est


un ou est une sorte de.
• La généralisation ne concerne que les classes, elle n’est pas instantiable en
liens et, de fait, ne porte aucune indication de multiplicité.

UML -Langage Unifié pour la Modélisation Objet 26

12
25/03/2022

Modèle statique / Diagramme des classes


Les hiérarchies de classes / L’héritage

• L’héritage est une technique offerte par les langages de


programmation pour construire une classe à partir d’une ou de
plusieurs autres classes, en partageant des attributs, des
opérations et parfois des contraintes au sein d’une hiérarchie de
classes.
• Les classes enfants héritent des caractéristiques de leurs classes
parents.
• Les attributs et les opérations déclarés dans la classe parent, sont
accessibles dans la classe enfant, comme s’ils avaient été
déclarés localement.

UML -Langage Unifié pour la Modélisation Objet 27

Modèle statique / Diagramme des classes


Les hiérarchies de classes / Héritage multiple(1)
• La généralisation - sous sa forme dite multiple – existe également
entre arbres de classes disjoints.

UML -Langage Unifié pour la Modélisation Objet 28

13
25/03/2022

Modèle statique / Diagramme des classes


Les hiérarchies de classes / Héritage multiple(2)

• Pour que l’héritage multiple puisse être mise en œuvre, il faut


qu’il puisse être supporté par les langages de programmation
« objets » .
• Dans l’exemple, comment le compilateur peut-il garantir, lors
de l’implémentation de la classe Z, qu’il n’y ait pas de conflit
entre les propriétés A héritée de la classe X et A héritée de la
classe Y?
• Par exemple, JAVA ne supporte pas l’héritage multiple.

UML -Langage Unifié pour la Modélisation Objet 29

Exercice 1

UML -Langage Unifié pour la Modélisation Objet

14
25/03/2022

UML -Langage Unifié pour la Modélisation Objet

Exercice 3

UML -Langage Unifié pour la Modélisation Objet

15
25/03/2022

Exercice
Chaque recette de cuisine a un nom, une description, la durée de préparation et la durée
de cuisson, le nombre de calories par personne, le nombre de parts et le niveau de
difficulté : difficile, moyen ou facile.
Pour chaque recette vous voulez savoir quels sont les ingrédients nécessaires et la
quantité associée à chaque ingrédient.
Pour chaque ingrédient vous avez son nom et le nombre de calories pour 100 grammes
de cet ingrédient.
Chaque ingrédient a un type, par exemple féculent pour l'ingrédient pomme de terre.
Un même ingrédient peut avoir plusieurs conditionnements, par exemple, l'ingrédient
farine peut être stocké sous forme d'un paquet de 1 kg ou de 500 g. Ces deux
conditionnements seront considérés comme des produits différents.
Pour gérer les stocks des ingrédients, le lieu de stockage des produits dans le logement
est mémorisé.
Chaque rangement est nommé et pour chaque rangement vous savez quels sont les
produits qui y sont stockés.
Un même ingrédient peut être stocké dans plusieurs rangements.
Modéliser cette situation par un diagramme de classes

UML -Langage Unifié pour la Modélisation Objet 43

Exercice 2

UML -Langage Unifié pour la Modélisation Objet 65

16

Vous aimerez peut-être aussi