Académique Documents
Professionnel Documents
Culture Documents
Introduction
Le diagramme de classe est le diagramme le plus important de la modélisation orientée
objet. Il décrit la vue statique du système (pas de facteur temporel).
Un système est composé d'objets qui interagissent entre eux pour réaliser les cas
d'utilisation.
1. Notion d’objet
Dans la modélisation orientée objet, le système est décrit par un ensemble d’objets
pouvant communiquer entre eux. Un objet est alors une entité concrète ou abstraite du
système.
Nom de l’objet
MonLivretA : Compte
Un attribut est une propriété élémentaire d’un objet. Pour chaque objet, l’attribut prend
une valeur.
b- Opération
Une opération est une fonction applicable à un objet. Une opération permet de décrire le
comportement d’un objet.
2. Notion de classe
Une classe est un regroupement d'objets de même nature (mêmes attributs + mêmes
opérations). On dit que chaque objet est une instance de la classe.
Exemple :
1
Nom de la classe
MonCompteTN : Compte
attributs
Numéro =12563
Devise =DTN Compte
Solde =5645,23
Déposer (montant :float) Instances de Numéro : int
Retirer (montant :float) Devise :devise
Solde() : float Solde :float
Déposer (montant :float)
Retirer (montant :float)
MonCompteFR : Compte Solde() : float
Numéro =58465
Devise =Euro
Solde =14200.02
Déposer (montant :float) opérations
Retirer (montant :float)
+ Solde() : float
Multiplicité
Personne Compte
Nom :string Numéro :int
1..2
Prénom : string * Devise :devise
Adresse :string propriétaire Solde :float
Naissance :date soncomptes Déposer (montant :float)
possède
ouvrirCompte (init :float) Retirer (montant :float)
Solde() : float
Rôles Nom de l’association
Une association permet de décrire un lien statique bidirectionnel entre classes. Une
association indique donc qu'il peut y avoir des liens entre des instances des classes associées.
Les liens peuvent être étiquetés par des verbes ou expressions permettant d’en saisir le sens.
Il est possible d’exprimer les cardinalités sur le lien d’association. La multiplicité contraint le
nombre d'objets liés par l'association.
Compte
Numéro :int
Devise :devise
Solde :float
Propriétaire : personne
Déposer (montant :float)
Retirer (montant :float)
2
Solde() : float
Personne Compte
Nom :string Numéro :int
Prénom : string 1 possède * Devise :devise
Adresse :string Solde :float
Propriétaire Déposer (montant :float)
Naissance :date
ouvrirCompte (init :float) Retirer (montant :float)
Solde() : float
a- Cardinalité
n : exactement n
n,m,p : Exactement n ou m ou p
n..m : Entre n et m
n..* : Au moins n
* :Plusieurs (0 ou plus)
c- Association Multiple
b- Association Réflexive
3
4. Navigablité
● Depuis un A, on a accès aux objets de B qui lui sont associés, mais pas l'inverse
Par défaut, les associations sont navigables dans les deux sens (pas de flèche).
Exemple 2 :
A une personne sont associées ses copies d’examen mais l’inverse n’est pas possible
(retrouver directement l’auteur de la copie d’examen, notamment avant la correction de la
copie).
5. Classe-association
Une classe d’association permet de paramétrer une association entre deux classes par une
classe afin de décrire soit des attributs, soit des opérations propres à l’association. Elle est liée
à l’association par un trait en pointillé.
*
Personne Entreprise
nom * * Nom entreprise
Prenom
Affectation
Date début
Date fin
Une classe-association Affectation peut etre ajoutée pour décrire les attributs (date début, date
fin) propres à l’association de dimention 3. Cette classe-association est reliée par un trait en
pointillé au losange de connexion.
7. Agrégation
- Une agrégation est une association particulière entre classes :
Dissymétrique : une classe prédominante sur l'autre
Relation de type composant-composite
- Il existe deux types d'agrégation :
Agrégation faible
Composition
a- Agrégation faible
Appelée aussi Agrégation par référence
- Le composite fait référence à ses composants
- La création ou destruction du composite est indépendante de la création ou destruction de
ses composants
- Un objet peut faire partie de plusieurs composites à la fois
Exemple
- Une pièce est composée de murs
- Un mur peut être commun à plusieurs pièces
5
b- Composition
Appelée aussi Agrégation par valeur
- Le composite contient ses composants
-La création ou destruction du composite entraîne la création ou destruction de ses
composants
- Un objet ne fait partie que d'un composite à la fois
Exemple
- Un mur est composé de briques
- Une brique n'appartient qu'à un mur
8. Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en
arborescence
Compte
Numéro :int
Devise :devise Super-classe
Solde :float
Spécialisation Déposer (montant :float)
Retirer (montant :float)
Solde() : float généralisation
CompteEpargne
CompteCourant Numéro :int
Numéro :int Devise :devise
Devise :devise Solde :float
Solde :float plafond : float
Sous-classes
découvertAutorisé : float taux : float
fraisDécouvert : float Déposer (montant :float)
Déposer (montant :float) Retirer (montant :float)
Retirer (montant :float) Solde() : float
Solde() : float calculerIntérêts() : float
6
Héritage : Construction d'une classe à partir d'une classe plus haute dans la hiérarchie (partage
des attributs, opérations, contraintes...)
Exemple : les classes CompteCourant et CompteEpargne sont des classes héritant de la classe
Compte.
9. Classe abstraite
C’est une classe sans instance car certaines opérations sont non définies.
Exemples
1. La classe « compte » est une classe abstraite càd une Classe sans instance.
Elle représente seulement une base pour les classes héritées.
2. On ne peut pas calculer la surface d'une forme sans savoir de quelle forme il
s'agit
10. Polymorphisme
Définition :
Poly : plusieurs
Morphisme : Forme
C’est la définition d'une opération abstraite dans les classes héritant d'une classe abstraite
Exemple1 :
7
Exemple2 :
Véhicule
seDéplacer()
{print(« sur les rails »)} {print(« sur la route »)} {print(« sur l’eau »)}
Représentation :
On utilise une relation de type réalisation entre une interface et une classe qui
l’implémente (flèche d’héritage en pointillés).
On utilise une relation de type utilisation entre une interface et une classe qui l’utilise
(flèche simple en pointillés).
Les classes implémentant une interface doivent implémenter toutes les opérations décrites
dans l’interface.
Exemple :
8
12. Notations avancées
Les notations complètes des attributs, et opérations d’une classe sont les suivantes :
Attributs :
Opérations
Paramètre
Direction
Visibilité
attribut public ni privé, mais seulement que cette information n’est pas fournie.
* Attribut dérivé : Peut être calculé à tout moment à partir des autres attributs
9
Evaluation : Chercher l’erreur :
1.
Eviter les associations redondantes :
- Le vol d’un bagage est obtenu à partir du passager
- Les bagages d’un vol sont obtenus à partir des passagers
Possibilité de spécifier que l’association Bagage-Vol est dérivée...
2.
Navigabilité : En l’absence de réservations, on ne peut accéder ni aux chambres ni aux clients
Une école dispose d’au moins une salle de cours. Dans chaque salle, on trouve des
chaises et un vidéo-projecteur fixé au plafond.
Compléter l’exemple précédent en indiquant qu’une salle est composée d’une seule
porte et de plusieurs fenêtres.
10