Académique Documents
Professionnel Documents
Culture Documents
Programmation classique
Un programme est conu comme un ensemble de modules fonctionnels (procdures ou fonctions) qui manipulent des donnes.
Chapitre 2 Principes de base Pourquoi utiliser les objets Comment trouver les objets. Comment dcrire les objets + les relations entre eux. Comment utiliser ces objets pour structurer les programmes. Paradigme objets & terminologie
Lapproche objet permet de : o amliorer la productivit des concepteurs / dveloppeurs et o rduire le cot de revient des applications.
Donnes
Donnes Donnes Code Code Code Rappels : Difficult de rutiliser du code dj crit et test. Maintenance coteuse (Instabilit,scurit, cot)
3
Investissement (Homme-mois)
Investissement initial
Taille ou fonctionnalit
10/02/2011
Rification = matrialiser un concept par un objet Un concept abstrait peut tre rifi
o
Salaire
Ali possde la voiture immatricule 875 TU 129 est rifi dans le monde rel par une carte grise
Question ouverte : quels concepts rifier ? Une bonne vision objet rifie les bons concepts
Dfinition : Lencapsulation est le procd de sparation des lments dune abstraction qui constituent sa structure et son comportement. Elle permet de dissocier linterface contractuelle de la mise en uvre dune abstraction.
10/02/2011
Encapsulation
Encapsulation ()
Dans les programmes tels quon les a crits (et dcrits) jusqu prsent, les notions de type de donnes et de fonctions sont spares :
Types de donnes datatype1 dataType2 dataTypeN fonction1 fonction2 fonctionM Fonctions
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 les mthodes de lobjet.
data1 data2 .
Aspect statique
Aspect dynamique
fonction1 fonction2 .
Encapsulation ()
Encapsulation ()
En plus du regroupement des lments statique et dynamique [dune entit], lencapsulation permet de dfinir deux niveaux de perception :
Le niveau externe : perception de lobjet depuis lextrieur Le niveau interne : perception de lobjet depuis lintrieur
Prototype des mthodes Dclaration des attributs Elments privs Dfinition des mthodes Corps Interface
Interface ralisation
Le niveau externe, correspond la partie visible de lobjet; il est constitu des spcifications des lments [de lobjet] visibles de lextrieur (appel: lments publics ), savoir les prototypes et les dclarations de ses mthodes et attributs publics. 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 cet objet (appels lments privs ). Ce niveau reprsente donc le corps de lobjet.
2 rles : - utilisateur : manipule les lments de labstraction qui constituent linterface - implanteur : ralise ce qui est encapsul
11
12
10/02/2011
Orient Objet
Reprsenter un systme comme un ensemble dobjets autonomes mais interagissant via des envois de messages Chaque objet reprsente un objet 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 lorsque lobjet reoit un message
13
14
Ch. 2 Principes de
Lapproche objet
Les langages objets sont fonds sur la connaissance dune seule catgorie dentit informatique : lobjet. Dans un objet, traditionnellement ce sont les donnes qui deviennent prpondrantes.
On se pose dabord la question : "de quoi parle-t-on ?" et non pas la question "que veut-on faire ?", comme en programmation algorithmique.
15
Lapproche objet consiste rsoudre un problme en termes dobjets qui collaborent. Ces objets sont des abstractions des objets rels
16
10/02/2011
d'objets caractriss par les mmes oprations. Ces dernires oprent sur la structure de l'objet (appele reprsentation) qui est compose des donnes refltant l'tat de l'objet.
Exemple : Il en est ainsi pour un objet pile qu'on peut
N+1
dernier 0 dbut P
17
()
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 encore moins d'y accder directement), ni mme de connatre le code des oprations, lequel peut varier selon la reprsentation. C'est cela l'abstraction. Ce principe place le programmeur un haut niveau de conception.
Pile
Pr-conditions
Fonctions : (oprations)
o o o o o
nouvelle : Pile empiler : Pile,int Pile depiler : Pile Pile sommet : Pile int vide : Pile Bool
Axiomes :
19
20
10/02/2011
Cas 1 : les piles bornes Comment faut-il modifier cette spcification pour obtenir une pile borne de taille maximale capacite
Un compteur cyclique est un compteur born qui repart 0 quand il atteint sa borne suprieure. Le compteur kilomtrique dune voiture, les minutes, les secondes et les heures dune horloge sont des exemples. Dfinir la description du type abstrait Compteur Cyclique. Donner le moyen pour fixer la valeur maximale, pour incrmenter, pour remettre le compteur une valeur initiale. => dlgation
21 22
=> Extension
Pr-conditions
Types
compte
Axiomes :
P Personne, X Montant solde(nouveau(P,X)) = X titulaire(nouveau(P,X)) = P dbiter(P,X)) =
Fonctions : (oprations)
nouveau : Personne, Montant Compte Titulaire : Compte Personne solde : Compte montant dbiter : Compte, Montant Compte crditer : Compte, Montant Compte
Prconditions :
P Personne, X Montant Nouveau(P,X) Valeur(X) solde min. Dbiter(P,X) Valeur(X) Valeur(solde(P))
=> Association
10/02/2011
TA
Trois formes de fonctions dans la spcification dun type abstrait T : 1. Constructeur : qcqchose
T(qcqchose)
exemple : nouvelle
2. Accesseur : T(qcqchose) x qcqchose
qcqchose
corps des mthodes
T(qcqchose)
interface
25 26
()
Un TAD, encapsule les oprations et cache la structure sous-jacente d'un objet. Ainsi, le programmeur consacrera ses efforts la solution d'un problme sans se proccuper des dtails inutiles. Il s'intressera ce qu'un objet peut fournir comme service et ignorera comment ces services sont raliss de faon concrte. Si p est une pile, on crira p.empiler(n), au lieu de quelque chose comme s = s+1; t[s]=n;
27 28
10/02/2011
Intrt
attributs
attributs . mthodes .
Lintrt de la sparation entre niveau interne et externe est de donner un cadre plus rigoureux aux objets. Les objets ne peuvent tre utiliss quau travers de leur interface (niveau externe) De ce fait les ventuelles modifications apportes leur structure interne restent invisibles lextrieur
message
attributs . mthodes .
.
mthodes
attributs . mthodes .
29
30
Pour le philosophe
o o o o
VOITUR E?
Un artfact de la classification humaine ! Une classification en fonction d'un comportement ou d'attributs communs Un accord portant sur les descriptions et les noms des classes utiles La cration d'un vocabulaire ; nous communiquons ; nous pensons ! Une construction syntaxique nomme qui dcrit un comportement et des attributs communs Une structure de donnes qui inclut les donnes et les fonctions
31
32
10/02/2011
Une grande partie de la puissance conceptuelle de lapproche objet vient de la fusion de ces deux notions.
Classe : Dfinition
Classe : Une classe regroupe les caractristiques (les primitives = attributs
et mthodes) communes des objets. Elle permet de crer des objets possdant des proprits communes. Mthodes
Modifieurs : ont un effet sur linstance mais ne produisent pas de rsultats. Accesseurs: ont un rsultat, gnralement pas deffet.
La Classe
Module
Ensemble de services Masquage de linformation Des liens entre classes
Type
utilise pour dclarer des objets exemple = Objet : Classe; ( i : integer )
Une classe reprsente la structure, le moule commun un ensemble dobjets Une classe est une abstraction dobjets
33
34
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 publiques Dcrivent le comportement accessible Les champs privs Dcrivent l'tat inaccessible
35
36
10/02/2011
OBJETS Dfinitions
Objet : entit autonome modlisant laspect statique et dynamique dune
partie du monde rel Un objet peut reprsenter une ralit physique ( une voiture, un bateau ) ou virtuelle ( scurit sociale, un raisonnement )
OBJETS Dfinitions
attributs ( donnes membres ) : donnes caractrisant ltat de lobjet mthodes ( fonctions membres ) : oprations dfinissant le comportement de lobjet. Elles lui permettent dagir sur ces attributs et de ragir aux sollicitations extrieures identit : identifiant permettant indpendamment de son tat de le distinguer des autres
Instanciation
OBJETS Exemples
Peugeot 106 de couleur grise immatricule 5039 TU 90 : Attributs : couleur = grise, marque = Peugeot, nim= 5039 TU 90 Mthodes : avancer ( ), reculer ( ) identit : XRE-HGFRT-KIUT- Renault espace de couleur verte immatricule 985 TU 97 : Attributs : couleur = verte, marque = Renault, nim = 985 TU 97 Mthodes : avancer ( ), reculer ( ) identit : HYU-XJKMP-PLTB-.
Linstance (Statique, Dynamique)= objet : ( selon lang. ex: Java) o Possde les proprits dfinies par sa classe o peut effectuer les oprations dfinies par sa classe
39 40
Ch. 2 Principes de
10
10/02/2011
Lenvoi de message
Un objet est une entit indpendante dont la structure est connue de lui seul, il ne peut pas, en principe, agir directement sur un autre objet. Il doit pour ce faire utiliser une des mthodes appartenant linterface de lobjet. Message = requte dont la satisfaction est la charge de lobjet auquel elle est adresse. Envoi de message = unique moyen de communiquer avec les objets.
11