Vous êtes sur la page 1sur 17

Cours POO et GL

2 IÈME A N N É E I N F
DÉPARTEMENT D’INFORMATIQUE
UNIVERSITÉ DE BATNA
ANNÉE 2014

26/02/2014
Patrie 1 : Introduction à la Programmation OO
2

Objectifs générales :
 Dans ce cours, l’apprenant doit comprendre les concepts
fondamentaux de l’approche Orienté Objet.
 Savoir les différentes phases de développement d’un logiciel
robuste (cycle de vie)

Pre-requis:
Aquisotion des notions de base de la programmation
procédurale /impérative, tel que:
• Type, variable
• structure de contrôle (boucle, test,…)
• Fonctions, paramètre, …

26/02/2014
Tableau de matières
3

 Patrie 1 : Introduction à la Programmation OO


1.1 pourquoi l’orienté Objet?
1.2 Objet et Classe
1.2 Encapsulation et Abstraction
1.3 Héritage
1.4 Polymorphisme
 Partie 2: Génie logiciel
2.1 cycle de vie d’un logiciel
2.2 conception OO par UML.

26/02/2014
1.1 pourquoi l’orienté Objet?
4

Dans les programmes que vous écris jusqu’à


maintenant, les notions
• Variables/type de données
• Traitements de ces données / (fonctions)
étaient séparées  style de programmation appelé
impérative/ procédurale
Inconvénients

- Plusieurs procédures agir sur les mêmes


données -> effets de bord
- modifier une procédure: comment avait
elle été appelée?
- code est peu lisible et difficile à modifier,
à maintenir
- Réutilisation du code incertaine
- …

26/02/2014
1.1 pourquoi l’orienté Objet ?
5
Exemple d’un programme procédurale:
Q- Comment les traitements
manipulent les données?
R- par le biais des arguments
 Pas de lien sémantique
explicite

Q- changer surface par


produit, que ce passe-t-il?
R- Code illisible et
incompréhensible

Solution?

26/02/2014
1.1 pourquoi l’orienté Objet ?
6

Largeur
Solution est de regrouper les données d’un
Hauteur
rectangle et leurs traitements qui lui sont
spécifiquement associé dans une seul entité
Surface()

rectangle

En doit utilisé un nouveau style de programmation, c’est le style


qui utilise des objets (qui regroupe les données et leurs traitement
dans une seul entité).

Ce style ou paradigme appelé programmation Orienté Objet.

26/02/2014
1.1 pourquoi l’orienté Objet ?
7

Définition
La programmation Orienté Objet POO est le fait de découper un
programme en objets qui interagissent les uns avec les autres et de
prévoir ces interactions.

L’approche OO confère au programme de bonne propriétés:


• Grande clarté conceptuelle
• Avantage de robustesse face au modification futur
• Meilleurs maintenabilité

26/02/2014
L’Objet
8
Objet identité : valeurs de ses données
caractéristiques
- Données Etat : valeurs de ses données
- Opérations()
comportement : est l’ensemble des opérations
qu’il peut exécuter en réaction aux messages
envoyés par les autres objets.

Exemple 1
Objet Rectangle
‘rect1’

identité : rect1
- Largeur =3.0
- Hauteur=2.5 Etat : largeur=3.0 et hauteur =2.5
- surface()
comportement : peut calculer son surface.

26/02/2014
L’Objet
9
Exemple 2 Dans une entreprise, un employé TOTO (son numéro de sécurité
sociale 1 05 73 123 456 permet son identification unique dans
l’entreprise), est employé sur un poste de technicien dans la société
X située à Alger.

Objet Rectangle
‘employé 1’

identité : employé 1
- num sécu
- nom
- qualification Etat : - num sécu : 1 05 73 123 456
- lieu de travail - nom : TOTO
- Entrer(), - qualification : Technicien
- sortir() - Lieu de travail : Alger
- Changer-quali comportement : - entrer/sortir de la société
- changer de qualification
- changer de lieu de travail

26/02/2014
Classe
10

Avant de créer des objets, il faut définir un modèle. Des objets pourront
être crées à partir de ce modèle. Ce modèle s’appelle une classe.

En programmation Objet:

 Le résultat des processus d’encapsulation et d’abstraction s’appel une classe


 Une classe définit un type abstrait de données
 Un objet est une variable de ce nouveau type classe

Pour cela en doit comprendre en premier lieu les deux concepts de base
encapsulation puis l’abstraction

26/02/2014
Encapsulation
11
Encapsulation : regrouper dans le même objet, les donnée et les traitements
qui lui sont spécifiques.

 Attributs: les données inclus dans un objet


 Méthodes: les fonctions (traitements ou opérations) définie s dans l’objet

Exemple
Un objet Robot qui a deux vitesses
(gauche et droite). Il peut avancer
en avant (ou reculer en arrière)
quand ses deux vitesses sont égaux
et positifs (négatif respectivement).
Comme il peut touner vers la
gauche (ou la droite) si les 2
vitesses sont différents. Il peut
aussi freiner si les deux vitesses
tendent vers le 0.

26/02/2014
Encapsulation
12
questions qui se posent :
 Comment peut-on empêcher le blocage des roues ? Empêcher que vitG=vitD=0
pour ne pas avoir un freinage brutal ;
 Comment empêcher l’inversion brutale du sens de rotation des moteurs ?
comment éviter de casser la mécanique (il marche en avant et on lui demande
d’aller directement en arrière son freinage en changeant ses deux vitesses en
valeurs négatives).
 Comment éviter un virage trop serré qui remettrait en cause la stabilité de la
trajectoire ? Eviter un renversement

Il faut empêcher la modification directe de l’état du robot.


Comment??

Des règles d’accès à l’état d’un objet sont indispensables pour éviter les
mauvaises utilisations. Ces règles appelés Règles d’encapsulation.

26/02/2014
Encapsulation
13

il faut utiliser plutôt les méthodes (avancer, tourenr, …) dont les concepteurs
auront prévu ces cas d’utilisation extrêmes au lieu d’accéder directement à ses
attributs.

26/02/2014
Encapsulation
14

L’encapsulation : en plus de regrouper de données et des traitements relatifs à


une entité, elle permet de définir deux niveaux de perceptions des objets:

1- Niveau externe : partie visible (par le programmeur utilisateur), appelé


Interface

2- Niveau interne : détaille de l’implémentation, définition de toutes les


méthodes de l’objet, qui peuvent accéder à tous les attributs.

Avantage:
• une meilleure visibilité et une meilleure cohérence au programme
• une plus grande modularité.
• un cadre de programmation plus rigoureux à l’utilisation des objets, de sorte
que les objet ne peuvent être utilisés qu’au travers de leur interface (niveau
externe)

26/02/2014
Interface d’un objet
15

Exemple: l’interface d’une voiture


 Volant, accélérateur, pédale de frein, etc.
 Tout ce qu’il savoir pour la conduire (mais pas la réparer! Ni comprendre
comment ça marche)
 L’interface ne change pas même si l’on change de moteur (avantage de
l’abstraction est la robustesse)

26/02/2014
Abstraction
16

Résumé
attributs méthodes
Abstraction

Interface
(partie Visible)

implémentation
(partie interne)
Détails

26/02/2014
Exercice
17

Exercice :
Soit un objet chien qui a une taille et un nom. Cet objet peut aboyer de 3 façons
différentes selon sa taille. Si sa taille >60 alors il aboit ainsi : « Grrr Grrr » ; si sa
taille est entre 15 et 60 donc il aboit « Aoef aoef ». S’il est petit ( taille < 15 ) alors il
aboit « Kaif, Kaif ».

- Essayer vous de déterminer les données (attributs) et le comportement de cet


objet.

Dans le cas où il est possible d’accéder directement à sa taille pour sa modification.


- comment éviter d’avoir le cas d’un objet chien ayant la taille 0. Quels mécanismes
devez vous uitiliser.

Grrr Grrr Aoef aoef Kaif, Kaif


26/02/2014

Vous aimerez peut-être aussi