uml : concept objet et diagramme de classes · 2020-01-05 · plan 7 les associations...
TRANSCRIPT
![Page 1: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/1.jpg)
UML : concept objet et diagramme de classes
Achref El Mouelhi
Docteur de l’universite d’Aix-MarseilleChercheur en programmation par contrainte (IA)
Ingenieur en genie logiciel
H & H: Research and Training 1 / 125
![Page 2: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/2.jpg)
Plan
1 Introduction
2 L’evolution des langages
3 Le concept objet
4 La notion de classe
5 L’encapsulation
6 Les relations entre classesLa navigabiliteLes rolesLes classes liees par plusieurs associationsL’auto-associationLes associations n-aires
H & H: Research and Training 2 / 125
![Page 3: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/3.jpg)
Plan
7 Les associations particulieresL’heritageL’agregationLa compositionLa dependance
8 La multiplicite
9 La classe d’association
10 Le polymorphisme
11 Les classes abstraite et finale
12 Les interfaces
13 Les contraintes avec UML
14 Comment construire un diagramme de classe?
H & H: Research and Training 3 / 125
![Page 4: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/4.jpg)
Introduction
Introduction
Diagramme de Classe
Le diagramme de structure le plus important dans la realisationd’un projet
Utilisant le concept objet
Pouvant etre transforme, en respectant certaines regles, en MCD(le modele conceptuel de donnees de Merise)
H & H: Research and Training 4 / 125
![Page 5: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/5.jpg)
Introduction
Introduction
Les elements de base dans un diagramme de classe
Classe
Attribut
Methode
Association
Multiplicite
H & H: Research and Training 5 / 125
![Page 6: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/6.jpg)
L’evolution des langages
Introduction
Histoire de la programmation
Langage
machine
1ere generation
1940Assembleur
2eme generation
Programmation
structuree
3eme generation
Programmation
orientee objet
4eme generation
H & H: Research and Training 6 / 125
![Page 7: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/7.jpg)
L’evolution des langages
L’historique de la programmation
Langage machine
Le langage natif d’un processeur (langage de bas niveau)
Les traitements (les instructions) et les donnees (les variables)sont tous codes en binaire (suite des 0 et 1)
Remarque
La lisibilite est extremement difficile
La reutilisation est quasi-impossible
La notion de module n’existe pas
H & H: Research and Training 7 / 125
![Page 8: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/8.jpg)
L’evolution des langages
L’historique de la programmation
Langage machine
Le langage natif d’un processeur (langage de bas niveau)
Les traitements (les instructions) et les donnees (les variables)sont tous codes en binaire (suite des 0 et 1)
Remarque
La lisibilite est extremement difficile
La reutilisation est quasi-impossible
La notion de module n’existe pas
H & H: Research and Training 7 / 125
![Page 9: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/9.jpg)
L’evolution des langages
L’historique de la programmation
L’assembleur
Une reecriture plus lisible du langage machine
Une instruction est formee de nom de l’operation (mov, add...) etd’une ou plusieurs operandes (variables)
Un programme assembleur est traduit en langage machine
Remarque
La lisibilite est legerement meilleure mais reste difficile
La reutilisation est toujours quasi-impossible
La notion de module n’existe toujours pas
H & H: Research and Training 8 / 125
![Page 10: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/10.jpg)
L’evolution des langages
L’historique de la programmation
L’assembleur
Une reecriture plus lisible du langage machine
Une instruction est formee de nom de l’operation (mov, add...) etd’une ou plusieurs operandes (variables)
Un programme assembleur est traduit en langage machine
Remarque
La lisibilite est legerement meilleure mais reste difficile
La reutilisation est toujours quasi-impossible
La notion de module n’existe toujours pas
H & H: Research and Training 8 / 125
![Page 11: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/11.jpg)
L’evolution des langages
L’historique de la programmation
La programmation structuree (ou procedurale)
Un programme est compose d’un ensemble d’appel a desprocedures realisant chacune une tache bien definie
Une procedure peut appeler plusieurs procedures (y compriselle-meme, on parle dans ce cas de recursivite)
Remarque
La lisibilite est considerablement amelioree
Une procedure peut etre appelee plusieurs fois par plusieursprocedures differentes (la reutilisation est nettement amelioree)
Apparition de notion de module
H & H: Research and Training 9 / 125
![Page 12: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/12.jpg)
L’evolution des langages
L’historique de la programmation
La programmation structuree (ou procedurale)
Un programme est compose d’un ensemble d’appel a desprocedures realisant chacune une tache bien definie
Une procedure peut appeler plusieurs procedures (y compriselle-meme, on parle dans ce cas de recursivite)
Remarque
La lisibilite est considerablement amelioree
Une procedure peut etre appelee plusieurs fois par plusieursprocedures differentes (la reutilisation est nettement amelioree)
Apparition de notion de module
H & H: Research and Training 9 / 125
![Page 13: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/13.jpg)
L’evolution des langages
L’historique de la programmationLa programmation orientee objet
Tout concept, idee, operation... est considere comme un objet
Un objet peut contenir certains autres objets et avoir des relationsavec certains autres
Chaque objet possede une structure interne et peut avoirplusieurs etats differents
Remarque
Tout passe par des objets. Un programme correspond a unensemble d’instanciation d’objets : facile a lire
Un objet peut etre instancie et utilise par plusieurs autres objets(ce qui facilite la reutilisation des objets)
Amelioration de la notion de module (Package)
H & H: Research and Training 10 / 125
![Page 14: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/14.jpg)
L’evolution des langages
L’historique de la programmationLa programmation orientee objet
Tout concept, idee, operation... est considere comme un objet
Un objet peut contenir certains autres objets et avoir des relationsavec certains autres
Chaque objet possede une structure interne et peut avoirplusieurs etats differents
Remarque
Tout passe par des objets. Un programme correspond a unensemble d’instanciation d’objets : facile a lire
Un objet peut etre instancie et utilise par plusieurs autres objets(ce qui facilite la reutilisation des objets)
Amelioration de la notion de module (Package)H & H: Research and Training 10 / 125
![Page 15: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/15.jpg)
L’evolution des langages
L’historique de la programmation
Remarque
Certains compilateurs traduisent les codes soit en langagemachine, soit en assembleur, soit en langage de programmationd’un niveau inferieur
Certains compilateurs sont implementes avec d’autres langagesde programmation (par example la machine virtuelle de Java quiest implementee en C++...)
H & H: Research and Training 11 / 125
![Page 16: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/16.jpg)
L’evolution des langages
L’historique de la programmation
Pourquoi autant de generation?
(Plus) de probleme de memoire
Des processeurs plus rapides
Besoins differents
COBOL : pour les systemes de gestion
Java : pour les problemes complexes
LISP : pour les programmes d’intelligence artificielle
PROLOG : pour les problemes de logique
H & H: Research and Training 12 / 125
![Page 17: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/17.jpg)
L’evolution des langages
L’historique de la programmation Orientee objetEvolution de LOO
Simula (1967)
Smalltalk (1971 puis 1980)
C++ (1983)
Python (1989)
Java (1995)
C# (2002)
PHP (depuis la version 5 sortie en 2004)
...
La plupart des langages de programmation ont propose une nouvelleversion orientee objet
H & H: Research and Training 13 / 125
![Page 18: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/18.jpg)
L’evolution des langages
L’historique de la programmation Orientee objetEvolution de LOO
Simula (1967)
Smalltalk (1971 puis 1980)
C++ (1983)
Python (1989)
Java (1995)
C# (2002)
PHP (depuis la version 5 sortie en 2004)
...
La plupart des langages de programmation ont propose une nouvelleversion orientee objet
H & H: Research and Training 13 / 125
![Page 19: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/19.jpg)
L’evolution des langages
La programmation orientee objet
Deux categories de LOO
Les langages a classes : Java, C++, Python...
Les langages a prototypes : JavaScript
H & H: Research and Training 14 / 125
![Page 20: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/20.jpg)
L’evolution des langages
La programmation orientee objet
Pourquoi un LOO ?
Supporte par tous les systemes d’exploitation
Adopte par Microsoft
Adopte par les universitaires (en enseignement et en recherche)
Adopte par la communaute OPEN SOURCE
Adopte par les grandes entreprises
...
H & H: Research and Training 15 / 125
![Page 21: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/21.jpg)
Le concept objet
Le concept objet
Qu’est ce qu’un objet?
Une representation miniature d’un objet reel
Tout concept du monde reel est modelise par un objet
Un outil sur lequel se baser pour creer des choses qui n’existentpas encore
Nous pouvons le considerer comme une boite noire : inaccessibledirectement qu’a travers une interface
H & H: Research and Training 16 / 125
![Page 22: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/22.jpg)
Le concept objet
Le concept objet
Un objet est une entite autonome
veritable petit programme
possede une duree de vie
possede un etat : un ensemble de valeurs
accessible au monde exterieur via une interface
Un programme est compose de plusieurs objets autonomes qui vontinteragir entre eux
H & H: Research and Training 17 / 125
![Page 23: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/23.jpg)
Le concept objet
Le concept objet
Un objet est une entite autonome
veritable petit programme
possede une duree de vie
possede un etat : un ensemble de valeurs
accessible au monde exterieur via une interface
Un programme est compose de plusieurs objets autonomes qui vontinteragir entre eux
H & H: Research and Training 17 / 125
![Page 24: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/24.jpg)
Le concept objet
Le concept objet
De quoi est compose un objet?
un ensemble d’attributs (chaque attribut a un nom et une valeur)≡ donnees (qui definissent l’aspect statique de l’objet)
un ensemble de methodes (des fonctions, comme enprogrammation procedurale, dediees a un type d’objet) ≡traitements (qui definissent l’aspect dynamique de l’objet)
H & H: Research and Training 18 / 125
![Page 25: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/25.jpg)
Le concept objet
Le concept objet
Les attributs
un attribut, selon le contexte, peut etre aussi appele champ ouvariable d’instance
un attribut peut avoir un type (ce n’est pas une obligation, toutdepend du langage de programmation)
chaıne de caractere
entier
booleen
date
...
H & H: Research and Training 19 / 125
![Page 26: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/26.jpg)
Le concept objet
Le concept objet
Remarque
Un objet peut avoir comme attribut un autre objet
Comme les fonctions en programmation procedurale, unemethode peut appeler plusieurs autres
Contrairement a la programmation procedurale, les donnees et lestraitements ne sont pas separes
H & H: Research and Training 20 / 125
![Page 27: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/27.jpg)
Le concept objet
Le concept objet
Exemple : maVoiture
Une voiture peut avoir comme attributnumero d’immatriculation (chaıne ou entier)marque (chaıne)modele (chaıne ou entier)puissance (entier)couleur (chaıne)...
elle peut avoir comme methodeavancerreculerfreinerklaxonner...
H & H: Research and Training 21 / 125
![Page 28: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/28.jpg)
Le concept objet
Le concept objet
Exemple : voiture
numero d’immatriculation : LY 069 ON
marque : Peugeot
modele : 3008
puissance : 8
couleur : blanche
L’ensemble de valeurs d’un objet definit son etatSi je repeins la voiture precedente en noir (couleur = noir) alorsnous disons que l’objet a change d’etatLa voiture peut donc changer d’etat mais il s’agit toujours dumeme objet
H & H: Research and Training 22 / 125
![Page 29: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/29.jpg)
Le concept objet
Le concept objet
Exemple : voiture
numero d’immatriculation : LY 069 ON
marque : Peugeot
modele : 3008
puissance : 8
couleur : blanche
L’ensemble de valeurs d’un objet definit son etat
Si je repeins la voiture precedente en noir (couleur = noir) alorsnous disons que l’objet a change d’etatLa voiture peut donc changer d’etat mais il s’agit toujours dumeme objet
H & H: Research and Training 22 / 125
![Page 30: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/30.jpg)
Le concept objet
Le concept objet
Exemple : voiture
numero d’immatriculation : LY 069 ON
marque : Peugeot
modele : 3008
puissance : 8
couleur : blanche
L’ensemble de valeurs d’un objet definit son etatSi je repeins la voiture precedente en noir (couleur = noir) alorsnous disons que l’objet a change d’etat
La voiture peut donc changer d’etat mais il s’agit toujours dumeme objet
H & H: Research and Training 22 / 125
![Page 31: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/31.jpg)
Le concept objet
Le concept objet
Exemple : voiture
numero d’immatriculation : LY 069 ON
marque : Peugeot
modele : 3008
puissance : 8
couleur : blanche
L’ensemble de valeurs d’un objet definit son etatSi je repeins la voiture precedente en noir (couleur = noir) alorsnous disons que l’objet a change d’etatLa voiture peut donc changer d’etat mais il s’agit toujours dumeme objet
H & H: Research and Training 22 / 125
![Page 32: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/32.jpg)
Le concept objet
Le concept objet
Attention
Ne pas confondre objets identiques et objets egaux
Deux objets sont egaux si, au moment de comparaison, leursattributs respectifs ont les memes valeurs
Deux objets sont identiques s’ils ont le meme OID (ObjectIDentifier)
Si deux objets sont identiques alors ils sont aussi egaux
La reciproque est bien evidemment fausse
H & H: Research and Training 23 / 125
![Page 33: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/33.jpg)
Le concept objet
Le concept objet
Attention
Ne pas confondre objets identiques et objets egaux
Deux objets sont egaux si, au moment de comparaison, leursattributs respectifs ont les memes valeurs
Deux objets sont identiques s’ils ont le meme OID (ObjectIDentifier)
Si deux objets sont identiques alors ils sont aussi egaux
La reciproque est bien evidemment fausse
H & H: Research and Training 23 / 125
![Page 34: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/34.jpg)
Le concept objet
Le concept objet
Attention
Ne pas confondre objets identiques et objets egaux
Deux objets sont egaux si, au moment de comparaison, leursattributs respectifs ont les memes valeurs
Deux objets sont identiques s’ils ont le meme OID (ObjectIDentifier)
Si deux objets sont identiques alors ils sont aussi egaux
La reciproque est bien evidemment fausse
H & H: Research and Training 23 / 125
![Page 35: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/35.jpg)
Le concept objet
Le concept objet
Attention
Ne pas confondre objets identiques et objets egaux
Deux objets sont egaux si, au moment de comparaison, leursattributs respectifs ont les memes valeurs
Deux objets sont identiques s’ils ont le meme OID (ObjectIDentifier)
Si deux objets sont identiques alors ils sont aussi egaux
La reciproque est bien evidemment fausse
H & H: Research and Training 23 / 125
![Page 36: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/36.jpg)
Le concept objet
Le concept objet
Attention
Ne pas confondre objets identiques et objets egaux
Deux objets sont egaux si, au moment de comparaison, leursattributs respectifs ont les memes valeurs
Deux objets sont identiques s’ils ont le meme OID (ObjectIDentifier)
Si deux objets sont identiques alors ils sont aussi egaux
La reciproque est bien evidemment fausse
H & H: Research and Training 23 / 125
![Page 37: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/37.jpg)
Le concept objet
Le concept objet
Exercice d’application
Definissons un objet monLivre de type Livre
Determinons ses principaux attributs ainsi que leurs valeurs
Definissons ses methodes de base
H & H: Research and Training 24 / 125
![Page 38: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/38.jpg)
Le concept objet
Le concept objet
Exercice d’application
Definissons un objet monLivre de type Livre
Determinons ses principaux attributs ainsi que leurs valeurs
Definissons ses methodes de base
H & H: Research and Training 24 / 125
![Page 39: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/39.jpg)
Le concept objet
Le concept objet
Exercice d’application
Definissons un objet monLivre de type Livre
Determinons ses principaux attributs ainsi que leurs valeurs
Definissons ses methodes de base
H & H: Research and Training 24 / 125
![Page 40: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/40.jpg)
Le concept objet
Le concept objet
Cycle de vie
Creation : se realise via une methode specifique diteconstructeur
L’objet sera par la suite utilise pour effectuer des taches bienprecises
Destruction : selon le LOO soit d’une facon implicite quand on nefait plus reference a l’objet (comme en Java, C#...), soit d’unefacon explicite en appelant une methode bien specifiquedestructeur (comme en PHP, C++...)
H & H: Research and Training 25 / 125
![Page 41: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/41.jpg)
Le concept objet
Le concept objet
Cycle de vie
Creation : se realise via une methode specifique diteconstructeur
L’objet sera par la suite utilise pour effectuer des taches bienprecises
Destruction : selon le LOO soit d’une facon implicite quand on nefait plus reference a l’objet (comme en Java, C#...), soit d’unefacon explicite en appelant une methode bien specifiquedestructeur (comme en PHP, C++...)
H & H: Research and Training 25 / 125
![Page 42: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/42.jpg)
Le concept objet
Le concept objet
Cycle de vie
Creation : se realise via une methode specifique diteconstructeur
L’objet sera par la suite utilise pour effectuer des taches bienprecises
Destruction : selon le LOO soit d’une facon implicite quand on nefait plus reference a l’objet (comme en Java, C#...), soit d’unefacon explicite en appelant une methode bien specifiquedestructeur (comme en PHP, C++...)
H & H: Research and Training 25 / 125
![Page 43: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/43.jpg)
Le concept objet
Le concept objet
Le garbage collector (ramasse miettes)
C’est le destructeur d’objets en Java, C# et Smalltalk
Il detruit automatiquement les objets qui ne sont plus utilises
Un objet n’est plus utilise s’il n’est plus reference
Lorsque le garbage collector se declenche, il detruit les objetsnon-utilises
H & H: Research and Training 26 / 125
![Page 44: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/44.jpg)
La notion de classe
La notion de classe
Qu’est ce qu’une classe en POO?
Ca correspond a un plan, un moule, une usine...
C’est une description abstraite d’un type d’objets
Elle regroupe un ensemble d’objets ayant les memes proprietesstatiques (attributs) et dynamiques (methodes)
Qu’est ce que c’est la notion d’instance?
Une instance correspond a un objet cree a partir d’une classe (viale constructeur)
L’instanciation : creation d’un objet d’une classe
instance ≡ objet
H & H: Research and Training 27 / 125
![Page 45: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/45.jpg)
La notion de classe
La notion de classe
Qu’est ce qu’une classe en POO?
Ca correspond a un plan, un moule, une usine...
C’est une description abstraite d’un type d’objets
Elle regroupe un ensemble d’objets ayant les memes proprietesstatiques (attributs) et dynamiques (methodes)
Qu’est ce que c’est la notion d’instance?
Une instance correspond a un objet cree a partir d’une classe (viale constructeur)
L’instanciation : creation d’un objet d’une classe
instance ≡ objet
H & H: Research and Training 27 / 125
![Page 46: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/46.jpg)
La notion de classe
La notion de classe
Qu’est ce qu’une classe en POO?
Ca correspond a un plan, un moule, une usine...
C’est une description abstraite d’un type d’objets
Elle regroupe un ensemble d’objets ayant les memes proprietesstatiques (attributs) et dynamiques (methodes)
Qu’est ce que c’est la notion d’instance?
Une instance correspond a un objet cree a partir d’une classe (viale constructeur)
L’instanciation : creation d’un objet d’une classe
instance ≡ objet
H & H: Research and Training 27 / 125
![Page 47: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/47.jpg)
La notion de classe
La notion de classe
Dans un digramme de classes UML
Une classe est representee par un classeur contenant trois parties :
premiere partie dediee au nom de la classe
seconde partie dediee aux attributs
derniere partie dediee aux methodes
NomClasse
les attributs
les methodes
H & H: Research and Training 28 / 125
![Page 48: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/48.jpg)
La notion de classe
La notion de classe
De quoi est compose une classe?
Attribut : visibilite + nom + type
LOO faiblement type, comme PHP, Pyhon..., n’exigent pas un typepour les attributs
LOO fortement type, comme Java, C++..., exigent un type pourchaque attribut
Methode : nom + arguments + valeur de retour ≡ signature :exactement comme les fonctions en procedurale
H & H: Research and Training 29 / 125
![Page 49: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/49.jpg)
La notion de classe
La notion de classe
Remarque
Un attribut ou une methode peut etre de classe (static) oud’instance
Un attribut (ou une methode) est dit static si sa valeur estpartagee par tous les objets de la classe
H & H: Research and Training 30 / 125
![Page 50: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/50.jpg)
L’encapsulation
La notion de classe
Une classe
peut cacher son implementation
ne montre aux autres objets que ce qu’elle autorise : interface
Proprietes
Les objets interagissent les uns avec les autres via les interfaces
Ce qui n’est pas dans l’interface n’est ni visible ni accessible auxautres objets
La dissociation de l’interface et de l’implementation : encapsulation
H & H: Research and Training 31 / 125
![Page 51: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/51.jpg)
L’encapsulation
La notion de classe
Une classe
peut cacher son implementation
ne montre aux autres objets que ce qu’elle autorise : interface
Proprietes
Les objets interagissent les uns avec les autres via les interfaces
Ce qui n’est pas dans l’interface n’est ni visible ni accessible auxautres objets
La dissociation de l’interface et de l’implementation : encapsulation
H & H: Research and Training 31 / 125
![Page 52: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/52.jpg)
L’encapsulation
La notion de classe
Une classe
peut cacher son implementation
ne montre aux autres objets que ce qu’elle autorise : interface
Proprietes
Les objets interagissent les uns avec les autres via les interfaces
Ce qui n’est pas dans l’interface n’est ni visible ni accessible auxautres objets
La dissociation de l’interface et de l’implementation : encapsulation
H & H: Research and Training 31 / 125
![Page 53: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/53.jpg)
L’encapsulation
La notion de classe
L’encapsulation, pourquoi?
Protection des donneesdonnees inaccessibles de l’exterieur
acces uniquement via l’interface
possibilite de tracer tous les acces aux donnees
focalisation sur les services rendus par les objets plutot que surleur structure
H & H: Research and Training 32 / 125
![Page 54: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/54.jpg)
L’encapsulation
La notion de classe
L’encapsulation, comment?
En definissant des niveaux de visibilite
Les methodes comme les attributs sont concernes
(Trois) niveaux de visibilites
public : visible par tous les autres objets
protected : visible par certains objets (a voir plus tard)
private : visible seulement depuis l’interieur de l’objet
H & H: Research and Training 33 / 125
![Page 55: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/55.jpg)
L’encapsulation
La notion de classe
Dans un diagramme de classes
On peut utiliser
+ : pour indiquer que la propriete a une visibilite public
- : pour indiquer que la propriete a une visibilite private
# : pour indiquer que la propriete a une visibilite protected
H & H: Research and Training 34 / 125
![Page 56: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/56.jpg)
L’encapsulation
La notion de classe
Livre
- titre+ nbrPages# datePublication
?
Dans cet exemple
titre a une visibilite private
nbrPages a une visibilite public
datePublication a une visibilite protected
H & H: Research and Training 35 / 125
![Page 57: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/57.jpg)
L’encapsulation
La notion de classe
Certains langages, comme Smalltalk exige que :
les attributs soient private
les methodes soient public
En Java, PHP
C’est juste une convention (une bonne pratique)
H & H: Research and Training 36 / 125
![Page 58: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/58.jpg)
L’encapsulation
La notion de classe
Certains langages, comme Smalltalk exige que :
les attributs soient private
les methodes soient public
En Java, PHP
C’est juste une convention (une bonne pratique)
H & H: Research and Training 36 / 125
![Page 59: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/59.jpg)
L’encapsulation
La notion de classe
Personne
- nom- prenom- dateNaissance
+ getNom()+ getPrenom()+ calculerAge()
Encapsulation
Seules les trois methodes getNom(), getPrenom() etcalculerAge() sont visibles par les autres objets
Les autres objets ignorent l’existence de l’attributdateNaissance
H & H: Research and Training 37 / 125
![Page 60: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/60.jpg)
L’encapsulation
La notion de classe
Personne
- nom- prenom- dateNaissance
+ getNom()+ getPrenom()+ calculerAge()
Encapsulation
Seules les trois methodes getNom(), getPrenom() etcalculerAge() sont visibles par les autres objets
Les autres objets ignorent l’existence de l’attributdateNaissance
H & H: Research and Training 37 / 125
![Page 61: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/61.jpg)
L’encapsulation
La notion de classe
Les methodes publiques
constituent l’interface de la classe
sont accessibles de l’exterieur
Les methodes privees
sont declenchees par le biais d’autres methodes privees oupubliques
ne sont pas accessibles depuis l’exterieur
ne sont accessible qu’au developpeur de la classe
H & H: Research and Training 38 / 125
![Page 62: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/62.jpg)
L’encapsulation
La notion de classe
Question
Si les attributs sont toujours prives, comment modifier leurs valeurs?
Reponse
Les getters (accesseurs) pour recuperer la valeur(getNomAttribut())
Les setters (mutateurs) pour modifier la valeur(setNomAttribut())
H & H: Research and Training 39 / 125
![Page 63: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/63.jpg)
L’encapsulation
La notion de classe
Question
Si les attributs sont toujours prives, comment modifier leurs valeurs?
Reponse
Les getters (accesseurs) pour recuperer la valeur(getNomAttribut())
Les setters (mutateurs) pour modifier la valeur(setNomAttribut())
H & H: Research and Training 39 / 125
![Page 64: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/64.jpg)
L’encapsulation
La notion de classe
Exercice
Definir les getters/setters de la classe Livre
Livre
- titre- nbrPages- datePublication
?
H & H: Research and Training 40 / 125
![Page 65: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/65.jpg)
L’encapsulation
La notion de classe
Comment creer un objet d’une classe?
en utilisant le constructeur de la classe
en invoquant l’operateur new
Qu’est ce qu’un constructeur?
une methode particuliere et specifique a chaque classe
elle porte le nom de la classe et n’a pas de valeur de retour
H & H: Research and Training 41 / 125
![Page 66: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/66.jpg)
L’encapsulation
La notion de classe
Comment creer un objet d’une classe?
en utilisant le constructeur de la classe
en invoquant l’operateur new
Qu’est ce qu’un constructeur?
une methode particuliere et specifique a chaque classe
elle porte le nom de la classe et n’a pas de valeur de retour
H & H: Research and Training 41 / 125
![Page 67: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/67.jpg)
L’encapsulation
La notion de classe
Exemple
En Java, C++, PHP, C#, TypeScript : new Personne();
En Smalltalk : Personne new
H & H: Research and Training 42 / 125
![Page 68: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/68.jpg)
L’encapsulation
La notion de classe
Recapitulons
Une classe a :
des attributs
des methodes dont
le constructeur
les getters
les setters
H & H: Research and Training 43 / 125
![Page 69: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/69.jpg)
Les relations entre classes
Relations entre classes
Considerons la classe Adresse :
Adresse
rue
villecodePostal
Hypothese
Supposant que chaque personne possede une adresse (objet cree apartir de la classe Adresse)
H & H: Research and Training 44 / 125
![Page 70: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/70.jpg)
Les relations entre classes
Relations entre classes
Considerons la classe Adresse :
Adresse
rue
villecodePostal
Hypothese
Supposant que chaque personne possede une adresse (objet cree apartir de la classe Adresse)
H & H: Research and Training 44 / 125
![Page 71: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/71.jpg)
Les relations entre classes
Relations entre classes
Comment schematiser cela en UML?
En ajoutant dans la classe Personne un attribut adresse de typeAdresse?
Personne
nomprenom
dateNaissanceadresse
Adresse
rue
villecodePostal
H & H: Research and Training 45 / 125
![Page 72: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/72.jpg)
Les relations entre classes
Relations entre classes
Comment schematiser cela en UML?
En ajoutant dans la classe Personne un attribut adresse de typeAdresse?
Personne
nomprenom
dateNaissanceadresse
Adresse
rue
villecodePostal
H & H: Research and Training 45 / 125
![Page 73: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/73.jpg)
Les relations entre classes
Relations entre classes
En reliant les deux classes (sommets d’un graphe) par une arete
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
Relation entre classes = association
H & H: Research and Training 46 / 125
![Page 74: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/74.jpg)
Les relations entre classes
Relations entre classes
En reliant les deux classes (sommets d’un graphe) par une arete
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
Relation entre classes = association
H & H: Research and Training 46 / 125
![Page 75: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/75.jpg)
Les relations entre classes
Relations entre classes
L’association peut etre nommee
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
possede
H & H: Research and Training 47 / 125
![Page 76: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/76.jpg)
Les relations entre classes
Relations entre classes
On peut aussi indiquer le sens de la lecture
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
possede >
H & H: Research and Training 48 / 125
![Page 77: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/77.jpg)
Les relations entre classes
Relations entre classes
On peut aussi ajouter deux noms a l’association : un pour chaquesens de lecture
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
possede >< appartient
H & H: Research and Training 49 / 125
![Page 78: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/78.jpg)
Les relations entre classes La navigabilite
Relations entre classes
Comment faire pour rendre la relation bidirectionnelle?
Pour une personne, on peut connaıtre son adresse
Et pour une adresse, on peut connaıtre son proprietaire
H & H: Research and Training 50 / 125
![Page 79: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/79.jpg)
Les relations entre classes La navigabilite
Relations entre classes
L’association est maintenant bidirectionnelle
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
possede
H & H: Research and Training 51 / 125
![Page 80: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/80.jpg)
Les relations entre classes La navigabilite
Les trois associations suivantes sont unidirectionnelles et equivalentes
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostal
H & H: Research and Training 52 / 125
![Page 81: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/81.jpg)
Les relations entre classes Les roles
Relations entre classes
On peut definir des roles
Personne
nomprenom
dateNaissance
Universite
nom
villeenseigne >
employeurenseignant
Explication
Le role d’une Personne dans une Universite estenseignant
Le role d’une Universite pour une Personne est employeur
H & H: Research and Training 53 / 125
![Page 82: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/82.jpg)
Les relations entre classes Les roles
Relations entre classes
On peut definir des roles
Personne
nomprenom
dateNaissance
Universite
nom
villeenseigne >
employeurenseignant
Explication
Le role d’une Personne dans une Universite estenseignant
Le role d’une Universite pour une Personne est employeur
H & H: Research and Training 53 / 125
![Page 83: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/83.jpg)
Les relations entre classes Les classes liees par plusieurs associations
Relations entre classes
On peut definir une ou plusieurs associations entre deux classes
Employe
nomprenom
dateNaissance
Entreprise
nom
ville
travaille >
peut diriger >
Deux associations possibles entre Employe et Entreprise
Un Employe travaille dans une Entreprise
Un Employe peut diriger une Entreprise
H & H: Research and Training 54 / 125
![Page 84: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/84.jpg)
Les relations entre classes Les classes liees par plusieurs associations
Relations entre classes
On peut definir une ou plusieurs associations entre deux classes
Employe
nomprenom
dateNaissance
Entreprise
nom
ville
travaille >
peut diriger >
Deux associations possibles entre Employe et Entreprise
Un Employe travaille dans une Entreprise
Un Employe peut diriger une Entreprise
H & H: Research and Training 54 / 125
![Page 85: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/85.jpg)
Les relations entre classes L’auto-association
Relations entre classes
Remarque
Une association peut concerner une seule classe
H & H: Research and Training 55 / 125
![Page 86: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/86.jpg)
Les relations entre classes L’auto-association
Relations entre classesExemple d’auto-association
Personne
nomprenom
dateNaissanceest l’enfant >
est le parent >
Comment lire ca?
Une personne est l’enfant d’une autre personne
Une personne est le parent d’une autre personne
H & H: Research and Training 56 / 125
![Page 87: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/87.jpg)
Les relations entre classes L’auto-association
Relations entre classesExemple d’auto-association
Personne
nomprenom
dateNaissanceest l’enfant >
est le parent >
Comment lire ca?
Une personne est l’enfant d’une autre personne
Une personne est le parent d’une autre personne
H & H: Research and Training 56 / 125
![Page 88: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/88.jpg)
Les relations entre classes Les associations n-aires
Relations entre classes
Remarque
Toutes les associations, qu’on a vu, sont binaires
C’est-a-dire, elles relient au plus deux classes
On peut aussi utiliser des associations ternaires voire n-aires
H & H: Research and Training 57 / 125
![Page 89: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/89.jpg)
Les relations entre classes Les associations n-aires
Relations entre classesExemple d’association ternaire
Cours
Salle Etudiant
Toute association non-binaire peut etre transformee en un ensembled’associations binaires.
H & H: Research and Training 58 / 125
![Page 90: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/90.jpg)
Les relations entre classes Les associations n-aires
Relations entre classesExemple d’association ternaire
Cours
Salle Etudiant
Toute association non-binaire peut etre transformee en un ensembled’associations binaires.
H & H: Research and Training 58 / 125
![Page 91: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/91.jpg)
Les associations particulieres
Relations entre classes
Quatre associations particulieres
heritage
agregation
composition
dependance
H & H: Research and Training 59 / 125
![Page 92: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/92.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage, quand ?
Lorsque deux ou plusieurs classes partagent plusieurs attributs(et methodes)
Lorsqu’une Classe1 est une sorte de Classe2
H & H: Research and Training 60 / 125
![Page 93: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/93.jpg)
Les associations particulieres L’heritage
Relations entre classesExemple
Un enseignant a un nom, un prenom, une date de naissance, unsalaire et une date de recrutement
Un etudiant a aussi un nom, un prenom, une date de naissance etun niveau
Semantiquement, enseignant et etudiant sont une sorte depersonne
En plus, les deux partagent plusieurs attributs tels que nom,prenom et date de naissance
Donc, on peut mettre en commun les attributs nom, prenom, datede naissance dans une classe Personne
Les classes Etudiant et Enseignant heriteront de la classePersonne
H & H: Research and Training 61 / 125
![Page 94: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/94.jpg)
Les associations particulieres L’heritage
Relations entre classesExemple
Un enseignant a un nom, un prenom, une date de naissance, unsalaire et une date de recrutement
Un etudiant a aussi un nom, un prenom, une date de naissance etun niveau
Semantiquement, enseignant et etudiant sont une sorte depersonne
En plus, les deux partagent plusieurs attributs tels que nom,prenom et date de naissance
Donc, on peut mettre en commun les attributs nom, prenom, datede naissance dans une classe Personne
Les classes Etudiant et Enseignant heriteront de la classePersonne
H & H: Research and Training 61 / 125
![Page 95: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/95.jpg)
Les associations particulieres L’heritage
Relations entre classesExemple
Un enseignant a un nom, un prenom, une date de naissance, unsalaire et une date de recrutement
Un etudiant a aussi un nom, un prenom, une date de naissance etun niveau
Semantiquement, enseignant et etudiant sont une sorte depersonne
En plus, les deux partagent plusieurs attributs tels que nom,prenom et date de naissance
Donc, on peut mettre en commun les attributs nom, prenom, datede naissance dans une classe Personne
Les classes Etudiant et Enseignant heriteront de la classePersonne
H & H: Research and Training 61 / 125
![Page 96: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/96.jpg)
Les associations particulieres L’heritage
Relations entre classesExemple
Un enseignant a un nom, un prenom, une date de naissance, unsalaire et une date de recrutement
Un etudiant a aussi un nom, un prenom, une date de naissance etun niveau
Semantiquement, enseignant et etudiant sont une sorte depersonne
En plus, les deux partagent plusieurs attributs tels que nom,prenom et date de naissance
Donc, on peut mettre en commun les attributs nom, prenom, datede naissance dans une classe Personne
Les classes Etudiant et Enseignant heriteront de la classePersonne
H & H: Research and Training 61 / 125
![Page 97: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/97.jpg)
Les associations particulieres L’heritage
Relations entre classesExemple
Un enseignant a un nom, un prenom, une date de naissance, unsalaire et une date de recrutement
Un etudiant a aussi un nom, un prenom, une date de naissance etun niveau
Semantiquement, enseignant et etudiant sont une sorte depersonne
En plus, les deux partagent plusieurs attributs tels que nom,prenom et date de naissance
Donc, on peut mettre en commun les attributs nom, prenom, datede naissance dans une classe Personne
Les classes Etudiant et Enseignant heriteront de la classePersonne
H & H: Research and Training 61 / 125
![Page 98: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/98.jpg)
Les associations particulieres L’heritage
Relations entre classesExemple
Un enseignant a un nom, un prenom, une date de naissance, unsalaire et une date de recrutement
Un etudiant a aussi un nom, un prenom, une date de naissance etun niveau
Semantiquement, enseignant et etudiant sont une sorte depersonne
En plus, les deux partagent plusieurs attributs tels que nom,prenom et date de naissance
Donc, on peut mettre en commun les attributs nom, prenom, datede naissance dans une classe Personne
Les classes Etudiant et Enseignant heriteront de la classePersonne
H & H: Research and Training 61 / 125
![Page 99: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/99.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage, pourquoi ?
Pour :
reutiliser le code
eviter la duplication de constituants (attributs, methodes)
Comment faire l’heritage en UML?
H & H: Research and Training 62 / 125
![Page 100: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/100.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage, pourquoi ?
Pour :
reutiliser le code
eviter la duplication de constituants (attributs, methodes)
Comment faire l’heritage en UML?
H & H: Research and Training 62 / 125
![Page 101: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/101.jpg)
Les associations particulieres L’heritage
Relations entre classesEtape 1 : Mettre les proprietes en commun (nom, prenom et dateNaissance)dans une nouvelle classe Personne
Personne
nomprenom
dateNaissance
Enseignant
salaire
dateRecrutement
Etudiant
niveau
H & H: Research and Training 63 / 125
![Page 102: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/102.jpg)
Les associations particulieres L’heritage
Relations entre classesEtape 2 : Relier par une fleche les deux classes Etudiant et Enseignant a laclasse Personne
Personne
nomprenom
dateNaissance
Enseignant
salaire
dateRecrutement
Etudiant
niveau
H & H: Research and Training 64 / 125
![Page 103: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/103.jpg)
Les associations particulieres L’heritage
Relations entre classes
Terminologie
La classe Personne est appelee : classe mere, super classe,classe parente, classe racine...
Les classes Etudiant et Enseignant sont appelees : classesfilles, sous-classes, classes derivees...
On dit aussi que les classes Etudiant et Enseignant heritentde la classe Personne
H & H: Research and Training 65 / 125
![Page 104: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/104.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage, pourquoi ?
Representer l’ordre naturel des classes (hierarchie)
Organiser semantiquement et symboliquement les classes
Specifier ou generaliser une classe
Qu’est ce que la generalisation?ajouter une classe au dessus d’une autre
Qu’est ce que la specialisation?ajouter une classe au dessous d’une autre
H & H: Research and Training 66 / 125
![Page 105: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/105.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage, pourquoi ?
Representer l’ordre naturel des classes (hierarchie)
Organiser semantiquement et symboliquement les classes
Specifier ou generaliser une classe
Qu’est ce que la generalisation?ajouter une classe au dessus d’une autre
Qu’est ce que la specialisation?ajouter une classe au dessous d’une autre
H & H: Research and Training 66 / 125
![Page 106: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/106.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage, pourquoi ?
Representer l’ordre naturel des classes (hierarchie)
Organiser semantiquement et symboliquement les classes
Specifier ou generaliser une classe
Qu’est ce que la generalisation?ajouter une classe au dessus d’une autre
Qu’est ce que la specialisation?ajouter une classe au dessous d’une autre
H & H: Research and Training 66 / 125
![Page 107: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/107.jpg)
Les associations particulieres L’heritage
Relations entre classes
L’heritage : proprietes
Transitivite : si A herite de B et B herite de C, alors A herite de C
Non-reflexif : une classe n’herite pas d’elle meme
Non-symetrique : si A herite de B, alors B n’herite pas de A
Non-cyclique : si A herite de B et B herite de C, alors C ne peutheriter de A
H & H: Research and Training 67 / 125
![Page 108: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/108.jpg)
Les associations particulieres L’heritage
Relations entre classes
Qu’est ce que l’heritage multiple?
le fait d’heriter de plusieurs classes au meme temps
L’heritage multiple, est-il possible?
autorise par certains LOO comme : OCaml, Eiffel...
interdit par certains autres : PHP, Java...
H & H: Research and Training 68 / 125
![Page 109: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/109.jpg)
Les associations particulieres L’heritage
Relations entre classes
Qu’est ce que l’heritage multiple?
le fait d’heriter de plusieurs classes au meme temps
L’heritage multiple, est-il possible?
autorise par certains LOO comme : OCaml, Eiffel...
interdit par certains autres : PHP, Java...
H & H: Research and Training 68 / 125
![Page 110: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/110.jpg)
Les associations particulieres L’heritage
Relations entre classes
Quel probleme peut poser l’heritage multiple?
Un probleme de confusion (nommage) : si une classe A herite de deuxclasses B et C qui ont un attribut ou une methode en commun
Les LOO qui interdisent l’heritage multiple proposent soit
les interfaces (PHP, Java, C#, TypeScript...)
les traits (PHP)
l’heritage virtuel (C++)
H & H: Research and Training 69 / 125
![Page 111: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/111.jpg)
Les associations particulieres L’heritage
Relations entre classes
Quel probleme peut poser l’heritage multiple?
Un probleme de confusion (nommage) : si une classe A herite de deuxclasses B et C qui ont un attribut ou une methode en commun
Les LOO qui interdisent l’heritage multiple proposent soit
les interfaces (PHP, Java, C#, TypeScript...)
les traits (PHP)
l’heritage virtuel (C++)
H & H: Research and Training 69 / 125
![Page 112: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/112.jpg)
Les associations particulieres L’heritage
Relations entre classes
En Java
Une classe mere peut-elle acceder aux attributs de sa classefille?
Une classe mere peut-elle avoir plusieurs classes filles?
Deux classes heritant la meme classe peuvent-elles avoir unattribut qui n’est pas dans la classe mere?
Une classe fille peut-elle avoir comme uniques attributs etmethodes ceux de la classe mere?
H & H: Research and Training 70 / 125
![Page 113: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/113.jpg)
Les associations particulieres L’heritage
Relations entre classes
Remarque
Dans certains LOO comme Java, C#..., toutes les classes heritentd’une classe racine appelee Object
Object offre plusieurs services tels que la conversion d’un objeten chaıne de caracteres, le clonage...
Object : cette classe racine n’existe pas en PHP...
H & H: Research and Training 71 / 125
![Page 114: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/114.jpg)
Les associations particulieres L’heritage
Relations entre classes
Questions
Existera t-il une methode (autre que le constructeur) dans un objet de type Poche?
La classe Broche n’a pas d’attribut propre, pourrait-elle etre implementee?
Pourrait-on ajouter une relation d’heritage entre Poche et Article?
Un livre peut-il etre Broche et de Poche?
H & H: Research and Training 72 / 125
![Page 115: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/115.jpg)
Les associations particulieres L’agregation
Relations entre classes
L’agregation
C’est une association non-symetrique
Modelisee par un losange vide cote agregat
Elle represente une relation de type ensemble/element
H & H: Research and Training 73 / 125
![Page 116: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/116.jpg)
Les associations particulieres L’agregation
Relations entre classes
Exemple d’agregation
Voiture
marque
modelecouleur
Pneu
dimension
poids
H & H: Research and Training 74 / 125
![Page 117: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/117.jpg)
Les associations particulieres La composition
Relations entre classes
La composition
C’est une agregation forte modelisee par un losange noir coteagregat
L’element n’existe pas sans l’agregat (l’element est detruit lorsquel’agregat n’existe plus)
L’element ne peut etre en relation qu’avec un seul agregat
H & H: Research and Training 75 / 125
![Page 118: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/118.jpg)
Les associations particulieres La composition
Relations entre classes
Exemple de composition
Batiment
numeroanneenbrEtages
Appartement
numero
type
H & H: Research and Training 76 / 125
![Page 119: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/119.jpg)
Les associations particulieres La composition
Relations entre classes
Questions
Si une piece est detruite, les chaises associees devraient-elles egalement etre detruites?
Si une piece est detruite, les portes associees devraient-elles egalement etre detruites?
Si un batiment est detruit, les portes associees a ses pieces devraient-elles egalementetre detruites ?
Si un batiment est detruit, les chaises associees a ses pieces devraient-elles egalementetre detruites ?
H & H: Research and Training 77 / 125
![Page 120: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/120.jpg)
Les associations particulieres La dependance
Relations entre classes
La dependance
Une premiere classe utilise une deuxieme sans que cette dernieresoit un membre de la premiere
Moyenne
note1
note2
calcul(Coefficient c)
Coefficient
coef1
coef2
H & H: Research and Training 78 / 125
![Page 121: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/121.jpg)
Les associations particulieres La dependance
Relations entre classes
La dependance
Une premiere classe utilise une deuxieme sans que cette dernieresoit un membre de la premiere
Moyenne
note1
note2
calcul(Coefficient c)
Coefficient
coef1
coef2
H & H: Research and Training 78 / 125
![Page 122: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/122.jpg)
Les associations particulieres La dependance
Relations entre classes
Exercice d’application 1
Les classes suivantes sont liees par une agregation ou unecomposition ?
but et gardien de but
voiture et moteur
foret et arbre
paragraphe et ligne
cinema et salle
salle et chaise
enseignant et cours
H & H: Research and Training 79 / 125
![Page 123: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/123.jpg)
Les associations particulieres La dependance
Relations entre classesExercice d’application 2
Identifier le type de relation (association, heritage, instanciation,composition, agregation) qui relie chacun des couples suivants :
Corps et Cœur
Ford et ConstructeurAutomobile
Tracteur et Vehicule
Rectangle et Carre
Homme et homme
Entier et Nombre
ChaıneDeCaracteres et Caractere
Homme et Humain
H & H: Research and Training 80 / 125
![Page 124: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/124.jpg)
Les associations particulieres La dependance
Association
Agregation
Composition
Pour recapituler
Une association est une relation entre deux classes de meme niveau conceptuel (aucunedes deux n’est plus importante que l’autre) (uses a)
Une agregation est une relation ensemble/element (has a)
Une composition est une relation ensemble/element tel que l’element n’existe plus sil’ensemble est detruit (owns a)
L’heritage est une relation entre deux classes dont une pouvant recuperer toutes lesproprietes de la deuxieme (is a)
Une dependance est une relation entre deux classes dont une propriete de la premiere faitreference la deuxieme (references a)
H & H: Research and Training 81 / 125
![Page 125: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/125.jpg)
La multiplicite
Multiplicite
Definition
permet de definir le nombre minimum et maximum de relation quechaque objet de classe peut avoir avec un (ou plusieurs) objet d’une(ou plusieurs) autre classe
Equivalent en MCD : cardinalite
H & H: Research and Training 82 / 125
![Page 126: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/126.jpg)
La multiplicite
Multiplicite
Definition
permet de definir le nombre minimum et maximum de relation quechaque objet de classe peut avoir avec un (ou plusieurs) objet d’une(ou plusieurs) autre classe
Equivalent en MCD : cardinalite
H & H: Research and Training 82 / 125
![Page 127: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/127.jpg)
La multiplicite
Multiplicite
Six multiplicites possibles avec UML
0..1 : aucune ou au plus un objet
1 : exactement un seul objet [par defaut]
0..* ou * : 0 ou plusieurs objets
1..* : au moins un ou plusieurs objets
x..x ou x : exactement x objets
m..n : Au moins m et au plus n objets
H & H: Research and Training 83 / 125
![Page 128: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/128.jpg)
La multiplicite
Multiplicite
Exemple
Une personne peut avoir zero ou plusieurs adresses
Une adresse appartient a une ou plusieurs personnes
Personne
nomprenom
dateNaissance
Adresse
rue
villecodePostalpossede
0..*1..*
H & H: Research and Training 84 / 125
![Page 129: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/129.jpg)
La multiplicite
Multiplicite
Exercice 1 : definir les multiplicites entre les deux classes suivantes
Une voiture comporte plusieurs pneus
Un pneu appartient a une seule voiture
Voiture Pneu
comporte
H & H: Research and Training 85 / 125
![Page 130: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/130.jpg)
La multiplicite
Multiplicite
Exercice 2 : definir les multiplicites entre les deux classes suivantes
Une voiture a un et un seul moteur
Un moteur appartient a une seule voiture
Voiture Moteur
possede
H & H: Research and Training 86 / 125
![Page 131: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/131.jpg)
La multiplicite
Multiplicite
Exercice 3 : definir les multiplicites entre les deux classes suivantes
Un etudiant est inscrit dans une et une seule universite
Une universite a plusieurs etudiants
Etudiant Universite
etudie
H & H: Research and Training 87 / 125
![Page 132: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/132.jpg)
La multiplicite
Multiplicite
Exercice 4 : definir les multiplicites entre les deux classes suivantes
Un livre est ecrit par un ou plusieurs auteurs
Un auteur a ecrit un ou plusieurs livres
Livre Auteur
est ecrit
H & H: Research and Training 88 / 125
![Page 133: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/133.jpg)
La multiplicite
Multiplicite
Exercice 5 : determiner les multiplicites des associations suivantes
Mari Epouse
est marie
Homme Femme
est marie
Homme Femme
est ou a ete marie
H & H: Research and Training 89 / 125
![Page 134: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/134.jpg)
La multiplicite
Multiplicite
Exercice 6 : determiner les multiplicites des associations suivantes
Personne
nomprenom
dateNaissanceest l’enfant >
est le parent >
H & H: Research and Training 90 / 125
![Page 135: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/135.jpg)
La classe d’association
La classe d’association
Etant donne l’exemple suivant
Article
codeArticleprixUnitairequantiteEnStock
Commande
numeroCommandedateCommande
0..*1..*
QuestionOu peut-on placer la quantiteCommandee?
H & H: Research and Training 91 / 125
![Page 136: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/136.jpg)
La classe d’association
La classe d’association
Etant donne l’exemple suivant
Article
codeArticleprixUnitairequantiteEnStock
Commande
numeroCommandedateCommande
0..*1..*
QuestionOu peut-on placer la quantiteCommandee?
H & H: Research and Training 91 / 125
![Page 137: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/137.jpg)
La classe d’association
La classe d’association
Dans Article?
Article
codeArticleprixUnitairequantiteEnStockquantiteCommandee
Commande
numeroCommandedateCommande
0..*1..*
ImpossibleAinsi, une seule quantiteCommandee pour tous ceux quicommandent le meme article
H & H: Research and Training 92 / 125
![Page 138: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/138.jpg)
La classe d’association
La classe d’association
Dans Article?
Article
codeArticleprixUnitairequantiteEnStockquantiteCommandee
Commande
numeroCommandedateCommande
0..*1..*
ImpossibleAinsi, une seule quantiteCommandee pour tous ceux quicommandent le meme article
H & H: Research and Training 92 / 125
![Page 139: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/139.jpg)
La classe d’association
La classe d’association
Dans Commande?
Article
codeArticleprixUnitairequantiteEnStock
Commande
numeroCommandedateCommandequantiteCommandee
0..*1..*
Impossible aussiAinsi, une seule quantiteCommandee pour tous les articles d’unememe commande
H & H: Research and Training 93 / 125
![Page 140: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/140.jpg)
La classe d’association
La classe d’association
Dans Commande?
Article
codeArticleprixUnitairequantiteEnStock
Commande
numeroCommandedateCommandequantiteCommandee
0..*1..*
Impossible aussiAinsi, une seule quantiteCommandee pour tous les articles d’unememe commande
H & H: Research and Training 93 / 125
![Page 141: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/141.jpg)
La classe d’association
La classe d’association
ConclusionLa quantiteCommandee ne peut etre ni dans Article ni dansCommande
Solution : creer une classe d’association
Article
codeArticleprixUnitairequantiteEnStock
Commande
numeroCommandedateCommande
0..*1..*
ArticleCommande
quantiteCommandee
H & H: Research and Training 94 / 125
![Page 142: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/142.jpg)
La classe d’association
La classe d’association
ConclusionLa quantiteCommandee ne peut etre ni dans Article ni dansCommande
Solution : creer une classe d’association
Article
codeArticleprixUnitairequantiteEnStock
Commande
numeroCommandedateCommande
0..*1..*
ArticleCommande
quantiteCommandee
H & H: Research and Training 94 / 125
![Page 143: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/143.jpg)
Le polymorphisme
Polymorphisme
Definition
En grec : prendre plusieurs formes
En POO : possibilite de definir plusieurs methodes avec le memenom
meme si la meme methode existe dans la classe mere avec lameme signature
meme si une methode avec le nom existe dans la classe mais avecune signature differente
H & H: Research and Training 95 / 125
![Page 144: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/144.jpg)
Le polymorphisme
Polymorphisme
Surcharge (overload)
Definir dans une classe plusieurs methodes portant le meme nomet avec des signatures differentes
Autorisee en Java mais pas par tous les LOO (comme PHP...)
Redefinition
Redefinir une methode, heritee, dans la classe fille
Autorisee par tous les LOO (un des objectifs de l’heritage)
La signature de la methode redefinie doit etre identique a celle dela methode heritee dans la classe mere
H & H: Research and Training 96 / 125
![Page 145: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/145.jpg)
Le polymorphisme
Polymorphisme
Remarque
Lorsqu’une methode est appelee, le compilateur commence parregarder dans la classe de l’objet ou la methode a ete appelee
S’il la retrouve, il l’execute
Sinon il la repasse au niveau superieure (classe mere directe)
H & H: Research and Training 97 / 125
![Page 146: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/146.jpg)
Les classes abstraite et finale
Classes abstraite
Classe abstraite
C’est une classe qu’on ne peut instancierPar exemple, on sait qu’un etre humain est soit homme soitfemme. Donc, la classe Humain peut etre declaree abstraite.
H & H: Research and Training 98 / 125
![Page 147: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/147.jpg)
Les classes abstraite et finale
Classes abstraite
En UML, on ecrit le nom d’une classe abstraite en italique
Humain
Homme Femme
H & H: Research and Training 99 / 125
![Page 148: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/148.jpg)
Les classes abstraite et finale
Classes abstraite
Methode abstraite
C’est une methode indefinie (elle n’est pas implementee)
Si une classe contient une methode abstraite, elle doit etre aussideclaree abstraite
Si une classe herite d’une classe abstraite, alors elle doitimplementer les methodes abstraites de cette derniere
Remarque
Certains LOO, comme le C++, permettent de proposer uneimplementation par defaut pour les methodes abstraites
H & H: Research and Training 100 / 125
![Page 149: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/149.jpg)
Les classes abstraite et finale
Classes finale
Classe finale
C’est une classe qu’on ne peut heriter
Methode finale
C’est une methode que les classes filles ne peuvent redefinir
H & H: Research and Training 101 / 125
![Page 150: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/150.jpg)
Les classes abstraite et finale
Classes abstraite et finale
Exercice
Une classe abstraite doit-elle avoir une ou plusieurs methodesabstraites ?
Une classe finale peut-elle avoir une methode abstraite?
Une classe abstraite peut-elle avoir une methode finale?
Une classe finale doit-elle avoir une methode finale?
Une classe finale peut-elle heriter d’une classe abstraite?
Une classe peut-elle etre finale et abstraite a la fois?
H & H: Research and Training 102 / 125
![Page 151: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/151.jpg)
Les interfaces
Les interfaces
Une interface (un contrat)
Une classe abstraite definie par le mot cle interface et dont toutesles methodes sont abstraites.
En UML, une interface est schematisee ainsi
<< interface >>ISalutation
direBonjour()sayHello()
H & H: Research and Training 103 / 125
![Page 152: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/152.jpg)
Les interfaces
Les interfaces
Une interface (un contrat)
Une classe abstraite definie par le mot cle interface et dont toutesles methodes sont abstraites.
En UML, une interface est schematisee ainsi
<< interface >>ISalutation
direBonjour()sayHello()
H & H: Research and Training 103 / 125
![Page 153: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/153.jpg)
Les interfaces
Les interfaces
En UML, voici comment dire qu’une classe herite d’une interface
<< interface >>ISalutation
direBonjour()sayHello()
Personne
nomprenom
dateNaissance
H & H: Research and Training 104 / 125
![Page 154: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/154.jpg)
Les interfaces
Les interfaces
Remarques
Une classe qui herite d’une interface doit implementer toutes sesmethodes
Une classe peut heriter de plusieurs interfaces
Une interface peut heriter d’autres interfaces
H & H: Research and Training 105 / 125
![Page 155: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/155.jpg)
Les contraintes avec UML
Les contraintes avec UMLEtant donne l’exemple suivant
Personne
nomprenom
dateNaissance
Universite
nom
ville
enseignant
etudiant
Comment lire ca?
Une personne peut avoir le role d’enseignant dans une universite
Une personne peut avoir le role d’etudiant dans une universite
Mais, elle peut aussi avoir les deux roles
H & H: Research and Training 106 / 125
![Page 156: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/156.jpg)
Les contraintes avec UML
Les contraintes avec UMLEtant donne l’exemple suivant
Personne
nomprenom
dateNaissance
Universite
nom
ville
enseignant
etudiant
Comment lire ca?
Une personne peut avoir le role d’enseignant dans une universite
Une personne peut avoir le role d’etudiant dans une universite
Mais, elle peut aussi avoir les deux roles
H & H: Research and Training 106 / 125
![Page 157: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/157.jpg)
Les contraintes avec UML
Les contraintes avec UML
Pour indiquer qu’une personne ne peut avoir les deux roles a lafois, on rajoute une contrainte
Personne
nomprenom
dateNaissance
Universite
nom
ville
enseignant
etudiant
{xor}
xor : eXclusive OR (OU exclusif)
H & H: Research and Training 107 / 125
![Page 158: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/158.jpg)
Les contraintes avec UML
Etant donne l’exemple suivant
Personne
nomprenom
dateNaissance
Entreprise
nom
ville
employe
dirigeant
Comment lire ca?
Une personne peut avoir le role d’employe dans une entreprise
Une personne peut avoir le role de dirigeant dans une entreprise
Mais est-ce qu’une personne qui n’est pas employe dans cetteentreprise peut la diriger?
D’apres ce diagramme de classes : oui
H & H: Research and Training 108 / 125
![Page 159: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/159.jpg)
Les contraintes avec UML
Etant donne l’exemple suivant
Personne
nomprenom
dateNaissance
Entreprise
nom
ville
employe
dirigeant
Comment lire ca?
Une personne peut avoir le role d’employe dans une entreprise
Une personne peut avoir le role de dirigeant dans une entreprise
Mais est-ce qu’une personne qui n’est pas employe dans cetteentreprise peut la diriger?
D’apres ce diagramme de classes : oui
H & H: Research and Training 108 / 125
![Page 160: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/160.jpg)
Les contraintes avec UML
Les contraintes avec UML
Pour indiquer qu’une personne qui dirige une entreprise estforcement un de ses employes, on rajoute la contrainte suivante
Personne
nomprenom
dateNaissance
Entreprise
nom
ville
employe
dirigeant
{sous-ensemble}
H & H: Research and Training 109 / 125
![Page 161: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/161.jpg)
Les contraintes avec UML
Etant donne l’exemple suivant
Client
nomprenom
dateNaissance
Compte
numerosoldevalMaxDecouvert
crediter(int x)
dediter(int x)
1..*1..2
Comment lire ca?
Un client peut avoir 1 ou plusieurs comptes bancaires
Un compte appartient a une ou deux clients
Mais comment dire que le solde de chaque compte peut etrenegatif mais sans depasser la valeur maximale de decouvert ?
H & H: Research and Training 110 / 125
![Page 162: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/162.jpg)
Les contraintes avec UML
Etant donne l’exemple suivant
Client
nomprenom
dateNaissance
Compte
numerosoldevalMaxDecouvert
crediter(int x)
dediter(int x)
1..*1..2
Comment lire ca?
Un client peut avoir 1 ou plusieurs comptes bancaires
Un compte appartient a une ou deux clients
Mais comment dire que le solde de chaque compte peut etrenegatif mais sans depasser la valeur maximale de decouvert ?
H & H: Research and Training 110 / 125
![Page 163: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/163.jpg)
Les contraintes avec UML
Les contraintes avec UML
Il faut ajouter une contrainte
Client
nomprenom
dateNaissance
Compte
numerosoldevalMaxDecouvert
crediter(int x)
dediter(int x)
{(Compte.solde + Compte.valMaxDecouvert)>=0} 1..*1..2
Remarque
Si on ajoute le nom d’association + les roles, l’association deviendratrop dense et presque illisible.
H & H: Research and Training 111 / 125
![Page 164: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/164.jpg)
Les contraintes avec UML
Les contraintes avec UMLSolution : utiliser OCL
Object Constraint Language
Initialement, un projet d’IBM
Appartenant a UML depuis UML 1.1
Langage formel d’expression
Permettant de definir des contraintes sur les differents diagrammes d’UML, et enparticulier le diagramme de classes
Base sur la theorie des ensembles et la logique des predicats
Permettant principalement d’exprimer 2 types de contraintes sur l’etat d’un objetou d’un ensemble d’objets
Des invariants qui doivent etre respectes en permanence
Des pre et post-conditions pour une operation
H & H: Research and Training 112 / 125
![Page 165: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/165.jpg)
Les contraintes avec UML
Les contraintes avec UML
Deux versions d’OCL
OCL 1 : integre dans UML 1.1 de l’OMG
OCL 2 : integre dans UML 2.0 et pouvant etre generalise surd’autres modeles que ceux d’UML
H & H: Research and Training 113 / 125
![Page 166: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/166.jpg)
Les contraintes avec UML
Les contraintes avec UMLAvec OCL, les contraintes peuvent etre definies un peu loin de l’association
Dans ce cas, il faut
preciser le contexte
definir la contrainte
context Compteinv : solde + valMaxDecouvert >= 0
Explication
context : indique l’element concerne par la contrainte
inv (pour invariant) : exprime une contrainte sur un element qui doit etrerespectee en permanence.
H & H: Research and Training 114 / 125
![Page 167: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/167.jpg)
Les contraintes avec UML
Les contraintes avec UMLAvec OCL, les contraintes peuvent etre definies un peu loin de l’association
Dans ce cas, il faut
preciser le contexte
definir la contrainte
context Compteinv : solde + valMaxDecouvert >= 0
Explication
context : indique l’element concerne par la contrainte
inv (pour invariant) : exprime une contrainte sur un element qui doit etrerespectee en permanence.
H & H: Research and Training 114 / 125
![Page 168: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/168.jpg)
Les contraintes avec UML
Les contraintes avec UMLOn peut definir plusieurs contraintes
context Compteinv : solde + valMaxDecouvert >= 0
context Compte::debiter(int somme )pre : somme > 0 and solde + valMaxDecouvert >= sommepost : solde = solde@pre - somme
Explication
context : indique l’element concerne par la contrainte (ici la methodedebiter() de la classe Compte)
pre : exprime une contrainte sur un element qui doit etre respectee pourque l’appel de la methode soit valide
post : exprime une contrainte sur un element qui doit etre respecteeapres l’appel de la methode
H & H: Research and Training 115 / 125
![Page 169: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/169.jpg)
Les contraintes avec UML
Les contraintes avec UMLOn peut definir plusieurs contraintes
context Compteinv : solde + valMaxDecouvert >= 0
context Compte::debiter(int somme )pre : somme > 0 and solde + valMaxDecouvert >= sommepost : solde = solde@pre - somme
Explication
context : indique l’element concerne par la contrainte (ici la methodedebiter() de la classe Compte)
pre : exprime une contrainte sur un element qui doit etre respectee pourque l’appel de la methode soit valide
post : exprime une contrainte sur un element qui doit etre respecteeapres l’appel de la methode
H & H: Research and Training 115 / 125
![Page 170: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/170.jpg)
Les contraintes avec UML
Les contraintes avec UML
4 contraintes possibles pour les collections
Set : ensemble mathematique sans doublons et sans ordre
Ordered : ensemble mathematique sans doublons et avec ordre
Bag : ensemble mathematique avec possibilite de doublons etsans ordre
Sequence : ensemble mathematique avec possibilite de doublonset avec ordre
H & H: Research and Training 116 / 125
![Page 171: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/171.jpg)
Les contraintes avec UML
Exemple 1 : un cours est compose d’une sequence ordonnee(sans doublons) de seances
Seance Cours
{ordered}1..* 1
Exemple 2 : un fichierPPT contient une suite ordonnee (avecpossibilite de doublons) de transparents
Transparent FichierPPT
{sequence} appartient
* 1
H & H: Research and Training 117 / 125
![Page 172: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/172.jpg)
Les contraintes avec UML
Exemple 1 : un cours est compose d’une sequence ordonnee(sans doublons) de seances
Seance Cours
{ordered}1..* 1
Exemple 2 : un fichierPPT contient une suite ordonnee (avecpossibilite de doublons) de transparents
Transparent FichierPPT
{sequence} appartient
* 1
H & H: Research and Training 117 / 125
![Page 173: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/173.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etapes
1 Preparer un dictionnaire de donnees
2 Identifier les classes et conserver les classes pertinentes
3 Identifier les associations et conserver les associationspertinentes
4 Identifier les attributs
5 Verifier s’il est possible de simplifier en utilisant l’heritage
6 Iterer et affiner le diagramme
H & H: Research and Training 118 / 125
![Page 174: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/174.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etape 1 : Preparer un dictionnaire de donnees
Lire le texte
Extraire tout nom ou verbe pouvant participer a notre systemed’information
Garder les synonymes tant qu’on n’a pas fini la lecture du texte
Verifier que la liste ne contient pas de doublons
H & H: Research and Training 119 / 125
![Page 175: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/175.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etape 2 : Identifier les classes et conserver les classes pertinentes
Eviter d’etre trop selectif
Ne pas chercher l’heritage a cette etape
Eliminer les classes redondantes, les synonymes, les classesvagues ou les classes sans lien avec le contexte
H & H: Research and Training 120 / 125
![Page 176: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/176.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etape 3 : Identifier les associations et conserver les associationspertinentes
Justifier l’existence d’un cycle car c’est souvent redondant
Decomposer les associations n-aires en associations binaires
Verifier si les associations definies par rapport aux classes fillespeuvent etre remontees a la classe mere
H & H: Research and Training 121 / 125
![Page 177: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/177.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etape 4 : Identifier les attributs
Ne pas confondre attribut et classe
Ne pas pousser la recherche des attributs a l’extreme
Supprimer les synonymes
Faire attention aux attributs de classe association
Supprimer les attributs derives
Source : UML 2 De l’apprentissage a la pratique de Laurent Audibert
Les attributs derives peuvent etre calcules a partir d’autres attributs et de formules decalcul. Lors de la conception, un attribut derive peut etre utilise comme marqueurjusqu’a ce que vous puissiez determiner les regles a lui appliquer.Les attributs derives sont symbolises par l’ajout d’un � / � devant leur nom.
H & H: Research and Training 122 / 125
![Page 178: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/178.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etape 5 : Verifier s’il est possible de simplifier en utilisant l’heritage
Verifier si certaines classes partagent certains attributs et/oumethodes
Eviter les raffinements excessifs
H & H: Research and Training 123 / 125
![Page 179: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/179.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Etape 6 : Iterer et affiner le diagramme
Ne pas chercher un diagramme complet a la premiere passe
Faire des iterations continuelles
Verifier le diagramme de classe apres avoir fini les diagrammesd’etats-transitions et de sequences
Revenir sur le diagramme de classe apres avoir fini lesdiagrammes d’etats-transitions et de sequences
Garder la possibilite de corriger des eventuelles anomalies dudiagramme de classe pendant la phase de developpement
H & H: Research and Training 124 / 125
![Page 180: UML : concept objet et diagramme de classes · 2020-01-05 · Plan 7 Les associations particulieres` L’heritage´ L’agregation´ La composition La dependance´ 8 La multiplicite´](https://reader033.vdocuments.us/reader033/viewer/2022041905/5e632f20ba16e0417f6f10ac/html5/thumbnails/180.jpg)
Comment construire un diagramme de classe?
Comment construire un diagramme de classe?
Citation 1 : Jan van de Sneptscheut
La difference entre la theorie et la pratique, c’est qu’en theorie, il n’y apas de difference entre la theorie et la pratique, mais qu’en pratique, ily en a une.
Citation 2 : Albert EinsteinLa theorie, c’est quand on sait tout et que rien ne fonctionne. Lapratique, c’est quand tout fonctionne et que personne ne sait pourquoi.Ici, nous avons reuni theorie et pratique : Rien ne fonctionne... etpersonne ne sait pourquoi !
H & H: Research and Training 125 / 125