Вы находитесь на странице: 1из 39

Les objets

F. Dagnat & J. Mallet


Majeure Informatique INF301 GL-C1
2e semestre 2015

Les cours de laxe GL de lUV1 - INF301


1.
2.
3.
4.

La dcouverte des objets


Les cycles de vie des logiciels
UML structurel et hritage
UML comportemental et concurrence

2 / 39

F. Dagnat & J. Mallet

Les objets

Plan
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

3 / 39

F. Dagnat & J. Mallet

Les objets

Avancement
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

4 / 39

F. Dagnat & J. Mallet

Les objets

Comment construire un logiciel ?


Identifier les fonctions (fonctionnalits)
Les regrouper (trouver une structure) :
Suivant la fonctionnalit assure (connexion, session, BD,
...)
Par les donnes quelles manipulent

Problme : comment faire en sorte que, cette


structuration soit
naturelle et systmatique,
prenne et rutilisable

5 / 39

F. Dagnat & J. Mallet

Les objets

Un changement de point de vue

Ne demandez pas en premier ce que


le systme fait,
mais demandez qui il le fait !
Bertrand Meyer
On sintresse aux entits manipules (les objets)
avant de sintresser lalgorithmique (les fonctions)
6 / 39

F. Dagnat & J. Mallet

Les objets

Avancement
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

7 / 39

F. Dagnat & J. Mallet

Les objets

Un logiciel objet
Objet
Interaction
Lien

8 / 39

F. Dagnat & J. Mallet

Les objets

Quest-ce quun objet ?


Objet

Dfinition
Abstraction dune entit du monde rel participant
lexcution dun programme

9 / 39

F. Dagnat & J. Mallet

Les objets

La composition dun objet


Objet
Interaction
Lien
Un objet est compos de :
une identit (adresse)
un tat (des variables les attributs)
un comportement (des fonctions les
mthodes)

10 / 39

F. Dagnat & J. Mallet

Les objets

Un exemple
Objet
Interaction
Lien
identit

******

tat
rfrence
7 HG716

dsignation
7 Chemise
prix hors taxe
7 45

11 / 39

F. Dagnat & J. Mallet

Les objets

comportement
prixTTC 7 du code
solder 7 du code

Comment les objets interagissent ?


Objet
Interaction
Lien

Une seule forme dinteraction lenvoi dun message


qui peut donner lieu une rponse (fonction)

12 / 39

F. Dagnat & J. Mallet

Les objets

Toutes les interactions sont-elles possibles ?


Objet
c

Interaction
Lien

s
Pour que s puisse envoyer un message c, il doit le
connatre (son adresse), cest la notion de lien

13 / 39

F. Dagnat & J. Mallet

Les objets

Un message
Objet
c

Interaction
Un message :
spcifie une fonction (de la cible) m Lien
m(args) contient galement les arguments args
s

est envoy par un objet (source) s un objet


(cible) c : c.m(args)
provoque lexcution de m(args) de c
ventuellement c retourne le rsultat de m s
s peut alors continuer son calcul

14 / 39

F. Dagnat & J. Mallet

Les objets

Encapsulation
Objet
Interaction
Lien
Ltat (les attributs) nest accessible que depuis
lobjet (ses mthodes) :
Protge les donnes internes de lobjet
Simplifie lutilisation dun objet
Dconnecte lutilisation dun objet de sa
structure interne
15 / 39

F. Dagnat & J. Mallet

Les objets

Le cycle de vie dun objet


cration de lobjet
utilisation de lobjet comme destination de
messages
destruction de lobjet

16 / 39

F. Dagnat & J. Mallet

Les objets

Comment construire un logiciel objet ?


Comment les objets sont programms ?
Quelle est leur structure ?
Quel est leur comportement ?
Quel est leur tat initial ?

Comment les liens sont raliss ?

17 / 39

F. Dagnat & J. Mallet

Les objets

Avancement
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

18 / 39

F. Dagnat & J. Mallet

Les objets

Quelle est leur structure ?


Dfinition (Type)
Un Type est un ensemble de valeurs. Ces valeurs :
partagent des proprits communes
peuvent tre manipules de la mme manire
Par exemple, int est le type des entiers, int[] est
le type des tableaux dentiers . . .
Dans un langage typ (UML, Java, . . . ), il faut (en
gnral) dclarer le type des variables.
Les objets vont avoir des types (qui vont dfinir
leur structure)
19 / 39

F. Dagnat & J. Mallet

Les objets

Quel est leur comportement ?


Dfinition (Module)
Un Module est un regroupement autonome de
code. Il offre des services (fonctions) via une interface.
Ces services peuvent tre utiliss par dautres modules.
Un module permet la compilation spare dune
application.
Par exemple, Math est le module des fonctions
mathmatiques usuelles (sqrt, cos, . . . )
Les objets vont tre associs des modules (qui
vont dfinir leur comportement)
20 / 39

F. Dagnat & J. Mallet

Les objets

Quest-ce quune classe ?


Objet

Dfinition
Entit qui dfinit la structure dune famille dobjets
(son type) et son comportement (son module)
Classe

21 / 39

F. Dagnat & J. Mallet

Les objets

La composition dune classe


Objet
Une classe est compose de :
un nom qui sera celui du type associ
des attributs (leurs noms et types)
des mthodes (leurs noms, types de retour, les
noms et types de chacun de leurs argumentsClasse
et
leurs codes)

22 / 39

F. Dagnat & J. Mallet

Les objets

Un exemple
Objet
nom

attributs
rfrence
: String
dsignation : String
prix hors taxe : float

23 / 39

F. Dagnat & J. Mallet

Interaction

Produit

Lien
mthodes
prixTTC() : float
7 du code
solder(int remise)
7 du code

Les objets

Classe

Instanciation
Objet
Un objet est instance dune seule et unique
classe qui sera son type
Une mthode spcifique (un constructeur)
fixe ltat initial de lobjet lors de sa cration
Classe
Instanciation

24 / 39

F. Dagnat & J. Mallet

Les objets

Classe versus Objet


Excution :
Objet
Informations

Programmation :
Classe
Structure et code

25 / 39

F. Dagnat & J. Mallet

Les objets

Instanciation

Attributs et mthodes de classe


Attribut de classe
Permet de stocker des informations dans une classe
Accessible partir dune instance quelconque (partag par
les instances) ou de la classe
Utilisation : constantes, informations communes

Mthodes de classe
Appelable partir dune instance ou de la classe
Ne peut pas utiliser les attributs et mthodes dinstance
Utilisation : code qui nest pas li une instance

26 / 39

F. Dagnat & J. Mallet

Les objets

Slogan

Programmer objet, cest crire


des classes

27 / 39

F. Dagnat & J. Mallet

Les objets

Avancement
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

28 / 39

F. Dagnat & J. Mallet

Les objets

Dpendance
Objet
Interaction
Lien
Un lien peut tre momentan : ladresse est mmorise dans une variable locale
Classe
Cest une dpendance
Instanciation

29 / 39

F. Dagnat & J. Mallet

Les objets

Association
Objet
Interaction
Un lien peut durer : ladresse estLien
mmorise dans un attribut, le lien est alors
structurel (sens a un )
Classe
Cest une association
Instanciation

30 / 39

F. Dagnat & J. Mallet

Les objets

Gestion de contacts
Contacts : Personne ou Socit
Caractristiques : nom, adresse, . . .
unesocit

untel

Socit

telautre

Personne

Une adresse peut tre complexe, on va en faire une


classe
31 / 39

F. Dagnat & J. Mallet

Les objets

Gestion de contacts II
Partage de la notion dadresse (structure et code)
entre Personne et Socit
Association entre Personne (resp. Socit) et
Adresse
Partage possible dun objet (informations)
untel

Personne
unesocit

telautre

Socit
a_un
a_un

adresse1
32 / 39

F. Dagnat & J. Mallet

Adresse
Les objets

adresse2

Avancement
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

33 / 39

F. Dagnat & J. Mallet

Les objets

Comment trouver les classes ?


tape difficile lors de la conception dun logiciel
objet
Processus sur lensemble des classes candidates : en
ajouter ou en retirer
De nombreuses possibilits, importance du choix
Certains proposent de souligner les noms pour en
faire des classes candidates
Attention, technique approximative :
parfois trop de classes (synonymes, concept de peu
dimportance, . . . )
parfois oubli de classes importantes masques par des
tournures de style (verbe, pronom, . . . )
34 / 39

F. Dagnat & J. Mallet

Les objets

Un petit exercice
B Exercice 1 (Le garage) :
Identifier les classes, instances, attributs, mthodes et
associations dans le cahier des charges suivant.
Un client demande une rparation. Une rparation est effectue
par un mcanicien. Elle ncessite des comptences. Un
mcanicien possde des comptences.

35 / 39

F. Dagnat & J. Mallet

Les objets

Une solution possible


classes
Client

Rparation

Mcanicien

Comptence

36 / 39

instances
client1
client2
...
vidange1
embrayage1
...
mcano1
mcano2
...
mcanique g.
tolerie
...

attributs

mthodes

nom : String

demander(Rparation)

associations
aDemand

nom : String

require
affecteA

nom : String

dispose

nom : String

F. Dagnat & J. Mallet

Les objets

Avancement
1

Introduction

Objet

Classe

Association

Pratiquons !

Bilan

37 / 39

F. Dagnat & J. Mallet

Les objets

Quapporte le modle objet ?


Grande indpendance du modle et des
fonctionnalits demandes
Grande stabilit de la modlisation : des
fonctionnalits peuvent tre rajoutes ou modifies
sans (trop) changer la modlisation
(Plus proche du monde rel)

38 / 39

F. Dagnat & J. Mallet

Les objets

Vocabulaire
De nombreux langages :
de modlisation dont UML qui est devenu le standard . . .
de programmation dont Java, C#, Python, C++, Ocaml,
Smalltalk, Eiffel, . . .

Un vocable nouveau et plutt riche (nombreux


synonymes) :
Objet, Classe, Type, Interface
Attribut, Mthode, Service, Membre, Constructeur
Message, Invocation, Collaboration, Instanciation,
Clientlisme, Liaison Dynamique
Hritage, Surcharge, Redfinition, Gnricit

39 / 39

F. Dagnat & J. Mallet

Les objets

Вам также может понравиться