SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
UML
Diagrammes de classes
Polytech Paris-Sud
Formation initiale 3e
année
Spécialité Informatique
Année 2015-2016
Delphine Longuet
delphine.longuet@lri.fr
D. Longuet - UML 2
Objets et classes
Conception orientée objet : Représentation du système comme un
ensemble d'objets interagissant
Diagramme de classes
●
Représentation de la structure interne du logiciel
●
Utilisé surtout en conception mais peut être utilisé en analyse
Diagramme d'objets
●
Représentation de l'état du logiciel (objets + relations)
●
Diagramme évoluant avec l'exécution du logiciel
- création et suppression d'objets
- modification de l'état des objets (valeurs des atributs)
- modification des relations entre objets
D. Longuet - UML 3
Objets et classes
Objet
●
Entité concrète ou abstraite du domaine d'application
●
Décrit par : identité (adresse mémoire)
+ état (attributs)
+ comportement (opérations)
MonLivretA : Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro = 123456
devise = EUR
solde = 3509,43
nom de l'objet
attributs
opérations
état (valeur des attributs)
D. Longuet - UML 4
Objets et classes
Classe : Regroupement d'objets de même nature (mêmes attributs +
mêmes opérations)
Objet = instance d'une classe
MonLivretA : Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro = 123456
devise = EUR
solde = 3509,43
nom de la classe
attributs
opérations
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
MonCompteJoint : Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro = 854126
devise = EUR
solde = 2215,03
MonCompteSuisse : Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro = 70054568
devise = CHF
solde = 121000
instances de
D. Longuet - UML 5
Classes
Attributs
●
Caractéristique partagée par tous les objets de la classe
●
Associe à chaque objet une valeur
●
Type associé simple (int, bool...), primitif (Date) ou énuméré
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
« enumeration »
Devise
EUR
GBP
USD
CHF
type énuméré
(pas une classe)
attributs
D. Longuet - UML 6
Classes
Attributs
●
Caractéristique partagée par tous les objets de la classe
●
Associe à chaque objet une valeur
●
Type associé simple (int, bool...), primitif (Date) ou énuméré
Valeur des attributs : État de l'objet
●
Objets différents (identités différentes) peuvent avoir mêmes
attributs
Jean1 : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 10/07/1985
Jean2 : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 10/07/1985
≠
(mémoire)
D. Longuet - UML 7
Classes
Opérations
●
Service qui peut être demandé à tout objet de la classe
●
Comportement commun à tous les objets de la classe
Ne pas confondre avec une méthode = implantation de l'opération
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
⚠
opérations
D. Longuet - UML 8
Relations entre objets
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
adresse = "Montrouge"
naissance = 20/08/1990
Lien entre objets
●
relation binaire (en général)
●
au plus un lien entre deux objets (pour une association)
possède
lien
D. Longuet - UML 9
Relations entre objets
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
MonCompteJoint : Compte
numéro = 854126
devise = EUR
solde = 2215,03
MonCompteSuisse : Compte
numéro = 70054568
devise = CHF
solde = 121000
MarieDupont : Personne
nom = "Dupont"
prénom = "Marie"
adresse = "Montrouge"
naissance = 4/12/1992
sesComptes
possède
possède
possède
possède
Lien entre objets
●
relation binaire (en général)
●
au plus un lien entre deux objets (pour une association)
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
adresse = "Montrouge"
naissance = 20/08/1990
D. Longuet - UML 10
Relations entre objets
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
MonCompteJoint : Compte
numéro = 854126
devise = EUR
solde = 2215,03
MonCompteSuisse : Compte
numéro = 70054568
devise = CHF
solde = 121000
JeanDupont : Personne
MarieDupont : Personne
sesPropriétaires
Lien entre objets
●
relation binaire (en général)
●
au plus un lien entre deux objets (pour une association)
possède
possède
possède
possède
nom = "Dupont"
prénom = "Marie"
adresse = "Montrouge"
naissance = 4/12/1992
nom = "Dupont"
prénom = "Jean"
adresse = "Montrouge"
naissance = 20/08/1990
D. Longuet - UML 11
Relations entre classes
rôle
nom de
l'association
(optionnel)
multiplicité
Association entre classes : Relation binaire (en général)
Rôle : Nomme l'extrémité d'une association, permet d'accéder aux
objets liés par l'association à un objet donné
Multiplicité : Contraint le nombre d'objets liés par l'association
Lien = instance d'association
Personne
nom : string
prénom : string
adresse : string
naissance : Date
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
ouvrirCompte(init : float)
sesComptessesPropriétaires
*1..2 possède
D. Longuet - UML 12
Attribut et association
Rappel : Types des attributs simple, primitif ou énuméré
En particulier, pas d'attribut dont le type est une classe du diagramme
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
propriétaire : Personne
D. Longuet - UML 13
Attribut et association
Rappel : Types des attributs simple, primitif ou énuméré
En particulier, pas d'attribut dont le type est une classe du diagramme
Mais association vers cette classe
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
Personne
nom : string
prénom : string
adresse : string
naissance : Date
ouvrirCompte(init : float)
sesComptessonPropriétaire
*1 possède
D. Longuet - UML 14
Multiplicités
A Bn
Nombre d'objets de la classe B associés à un objet de la classe A
Exactement n
Exactement n ou m ou p
Entre n et m
Au moins n
Plusieurs (0 ou plus)
A Bn,m,p
A Bn..m
A Bn..*
A B*
D. Longuet - UML 15
Multiplicités en pratique
A B1
Nombre d'objets de la classe B associés à un objet de la classe A
Exactement 1
Au plus 1 (0 ou 1)
Au moins 1 (jamais 0)
0 ou plus
A B
A B
A B*
0..1
1..*
D. Longuet - UML 16
Diagramme de classes
Exemple de diagramme d'objets
Association réflexive
Personne
nom : string
prénom : string
naissance : Date
parents
enfants
2
*
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 20/08/1990
MichelDupont : Personne
nom = "Dupont"
prénom = "Michel"
naissance = 2/09/1959
AnneBérou : Personne
nom = "Bérou"
prénom = "Anne"
naissance = 14/12/1965 PierreDupont : Personne
nom = "Dupont"
prénom = "Pierre"
naissance = 30/05/1992
LucieDupont : Personne
nom = "Dupont"
prénom = "Lucie"
naissance = 10/02/1996
MarieVernet : Personne
nom = "Vernet"
prénom = "Marie"
naissance = 4/12/1992
VictorDupont : Personne
nom = "Dupont"
prénom = "Victor"
naissance = 12/07/2012
association réflexive
(d'une classe vers
elle-même)
D. Longuet - UML 17
Association multiple
Personne
nom : string
prénom : string
naissance : Date
Appartement
adresse : string
pièces : int
loyer : float
propose
loue
1
*
*
*
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 20/08/1990
AlainDupuis : Personne
nom = "Dupuis"
prénom = "Alain"
naissance = 15/01/1983
BLR145 : Appartement
adresse = "145 av gal Leclerc, Bourg-la-Reine"
pièces = 2
loyer = 900
Cach23 : Appartement
adresse = "23 rue Dumotel, Cachan"
pièces = 3
loyer = 1200
loue
loue
propose
Diagramme de classes
Exemple de diagramme d'objets
plusieurs associations
entre deux classes
D. Longuet - UML 18
Navigabilité
Orientation d'une association
●
Restreint l'accessibilité des objets
●
Depuis un A, on a accès aux objets de B qui lui sont associés,
mais pas l'inverse
Exemple (listes chaînées)
Par défaut, associations navigables dans les deux sens (pas de flèche)
Liste Nœud
contenu : int
tête
suivant
0..1
0..1
A B
rôle
1
rôle
1
D. Longuet - UML 19
Classe-association
Permet de paramétrer une association entre deux classes par une classe
Instance unique de la classe-association pour chaque lien entre objets
Équivalence en termes de classes et d'associations :
Personne
nom : string
prénom : string
naissance : Date Emploi
intitulé : string
début : Date
fin : Date
1..* *
1 *
classe-association
Entreprise
nom : string
ville : string
Personne
nom : string
prénom : string
naissance : Date
Emploi
intitulé : string
début : Date
fin : Date
Entreprise
nom : string
ville : string
11..*
D. Longuet - UML 20
Classe-association
Exemple de diagramme d'objets
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 20/08/1990
MarieDupont : Personne
nom = "Dupont"
prénom = "Marie"
naissance = 4/12/1992
Essilor : Entreprise
nom = "Essilor"
ville = "Créteil"
Fnac : Entreprise
nom = "Fnac"
ville = "Bordeaux"
SecDupontEssilor : Emploi
intitulé = "Secrétaire RH"
début = ...
fin = ...
DevDupuisFnac : Emploi
intitulé = "Développeur web"
début = ...
fin = ...
ProjDupontEssilor : Emploi
intitulé = "Chef de projet web"
début = ...
fin = ...
AlainDupuis : Personne
nom = "Dupuis"
prénom = "Alain"
naissance = 15/01/1983
DevDupontEssilor : Emploi
intitulé = "Développeur web"
début = ...
fin = ...
D. Longuet - UML 21
Association n-aire
Association reliant plus de deux classes
Instance d'une association n-aire = lien entre n objets
Enseignant Étudiant
Cours
1
1
1..*
association ternaire
Ens1:Enseignant
C1:Cours
Étu1:Étudiant
Étu2:Étudiant
Étu3:Étudiant
D. Longuet - UML 22
Association n-aire
Multiplicités : pour chaque (n-1)-uplet d'objets, contraint le nombre
d'objets qui lui sont associés
Ens1:Enseignant
C1:Cours
1..* instances d'Étudiant
C1:Cours
Étu1:Étudiant
1 instance d'Enseignant
Ens:Enseignant
Étu1:Étudiant
1 instance de Cours
D. Longuet - UML 23
Agrégation
Association particulière entre classes
●
Dissymétrique : une classe prédominante sur l'autre
●
Relation de type composant-composite
Deux types d'agrégation
●
Agrégation faible
●
Composition
Exemple
Lecteur de contenu audio permettant de créer des listes de lecture
Liste de lecture Morceau Album1..* 1* 1..*
agrégation faible composition
D. Longuet - UML 24
Agrégation faible
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 liste de lecture est composée d'un ensemble de morceaux
●
Un morceau peut appartenir à plusieurs listes de lecture
●
Supprimer la liste ne supprime pas les morceaux
Morceau1..**
agrégation faible
Liste de lecture
D. Longuet - UML 25
Composition
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 morceau n'appartient qu'à un album
●
La suppression de l'album entraîne la suppression de tous ses
morceaux
Morceau Album11..*
composition
D. Longuet - UML 26
Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Spécialisation : raffinement d'une classe en une sous-classe
Généralisation : abstraction d'un ensemble de classes en super-classe
CompteCourant
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
découvertAutorisé : float
fraisDécouvert : float
CompteÉpargne
numéro : int
devise : Devise
solde : float
plafond : float
taux : float
déposer (montant : float)
retirer(montant : float)
solde() : float
calculerIntérêts() : float
D. Longuet - UML 27
Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Spécialisation : raffinement d'une classe en une sous-classe
Généralisation : abstraction d'un ensemble de classes en super-classe
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
CompteCourant
découvertAutorisé : float
fraisDécouvert : float
CompteÉpargne
plafond : float
taux : float
calculerIntérêts() : float
spécialisation généralisation
sous-classes
super-classe
D. Longuet - UML 28
Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Héritage : Construction d'une classe à partir d'une classe plus haute
dans la hiérarchie (partage des attributs, opérations, contraintes...)
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
CompteCourant
découvertAutorisé : float
fraisDécouvert : float
CompteÉpargne
plafond : float
taux : float
calculerIntérêts() : float
classes héritant
de la classe Compte
D. Longuet - UML 29
Classe abstraite
Classe sans instance, seulement une base pour classes héritées
Notation : nom de la classe en italique (ou stéréotype « abstract »)
Compte
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
CompteCourant
découvertAutorisé : float
fraisDécouvert : float
CompteÉpargne
plafond : float
taux : float
calculerIntérêts() : float
classe abstraite
car un compte
n'existe pas en soi

Contenu connexe

Tendances

Tendances (14)

Uml: Diagrammes de classes -- Concepts De Base 41
Uml: Diagrammes de classes -- Concepts De Base 41Uml: Diagrammes de classes -- Concepts De Base 41
Uml: Diagrammes de classes -- Concepts De Base 41
 
Ch10
Ch10Ch10
Ch10
 
Ch03
Ch03Ch03
Ch03
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
C micro c_1_
C micro c_1_C micro c_1_
C micro c_1_
 
Theme 10
Theme 10Theme 10
Theme 10
 
CIDOC CRM et Linked Data
CIDOC CRM et Linked DataCIDOC CRM et Linked Data
CIDOC CRM et Linked Data
 
UML : Diagrammes de cas d'utilisation -- modele detaille -- 15
UML : Diagrammes de cas d'utilisation -- modele detaille -- 15UML : Diagrammes de cas d'utilisation -- modele detaille -- 15
UML : Diagrammes de cas d'utilisation -- modele detaille -- 15
 
Uml
UmlUml
Uml
 
Tp3 matlab
Tp3 matlabTp3 matlab
Tp3 matlab
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
Ch04
Ch04Ch04
Ch04
 
Langage c partie_2
Langage c partie_2Langage c partie_2
Langage c partie_2
 
UML+Python
UML+PythonUML+Python
UML+Python
 

Similaire à Diagramme de classes

Similaire à Diagramme de classes (14)

UML
UMLUML
UML
 
556ef78d93c3b
556ef78d93c3b556ef78d93c3b
556ef78d93c3b
 
Et3 5 diagsequence
Et3 5 diagsequenceEt3 5 diagsequence
Et3 5 diagsequence
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
CM uml-diag-statiques
CM uml-diag-statiquesCM uml-diag-statiques
CM uml-diag-statiques
 
Part1
Part1Part1
Part1
 
Generateur de code java (GenJAVA)
Generateur de code java (GenJAVA)Generateur de code java (GenJAVA)
Generateur de code java (GenJAVA)
 
generation_code.pdf
generation_code.pdfgeneration_code.pdf
generation_code.pdf
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Csharp2014
Csharp2014Csharp2014
Csharp2014
 
Initiation au C++
Initiation au C++Initiation au C++
Initiation au C++
 

Dernier

Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Dernier (15)

Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

Diagramme de classes

  • 1. UML Diagrammes de classes Polytech Paris-Sud Formation initiale 3e année Spécialité Informatique Année 2015-2016 Delphine Longuet delphine.longuet@lri.fr
  • 2. D. Longuet - UML 2 Objets et classes Conception orientée objet : Représentation du système comme un ensemble d'objets interagissant Diagramme de classes ● Représentation de la structure interne du logiciel ● Utilisé surtout en conception mais peut être utilisé en analyse Diagramme d'objets ● Représentation de l'état du logiciel (objets + relations) ● Diagramme évoluant avec l'exécution du logiciel - création et suppression d'objets - modification de l'état des objets (valeurs des atributs) - modification des relations entre objets
  • 3. D. Longuet - UML 3 Objets et classes Objet ● Entité concrète ou abstraite du domaine d'application ● Décrit par : identité (adresse mémoire) + état (attributs) + comportement (opérations) MonLivretA : Compte déposer(montant : float) retirer(montant : float) solde() : float numéro = 123456 devise = EUR solde = 3509,43 nom de l'objet attributs opérations état (valeur des attributs)
  • 4. D. Longuet - UML 4 Objets et classes Classe : Regroupement d'objets de même nature (mêmes attributs + mêmes opérations) Objet = instance d'une classe MonLivretA : Compte déposer(montant : float) retirer(montant : float) solde() : float numéro = 123456 devise = EUR solde = 3509,43 nom de la classe attributs opérations Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float MonCompteJoint : Compte déposer(montant : float) retirer(montant : float) solde() : float numéro = 854126 devise = EUR solde = 2215,03 MonCompteSuisse : Compte déposer(montant : float) retirer(montant : float) solde() : float numéro = 70054568 devise = CHF solde = 121000 instances de
  • 5. D. Longuet - UML 5 Classes Attributs ● Caractéristique partagée par tous les objets de la classe ● Associe à chaque objet une valeur ● Type associé simple (int, bool...), primitif (Date) ou énuméré Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float « enumeration » Devise EUR GBP USD CHF type énuméré (pas une classe) attributs
  • 6. D. Longuet - UML 6 Classes Attributs ● Caractéristique partagée par tous les objets de la classe ● Associe à chaque objet une valeur ● Type associé simple (int, bool...), primitif (Date) ou énuméré Valeur des attributs : État de l'objet ● Objets différents (identités différentes) peuvent avoir mêmes attributs Jean1 : Personne nom = "Dupont" prénom = "Jean" naissance = 10/07/1985 Jean2 : Personne nom = "Dupont" prénom = "Jean" naissance = 10/07/1985 ≠ (mémoire)
  • 7. D. Longuet - UML 7 Classes Opérations ● Service qui peut être demandé à tout objet de la classe ● Comportement commun à tous les objets de la classe Ne pas confondre avec une méthode = implantation de l'opération Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float ⚠ opérations
  • 8. D. Longuet - UML 8 Relations entre objets MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 JeanDupont : Personne nom = "Dupont" prénom = "Jean" adresse = "Montrouge" naissance = 20/08/1990 Lien entre objets ● relation binaire (en général) ● au plus un lien entre deux objets (pour une association) possède lien
  • 9. D. Longuet - UML 9 Relations entre objets MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 MonCompteJoint : Compte numéro = 854126 devise = EUR solde = 2215,03 MonCompteSuisse : Compte numéro = 70054568 devise = CHF solde = 121000 MarieDupont : Personne nom = "Dupont" prénom = "Marie" adresse = "Montrouge" naissance = 4/12/1992 sesComptes possède possède possède possède Lien entre objets ● relation binaire (en général) ● au plus un lien entre deux objets (pour une association) JeanDupont : Personne nom = "Dupont" prénom = "Jean" adresse = "Montrouge" naissance = 20/08/1990
  • 10. D. Longuet - UML 10 Relations entre objets MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 MonCompteJoint : Compte numéro = 854126 devise = EUR solde = 2215,03 MonCompteSuisse : Compte numéro = 70054568 devise = CHF solde = 121000 JeanDupont : Personne MarieDupont : Personne sesPropriétaires Lien entre objets ● relation binaire (en général) ● au plus un lien entre deux objets (pour une association) possède possède possède possède nom = "Dupont" prénom = "Marie" adresse = "Montrouge" naissance = 4/12/1992 nom = "Dupont" prénom = "Jean" adresse = "Montrouge" naissance = 20/08/1990
  • 11. D. Longuet - UML 11 Relations entre classes rôle nom de l'association (optionnel) multiplicité Association entre classes : Relation binaire (en général) Rôle : Nomme l'extrémité d'une association, permet d'accéder aux objets liés par l'association à un objet donné Multiplicité : Contraint le nombre d'objets liés par l'association Lien = instance d'association Personne nom : string prénom : string adresse : string naissance : Date Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float ouvrirCompte(init : float) sesComptessesPropriétaires *1..2 possède
  • 12. D. Longuet - UML 12 Attribut et association Rappel : Types des attributs simple, primitif ou énuméré En particulier, pas d'attribut dont le type est une classe du diagramme Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float propriétaire : Personne
  • 13. D. Longuet - UML 13 Attribut et association Rappel : Types des attributs simple, primitif ou énuméré En particulier, pas d'attribut dont le type est une classe du diagramme Mais association vers cette classe Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float Personne nom : string prénom : string adresse : string naissance : Date ouvrirCompte(init : float) sesComptessonPropriétaire *1 possède
  • 14. D. Longuet - UML 14 Multiplicités A Bn Nombre d'objets de la classe B associés à un objet de la classe A Exactement n Exactement n ou m ou p Entre n et m Au moins n Plusieurs (0 ou plus) A Bn,m,p A Bn..m A Bn..* A B*
  • 15. D. Longuet - UML 15 Multiplicités en pratique A B1 Nombre d'objets de la classe B associés à un objet de la classe A Exactement 1 Au plus 1 (0 ou 1) Au moins 1 (jamais 0) 0 ou plus A B A B A B* 0..1 1..*
  • 16. D. Longuet - UML 16 Diagramme de classes Exemple de diagramme d'objets Association réflexive Personne nom : string prénom : string naissance : Date parents enfants 2 * JeanDupont : Personne nom = "Dupont" prénom = "Jean" naissance = 20/08/1990 MichelDupont : Personne nom = "Dupont" prénom = "Michel" naissance = 2/09/1959 AnneBérou : Personne nom = "Bérou" prénom = "Anne" naissance = 14/12/1965 PierreDupont : Personne nom = "Dupont" prénom = "Pierre" naissance = 30/05/1992 LucieDupont : Personne nom = "Dupont" prénom = "Lucie" naissance = 10/02/1996 MarieVernet : Personne nom = "Vernet" prénom = "Marie" naissance = 4/12/1992 VictorDupont : Personne nom = "Dupont" prénom = "Victor" naissance = 12/07/2012 association réflexive (d'une classe vers elle-même)
  • 17. D. Longuet - UML 17 Association multiple Personne nom : string prénom : string naissance : Date Appartement adresse : string pièces : int loyer : float propose loue 1 * * * JeanDupont : Personne nom = "Dupont" prénom = "Jean" naissance = 20/08/1990 AlainDupuis : Personne nom = "Dupuis" prénom = "Alain" naissance = 15/01/1983 BLR145 : Appartement adresse = "145 av gal Leclerc, Bourg-la-Reine" pièces = 2 loyer = 900 Cach23 : Appartement adresse = "23 rue Dumotel, Cachan" pièces = 3 loyer = 1200 loue loue propose Diagramme de classes Exemple de diagramme d'objets plusieurs associations entre deux classes
  • 18. D. Longuet - UML 18 Navigabilité Orientation d'une association ● Restreint l'accessibilité des objets ● Depuis un A, on a accès aux objets de B qui lui sont associés, mais pas l'inverse Exemple (listes chaînées) Par défaut, associations navigables dans les deux sens (pas de flèche) Liste Nœud contenu : int tête suivant 0..1 0..1 A B rôle 1 rôle 1
  • 19. D. Longuet - UML 19 Classe-association Permet de paramétrer une association entre deux classes par une classe Instance unique de la classe-association pour chaque lien entre objets Équivalence en termes de classes et d'associations : Personne nom : string prénom : string naissance : Date Emploi intitulé : string début : Date fin : Date 1..* * 1 * classe-association Entreprise nom : string ville : string Personne nom : string prénom : string naissance : Date Emploi intitulé : string début : Date fin : Date Entreprise nom : string ville : string 11..*
  • 20. D. Longuet - UML 20 Classe-association Exemple de diagramme d'objets JeanDupont : Personne nom = "Dupont" prénom = "Jean" naissance = 20/08/1990 MarieDupont : Personne nom = "Dupont" prénom = "Marie" naissance = 4/12/1992 Essilor : Entreprise nom = "Essilor" ville = "Créteil" Fnac : Entreprise nom = "Fnac" ville = "Bordeaux" SecDupontEssilor : Emploi intitulé = "Secrétaire RH" début = ... fin = ... DevDupuisFnac : Emploi intitulé = "Développeur web" début = ... fin = ... ProjDupontEssilor : Emploi intitulé = "Chef de projet web" début = ... fin = ... AlainDupuis : Personne nom = "Dupuis" prénom = "Alain" naissance = 15/01/1983 DevDupontEssilor : Emploi intitulé = "Développeur web" début = ... fin = ...
  • 21. D. Longuet - UML 21 Association n-aire Association reliant plus de deux classes Instance d'une association n-aire = lien entre n objets Enseignant Étudiant Cours 1 1 1..* association ternaire Ens1:Enseignant C1:Cours Étu1:Étudiant Étu2:Étudiant Étu3:Étudiant
  • 22. D. Longuet - UML 22 Association n-aire Multiplicités : pour chaque (n-1)-uplet d'objets, contraint le nombre d'objets qui lui sont associés Ens1:Enseignant C1:Cours 1..* instances d'Étudiant C1:Cours Étu1:Étudiant 1 instance d'Enseignant Ens:Enseignant Étu1:Étudiant 1 instance de Cours
  • 23. D. Longuet - UML 23 Agrégation Association particulière entre classes ● Dissymétrique : une classe prédominante sur l'autre ● Relation de type composant-composite Deux types d'agrégation ● Agrégation faible ● Composition Exemple Lecteur de contenu audio permettant de créer des listes de lecture Liste de lecture Morceau Album1..* 1* 1..* agrégation faible composition
  • 24. D. Longuet - UML 24 Agrégation faible 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 liste de lecture est composée d'un ensemble de morceaux ● Un morceau peut appartenir à plusieurs listes de lecture ● Supprimer la liste ne supprime pas les morceaux Morceau1..** agrégation faible Liste de lecture
  • 25. D. Longuet - UML 25 Composition 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 morceau n'appartient qu'à un album ● La suppression de l'album entraîne la suppression de tous ses morceaux Morceau Album11..* composition
  • 26. D. Longuet - UML 26 Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence Spécialisation : raffinement d'une classe en une sous-classe Généralisation : abstraction d'un ensemble de classes en super-classe CompteCourant déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float découvertAutorisé : float fraisDécouvert : float CompteÉpargne numéro : int devise : Devise solde : float plafond : float taux : float déposer (montant : float) retirer(montant : float) solde() : float calculerIntérêts() : float
  • 27. D. Longuet - UML 27 Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence Spécialisation : raffinement d'une classe en une sous-classe Généralisation : abstraction d'un ensemble de classes en super-classe Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float CompteCourant découvertAutorisé : float fraisDécouvert : float CompteÉpargne plafond : float taux : float calculerIntérêts() : float spécialisation généralisation sous-classes super-classe
  • 28. D. Longuet - UML 28 Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence Héritage : Construction d'une classe à partir d'une classe plus haute dans la hiérarchie (partage des attributs, opérations, contraintes...) Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float CompteCourant découvertAutorisé : float fraisDécouvert : float CompteÉpargne plafond : float taux : float calculerIntérêts() : float classes héritant de la classe Compte
  • 29. D. Longuet - UML 29 Classe abstraite Classe sans instance, seulement une base pour classes héritées Notation : nom de la classe en italique (ou stéréotype « abstract ») Compte déposer(montant : float) retirer(montant : float) solde() : float numéro : int devise : Devise solde : float CompteCourant découvertAutorisé : float fraisDécouvert : float CompteÉpargne plafond : float taux : float calculerIntérêts() : float classe abstraite car un compte n'existe pas en soi