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

Analyse Oriente

Objet
Damien Porquet
damien.porquet@xlim.fr
2
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Plan

Partie : AOO
! Prsentation
" ! Programmation #onctionnelle
$ ! Programmation modulaire
% ! Les conce&ts de l'a&&roc'e objet
3
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Plan

Partie " : (ML


! Prsentation d'(ML
" ! Les diagrammes de cas d'utilisation
$ ! Les diagrammes de classes et d'objets
% ! Les diagrammes d'interaction
) ! Les diagrammes de com&ortement
* ! Les diagrammes &'ysiques
+ ! Mise en oeu,re d'(ML
Partie - : AOO
-.. Prsentation de
l'a&&roc'e objet
6
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
L'a&&roc'e objet

.istorique
Programmation : annes %/
0in +/ : crise du GL et a&&arition des mt'odes
de d,elo&&ement OO 1inter#aces utilisateur2
Dbut de la POO : 34/ 1,ersion industrielle de
5mall6al72
89em&le de langages OO : 6urbo Pascal: C;;:
D: C<: =a,a: ADA: Pyt'on: P.P: Objecti,e
Caml: 8i##el:...
7
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
L'a&&roc'e objet

>u'est!ce que c'est ?

(n ensemble de conce&ts stables: &rou,s et


normaliss

(ne solution destine @ #aciliter l',olution


d'a&&lications com&le9es

(n ensemble d'outils et de langages


&er#ormants &our le d,elo&&ement
Les nou,eau9 langages sont toujours objet
8
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
L'a&&roc'e objet

A quoi est due son a&&arition ?


A,olution des e9igences : inada&tation de
l'in#ormatique B traditionnelle C

donnes @ traiter &lus com&le9es

&roblDmes &lus com&le9es

industrialisation de la &roduction du logiciel


A,olutions tec'niques : matriel E logiciel
-.". Programmation
#onctionnelle
10
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

D#inition
C'est l'a&&roc'e traditionnelle de la
&rogrammation : la modlisation du logiciel est
ralise @ &artir des #onctions que doit
im&lmenter 1raliser2 le systDme.

c#. : module de langage C


11
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

La dcou&e #onctionnelle d'un &roblDme in#ormatique est une


a&&roc'e intuiti,e.
89em&le : un logiciel de gestion d'une bibliot'Dque
main
maintenir_fonds_doc grer_prts
lister_docs1critDres2 modifier_docs1re#2 nouveau_prt1re#2 retour_doc1re#2 lettre_de_rappel
mettre__jour1re#2 ajouter1re#2 supprimer1re#2
data
12
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

Maintenance com&le9e en cas d',olution


8n cas d',olution majeure du logiciel 1&assage de la
gestion d'une bibliot'Dque @ celle d'une mdiat'Dque: &ar
e9em&le2: de gros &roblDmes se &osent.
MFme si la structure gnrale du logiciel reste ,alide: la
multi&lication des &oints de maintenance: engendre &ar le
c'aGnage des #onctions: rend l'ada&tation trDs laborieuse. Le
logiciel doit Ftre retouc' dans sa globalit.
13
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

A,olution bibliot'Dque H mdiat'Dque


main
maintenir_fonds_doc grer_prts
lister_docs1critDres2 modifier_docs1re#2 nouveau_prt1re#2 retour_doc1re#2 lettre_de_rappel
mettre__jour1re#2 ajouter1re#2 supprimer1re#2
data
nou,elles donnes
@ grer
a##ic'age
selon le
ty&e
dlai
selon le
ty&e
dans quasiment
toutes les #cts: il #aut
grer les nou,eau9 ty&es
14
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

A,olution bibliot'Dque H mdiat'Dque


L',olution ncessite 1entre autres2 :

de #aire ,oluer les structures de donnes qui sont


mani&ules &ar les #onctions

d'ada&ter les traitements qui ne mani&ulaient @ l'origine


qu'un seul ty&e de document 1des li,res2
-l #audra donc modi#ier toutes les &ortions de code qui
utilisent la base documentaire &our grer les donnes et
les actions &ro&res au9 di##rents ty&es de documents.
15
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

89em&le : les lettres de ra&&el


5i on dsire que le dlai a,ant ra&&el ,arie selon le ty&e de
document em&runt: il #audra modi#ier la #onction qui ralise
l'dition des lettres de ra&&el.
struct Document
{
char nom[50];
doc_t type;
bool est_emprunte;
char emprunteur[50];
date_t date_emprunt;
} Docs[MAX_DOC];
!o"d lettres_de_rappel# ... $
{ ...
%or#"&0; "'nb_docs; "(($
{
"%# Docs["])est_emprunte $
{
s*"tch# Docs["])type $
{
case +,-./0 dela" & 10; brea2;
case 34-,D/O0 dela" & 4; brea2;
case CD.OM0 dela" & 5; brea2;
...
}
16
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle
8n #ait: c'est la quasi!totalit de l'a&&lication qui de,ra Ftre ada&te &our grer les
nou,elles donnes et raliser les traitements corres&ondants. 8t cela: @ c'aque
#ois qu'on dcidera de grer un nou,eau ty&e de document.
PremiDre amlioration &ossible : rassembler les ,aleurs qui caractrisent un ty&e:
dans le ty&e.
struct Document
{
char nom[50];
doc_t type;
bool est_emprunte;
char emprunteur[50];
date_t date_emprunt;
int delai_emprunt;
} Docs[MAX_DOC];
!o"d lettres_de_rappel# ... $
{ ...
%or#"&0; "'nb_docs; "(($
{
"%# Docs["])est_emprunte $
{
"%# date#$ 5& # Docs["])date_emprunt
( Docs[i].delai_emprunt $ $
"mpr"mer_rappel# Docs["] $;
...
}
17
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle
Deu9iDme amlioration &ossible : rassembler les traitements associs @ un ty&e:
au&rDs du ty&e.
A,antage : cela &ermet de retrou,er immdiatement oI #aire la modi#ication et ne
la #aire qu'@ cet endroit &rcis. Par e9em&le: dans notre e9em&le: dans un
#ic'ier s&cialement ddi au ty&e Document et ses #onctions ddies.
struct Document
{
)))
} Docs[MAX_DOC];
)))
"nt calculer_dela"_rappel# doc_t type $
{
s*"tch# type $
{
case +,-./0 return 10;
case 34-,D/O0 return 4;
case CD.OM0 return 5;
67 nou!eau8 type a9out:s "c" 76
}
}
)))
18
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle
Acrit en ces termes: le logiciel est &lus #acile @ maintenir et bien
&lus lisible.
Les modi#ications a&&ortes au logiciel de gestion de
mdiat'Dque nous ont amen @ trans#ormer ce qui tait @
l'origine une structure de donnes: mani&ule &ar des
#onctions: en une entit autonome: qui regrou&e un
ensemble de &ro&rits co'rentes et leur traitements
associs.
(ne telle entit s'a&&elle un objet et constitue le conce&t
#ondateur de l'a&&roc'e du mFme nom.
19
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Programmation #onctionnelle

Jca&itulati#
A&&roc'e #onctionnelle :
La modlisation est ralise @ &artir de #onctions que doit
raliser le systDme.
A&&roc'e oriente objet :
On identi#ie les objets mani&uls &ar le systDme: a,ec
leurs tats et leurs com&ortements.
-.$. L'objet et le gnie
logiciel
21
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Objet et gnie logiciel

>ualits d'un logiciel

0acteurs externes : du &oint de ,ue de


l'utilisateur
e9: ra&idit d'e9cution: #acilit de mise en oeu,re: ...

0acteurs internes : du &oint de ,ue du


&rogrammeur
e9 : rutilisation: lisibilit du code source: ...
22
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Objet et gnie logiciel

0acteurs internes de qualit

89actitude

Jobustesse

89tensibilit

Jutilisation

Com&atibilit

Portabilit

Mise en oeu,re

A&&rentissage

...
Modularit
23
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Objet et gnie logiciel

Modularit
Doit satis#aire les &rinci&es de :

Dcom&osition

Jutilisabilit

-nd&endance

Com&r'ensibilit
Caractrisent un objet
24
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Objet et gnie logiciel

Cycle de d,elo&&ement d'un logiciel


GrKce @ la &rogrammation oriente objet: on
ajoute des &ro&rits au9 classes dj@
introduites: ou on ajoute de nou,elles classes:
sans a,oir @ modi#ier l'e9istant.
Analyse Conce&tion -m&lmentation 6ests
n #ois
-.%. Les conce&ts de
l'a&&roc'e objet
26
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

La &rogrammation oriente objet re&ose sur trois


conce&ts de base :
La classe
" L'objet
$ L'hritage
27
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Objets et classes

Le terme orient objet signi#ie l'organisation du logiciel en un


ensemble d'objets incor&orant @ la #ois les structures de donnes et le
com&ortement. La &rogrammation con,entionnelle n'tablit qu'une
#aible conne9ion entre structure de donnes et com&ortement.

C'est la classe qui sert @ regrou&er sous un mFme terme gnrique


les objets &artageant la mFme structure de donnes et le mFme
com&ortement.

(n objet est une instance de classe.


28
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Objets et classes
Objets : Alice: Pierre: PaulL uni,ersit dMOrlans: uni,ersit Paris +:
uni,ersit Lyon .
Classe : regrou&ement d Mobjets de mFme ty&e: dans notre cas :
Personne
(ni,ersit
LMobjet est une instance de sa classe.
29
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.

Attributs
Conce&ts de l'a&&roc'e objet
Objet Classe
Pierre : Personne
") ans
Pierre Durand
%/ rue NOLA
Personne
Age : int
Oom : string
Adresse :string
30
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.

Mt'odes
Conce&ts de l'a&&roc'e objet
Personne
Age : int
Oom: Adresse : string
5ePrsenter12
Pieillir12
C'angerOom1Q2
ren,oie Oom
Age R Age;
31
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.

Classes
La classe est s&are en deu9 &arties :
. La spcification de la classe qui dcrit le domaine de d#inition et
les &ro&rits des instances de classes
". La ralisation de la classe qui dcrit comment la s&ci#ication est
ralise
Conce&ts de l'a&&roc'e objet
32
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.

>ue sont les objets ?


Les objets du monde rel nous entourent L ils naissent: ,i,ent et
meurent. 8n orient objet: ils sont allous: c'angent d'tat et se
com&ortent en consquence: et sont dsallous. Ce sont des
instances des classes.
Les objets in#ormatiques d#inissent une re&rsentation sim&li#ie des
entits du monde rel. -ls &eu,ent re&rsenter des entits concrDtes
ou des entits abstraites 1conce&ts2.
Conce&ts de l'a&&roc'e objet
33
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Les objets sont des abstractions


(ne abstraction est un rsum: un condens qui met en a,ant les
caractristiques essentielles et qui dissimulent les dtails.
Les caractristiques essentielles d'un objet sont celles qui sont
&rcises lors de la s&ci#ication de la classe dont il est une instance.
Les dtails: qui sont les dtails d'im&lmentation: sont &rciss au
moment de la d#inition des o&rations de la classe.
34
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Des caractristiques au9 attributs et


mt'odes S"
Approche fonctionnelle

Crer une structure qui re&rsente un nombre com&le9e

Crer une #onction qui retourne un com&le9e @ &artir de sa &artie


imaginaire et de sa &artie relle &asses en arguments

Crer une #onction qui additionne deu9 nombres com&le9es

...
35
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Des caractristiques au9 attributs et


mt'odes "S"
Approche objet

Crer une classe CCom&le9e qui contient :

5es attributs : &artie relle et imaginaire

5es mt'odes :

cration @ &artir de sa &artie relle et de sa &artie


imaginaire

s'additionner @ un autre nombre com&le9e

...
36
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Caractristiques #ondamentales des objets


L'identit
L'tat
Le com&ortement
37
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

L'identit

C'aque objet a sa &ro&re identit L deu9 objets sont distincts mFme si


toutes les ,aleurs de leurs attributs sont identiques. Cela se
com&rend aisment &uisque la &lace mmoire occu&e &ar c'aque
objet est distrincte.

Pour reconnaGtre un objet et le,er toute ambiguTt: on utilise: en


gnral: un identi#iant &articulier : nU de 55: &laque d'immatriculation:
cl dans une base de donnes: ...
38
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

L'tat et le com&ortement

Les attributs d'un objet &eu,ent contenir di##rentes ,aleurs. Ce sont


les di##rents tats que &eut &rendre l'objet.

Le com&ortement regrou&e toutes les com&tences d'un objet: sous


la #orme d'o&rations. C'est l'ensemble des actions et des ractions
de l'objet.

L'tat et le com&ortement sont lis :

le com&ortement d&end de l'tat

l'tat est modi#i &ar le com&ortement


Atterrir
Dcoller
Tour de contrle
Avion
en vol
Avion
au sol
39
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Communication entre objets

(ne a&&lication: en orient objet: est une socit dobjets


collaborants.

Comment: dans ces conditions: sont ralises les #onctions de


l'a&&lication ? Ce sont les objets: qui tra,aillent en synergie: &our
&ar,enir @ les raliser.

Donc: l'ac'D,ement d'une tKc'e &ar une a&&lication re&ose sur la


communication entre les objets qui la com&osent. L'unit de
communication entre les objets est le message.

Plus s&cialis et &lus coo&rati# que l'objet: l'agent 1im&lmentation


&artielle des agents &ossible en Java2. L'agent est &lus ada&t que
l'objet &our re&rsenter des Ftres intelligents.
40
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Communication entre objets


Objet 1
Objet 3
Objet 4
Objet 2
Message B
Message A
Message C
Message D
Message E
41
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Les messages
-l e9iste cinq catgories &rinci&ales de messages :
les constructeurs qui crent des objets
" les destructeurs qui dtruisent des objets 1&as en =a,a2
$ les slecteurs qui ren,oient tout ou &artie de l'tat d'un objet
% les modificateurs qui c'angent tout ou &artie de l'tat d'un objet
) les itrateurs qui ,isitent l'tat d'un objet ou le contenu d'une
structure de donnes qui contient &lusieurs objets
42
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

La &rogrammation Oriente Objet


On dit d'un langage de &rogrammation qu'il est un langage orient objet
quand il su&&orte les mcanismes :

d'hritage

de pol!morphisme

d'encapsulation
89: 5malltal7: 8i##el: C;;: D: =a,a: Del&'i...
43
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

L''ritage
Les 'irarc'ies de classes 1classification2 &ermettent de grer la
com&le9it en ordonnant les objets au sein dMarborescence de
classes dMabstraction croissante. Les classes descendantes 'ritent
des &ro&rits des classes ancFtres 1e9em&le : ,ertbrs:
mammi#Dres: 'ominids: 'ommes2.
Gnraliser
5&cialiser
(ne classe descendante 1une sous!classe2 &eut Ftre galement ,ue comme
un sous!ty&e du ty&e d#ini &ar la classe ancFtre 1la sur!classe2
89. : ensembles et sous!ensembles mat'matiques.
44
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

89em&le d''ritage
P'icule
P'icule
roulant
P'icule
arien
Vateau
Poiture Camion A,ion .lico&tDre A ,oile
Golette Catamaran
45
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

.ritage et red#inition

(ne sous!classe &eut s&cialiser les #onctionnalits de sa su&er!


classe en d#inissant de nou,eau9 attributs etSou de nou,elles
mt'odes dont elle 'rite de deu9 maniDres :

en rem&laWant com&lDtement la mt'ode 'rite &ar une nou,elle


im&lmentation

en s&cialisant la mt'ode 'rite en &ro&osant une nou,elle


im&lmentation qui rutilise celle 'rite

89em&le : calculer la sur#ace dMun &olygone: dMun quadrilatDre: dMun


triangle: dMun carr: dMun rectangle: dMun triangle isocDle: dMun triangle
rectangle: ...
46
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Jed#inition : rutilisation
8tudiant
Oom
Prenom
Age
A##ic'e12
8tudiant5&orti#
5&ortPratiqu
A##ic'e12
47
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Jed#inition :
substitution
Polygone
5ur#ace12
>uadrilatere
5ur#ace12
Jectangle
5ur#ace12
Carre
5ur#ace12
6riangle
5ur#ace12
6riangleJectgle
5ur#ace12
6riangle-socele
5ur#ace12
48
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Polymor&'isme

Le pol!morphisme signi#ie qu'une mFme o&ration &eut se traduire


di##remment selon l'objet sur laquelle elle s'a&&lique : C'est la
capacit dun objet prendre plusieurs formes.

On &arle galement de liaison d!nami"ue. Le &olymor&'isme


associ @ la liaison dynamique o##re une &lus grande sim&licit du
code 1&lus besoin de distinguer les cas en #onction des classes2 et
une &lus grande #acilit dM,olution du code 1les &rogrammes sont
&lus #acilement e9tensibles comme on &eut red#inir une o&ration
a&&artenant @ une classe dont on 'rite: a&&artenant @ une sur!
classe2.
49
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Polymor&'isme
Polygone
5ur#ace12
>uadrilatere
5ur#ace12
Jectangle
5ur#ace12
Carre
5ur#ace12
6riangle
5ur#ace12
6riangleJectgle
5ur#ace12
6riangle-socele
5ur#ace12
50
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Polymor&'isme

Pour e9&loiter &leinement le &olymor&'isme: il est courant de d#inir


des classes dont le seul rXle est de s&ci#ier une inter#ace 1un
ensemble de mt'odes2 commune &our toutes les classes qui en
seront dri,es.

Dans de telles classes: les mt'odes qui ser,ent @ d#inir cette


inter#ace commune sont le &lus sou,ent muettes 1elles ne contiennent
&as de code e##ecti#2.
51
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

Polymor&'isme : classe abstraite


ObjetGeom
Surface()
Polygone
5ur#ace12
52
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

L'enca&sulation S"

-l e9iste trois ni,eau9 de ,isibilit :

priv

protg

public

Cela &ermet de limiter les e##ets de bord.


53
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

8nca&sulation "S"

Jegrou&ement des attributs et des


mt'odes

Modularit :
&rotDge les donnes d Mune utilisation
errone
" cac'e les dtails des mt'odes

8,oluti,it: #iabilit
Personne
Age : int
Oom: Adresse : string
5ePrsenter12
Pieillir12
C'angerOom1Q2
54
Module Gnie Logiciel : Cours d'Analyse Oriente Objet.
Conce&ts de l'a&&roc'e objet

>uelques autres s&ci#icits de la POO

La surcharge 1&rototy&e de #onctions : &lusieurs mt'odes &ortant le


mFme nom @ lMintrieur dMune classe2

Les pr#conditions: les post#conditions: les invariants

La gnricit 1B template en !!)

Le traitement des situations exceptionnelles 1B t'roY C: B try C et


B catc' C : le,er et attra&er une e9ce&tion2

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