Académique Documents
Professionnel Documents
Culture Documents
Prof : Idrissi
1/35
Prof : Idrissi
Une premire raison est dapporter une solution pour rpondre la complexit
croissante des techniques informatiques (bureautique, CAO, robotique,
imagerie mdicale, cartographie ..).
La deuxime ide est de diminuer le foss smantique entre le monde rel et
sa reprsentation informatique.
Les gens voquent leur environnement en terme d'objets. Si lon parle de
quelque chose en lui attribuant des proprits, ou si cette chose doit tre
manipule, alors il faut la reprsenter sous forme dobjet.
Foss smantique
habite
conduit
Avec les objets, on se focalise sur la chose, sur ce qui doit tre manipul. De
ce fait, concevoir par objets, cest dabord rpondre la question : De quoi
parle-t-on ? avant de rpondre la question : Que veut-on faire ? .
2/35
Prof :Idrissi
Paradigme classique
Traitement 1
Donnes
Traitement 2
Sous-programme
SQL
SGBD
Programme 2
Programme 3
3/35
Prof :Idrissi
Paradigme1 objet
Paradigme : du gr. paradeigma exemple . Modle thorique de pense qui oriente la recherche et la rflexion
scientifiques.
4/35
Prof :Idrissi
Les origines
1967:
SIMULA
Cest le premier vritable langage objet. Ses auteurs cherchaient avant
tout disposer dun outil permettant de simuler des systmes physiques
ou des organisations humaines. N Oslo en Norvge, il fut conu
partir d'ALGOL. Il en reprit la syntaxe et le fonctionnement gnral. Les
adjonctions portrent sur la dfinition de classes et lapparition d'une
entit informatique regroupant une structure de donnes et l'ensemble
des procdures pour la manipuler : l'objet.
1972-1976:
SMALLTALK
En 1972, au centre de recherche de XEROX Palo Alto, Adle
GOLDBERG et un prodige de l'informatique: Alan KAY se donnent pour
objectif de raliser un ordinateur rellement convivial avec une nouvelle
interface homme-machine.
Ils dfinissent linterface graphique que nous connaissons aujourdhui:
souris, cran bit-map haute rsolution.
Tout cet environnement se devait d'tre facilement programmable. Ils
dcident donc de dvelopper un langage qui reprenne l'essentiel des
caractristiques de SIMULA en ajoutant le concept denvoi de message:
SMALLTALK-72.
Le langage senrichit avec le concept dhritage : SMALLTALK-76.
1980: Alan KAY rejoint le groupe APPLE.
1984:
sortie de LISA, puis du MACINTOSH, premier succs de linterface
graphique.
En parallle : travaux de lcole scandinave . Langage C (1972).
1983:
C++
Bjarne STROUSTRUP avait appris programmer en SIMULA.
Lorsqu'il rejoint les laboratoires Bell, berceau du langage C, il se mit en
devoir d'ajouter une couche objet au-dessus du C.
1989:
EIFFEL
C'est un langage franais conu par Bertrand MEYER, mais il fut d'abord
commercialis en Californie.
Prof :Idrissi
ALGOL 1960
Ecole scandinave
Notion de programmation structure
LISP 1956-58
Intelligence artificielle
Manipule des objets
SIMULA 1967
PASCAL
SMALLTALK 76
C
OBJECT
PASCAL
ADA
EIFFEL
1989
OBJECTIVE C
C++
JAVA
CLOS
6/35
Prof :Idrissi
Concepts de base
Ces principes sont simples, mais combins ils permettent une trs grande
puissance dexpression.
7/35
Prof :Idrissi
L'objet
Le monde dans lequel nous vivons est constitu dobjets matriels de toutes
sortes dont la taille est trs variable (du grain de sable aux toiles). Notre
perception intuitive de ce qui constitue un objet est donc fonde sur le concept
de masse.
Par extension, il est tout fait possible de dfinir dautres objets sans masse
mais visibles, comme des fentres sur un cran, des figures gomtriques,
mais aussi des concepts comme les comptes en banque, les quations
mathmatiques.
Attributs
Oprations
8/35
Prof :Idrissi
9/35
Prof :Idrissi
Exemples d'objets
uneVoiture
Un objet voiture
Attributs :
couleur = bleue
poids = 979 kg
puissance = 12 CV
capacit carburant = 50 l
conducteur = Dupont
vitesse instantane = 50 km/h
Oprations :
dmarrer ()
dplacer ()
mettreEssence ()
Un objet fentre
Un objet compte
unCompte
uneFentre
Attributs :
dbit
crdit
titulaire
Attributs :
point-sup-gauche
point-inf-droit
texture
en-tte
Oprations :
dposer (somme)
retirer (somme)
avoirSolde ()
Oprations :
activer ()
fermer ()
rduire (coeff)
agrandir (coeff)
dplacer (lieu)
10/35
Prof :Idrissi
Classe
Exemple de classes
11/35
Prof :Idrissi
Instance
Classe
Instances ...
12/35
Prof :Idrissi
Identification de l'objet
Personne
Personne
ID personne: ID
nom: chane
ge: entier
nom: chane
ge: entier
Incorrect
Correct
13/35
Prof :Idrissi
Etat de l'objet
Cest la valeur des attributs considrs dans leur ensemble, qui reflte l'tat
dans lequel se trouve l'objet un instant donn.
Exemples
La voiture :
uneVoiture
uneVoiture
Bleue
0 km/h
Bleue
50 km/h
l'arrt
Le compte :
en mouvement
unCompte
unCompte
5000
6500
3200
3000
crditeur
dbiteur
Ltat dun objet spcifie galement le contexte dans lequel les vnements
sont reus.
Les ractions de lobjet sen trouveront parfois affectes.
14/35
Prof :Idrissi
Envoi de messages
Dupont
RenseigneAge
18
RenseigneAge
Dupont
Slecteur
15/35
Paramtres ...
Prof :Idrissi
Mthodes
Classe Personne
renseigneAge
connatreAge
renseigneNom
bonAnniversaire
connatreNom
Slecteurs et mthodes :
renseigneAge : nbAnne
age := nbAnnes
connatreAge
^ age
Remarque (SMALLTALK):
renseigneNom : unNom
nom := unNom
connatreNom
^ nom
bonAnniversaire
age := age + 1
16/35
Prof :Idrissi
Comportement de l'objet
Mthodes prives
17/35
Prof :Idrissi
Encapsulation
Dmarrer
kilomtrage
niveau dessence
Se dplacer
Mettre de lessence
Dautre part, les oprations peuvent apporter une valeur ajoute et non pas se
contenter dune simple restitution daccs aux attributs encapsuls.
exemple : on ne peut pas faire baisser le niveau dessence sans se dplacer,
ce qui modifie aussi le kilomtrage.
18/35
Prof :Idrissi
Encapsulation - avantages
19/35
Prof :Idrissi
Classification
C'est dans l'invention de la hirarchie de classes que rside le vritable gnie
de la technologie oriente objet. Il se trouve que la connaissance humaine est
justement structure de cette manire.
Les hirarchies de classes ou classifications permettent de grer la
complexit en ordonnant les objets au sein d'arborescences de classes
d'abstraction croissante.
Les classes abstraites constituent lessence dune application.
Cest l que lessentiel se passe.
La hirarchisation des classes correspond une classification des
essences .
Exemple: larbre de Porphyre (philosophe du 3me sicle aprs J.C.)
Substance
Substance incorporelle
Corps
Corps anim
Corps inerte
Esprit
Pierre
Animal
Animal rationnel
Etre humain
Ange
20/35
Prof :Idrissi
21/35
Prof :Idrissi
Gnralisation
Classes abstraites
Vhicule
Vhicule terrestre
Voiture
Vhicule arien
Camion
Avion
Hlicoptre
La gnralisation est une dmarche assez difficile car elle demande une bonne
capacit d'abstraction.
La mise au point d'une hirarchie optimale est dlicate et itrative.
Les arbres de classes sont construit en partant des feuilles qui appartiennent
au monde rel alors que les niveaux suprieurs sont des abstractions
construites pour ordonner et comprendre.
22/35
Prof :Idrissi
Spcialisation
Transmission
Transmission continue
Variateur
Transmission discrte
Drailleur
Bote de vitesse
23/35
Prof :Idrissi
Gnralisation et spcialisation
Vhicule
N plaque
Poids total
GENERALISATION
Camion
Charge
Voiture
portes
24/35
SPECIALISATION
Bus
capacit
Prof :Idrissi
Classes abstraites
Abstraction
Classe abstraite : qui ne peut pas avoir dinstance
Classe concrte : qui peut avoir des instances
Positionnement
Classe terminale: qui ne possde pas de sous-classe
Classe non-terminale: qui possde des sous-classes
Une bonne rgle pour avoir des classifications quilibres et extensibles:
Faire en sorte que seules les classes terminales soient
concrtes,
et que les classes non-terminales soient abstraites.
mauvais
Compte
Compte
devise
bon
Compte
Compte
devise
25/35
Compte
courant
Prof :Idrissi
Hritage
Compte
crdit
dbit
crdit
dbit
dposer
retirer
avoirSolde
dposer
retirer
avoirSolde
Compte d'pargne
Compte d'pargne
crdit
dbit
Taux
Taux
calculerIntrts
dposer
retirer
avoirSolde
calculerIntrts
26/35
Prof :Idrissi
Hritage remarques
Daprs J. Ferber :
27/35
Prof :Idrissi
Lorsqu'un objet reoit un message lui demandant d'excuter une mthode qui
n'est pas dfinie dans sa propre classe, il remonte automatiquement dans la
hirarchie des classes pour retrouver cette mthode.
Si l'objet finit par trouver la mthode, il l'excute. Si, au contraire, il atteint
bredouille le sommet de la hirarchie, il rpond par un message d'erreur :
"j'aimerais bien vous aider, mais je ne comprend pas ce que vous voulez".
Je l'ai !
Ni l
"Imprimer A"
28/35
Prof :Idrissi
Surcharge
Finsi
En langage objet, chaque type de forme est reprsent par une classe
diffrente.
Grce une technique que lon appelle la surcharge, on utilise le mme nom
pour les mthodes permettant de dessiner, lintrieur de chacune des
classes.
Le fait de demander une forme de sauto-dessiner devient tonnamment
simple :
message: [x ,dessineToi]
dessineToi
dessineToi
dessineToi
Cercle
Rectangle
29/35
dessineToi
Triangle
Prof :Idrissi
30/35
Prof :Idrissi
Polymorphisme
Cercle
DessineToi ( )
Rectangle
Triangle
Octogone
DessineToi ( )
DessineToi ( )
DessineToi ( )
31/35
Prof :Idrissi
Redfinition de mthode
Figure
Tourner ( )
Cercle
Rectangle
Triangle
Dessiner ( )
Tourner ( )
Dessiner ( )
Dessiner ( )
32/35
Prof :Idrissi
Masquage de mthode
Vhicule
Rviser
Voiture
Camion
Bus
Avion
La rvision dun avion nayant rien de semblable celle des autres vhicules, la
manire de rsoudre ce problme consiste redfinir Rviser pour la sousclasse avion afin de tenir compte de ce cas particulier.
Vhicule
Rviser
Voiture
Camion
Bus
Avion
Rviser
33/35
Prof :Idrissi
Association
Au niveau objet,
certains attributs reprsentent des liens (ou relations) avec d'autres objets.
Ces liens durent au cours du temps et impliquent que deux objets connaissent
chacun l'existence de l'autre.
Dupont : personne
:Voiture
couleur
conducteur
vhicules
Au niveau classe,
l'association exprime une connexion smantique bidirectionnelle entre
classes.
Voiture
Personne
conducteur >
< propritaire
Mta-modle :
classes.
34/35
Prof :Idrissi
Agrgation
AGREGATION
COMPOSITION
Vhicule
"partie de"
Chssis
Numro
N plaque
Poids total
Moteur
puissance
cylindre
"compos de"
Roue
diamtre
Remarque:
On dit agrgation quand on exprime cette relation du composant (la partie) vers
le compos (l'ensemble).
On dit composition quand on exprime cette relation du compos vers le
composant. (ce qui traduit le fait qu'un objet est compos de plusieurs autres).
35/35
Prof :Idrissi