Vous êtes sur la page 1sur 21

Diagramme de classes

Diagramme de classe

 Il représente les éléments de modélisation statique :


les classes, leur contenu et leurs relations.

 Ignore les aspects temporels et dynamiques

 Plusieurs diagrammes de classe peuvent être nécessaires


pour modéliser le système
Principaux éléments des diagrammes de classes

• Classes

• Les associations

• Les agrégations, les compositions

• Les héritages
Diagramme de classe : Objectifs

• Niveau conceptuel, analyse

• Objectifs
▫ Définir les objets métiers
▫ Définir les services/méthodes publiques
▫ Définir les associations principales (nommage,
multiplicité/cardinalité)
Diagramme de classe : La classe
 Une classe décrit un groupe d'objets ayant des propriétés
similaires (la moule).
 Classe = Attributs + opérations
 Représentation graphique d'une classe :

NomDeLaClasse
Attributs
opérations ( )
 Dans le nom de la classe, chaque mot commence par une
majuscule.
Diagramme de classe : Les attributs
 Représentation minimum d'une classe :
NomDeLaClasse
 Syntaxe complète pour un attribut:
visibilité nom : type = valeur_initiale
 Pour le nom chaque mot commence par une majuscule, sauf
le premier exemple: nomDeAttribut
 Visibilité :
+ public accessible à tous
# protégé accessible à la classe et aux classes qui en héritent
- privé accessible à la classe seule.
Diagramme de classe : Les attributs
 Exemple:

 Attributs de classe (attribut static) :


Pour le distinguer, il est précédé du symbole « $ » ou il est souligné.

Exemple1: Exemple2:
Diagramme de classe : Les Méthodes
 Méthode (opération): est un service que l'on peut
demander à un objet pour réaliser un comportement.
 Syntaxe complète pour une méthode:
visibilité nom (liste_paramètres) : type_retour
Pour le nom chaque mot commence par une majuscule, sauf le
premier exemple: nomDeMethode
 Visibilité :
+ public
# protégé
- Privé
Diagramme de classe : Les attributs

 Exemple:
Diagramme de classe : Les Associations
 Une association: est une relation qui lie deux classes au moins pour
symboliser un lien entre eux.

 Représentation d’une association:

 Pour améliorer la lisibilité on ajoute un verbe et un sens de lecture

exemple 1:

exemple2:
Diagramme de classe : Les Associations

 Une association ternaire: est une entre trois classes.


 C’est rare et déconseillé de les utiliser.

 Représentation d’une association:


Diagramme de classe : Les cardinalités

 Multiplicité
 Précise combien d'instances d'une classe peuvent se
rattacher à une seule instance d'une classe donnée.

 La notation adoptée est : min . . max

 1 obligatoire
 0..1 optionnel
 0..* ou * quelconque
 1..* au moins 1
 N..M exemple : 1..5 entre 1 et 5
 N..M,P exemple : 1..5,10 entre 1 et 5,ou 10
Diagramme de classe : Les cardinalités

 La multiplicité est écrite au bout du trait symbolisant


l'association
 Exemple :
UML

Merise
Diagramme de classe : Attribut d'association

 Un attribut d'association est une propriété des liens d'une


association
 Exemple :
Diagramme de classe : Le Rôle

 Un rôle est une extrémité de l'association.

 Exemple :
Diagramme de classe : Agrégation
 L'agrégation est une forme d'association forte dans laquelle un
objet agrégat est fait de composants.

 Exemple 1:

 Exemple 2:
Diagramme de classe : Composition

 Une composition est une forme forte d'agrégation dans


laquelle le cycle de vie des parties composantes est lié à celui
du composé.
 Si on détruit le composé, les composants n'existent plus.

 Exemple :
Diagramme de classe : héritage
 L’héritage traduit la relation de classification
 Représente les spécialisations et généralisations entre classes
 La relation de généralisation signifie « est un » ou « est une sorte de »
 Les sous-classes héritent des attributs, des opérations, des relations et des
contraintes de la super-classe.

 Exemple :
Diagramme de classe : La synthèse
Bonnes et mauvaises pratiques
 Procéder par itérations
 Les classes
 Les associations
 Les cardinalités
 Les navigabilités
 Spécialiser éventuellement les associations (agrégation, composition)

 Percevoir les dépendances (entre classes et entre packages…)

 Vouloir faire le diagramme des classes avant tout autre

 Penser trop technique (avoir une vision trop conceptuelle en phase d'analyse)

 Penser à la programmation

 Mettre trop d'agrégations et de compositions


 La différence entre agrégation et association n'apporte quasiment rien
 La composition est une association très contraignante
Diagramme de classe : Exemple
Cardinalité
Cardinalité
Customer Order Item
name 1 0..* date 1 1..* weight
address status price
1 calcWeight() getWeight()
calcPrice() getPrice()

Association
Association 1
Navigation
Agrégation
Payment
Classe abstraite amount Classe
Généralisation

Cash Credit Nom de la classe


currency number Attributs
expireDate
getAuthorization() Méthodes
Exercices

Vous aimerez peut-être aussi