Vous êtes sur la page 1sur 35

1

Partie II : Les concepts


objet travers UML

Les concepts objet travers


UML

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

Les concepts objet travers


UML

Un peu dhistoire

L'approchefonctionnellen'estpasadapteaudveloppement
d'applicationsquivoluentsanscesseetdontlacomplexitcroit
continuellement

Lesfonctionsnesontpasleslmentslesplusstables

Onpeutpasdcriretoujoursunsystmeparunefonctionprincipale

Difficultdelarutilisation

Les concepts objet travers


UML

Systme objets ou orient objet

Lessystmesnonobjet

Procduraux:sous-programmes
Fonctionnels:fonctions
Dductifs:rgles

Lessystmesobjets

lelogicielestunecollectiond'objetsdissocisdfinispardesproprits

Lapprocheobjetfaciliteledveloppementetl'volutiond'applications
complexes.

Les concepts objet travers


UML

Le paradigme Objet

Programmationorienteobjet

Conceptionorienteobjet

Mthodedimplantationdanslaquelleleprogrammeestorganisen
collectiondobjetscoopratifs.Chaqueobjetestuneinstancede
classe.Touteslesclassessontmembresdunehirarchiedeclasses
liespasdesrelationsdhritage

Mthodedeconceptionquimneunedcompositionorienteobjetet
utiliseunenotationpourreprsenterlesdiffrentsaspectsdusystme
encoursdeconception

Analyseorienteobjet

Mthodedanalysequiexaminelesbesoinsentermesdeclasseset
dobjetstrouvdanslespaceduproblme.

Les concepts objet travers


UML

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

Les concepts objet travers


UML

Objet

ReprsentationdobjetsenUML

Un objet

Deux enseignants

Seriai
Bouraqadi

FI3/FCD1
Langage C

Ecole mines Douai


LEMESRE
Mthode UML

Les concepts objet travers


UML

Objet

ReprsentationdobjetsenUML

Deux enseignants

:Enseignant
:Enseignant

:Promotion
:Matire

:Ecole
:Eleve
:Matire

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Certaines composantes de ltat peuvent tre constantes


La marque de la voiture, pays de la construction de la voiture

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Les concepts objet travers


UML

16

Classe

Dfinition
Uneclassedcrituneabstractiondobjetsayant

Des proprits similaires


Un comportement commun
Des relations identiques avec les autres objets
Une smantique commune

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.

Les concepts objet travers


UML

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.

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Partie masque (encapsule)

19

Les concepts objet travers


UML

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

Les concepts objet travers


UML

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

Les concepts objet travers


UML

Les relations entre les classes

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

Les concepts objet travers


UML

Les relations entre les classes

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

Les concepts objet travers


UML

Les relations entre les classes

Lenomdel'associationpeuttresuivid'uneflchededirection
(triangleplein)quiprciselesensdelecture

Ilexistedesassociationsternaires(oud'ordresuprieur)quisont
reprsentesparundiamantrelichacunedesclasses
participantlarelation.
Universit

Hberge >

tudiant

Salle
Enseignant

tudiant
Cours

24

Les concepts objet travers


UML

25

Les relations entre les classes

Lagrgation

Estuneformeparticuliredassociation

Permetdereprsenterdesrelationsdetypematreetesclaves,toutet
partiesoucomposetcomposants

Exprimeuncouplageplusfortentreclassesqueceluiduneassociation
(olesclassesassociesrestentrelativementindpendanteslunede
lautre)
1

1
Voiture

1
1..*

Paragraphe

Moteur

Ville

1..*

0..*
Phrase

1..*

Maison

1..*
Mot

Les concepts objet travers


UML

Les relations entre les classes

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

Les concepts objet travers


UML
Les relations entre les classes

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

Un diagramme dobjets reprsente un cas


particulier ou une situation concrte un
instant donn: il exprime la fois la
structure statique et un comportement

27

Les concepts objet travers


UML

Les hirarchies de classes

Gnralisationetspcialisation

Abstractions plu gnrales


Vhicule

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

Un arbre (une hirarchie) reprsentant une


gnralisation se dtermine en partant des
feuilles (et non pas de la racine) car les feuilles
appartiennent au monde rel alors que les
niveaux suprieurs sont des abstractions
construites pour ordonner et comprendre

Les concepts objet travers


UML

29

Les hirarchies de classes

Laspcialisationpermetdecapturerlesparticularitdunensemble
dobjetsnondiscriminsparlesclassesdjidentifies

Lesnouvellescaractristiquessontreprsentsparunenouvelle
classe,sous-classedunedesclassesexistantes
Voiture

Voiture tourisme

Voiture electrique

Voiture utilitaire

Voiture sport

Voiture carburant
Extension par spcialiation

Les concepts objet travers


UML

30

Les hirarchies de classes

Lagnralisationetlaspcialisationsontdeuxpointdevue
antagonistesduconceptdeclassification;elleexprimentdansquel
sensunehirarchiedeclasseestexploite

Lagnralisationestemployeunefoisqueleslmentsdudomaine
onttidentifiesafindedgagerunedescriptiondtachedes
solutions

Laspcialisationestlabasedelaprogrammationparextensionetde
larutilisation

Lagnralisationneporteaucunnomparticulier;ellesignifie
toujours:estunouestunesortede

Lagnralisationneconcernequelesclasses,ellenestpas
instanciableenliens

Lagnralisationneporteaucuneindicationdemultiplicit

Les concepts objet travers


UML

31

Les hirarchies de classes

Lagnralisationestunerelationnonrflexive:uneclassenepeut
pasdriverdelle-mme

Lagnralisationestunerelationnonsymtrique:siuneclasseB
driveduneclasseA,alorslaclasseAnepeutpasdriverdela
classeB

Lagnralisationestunerelationtransitive:siuneclasseCdrive
duneclasseBquidriveelle-mmeduneclasseA,alorsCdrive
galementdeA

Lesobjetsinstancesduneclassedonnesontdcritparla
propritscaractristiquesdeleurclasse,maisgalementparles
propritscaractristiquesdetouteslesclassesparentsdeleur
classe

Les concepts objet travers


UML

32

Les hirarchies de classes

Lespropritsdunesous-classesenglobelespropritsdetoutes
sessuper-classes
Cequiestvraipourunobjetinstancedunesuperclasseest
vraipourunobjetinstancedunesous-classe

Livre
Auteur
Nombre de pages

Livre pour enfants


Fourchette des ages

Livre pour leneignement


Discipline
Niveau

Les concepts objet travers


UML

33

Les hirarchies de classes

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

Les concepts objet travers


UML

34

Les hirarchies de classes


Lhritage

Techniqueutiliseparleslangagesdeprogrammationpour
raliserleshirarchiedegnralisation/spcialisation

Lepolymorphisme

Letermepolymorphismedcritlacaractristiquedunlment
quipeutprendreplusieursformes,commeleauquisetrouve
ltatsolide,liquideougazeux

Eninformatique:lepolymorphismedsignelefaitquunnom
dobjetpeutdsignerdesinstancesdeclassesdiffrentes
issuesdunemmearborescence

Les concepts objet travers


UML

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

Dormir sur le ventre


Dormir sur
Le dos

Le gardien

Les hirarchies de classes

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.

Vous aimerez peut-être aussi