Académique Documents
Professionnel Documents
Culture Documents
Un peu dhistoire
1967:Simula,1erlangagedeprogrammationimplmenterleconcept
detypeabstraitl'aidedeclasses
1976:Smalltalkimplmentelesconceptsfondateursdel'approche
objet(encapsulation,agrgation,hritage)l'aidede:
classes
associationsentreclasses
hirarchiesdeclasses
messagesentreobjets
1980:le1ercompilateurC++.C++estnormalisparl'ANSIetde
nombreuxlangagesorientsobjetsacadmiquesonttaysles
conceptsobjets:Eiffel,ObjectiveC,Loops,java,
StandardisationdUML1.1en1997
Un peu dhistoire
L'approchefonctionnellen'estpasadapteaudveloppement
d'applicationsquivoluentsanscesseetdontlacomplexitcroit
continuellement
Lesfonctionsnesontpasleslmentslesplusstables
Onpeutpasdcriretoujoursunsystmeparunefonctionprincipale
Difficultdelarutilisation
Lessystmesnonobjet
Procduraux:sous-programmes
Fonctionnels:fonctions
Dductifs:rgles
Lessystmesobjets
lelogicielestunecollectiond'objetsdissocisdfinispardesproprits
Lapprocheobjetfaciliteledveloppementetl'volutiond'applications
complexes.
Le paradigme Objet
Programmationorienteobjet
Conceptionorienteobjet
Mthodedimplantationdanslaquelleleprogrammeestorganisen
collectiondobjetscoopratifs.Chaqueobjetestuneinstancede
classe.Touteslesclassessontmembresdunehirarchiedeclasses
liespasdesrelationsdhritage
Mthodedeconceptionquimneunedcompositionorienteobjetet
utiliseunenotationpourreprsenterlesdiffrentsaspectsdusystme
encoursdeconception
Analyseorienteobjet
Mthodedanalysequiexaminelesbesoinsentermesdeclasseset
dobjetstrouvdanslespaceduproblme.
Objet
Dfinition
Objetdumonderel:
Perception fonde sur le concept de masse
grains de sable les toiles
Objetinformatique:
Est une unit atomique forme de lunion dun tat et dun comportement
Dfinit une reprsentation abstraite dune entit du monde rel ou virtuel,
dans le but de la piloter ou de la simuler
Grain de sable, toile
Compte en banque, police dassurance, quation mathmatiques, etc.
Lesobjetsdumondereletdumondeinformatiquenaissent,
viventetmeurent
Objet
ReprsentationdobjetsenUML
Un objet
Deux enseignants
Seriai
Bouraqadi
FI3/FCD1
Langage C
Objet
ReprsentationdobjetsenUML
Deux enseignants
:Enseignant
:Enseignant
:Promotion
:Matire
:Ecole
:Eleve
:Matire
Objet
Caractristiquefondamentalesdunobjet(informatique)
Objet=tat+Comportement+Identit
tat
Regroupe les valeurs instantanes de tous les attributs dun objet :
attribut est une information qui qualifie lobjet qui le contient
Chaque attribut peut prendre une valeur dans un domaine de
dfinition donn
Exemple : Un objet voiture regroupe les valeurs des attributs
Une voiture
couleur, masse et puissance fiscale
Bleu
950 kg
15 CV
10
Objet
Caractristiquefondamentalesdunobjet(informatique)
tat
Ltat dun objet un instant donn, correspond une slection de valeurs,
parmi toutes les valeurs possibles des diffrent attributs
Ltat volue au cours du temps, il est la consquence de ses comportement
passs
Une voiture roule, la quantit de carburant diminue, les pneus susent, etc.
Une voiture
50 litres
Une voiture
Aprs un parcours de 150 km
40 litres
Objet
Caractristiquefondamentalesdunobjet(informatique)
Lecomportement
Regroupe toutes les comptences dun objet et dcrit les actions et
les ractions de cet objet
Chaque atome (partie) de comportement est appel opration
Les oprations dun objet sont dclenches suite une
stimulation externe, reprsente sous la forme dun message
envoy par un autre objet
Ltat et le comportement sont lis
Un message
Un objet
Un autre objet
Opration 2
{}
Opration 1
{}
11
12
Objet
Caractristiquefondamentalesdunobjet(informatique)
Lecomportement
Le comportement un instant donn dpend de ltat courant et
ltat peut tre modifi par le comportement
Exemple : il nest pas possible de faire atterrir un avion que
sil est en train de voler: le comportement Atterrir nest valide
que si linformation En vol est valide
Aprs latterrissage, linformation En vol devient invalide et
lopration Atterrir n plus de sens
: Avion
Atterrir
: Tour de contrle
En vol
: Avion
Au sol
Dcoller
Objet
Caractristiquefondamentalesdunobjet
Lidentit
Chaque objet possde une identit qui caractrise son existence
propre
Lidentit permet de distinguer tout objet de faon non ambigu,
indpendamment de son tat
Permet de distinguer deux objets dont toutes les valeurs dattributs
sont identiques
deux pommes de la mme couleur, du mme poids et de la
mme taille sont deux objets distincts.
Deux vhicules de la mme marque, de la mme srie et ayant
exactement les mmes options sont aussi deux objets distincts.
13
14
Objet
Caractristiquefondamentalesdunobjet
Lidentit
Lidentit est un concept, elle ne se reprsente pas de manire
spcifique en modlisation. : chaque objet possde une identit de
manire implicite
En phase de ralisation, lidentit est souvent construite partir
dun identifiant issu naturellement du domaine du problme.
Nos voitures possdent toutes un numro dimmatriculation,
nos tlphones un numro dappel et nous-mmes sommes
identifis par nos numros de scurit social
Objet
Objet_1
Message A
Message C
Communicationentreobjets:leconceptdemessage
Lessystmesinformatiquesobjetspeuventtrevuscomme
dessocitsdobjetsquitravaillentensynergieafinderaliser
lesfonctionsdelapplication
Lecomportementglobalduneapplicationreposesurla
communicationentrelesobjetsquilacomposent
Lunitdecommunicationentreobjetssappellemessage
Ilexistecinqcatgoriesprincipalesdemassages
Les constructeurs qui crent des objets,
Les destructeurs qui dtruisent des objets,
Les slecteurs qui renvoient tout ou partie de ltat de lobjet,
Les modificateurs qui changent tout ou partie de ltat dun objet
Les itrateurs qui visitent ltat dun objet ou le contenu dune
structure de donnes qui contient plusieurs objets.
Message B
Objet_2
Message E
Objet_3
Objet_4
Message D
15
16
Classe
Dfinition
Uneclassedcrituneabstractiondobjetsayant
ParexempleFichier(resp.Paragraphe,resp.Vhicule)estlaclassede
touslesfichiers(resp.paragraphes,resp.vhicules)
Uneclasseatroisfonctions:
Sert de ``patron'' (template) objets : elle dfinit la structure gnrale des objets qu'elle
cre en indiquant quelles sont les variables d'instance ;
Sert de ``conteneur'' d'objets : contient - et donc donne l'accs - l'ensemble des objets
qu'elle a crs;
Sert de ``rceptacle'' des mthodes que ses objets peuvent utiliser puisque tous les
objets d'une classe utilisent les mmes mthodes , il serait inutile de les dupliquer dans
ces objets eux-mmes.
17
Classe
Caractristiquesduneclasse
Unobjetcrpar(onditgalementappartenant)uneclassesera
appeluneinstance de cette classecequijustifieleterme
``variables d'instances'
lesvaleursdesvariables d'instancessontpropreschacunedeces
instancesetlescaractrisent
Lesgnralitssontcontenuesdanslaclasseetlesparticularit
sontcontenuesdanslesobjets
Lesobjetssontconstruitspartirdelaclasse,parunprocessus
appelinstanciation:toutobjetestuneinstancedeclasse
Nousdistinguonsdeuxtypesdeclasses
Classe concrte : peut tre instacie
Classe abstraite : est une classe qui ne donne pas directement des objets.
Classe
ReprsentationgraphiqueduneclasseenUML
Chaqueclasseestreprsentesouslaformedunrectangledivisen
troiscompartiments
Lescompartimentspeuventtresupprimspourallgerles
diagrammes
Reprsentationdesclassesabstraites:lenonduneclasseabstraite
estenitalique
Motocyclette
Nom de classe
Attributs
Oprations()
Couleur
Cylindre
Vitesse
Vitesse maximale
Dmarrer()
Acclrer()
Freiner()
DonnerNombreMoto()
Tlviseur
Allumer()
Eteindre()
ChangerDeProgramme
RglerVolume()
18
Encapsulation
Consistemasquerlesdtailsd'implmentationd'unobjet,en
dfinissantuneinterface.
Estlasparationentrelespropritsexternes,visiblesdes
autresobjets,etlesaspectsinternes,propresauxchoix
d'implantationd'unobjet.
L'interfaceestlavueexterned'unobjet,elledfinitlesservices
accessibles(offerts)auxutilisateursdel'objet.
Lobjet
Partie visible
Attribut_i
Attribut_j
Opration_k
Opration_l
Attribut_R
Attribut_S
Opration_T
Opration_V
19
Encapsulation
Prsenteundoubleavantage
facilitel'volutiond'uneapplicationcarellestabilisel'utilisation
desobjets:onpeutmodifierl'implmentationdesattributsd'un
objetsansmodifiersoninterface
Les utilisateurs dune abstraction ne dpendent pas de la
ralisation de labstraction mais seulement de sa spcification : ce
qui rduit le couplage dans les modles
garantitl'intgritdesdonnes,carellepermetd'interdire
l'accsdirectauxattributsdesobjets(utilisationd'accesseurs)
Les donnes encapsules dans les objets sont protges des accs
intempestifs
20
Encapsulation
Rgle de visibilit
+ Attribut public
# Attribut protg
- Attribut priv
+ Opration publique()
# Opration protge()
- Oprtion prive()
Ilestpossibledassouplirledegrdencapsulationauprofit
decertainesclassesutilisatricesbienparticulires
En dfinissant des niveaux de visibilit
Lestroisniveauxdistinctsdencapsulationcouramment
retenussont:
Niveaupriv:cestleniveauleplusfort;lapartieprive
delaclasseesttotalementopaque
Niveauprotg:cestleniveauintermdiaire;les
attributsplacsdanslapartieprotgesontvisiblespar
lesclassesdrivesdelaclassefournisseur.Pourtoutes
lesautresclasses,lesattributsrestentinvisibles
Niveaupublique:cecirevientsepasserdelanotion
dencapsulationetderendrevisibleslesattributspour
touteslesclasses
Salari
+ nom
# age
- salaire
+ donnerSalaire()
# changerSalaire()
- calculerPrime()
21
Une association
Associations
Reprsententlesrelationsstructurellesquiexistententre
objetsdediffrentesclasses.
Estuneabstractiondesliensquiexistententrelesobjets
instancesdesclassesassocies
Laplupartdesassociationssontbinaires
tudiant
Universit
22
tudiant
Personne
Universit
Employeur
1
Universit
0..1
Employeur
Enseignant
tudiant
* Personne
*
Enseignant
Uneassociationestcaractrisepar:
un nom, qui peut tre omis notamment quand les rles des
classes sont spcifis,
un rle pour chacune des classes qui participent
l'association. Le rle d'une classe, crit l'extrmit du lien
d'association, dcrit la manire dont cette classe est ``vue'' par
l'autre classe.
une multiplicit
Multiplicit
Chaqueextrmitd'uneassociationpeutporteruneindicationde
multiplicit(nombred'occurrences)quimontrecombiend'objetsdela
classeconsidrepeuventtrelisunobjetdel'autreclasse.
Un et un seul
0..1
Zro ou un
M..N
De M N (entiers naturels)
De zro plusieurs
0..*
De zro plusieurs
1..*
Dun plusieurs
23
Lenomdel'associationpeuttresuivid'uneflchededirection
(triangleplein)quiprciselesensdelecture
Ilexistedesassociationsternaires(oud'ordresuprieur)quisont
reprsentesparundiamantrelichacunedesclasses
participantlarelation.
Universit
Hberge >
tudiant
Salle
Enseignant
tudiant
Cours
24
25
Lagrgation
Estuneformeparticuliredassociation
Permetdereprsenterdesrelationsdetypematreetesclaves,toutet
partiesoucomposetcomposants
Exprimeuncouplageplusfortentreclassesqueceluiduneassociation
(olesclassesassociesrestentrelativementindpendanteslunede
lautre)
1
1
Voiture
1
1..*
Paragraphe
Moteur
Ville
1..*
0..*
Phrase
1..*
Maison
1..*
Mot
Lagrgation
Lesagrgationsreprsententdesconnexionsbidirectionnelles
dissymtriques
Uneagrgationdnoteuneassociationdetype``Estcomposde''.
se singularisent par le fait que les dures de vie des entits mises
en relation sont fortement dpendantes: la dure de vie du
``composant'' est dpendante de la dure de vie du ``composite''
qui le contient. Si le composite est dtruit, ses composants le sont
avec.
Ausensmathmatiques,lagrgationestunerelationtransitive,non
symtriqueetrflexive
Lagrgatfavoriselapropagationdesvaleursdattributestdes
oprationsdelagrgatverslescomposants
26
1..*
Classe
*
Objet
1..*
1..*
*
1
Relation
Lien
*
*
*
Diagramme de classes
Lesdiagrammesdeclassesetles
diagrammesdobjetsappartiennent
deuxvuescomplmentairesdun
modle
Un diagramme de classes montre une
abstraction de la ralit, concentre sur
lexpression de la structure dun point de
vue gnrale
Correspondanceentresdiagrammesde
classesetdiagrammesdobjets
Diagramme dobjets
27
Gnralisationetspcialisation
Vhicule terrestre
Voiture
Camion
28
Lagnralisationconsistefactoriserles
lmentscommuns(attributs,oprations)dun
ensembledeclassesdansuneclasseplus
gnraleappelesuper-classe
Les classes sont ordonnes selon une hirarchie
; une super-classe est une abstraction de ses
sous-classes
Vhicule arien
Avion
Hlicoptre
29
Laspcialisationpermetdecapturerlesparticularitdunensemble
dobjetsnondiscriminsparlesclassesdjidentifies
Lesnouvellescaractristiquessontreprsentsparunenouvelle
classe,sous-classedunedesclassesexistantes
Voiture
Voiture tourisme
Voiture electrique
Voiture utilitaire
Voiture sport
Voiture carburant
Extension par spcialiation
30
Lagnralisationetlaspcialisationsontdeuxpointdevue
antagonistesduconceptdeclassification;elleexprimentdansquel
sensunehirarchiedeclasseestexploite
Lagnralisationestemployeunefoisqueleslmentsdudomaine
onttidentifiesafindedgagerunedescriptiondtachedes
solutions
Laspcialisationestlabasedelaprogrammationparextensionetde
larutilisation
Lagnralisationneporteaucunnomparticulier;ellesignifie
toujours:estunouestunesortede
Lagnralisationneconcernequelesclasses,ellenestpas
instanciableenliens
Lagnralisationneporteaucuneindicationdemultiplicit
31
Lagnralisationestunerelationnonrflexive:uneclassenepeut
pasdriverdelle-mme
Lagnralisationestunerelationnonsymtrique:siuneclasseB
driveduneclasseA,alorslaclasseAnepeutpasdriverdela
classeB
Lagnralisationestunerelationtransitive:siuneclasseCdrive
duneclasseBquidriveelle-mmeduneclasseA,alorsCdrive
galementdeA
Lesobjetsinstancesduneclassedonnesontdcritparla
propritscaractristiquesdeleurclasse,maisgalementparles
propritscaractristiquesdetouteslesclassesparentsdeleur
classe
32
Lespropritsdunesous-classesenglobelespropritsdetoutes
sessuper-classes
Cequiestvraipourunobjetinstancedunesuperclasseest
vraipourunobjetinstancedunesous-classe
Livre
Auteur
Nombre de pages
33
Gnralisationmultiple:elleexisteentrearbresdeclassesdisjoints
Uneclassenpeutpossderqunefoisunepropritdonn
tudiant
Travailler()
Salari
Travailler()
Salari-tudiant
Travailler()
Problmedeclassification
Ltablissementdunehirarchie(classification)dpenddupointdevue
Pas une seule hirarchie de classe mais des hirarchies, chacune adapte un usage
donn
Exemple :les animaux
Critres de classification : type de nourriture, la protection
34
Techniqueutiliseparleslangagesdeprogrammationpour
raliserleshirarchiedegnralisation/spcialisation
Lepolymorphisme
Letermepolymorphismedcritlacaractristiquedunlment
quipeutprendreplusieursformes,commeleauquisetrouve
ltatsolide,liquideougazeux
Eninformatique:lepolymorphismedsignelefaitquunnom
dobjetpeutdsignerdesinstancesdeclassesdiffrentes
issuesdunemmearborescence
Animal
Lion
Dormir()
Polymorphisme:notiondesurcharge
Lepolymorphismesignifiequ'un
mmeoprationpeutsecomporter
diffremmentsurdiffrentsclasses
L'opration dplacer agira de manires
diffrentes sur un fichier, une fentre
graphique ou un vhicule
Ours
Tigre
Dormir()
Dormir()
Dormir dans
Un arbre
Le gardien
Dormir()
Dormir
35
:Animal
Lepolymorphismesignifiequeles
diffrentesmthodesd'uneopration
ontlammesignature
Lorsque une opration est invoque sur
un objet, celui-ci connat sa classe et
par consquent est capable d'invoquer
automatiquement la mthode
correspondante.