Vous êtes sur la page 1sur 48

Introduction à la programmation

Orientée Objet
Institut Supérieur des Etudes Technologiques de Bizerte
Anissa CHALOUAH
Le 08/12/2016

Anissa CHALOUAH 1
Introduction à l’approche objet

Anissa CHALOUAH 2
Qualité d’un logiciel : Problème

Anissa CHALOUAH 3
Qualité d’un logiciel : Solution
 Calquer les techniques de développement du matériel
= > Sous-traiter
Acquérir des composants déjà éprouvé (déjà testé et dont la fiabilité
est assurée) auprès de vendeurs réputés et se charger uniquement
de l’assemblage des machines.

Les constructeurs achetaient des « composants pré conditionnées »


c’est-à-dire des entités ayant des propriétés (poids, taille,…), une
fonction particulière et fournissant un ensemble de services à
travers des interfaces définies.
Anissa CHALOUAH 4
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 5
Qualité d’un logiciel : Critères

Correct Un logiciel est


Robuste correct s'ilRéutilisable
Extensible agit conformément a ses spéciations
Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 6
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Facile Un logiciel est robuste


Portable s'il agit de façonLivré
Fonctionnel approprié
à à des évènements
Vérifiable Intègre
anormaux.temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 7
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Facile Un logiciel est extensible


Portable s'il s'adapte facilement
Fonctionnel
Livré à aux changements de
Vérifiable Intègre
spécifications
temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 8
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Facile Un logiciel est réutilisable


Portable s'il peut servir
Fonctionnel
Livrépour
à construire plusieurs
Vérifiable Intègre
applications.temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 9
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Facile Un logiciel est compatible


Portable s'il peut se combiner
Fonctionnel
Livré à facilement avec d'autres
Vérifiable Intègre
logiciels. temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 10
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Un logiciel est efficient s'il utilise aussi peu
Portable Fonctionnel de ressources
temps que possible.Intègre
Vérifiable

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 11
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Un logiciel est facile d'utilisation


Réparable
si des gens avec des qualifications et des connaissances
Economique Maintenable Documenté
différentes peuvent se servir du logiciel pour résoudre des problèmes.

Anissa CHALOUAH 12
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Un logiciel est portable


Réparable
s'il peut être utilisée sur des environnements
Economique Maintenable Documenté
(matériel + système d'exploitation) différents.

Anissa CHALOUAH 13
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Un logiciel est fonctionnel


Réparable s'il fournit Maintenable
Economique un certain nombre de possibilités.
Documenté

Anissa CHALOUAH 14
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Un logiciel est livréEconomique


Réparable
à temps s'il est livré quand ou avant que ses
Maintenable Documenté
utilisateurs en ont besoin.

Anissa CHALOUAH 15
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Un logiciel est vérifiable


Réparable
si on aEconomique
établi des procédures permettant de détecter des erreurs
Maintenable Documenté
durant sa phase de validation et de mise en exploitation.

Anissa CHALOUAH 16
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Un logiciel est intègreEconomique


Réparable
s'il protège sesMaintenable
composants deDocumenté
modifications et
d'accès non autorisés.

Anissa CHALOUAH 17
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Un logiciel est réparable si l'on peut corriger
Portable Fonctionnel
temps ses fautes facilement.
Vérifiable Intègre

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 18
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Facile
Un logiciel est économique
Portable
s'il coûte ceLivré
Fonctionnel
qui àavait étéVérifiable
prévu dans le Intègre
budget ou moins.
temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 19
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Livré à
Facile Portable Fonctionnel Vérifiable Intègre
temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 20
Qualité d’un logiciel : Critères

Correct Robuste Extensible Réutilisable Compatible Efficient

Facile
documentation
Portable
externe : pour
Fonctionnel
lesàutilisateurs
Livré
Vérifiable Intègre
documentation interne : pour les développeurs
temps

Réparable Economique Maintenable Documenté

Anissa CHALOUAH 21
Qualité d’un logiciel : Points clés

Modéliser Modulariser

Encapsuler

Anissa CHALOUAH 22
Le paradigme Objet

Anissa CHALOUAH 23
L’approche objet

Décomposer un programme en un
ensemble d’entités (objets) qui
interagissent afin de réaliser une ou
plusieurs tâches.
Chaque objet possède certaines
propriétés et peut accomplir certaines
opérations.

Anissa CHALOUAH 24
Paradigme objet

Notre perception du monde qui nous entoure peut


être vue comme une collection d'objets en
interaction,
Il est donc plus naturel d'envisager le développement
des logiciels de cette manière

Le paradigme objet => Plus proche de notre


conception du monde réel

Anissa CHALOUAH 25
Programmation procédurale vs Programmation Objet
Programmation procédurale structuré PPS Programmation Orientée Objet POO

Anissa CHALOUAH 26
Programmation procédurale structuré PPS Programmation Orientée Objet POO

Programme Programme
Objet 1
Données
Objet 2
Variable
Données
Variable
Traitements
Données
Traitements Traitements
Procédure

Fonction
Données
Fonction Traitements
Procédure Objet 3

Anissa CHALOUAH 27
Programmation procédurale vs Programmation Objet
Programmation procédurale structuré PPS Programmation Orientée Objet POO

Langage : Pascal, C Langage :C++, Java


Question : Que doit faire le programme ? Question : : De quoi se compose mon
programme ?
Programmation basée sur les traitements : Programmation basée sur les données
Commencer par identifier les fonctions pour Commencer par identifier les objets manipulés par le
résoudre le problème, puis en déduire la manière de programme. Et c’est seulement après qu’on associe
stocker les données. un traitement à chacun des objets.

Séparation des données & des traitements Liaison inévitable entre données et
procédures opérant sur ces données
Anissa CHALOUAH 28
Programme Son
Une entité
OO exécution
les entités
un objet qui
collaborent
prend en
Une pour résoudre
compte sa
association le problème
propre gestion
d’entités final en
(objet
s'envoyant des
responsable)
messages.

Anissa CHALOUAH 29
Concepts fondamentaux de la POO

Anissa CHALOUAH 30
Concepts fondamentaux de la POO

Classe & Objet Abstraction Encapsulation Héritage Polymorphisme

Anissa CHALOUAH 31
L’Objet
Un objet en POO est une entité informatique utilisée pour modéliser informatiquement
des "objets" de la vie courante ou des concepts.

Exemples d’objets concrets : ville, véhicule, étudiant, un bouton sur l’écran.


Exemples d’objets conceptuels : date, réunion, planning de réservation.

Un objet réagit à certains messages qu’on lui envoie de l’extérieur ; la façon dont il réagit
détermine le comportement de l’objet.
Il ne réagit pas toujours de la même façon à un même message ; sa réaction dépend de
l’état dans lequel il est.
Anissa CHALOUAH 32
L’objet
Un objet possède :
Une identité unique (permet de distinguer un objet d’un autre)

Un état interne donné par des valeurs de variables (ou attributs)
Attributs décrivent l’état de l’objet à un instant donné

Un comportement (capacités d’action de l’objet) donné par des fonctions ou sous-
programmes, appelés méthodes (ou opérations).
Ces méthodes définissent le comportement de l’objet (ce qu’il peut faire, comment il peut le
faire…) et ses réactions aux stimulations externes.

Anissa CHALOUAH 33
L’objet : Exemples

Anissa CHALOUAH 34
Interaction entre objets
Les objets interagissent et communiquent entre eux par l’envoi de messages
Les méthodes publiques d’un objet correspondent aux messages que l’on peut lui
envoyer
Les messages sont caractérisés par
objet cible du message
nom de la méthode à déclencher
paramètres de cette méthode
La réponse à la réception d’un message consiste à exécuter la méthode associée

Anissa CHALOUAH 35
Interaction entre objets

Anissa CHALOUAH 36
Classe
Une classe est la description des caractéristiques communes à tous les objets.

Classe = schéma/moule/modèle d’objets

Une classe est un modèle de définition pour des objets


ayant même structure (même ensemble d'attributs),
ayant même comportement (mêmes opérations, méthodes),
ayant une sémantique commune.

Anissa CHALOUAH 37
Classe
 On définit l’objet comme l’instance d’une classe. Instancier une classe revient donc à
créer un objet à l’image de la classe,
La classe représente pour l’objet ce que représente le type pour la variable.

Une classe est un type abstrait qui encapsulent données (attributs) et


traitement(méthodes).
C’est une sorte de moule qui permet ensuite de créer autant d’instances qu’on veut. Ces
instances seront des objets de la classe auxquelles on pourra effectivement envoyer des
messages qui activeront les méthodes correspondantes.

Anissa CHALOUAH 38
Classe & Objet : Exemple
M1 : Montre
- Heure : 9 ;
- Minutes :15 ;
Montre - Secondes : 35 ;
- Heure : int ;
- Minutes :int ;
- Secondes : int ; M2 : Montre
+setHeure(int h) - Heure : 10 ;
+setMinute(int m) - Minutes :45 ;
+setSeconde(int s) - Secondes : 15 ;
+getHeure() : int
+getMinute() : int
+getSeconde() : int M3 : Montre
- Heure : 18 ;
- Minutes :30 ;
- Secondes : 30 ;

Anissa CHALOUAH 39
L’abstraction

Le processus d’abstraction consiste à identifier pour un ensemble d’éléments :

Des caractéristiques communes à tous les éléments (une même description)


Des mécanismes communs à tous les éléments (un même comportement)

Se concentrer sur l’essentiel et ignorer les détails


Ne représenter que les aspects qui ont de l’importance pour notre problème

Anissa CHALOUAH 40
L’abstraction : Exemple

• caractéristiques communes : Heures, Minutes, Secondes

• Comportement commun : LireHeure(), LireMinutes(), LireSecondes(), ModifierHeure(), ModifierMinute(), ModifierSeconde()

Anissa CHALOUAH 41
Encapsulation

Encapsulation
C’est le fait de regrouper au C’est également un processus
sein d’une même entité (l’objet), qui permet l’isolement et la
les données (attributs) et les dissimulation des détails
traitements (méthodes). d’implémentation.

Anissa CHALOUAH 42
L’encapsulation : Exemple

L’utilisateur n’a besoin de connaitre que les


différents éléments (afficheur et boutons) qui
lui permettrons de consulter l’heure, de la
modifier, de régler une alarme…
Il n’a nullement besoin de savoir comment cette
montre est montée, ni quel mécanisme permet
de la faire fonctionner.

Anissa CHALOUAH 43
L’héritage
Il permet de créer une nouvelle classe à partir d'une classe déjà existante.
Le nom "Héritage" indique le fait que la classe fille (la classe nouvellement créée)
contient les attributs et les méthodes de sa classe mère (la classe dont elle dérive).
En effet, les attributs et les méthodes de la classe mère (appelée aussi superclasse)
sont hérités par la classe fille (appelée aussi classe dérivée). Toutefois, de nouveaux
attributs et méthodes peuvent être ajoutés.

Anissa CHALOUAH 44
L’héritage : Exemple

Anissa CHALOUAH 45
Le polymorphisme

Le nom de polymorphisme vient du grec et signifie « qui peut prendre plusieurs
formes ».
Alors que l'héritage concerne les classes (et leur hiérarchie), le polymorphisme est
relatif aux méthodes des objets.
Le polymorphisme représente la faculté d’une méthode à pouvoir s’appliquer à des objets
de classes différentes.
Le polymorphisme est un mécanisme qui permet à une sous classe de redéfinir une
méthode dont elle a hérité tout en gardant la même signature de la méthode.

Anissa CHALOUAH 46
Le polymorphisme : Exemple

Dans une société, le calcul du salaire d’un administratif se fait selon une
formule fixe alors que celui d’un commercial dépend d’une commission
sur la quantité vendu.
On peut utiliser la même méthode calcul_salaire pour ces deux classes
différentes et avoir un comportement différent selon l’objet de la classe
qui a appelé la méthode.
Commercial

Anissa CHALOUAH 47
Conclusion
En POO, le résultat du processus d’abstraction et d’encapsulation est une classe
Une classe = Un type d’objet

Une classe définit un type

Une réalisation particulière d’une classe s’appelle une instance


Une instance = un objet

Un objet est une variable

Anissa CHALOUAH 48