poo
Post on 18-Nov-2015
3 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 1
Chapitre 3Principes de base de lapproche objet
PRPAR PAR : RAOUDHA CHEBIL
Plan
Motivations
Introduction de nouveaux principes : Rification, abstraction, encapsulation
Approche objet
Terminologie et dfinitions
2
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 2
Pourquoi utiliser les objets ?3
Programmation classique
Un programme est conu comme un ensemble de modulesfonctionnels (procdures ou fonctions) qui manipulent des donnes.
Sparation complte entre code et donnes.
Communication entre modules fonctionnels :o par passage de paramtreso par variables globales
Libre accs aux donnes par nimporte quel module.
Programmation classique4
Donnes
DonnesDonnes
Donnes
Code
CodeCode
Donnes
Code
Rappels : Difficult de rutiliser du code dj crit et test. Maintenance coteuse (Instabilit,scurit, cot)
EtatCentralis
Donnes
Code
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 3
Programmation Oriente Objet5
Lapproche objet permet de :
Amliorer la productivit des concepteurs / dveloppeurs et
Rduire le cot des applications.
Cot de production dune application informatique en fonction de sa taille et de ses fonctionnalits
Investissement (Homme-mois)
Taille ou fonctionnalit
Approche Classique
Approche Objet
Investissement
initial
Intrt des objets6
Extensibilit (maintenance) : les objets restent plus stables dans le temps
Gestion dela paie
Salaire
Employ
Nb dheures de travail
Rutilisabilit : il faut pouvoir rutiliser des structures de donnes entires, non pas seulement les oprations
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 4
Plan
Motivations
Introduction de nouveaux principes : Rification, abstraction, encapsulation
Approche objet
Terminologie et Dfinitions
7
Principe de rification8
Rification = matrialiser un concept par un objet
Un concept abstrait peut tre rifi o Lvnement 10h45 une carte bleue t introduite
Une relation entre deux objets peut tre rifie o Ali possde la voiture immatricule 875 TU 129 est rifi
dans le monde rel par une carte grise
Rifier un concept permet de le manipuler concrtement
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 5
Principe dabstraction9
Une abstraction fait ressortir les caractristiques dune structure qui ladistinguent de tous les autres types de structures du domaine.
Elle procure donc des frontires conceptuelles rigoureusement dfiniespar rapport au point de vue de lobservateur.
Marque: AustinCouleur: BleueAcclration: Tourner volant => voiture tourneFreiner => voiture sarrte
Marque: VolkswagenCouleur: BlancheAcclration: Tourner volant => voiture tourneFreiner => voiture sarrte
Principe dencapsulation10
Dans les programmes tels quon les a crits (et dcrits) jusqu prsent, les notions de type de donneset de fonctions sont spares :
O : - les Typei sont des types de donnes (int, char, , structures)- les fonctionsj sont des fonctions utilisant ces types, par exemple :Type2 fonction1( Type1 x, Type2 y)
Type1Type2
TypeN
fonction1fonction2
fonctionM
Types de donnes
Aspect statique
Fonctions
Aspect dynamique
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 6
11
Le principe dencapsulation consiste regrouper, dans un mme
lment informatique, les aspects statique et dynamique (c.a.d. les
donnes et les fonctions) spcifiques une entit.
Cet lment informatique est appel : objet
Les [structures de] donnes dfinies dans
un objet sont appeles les attributs de lobjet;
Les fonctions [de manipulation] dfinies dans
un objet sont appeles lesmthodesde lobjet.
On a donc la relation fondamentale :OBJET = attributs + mthodes
data1data2
.
fonction1fonction2
.
Principe dencapsulation
12
En plus du regroupement des lments statique et dynamique [dune entit],
lencapsulation permet de dfinirdeux niveaux de perception:
Le niveau externe: perception de lobjet depuis lextrieur
Le niveau interne : perception de lobjet depuis lintrieur
Elments privs
Dfinition des mthodes
Corps
Interface
Prototype des mthodes
Principe dencapsulation
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 7
Principe dencapsulation
Le niveauexterne, correspond la partie visible de lobjet :
Il est constitu des spcifications des lments [de lobjet] visibles delextrieur (appel: lments publics ), savoir les prototypes et lesdclarations de ses mthodes.
Ce niveau reprsente donc linterface de lobjet avec lextrieur.
Le niveau interne correspond limplmentation de lobjet :
Il est constitu des lments de lobjet visibles uniquement de lintrieur de cetobjet (appels lments privs ).
Ce niveau reprsente donc le corps de lobjet.
13
14
2 rles :
Utilisateur : manipule les lments de labstraction qui constituent linterface
Implanteur :ralise ce qui est encapsul
Principe dencapsulation
Interface
Reprsentation
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 8
Plan
Motivations
Introduction de nouveaux principes : Rification, abstraction, encapsulation
Approche objet
Terminologie et Dfinitions
15
16
Reprsenter un systme comme un ensembledobjets autonomesmaisinteragissant via des envois de messages.
Chaque objet : reprsente un lment ou un concept de la vie relle ; a une identit unique et invariante ; a un tat caractris par la valeur de ses attributs ; propose des services sous la forme de mthodes ; excute un service lorsquil reoit un message.
Approche Objet
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 9
Approche objet17
Les langages orients objet sont fonds sur la connaissance dune seulecatgorie dentit informatique :lobjet .
Dans lapproche objet, ce sont les donnes qui deviennent prpondrantes.
Dans cette approche, on se pose dabord la question : "de quoi parle-t-on ?" Et non pas la question :"que veut-on faire ?", comme dans la programmation classique.
Approche objet18
Le monde est compos dentits qui collaborent
moteur
direction
roueroue
Bote devitesse
chauffeur
Freins
Lapproche objet consiste rsoudre un problme en termes dobjets qui collaborent.
Ces objets sont des abstractions des objets rels
Feu
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 10
Comment dcrire les objets?19
Type Abstrait de Donnes(TAD)
Un ensemble d'objets caractriss par les mmes oprations.
Exemple : Il en est ainsi pour un objetpile qu'on peut manipuler par desoprations commeempiler, dpiler, sommetetc...
Objet concret : Une pile20
xdernier
dernier = dernier +1TAB[dernier] = x;
xdernier
dernier = dernier -1TAB[dernier] = x;
xP
dbut
new(P)P^.suiv = dbut; P^.val=X;dbut = P
N+1
0
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 11
21
Un programme qui ncessite l'usage d'une pile n'a besoin de connatre que les oprations mentionnes et qu'on appelle interface.
Il n'a en effet pas besoin de savoir qu'une pile est un tableau (et encoremoins d'y accder directement), ni mme de connatre le code desoprations, lequel peut varier selon la reprsentation.
Ce principe place le programmeur un haut niveau de conception.
Objet concret : Une pile
Type abstrait Spcification algbrique 22
Type : Pile
Fonctions : (oprations)o nouvelle : Pileo empiler : Pile,int Pileo depiler : Pile Pileo sommet : Pile into vide : Pile Bool
Pr-conditions P Pile
o depiler(P) vide(P) vraio sommet(P) vide(P) vrai
Axiomes
P Pile, x int,
o vide(nouvelle()) = vrai
o vide(empiler(P,x)) = faux
o sommet(empiler(P,x)) = x
o depiler(empiler(P,x)) = P
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 12
Afin de dcrire une pile borne, nous navons pas besoin de repartirde zro :
La spcification prcdente peut tre modifie afin dobtenir une pileborne de taille maximale capacite.
Cest le principe de lextension.
Relations entre objets 23
Un compteur cyclique est un compteur born qui repart 0 quandil atteint sa borne suprieure.
Le compteur kilomtrique dune voiture utilise un compteurcyclique.
Une horloge utilise aussi un compteur cyclique pour grer lesminutes, les secondes et les heures.
Donc la description du type abstrait Compteur Cyclique estutilise dans la description dune horloge ou dun compteurkilomtrique.
Cest le principe dedlgation.
24
Relations entre objets
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 13
25
Association
TypesCompte
Fonctions : (oprations) nouveau : Personne, Montant Compte titulaire : Compte Personne solde : Compte montant dbiter : Compte, Montant Compte crditer : Compte, Montant Compte
Prconditions : P Personne, C Compte , X Montant
Nouveau(P,X) Valeur(X) solde min.Dbiter(C,X) Valeur(X) Valeur(solde(C))
Axiomes : P Personne, C Compte , X Montant
solde(nouveau(P,X)) = X
titulaire(nouveau(P,X)) = P
dbiter(C,X)) =
Relations entre objets
26
La gnricit
Types
Pile[X]
Fonctions : (oprations)nouvelle : X Pile[X]
Empiler : Pile[X],X Pile[X]
Depiler : Pile[X] Pile[X]
Sommet : Pile[X] X
Vide : Pile[X] Bool
Pr-conditions P Pile[X] depiler(P) vide(P) vrai sommet(P) vide(P) vrai
Axiomes : P Pile[X], x X, vide(nouvelle(X)) = vrai vide(empiler(P,x)) = faux sommet(empiler(P,x)) = x depiler(empiler(P,x)) = P
Relations entre objets
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 14
Type Abstrait27
Trois formes de fonctions dans la spcification dun type abstrait T :
Constructeur : qcqchoseT(qcqchose) Exemple : nouvelle
Accesseur: T(qcqchose) x qcqchoseqcqchoseExemple : sommet, Est-vide
Modifieur : T(qcqchose) x qcqchose T(qcqchose)Exemple : empiler, depliler
Comment utiliser ces objets pour structurer des programmes ?
28
structures dedonnes (attributs)corps
des mthodes
interface
Objet
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 15
Objet concret : une pile29
Encapsulation des Donnes et des Traitements dans un Objet
30
Un TAD, encapsuleles oprations et cache la structure sous-jacente d'unobjet.
Ainsi, le programmeur consacrera ses efforts la solution d'un problmesans se proccuper des dtails inutiles.
Il s'intressera ce qu'un objet peut fournir commeserviceet ignoreracommentces services sontralissde faon concrte.
Si p est une pile, on crirap.empiler(n), au lieu de :
s = s+1; t[s]=n;
Comment utiliser ces objets pour structurer des programmes ?
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 16
Comment utiliser ces objets pour structurer des programmes ()
31
attributs.
mthodes.
attributs.
mthodes.
attributs.
mthodes.
message
Intrt
32
Lintrt de lasparation entre niveau interne et externeest de donner uncadre plus rigoureux aux objets :
Les objets ne peuvent tre utiliss quau travers de leur interface (niveauexterne)
De ce fait les ventuelles modifications apportes leur structure internerestent invisibles lextrieur.
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 17
Plan 33
Motivations
Introduction de nouveaux principes : Rification, abstraction, encapsulation
Approche objet
Terminologie et Dfinitions
Dfinition dune classe34
o Une classe est une construction syntaxiquenommequi dcrit uncomportementet desattributscommuns.
o Une classe est une structure de donnes qui dfinit des donnes et desfonctions.
classe PileMthodes :empiler(int x)depiler()Sommet()...Attributs :int T[Max]int indice
classe Voiture Mthodes :acclrerfreinertournerReculerAttributs :Immatricule couleur Nbre de roues puissance vitesse
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 18
Une classe regroupe les caractristiques (les primitives = attributs etmthodes) communes des objets.
Elle permet de crer des objets possdant desproprits communes.
Mthodes Modifieurs : ont un effet sur lobjet mais ne produisent pas de
rsultats. Accesseurs: ont un rsultat, gnralement pas deffet sur lobjet.
Une classe reprsente lastructure, le moulecommun un ensembledobjets
Une classe est uneabstractiondobjets.
Dfinition dune classe
35
Dfinition dune classe36
Les donnes et les mthodes sont regroupes dans une classe. Les mthodes sont publiques, les donnes prives.
classe Pile{Mthodes :empiler(int x){ T[++indice] = x; }depiler(){ indice--; }...Attributs :int T[Max];int indice; }
Les mthodes publiquesdcrivent le comportementaccessible.
Les champs privs dcriventl'tat inaccessible.
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 19
Un objet est une instance d'une classe
Dfinition dun objet37
Un objet est une entit autonome modlisant laspectstatiqueet laspectdynamiquedune partie du monde rel.
Un objet peut reprsenter une ralit physique (une voiture, un tudiant) ou virtuelle ( scurit sociale, compte bancaire).
Chaque objet possdeune identit ,desattributsetdes mthodes.
Dfinition dun objet38
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 20
Lidentit dun objet est un identifiant permettant de le distinguer desautres objets.
Les attributs ( donnes membres )sont des donnes caractrisant ltatde lobjet.
Les mthodes ( fonctions membres )sont des oprations dfinissant lecomportementde lobjet. Elles lui permettent dagir sur ces attributs etde ragir aux sollicitations extrieures.
Objet = tat + Comportement + Identit
39
Dfinition dun objet
Peugeot 106 de couleur grise immatricule 5039 TU 90:Attributs : couleur = grise, marque = Peugeot, n im= 5039 TU 90 Mthodes: avancer ( ), reculer ( )identit: XRE-HGFRT-KIUT-
Renault espace de couleur verte immatricule 985 TU 97:Attributs : couleur = verte, marque = Renault, n im = 985 TU 97Mthodes: avancer ( ), reculer ( )identit: HYU-XJKMP-PLTB-.
40
Exemples dobjets
-
Chapitre 3 : Principes de base de lapproche objet Niveau II1
Prpar par : Raoudha CHEBIL 21
Instanciation41
Instanciation = Passage de lindfini au dfini (par moulage)
Une instance = un objet o Possde les proprits dfinies par sa classeo Peut effectuer les oprations dfinies par sa classe
6742 TU 28grise
42CV
10 km/h
acclrerfreinertournerreculer
Immatricule : couleur :
roues : puissance :
vitesse :
voiture1717 TU 27
bleue4
2CV50 km/h
Lenvoi de message42
Un objet est une entit indpendante dont la structure est connue de luiseul.
En principe, un objet ne peut pas agir directement sur un autre objet, ildoit pour ce faire utiliser une des mthodes appartenant linterface delobjet.
Un messageest une requte dont la satisfaction est la charge de lobjetauquel elle est adresse.
Lenvoi de message est lunique moyen de communiquer avec les objets.
Exp: C++, Java, C# :
MaVoiture.freiner();
top related