Vous êtes sur la page 1sur 19

Cours n1 : Prsentation

Alain Giorgetti
giorgetti@univ-fcomte.fr
http://lifc.univ-fcomte.fr/~giorgett/
Laboratoire d'Informatique
de lUniversit de Franche-Comt
Programmation Oriente Objet
Programmation Oriente Objet, prsentation - A. Giorgetti 2
Plan de ce premier cours
Comment tudier ce cours ?
Nos objectifs
Les modalits dvaluation
Progression du cours
Programmation : diverses approches
Approche objet
Avantages de lapproche objet
Premier exemple
Premier exemple (suite)
Description dun type par attributs
Description dun type par mthodes
...
Prsentation dun exemple
Prsentation de la P.O.O.
Pour russir cette unit denseignement
Programmation Oriente Objet, prsentation - A. Giorgetti 3
Comment tudier ce cours ?
Diapositives
disponibles sur http://lifc.univ-fcomte.fr/~giorgett/
distribues avant, pendant ou aprs le cours
complter en prenant des notes
autorises au partiel, pas lexamen (trs peu de "par cur")
expliques en cours
participation fortement conseille
Travaux dirigs et travaux pratiques
TD : exercices dapplication des cours prcdents
TP : implantation du TD
prsence obligatoire
Programmation Oriente Objet, prsentation - A. Giorgetti 4
Nos objectifs
Dcouvrir et comprendre la programmation objet
Acqurir les cls dune programmation efficace
efficace = peu defforts, beaucoup deffets
tape de conception sur papier
conseils inspirs par des mthodes de gnie logiciel
atouts de la programmation objet
Mieux programmer
valuation sur la qualit du code produit
mesure indirecte du respect des conseils donns
Programmation Oriente Objet, prsentation - A. Giorgetti 5
Les modalits dvaluation
Contrle continu
Partiel
Lundi 12 novembre, en cours, dure : 1
h
30
Documents autoriss : photocopies des diapositives de cours
Projet
Rendre un rapport (plan impos) et des fichiers TP 7 sur disquette
Soutenance lors du dernier TP
Contrle terminal : examens de janvier et de septembre
Aucun document autoris
Coefficients
premire session : partiel (25), projet (25), janvier (50)
deuxime session : partiel (20), projet (20), septembre (60)
Programmation Oriente Objet, prsentation - A. Giorgetti 6
Progression du cours
1. Prsentation
2. Types objet en Pascal
3. Pointeurs et construction d'objets en mmoire
4. Principe d'hritage
5. Tables dobjets (+ prsentation modalits mini-projet)
6. Typage statique et dynamique
7. Liste chane et rcursivit
8. Arbres binaires de recherche
9. Algorithmes sur les structures collectives
10. Recherches et tris
11. Complexit des algorithmes
Programmation Oriente Objet, prsentation - A. Giorgetti 7
Programmation : diverses approches
Priorit aux donnes : S.G.B.D.
Langage : SQL, ...
Priorit aux traitements : procdures/fonctions
Langages : Fortran, Pascal, C, Caml, Scheme
(structurs, impratifs ou dclaratifs ...)

Algorithmique (1990)
type abstrait =
structures de donnes
+ fonctions
Donnes + Traitements = Programmation
(Data Structures + Algorithms = Programs, N. Wirth, 1976)
Approche objet
donnes et traitements classe dobjets
Programmation Oriente Objet, prsentation - A. Giorgetti 8
Approche objet
Analyse dun sujet
Reprer des donnes, des traitements
Conception
Organiser donnes et traitements en objets
Organiser les objets en types dobjets
Relier ces types entre eux
Spcification (rdaction dun cahier des charges)
Dclaration de chaque type (interface)
Implantation (choix dun langage objet)
Programmation des mthodes de chaque type
Programmation Oriente Objet, prsentation - A. Giorgetti 9
Avantages de lapproche objet
Spare spcification et implantation
clair en syntaxe Pascal (INTERFACE, IMPLEMENTATION)
Organise le dveloppement en units
plusieurs programmeurs
plusieurs niveaux de programmation
Exploite des composants crits par dautres
encapsulation, confidentialit du code
hritage ...
Rduit le code produit
hritage (le retour)
liaison dynamique, gnricit
Programmation Oriente Objet, prsentation - A. Giorgetti 10
Premier exemple
Modliser un tri postal
Analyse
Donnes : lettres, paquets, facteur, expditeur, destinataire, ...
Traitements : crire ladresse, affranchir, acheminer ...
Conception
Types dobjets : colis, adresses, personnes
Caractristiques communes tous les colis
donne commune : adresse
traitement commun : le facteur lit ladresse
Particularits de certaines adresses
donne complmentaire : pays dans une adresse internationale
traitement diffrent : acheminement national ou international
Programmation Oriente Objet, prsentation - A. Giorgetti 11
Premier exemple (suite)
Spcification du type des colis
par donnes (= attributs)
contenu, contenant, adresse
par traitements (= mthodes)
emballage du colis, rdaction et lecture de ladresse
Restrictions dutilisation des colis
Contrler laccs aux donnes, limiter les traitements
un facteur ne doit pas accder au contenu du colis
on ncrit pas plusieurs fois ladresse
Interface du type des colis
documente chaque donne ou traitement
doit suffire pour fabriquer et utiliser des colis
pas besoin de lire le code implantant les traitements
Programmation Oriente Objet, prsentation - A. Giorgetti 12
Description dun type par attributs
L'objet adresse ad
1
appartient au type TAdr des adresses
Dans lobjet, chaque attribut possde une valeur particulire
L'objet est dfini partir d'autres objets (du mme type ou d un autre type)
Le type TAdr est reli d'autres types dfinir ...
Type TAdr : Attributs des objets
Nom
Rue
Code postal
Pays
objet ad
1
Pierre Dupont
10 rue des Carmes
51000
un objet de type TPays
Programmation Oriente Objet, prsentation - A. Giorgetti 13
Description d'un type par mthodes
Tous les objets de type colis ont les fonctionnalits
(mthodes) suivantes :
emballage
Condition : contenant adapt la taille du contenu
Effet : le colis est emball, il peut tre affranchi
rdaction de ladresse
Condition : on connat ladresse de destination
Effet : l adresse est crite, on ne peut plus la r-crire
expdition du colis
Condition : le colis est emball, ladresse est crite
Effet : affranchissement selon ladresse crite et le lieu d expdition
On ne dit pas de quoi est compos un colis (modle interne), mais on
sait ce quon peut faire avec (modle externe)
Programmation Oriente Objet, prsentation - A. Giorgetti 14
Plan des diapositives suivantes
Les cls dune programmation efficace
Quest-ce quune bonne programmation ?
Premire rgle : clart du code
Les principes de la programmation objet
Remarques diverses
Indpendance du cours au langage
Vocabulaire objet
Programmation Oriente Objet, prsentation - A. Giorgetti 15
Quest-ce quune bonne programmation ?
Qualits recherches
Correcte : rpond bien aux spcifications
Efficace : temps de dveloppement rduit, peu derreurs
R-utilisable : lisible, documente
Extensible : adaptable des changements de spcifications
Modulaire : parties indpendantes, reprables, exploitables
sparment
Comment faire ?
Appliquer des rgles de programmation
Exploiter les principes de la programmation objet
Documenter le code (spcification)
Programmation Oriente Objet, prsentation - A. Giorgetti 16
Premire rgle : clart du code
{ i <= self.taille }
PROCEDURE TTableau.supprimer(i : TIndice);
{ tableau self priv de l'lment d'indice i }
VAR
j : TIndice;
BEGIN
IF self.taille <> 0 THEN
BEGIN
self.taille := self.taille - 1;
END;
FOR j := i TO self.taille DO
BEGIN
self.element[j] := self.element[j+1],
END;
END;
Indentation des blocs
Noms explicites
(types, variable)
Autres conventions
Extrait dun fichier crit en Pascal
Programmation Oriente Objet, prsentation - A. Giorgetti 17
Les principes de la programmation objet
Origine : pratiques de bonne programmation
Les 4 premiers principes
Encapsulation
Hritage
Liaison dynamique
Polymorphisme
Synonymes
Surcharge des mthodes
Gnricit
Principes fonds sur la notion intuitive dobjet
Programmation Oriente Objet, prsentation - A. Giorgetti 18
Indpendance du cours au langage
Langage choisi
pour lalgorithmique : Pascal simplifi
pour la programmation : Turbo Pascal 7 (Objet)
Principes de programmation objet exposs
standards : communs tous les langages objet
Rgles de programmation : proches d'un standard
Vocabulaire objet
on donne une liste de synonymes (venant dautres langages)
on choisit dans cette liste les termes les plus pratiques
Programmation Oriente Objet, prsentation - A. Giorgetti 19
Vocabulaire objet
Type objet (ou classe) : modle d'un ensemble d'objets de mme
nature
Objet (ou instance) : lment d'une classe
Champ (ou attribut) : lment de la dfinition d'un type objet
Un champ est compos d'un nom de champ et d'un type de champ
Un champ implante un attribut des objets
Mthode : procdure ou fonction attribue aux objets d'un type
objet
Construction, appel de mthode, destruction : oprations
excutables sur un objet
Algorithme : session d'utilisation des fonctionnalits d'un ou de
plusieurs objets

Vous aimerez peut-être aussi