poo

21
Chapitre 3 : Principes de base de l’approche objet Niveau II1 Préparé par : Raoudha CHEBIL 1 Chapitre 3 Principes de base de l’approche objet PRÉPARÉ PAR : RAOUDHA CHEBIL Plan Motivations Introduction de nouveaux principes : Réification, abstraction, encapsulation Approche objet Terminologie et définitions 2

Upload: said-h-djo

Post on 18-Nov-2015

3 views

Category:

Documents


0 download

DESCRIPTION

Prog-Orientée objet

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();