Vous êtes sur la page 1sur 41

Conception Orientée Objet

1 Partie ère

L’Orientation Objet

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 1


Conception Orientée Objet
L’Approche Fonctionnelle – 1960-1980

 Les fonctions du système


 Identifier les fonctions du système
 Découpages en sous-fonctions

 Analyse Fonctionnelle
 Fonctions Principales …

 Inconvénients :
 Modification de données  modification en cascade de blocs fonctionnels
utilisant ces données
 Evolutivité et maintenabilité parfois difficile
 Données séparées des traitements
 Faible niveau d’abstraction des données

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 2


© Copyright Nat System 2016 2
Conception Orientée Objet
L’Approche Orientée Objet– 1980 - …

 S’inspire du « monde réel » fait d’objets communiquant entre eux


et possédant :
 Des propriétés intrinsèques ou dépendant d’éléments extérieurs
 Des comportements intrinsèques ou dépendant d’éléments extérieurs

 Un objet c’est :
 Des données (ou propriétés, attributs)
 Des traitements manipulant ces données et définissant son comportement
(Opérations, méthodes)
 Des échanges de messages avec les autres objets

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 3


© Copyright Nat System 2016 3
Conception Orientée Objet
Un Objet

Ampoule
intensité
Lampe

allumer ()
éteindre()
intensifier()
diminuer()

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 4


© Copyright Nat System 2016 4
Conception Orientée Objet
les Choses ; les Etres ; les évènements

 Ce qui est inerte, stable dans le temps,


 Classes statique

 Ce dont l’état se modifie dans le temps


 Classes dynamique

 La communication entre ces différents éléments

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 5


© Copyright Nat System 2016 5
Conception Orientée Objet
Entité ; Attribut ; Valeur

 Une entité (un objet) est une chose concrète ou abstraite de la


réalité perçue, à propos de laquelle on veut conserver des
informations. Une entité a une existence autonome.

 Les attributs sont les propriétés particulières d’une entité. C’est


une qualité. Un attribut peut prendre une ou plusieurs valeurs.

 Une valeur est un symbole pour représenter un fait élémentaire.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 6


© Copyright Nat System 2016 6
Conception Orientée Objet
Entité ; Attribut ; Valeur - Exemples

<voiture, couleur, rouge>


<voiture, marque, Peugeot>

<passant, taille, grande>


<passant, âge, 50>

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 7


7
© Copyright Nat System 2016
Conception Orientée Objet
Entité ; Attribut ; Valeur (suite)

 Les attributs peuvent être:


 Atomiques : ex prénom, nom, …
 Composés : Date de naissance = (jour - mois – année)

 Monovalué : Une seule valeur, ex: date de naissance


 Multivalué : Plusieurs valeurs, ex: les prénoms.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 8


8
© Copyright Nat System 2016
Conception Orientée Objet
Stockage des objets en mémoire

 Il existe un ensemble de « types primitifs » d’attribut :


 Entier codé sur « n » octets
 Réel signe + mantis + exposant => « n » octets
 Chaîne de caractères de « x » caractères
 Etc.

 Permet de déterminer la place occupée en mémoire par l’objet


(taille des types primitifs)

 Tout objet est identifié par son référent ou handle qui permet de
déterminer l’adresse physique en mémoire de l’objet

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 9


© Copyright Nat System 2016 9
Conception Orientée Objet
Base de Données Relationnelles

 Les « types primitifs » se retrouvent dans les Bases de Données


dites Relationnelles

 Mode permanent de stockage des données le plus répandu.

 Les données sont stockées en tant qu’enregistrement, dans des


tables, sous forme de couples attribut/valeur, dont une clé
primaire.

 Les relations entre tables sont établies par un mécanisme de


jonction de clé primaire de la première table et de clé dite
étrangère de la table à laquelle on désire la relier.
Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 10
© Copyright Nat System 2016 10
Conception Orientée Objet
Stockage des objets
en mémoire

11
Objets dans la mémoire de l’ordinateur
Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020
© Copyright Nat System 2016 11
Conception Orientée Objet
Plusieurs référents pour un même objet

Mécanisme
d’adressage
indirect

Adresse de
l’objet

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 12


© Copyright Nat System 2016 12
Conception Orientée Objet
Objet Composite
 Composition : entre eux, les objets peuvent être dans une
relation de composition, où certains se trouvent contenus dans
d’autres.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 13


© Copyright Nat System 2016 13
Conception Orientée Objet
Changement d’Etats

 Le cycle de vie d’un objet, lors de l’exécution du programme


orienté objet, se limite à une succession de changements d’états,
jusqu’à sa disparition pure et simple de la mémoire centrale.
Exemple : la couleur d’un feu de signalisation change constamment d’état de
vert à orange et rouge

Entier couleur Change :


1,2 ou 3 Couleur = (couleur + 1)
If (couleur == 4) couleur =1

Mémoire des Mémoire des


objets opérations

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 14


© Copyright Nat System 2016 14
Conception Orientée Objet
Objets en Interaction

 « feu-de-signalisation » parle à « voiture »

Change :
Entier/couleur 3 Couleur = (couleur + 1)
Feu-de-signalisation If (couleur == 4) couleur =1
If (couleur == 1)
voitureDevant changeVitesse(50)

Voiture-vue-dans-la-rue Entier/vitesse 0
changeVitesse(int v)
Vitesse = v

Mémoire des Mémoire des


objets opérations
Changement de couleur du feu induit changement de vitesse de la voiture.
- La méthode change permet la modification de la couleur du feu.
- La méthode changeVitesse permet de changer la vitesse de la voiture.
Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 15
© Copyright Nat System 2016 15
Conception Orientée Objet
Classes et Méthodes

 La classe réunit tous les attributs et toutes les opérations


qui y accèdent et qui portent sur ceux-ci.

« un modèle représentant une famille d’objets »

 Les méthodes sont l’ensemble des opérations portant sur les


attributs de l’objet.
 La méthode a la particularité de ne s’exécuter que sur un objet
précis.
 L’objet sur lequel s’exécute le code est un argument implicite de la
méthode.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 16


© Copyright Nat System 2016 16
Conception Orientée Objet
Evènements & Messages

Changement de couleur du feu : c’est un évènement


L’objet « feu » envoi un message aux objets voitures…

 L’envoi d’un message revient à informer un ou plusieurs objets


d’un changement d’état.

 La réception d’un message par un objet– s’il désire traiter


l’information – provoque l’exécution d’une méthode.

 Un message est envoyé soit à un destinataire particulier, soit sur


un bus de messages.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 17


© Copyright Nat System 2016 17
Conception Orientée Objet
Messages, Evènements & Ecouteur

 Un objet peut envoyer un message directement à un second


objet.

 Ecouteur d’évènements (listener) :


Un objet peut se mettre à l’écoute d’un changement d’état d’un
autre objet – à l’écoute d’évènements.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 18


© Copyright Nat System 2016 18
Conception Orientée Objet
Un Objet est une Instance de sa Classe

 Une classe est une description d'un ensemble d'objets ayant une
structure de données commune et disposant des mêmes
méthodes.

 Les définitions des classes doivent correspondre à des unités


fonctionnelles indépendantes.

 Une classe est un modèle d'objet. A l'inverse, un objet a une


réalité matérielle car il possède des champs avec valeurs.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 19


© Copyright Nat System 2016 19
Conception Orientée Objet
Les différents états d’un objet

 Les objets changent d’états continûment – ils sont dynamiques et


la valeur de leurs attributs change dans le temps :
 Soit par mécanismes qui leur sont propres
 Ex : feu de signalisation
 Soit en raison d’un interaction avec un autre objet
 Ex : Voiture arrêté au feu rouge

Un programme orienté objet se limite à une succession de


changements d’états jusqu’à sa disparition.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 20


© Copyright Nat System 2016 20
Conception Orientée Objet
Héritage et Taxonomie

 Permet de définir une nouvelle classe (sous-classe, classe


descendante) à partir d’une classe existante (super-classe, classe-
mère) à laquelle on ajoute de nouvelles données et de nouvelles
méthodes
 Permet la spécialisation de classes existantes
 Economie de code
 Structuration du code => lisibilité
 Héritage multiple
 Héritage de plusieurs super-classes

 C’est donc une organisation hiérarchique ou taxonomique, (càd


science de la classification).
Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 21
Conception Orientée Objet
Héritage et Taxonomie (suite)

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 22


Conception Orientée Objet
Constructeur Destructeur

 Les constructeurs servent à construire l'objet en mémoire


 Mise en place des données
 Association des méthodes avec les champs (seule une copie des méthodes
est gardée en mémoire)
 Etablissement du diagramme d’héritage de l’objet

 Les destructeurs se chargent de détruire l'instance de l'objet.


 La mémoire allouée pour le diagramme d'héritage est libérée

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 23


23
Conception Orientée Objet
Symbole et Emblème

 Symbole : signe, être naturel et universel qui peut faire usage


d'emblèmes selon la culture et le temps.

 Emblème :élément conventionnel qui est localisé dans une


culture, dans un lieu.

 Exemple
 Le « Soleil » est un symbole de chaleur, de lumière et de vie.
 Le « Soleil » est un emblème d’unité ou encore de la royauté.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 24


Conception Orientée Objet
Signature

 La Théorie des signatures ou principe de signature est une


méthode d'observation des plantes dont les noms, les formes, les
couleurs et les nombres indiquent leur utilisation en médecine.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 25


Conception Orientée Objet
Signature

 La signature de la méthode est ce qui permet de la retrouver dans


la mémoire des méthodes :
 Nom de la méthode
 Liste ordonnée des types de ses arguments

Surcharge
 Toute modification de cette liste pourra donner naissance à une
nouvelle méthode : surcharge de la précédente.

Même nom mais pas les mêmes paramètres

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 26


Conception Orientée Objet
Polymorphisme

 Des méthodes ayant le même nom sont redéfinies dans


des classes filles différentes ;
 Permet de manipuler des objets sans en connaître totalement
leur type dans un contexte d’héritage (classes dérivées) ;
 Permet des tableaux d’éléments hétérogènes ;
 Structuration des objets avec des méthodes communes et des
méthodes spécifiques.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 27


Conception Orientée Objet
Principe de substitution

 On peut remplacer un objet de la classe mère par


un objet de la classe fille.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 28


Conception Orientée Objet
Interface

 Une interface est constituée d’une


liste de signatures de méthode qui
pourront faire l’objet d’envoi de
messages.
 Cette liste constitue la partie visible
de l’extérieur de la classe.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 29


Conception Orientée Objet
Hiérarchie

 Généralisation : du particulier au général


 regrouper les objets présentant des similitudes pour former une classe de
base (classe mère)
 mise en facteur commun de certaines structures ou certains
comportements.

 Spécialisation : du général au particulier


 Nécessité de préciser un objet quand des différences se présentent =
subdivision de la classe mère en classes filles (ou sous classes)

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 30


Conception Orientée Objet
Surcharge

 La Surcharge ou sur-définition d’un symbole conduit à plusieurs


significations différentes dans lesquelles on choisit en fonction du
contexte : emblème

 Les méthodes usuelles et statiques peuvent être redéfinies.

 Plusieurs méthodes peuvent avoir le même nom à condition que


le nombre et le type de leurs arguments permettent au
« langage » d’effectuer un choix, donc, à condition qu’elles aient
des signatures différentes

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 31


Conception Orientée Objet
Classe Anonyme

 Le fait de définir une classe interne, sans lui donner de nom par
dérivation d’un super classe, ou par implémentation d’une
interface.
 Elle pourra donc accéder aux méthodes et aux attributs
de la classe l'englobant
/** lasse englobante */
public class ClasseEnglobante {
/* Méthode englobant l'appel à une classe anonyme */
public void methodeEnglobante(){
/** Déclaration et instanciation de la classe anonyme pour un bouton
* Le bouton est déclaré 'final' afin que la classe anonyme puisse y accéder */
final JButton bouton = new JButton("monBouton");
bouton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(bouton.toString());
}
});
}
}

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 32


Conception Orientée Objet
POO et les langages de programmation

 Ada
 C++
 C#
 Delphi
 NatStar
 JAVA
 Perl
 PHP
 Python
 Ruby
 VB
 Etc.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 33


Conception Orientée Objet
Conception Procédurale - Conception Objet

Conception Procédurale
 Code plus rigide Conception Objet
 Pensée linéaire  Code plus modulable
 Moins lisible  Pensée analogique
 Découpage en de grandes  Plus lisible
fonctions imbriquées  Identification des acteurs et de
 Grosse structure de donnée leurs comportements
 Données réparties dans les
objets
 Plus proche du langage naturel
la_proie.repère(prédateur)

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 34


Conception Orientée Objet
Conception Procédurale - Conception Objet
(suite)

 Attention à ne pas confondre la conception avec le langage !

 Il n’est pas rare de voir des programmes de « Conception


Procédurale » écrits à l’aide d’un langage « Orienté Objet »

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 35


Conception Orientée Objet
Conception Procédurale

Le découpage logiciel se fait


avec des grands blocs
fonctionnels

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 36


Conception Orientée Objet
Conception Objet

Le découpage du logiciel se fait


entre les classes qui regroupent
les descriptions structurelles
avec les activités
les concernant.
Les classes interagissent
entre elles.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 37


Conception Orientée Objet
Encapsulation des données

 L'encapsulation permet de protéger les données d'un objet.


En effet, il n'est pas possible d'agir directement sur les données
d'un objet. Il est nécessaire de passer par ses méthodes qui jouent
le rôle d'interface obligatoire.
 L'appel de méthode est en fait l'envoi d'un message à l'objet.
 Vu de l'extérieur, un objet se caractérise uniquement par les
spécifications de ses méthodes.
 La manière dont sont réellement implantées les données est sans
importance.
 Le fonctionnement interne de l'objet est caché au monde
extérieur.
Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 38
Conception Orientée Objet
Encapsulation des données (suite)

 Correspond à une déclaration « privé » ou « private »

 Renforce la maintenabilité du code

 Exemple : l’accès à la conduite de la voiture par le conducteur ne


présuppose pas la connaissance de la conception technologique
du moteur, de l’embrayage, etc.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 39


Conception Orientée Objet
Visibilité des champs et des méthodes

 Visibilité Publique public


 accessibles partout

 Visibilité Privée private ANGKOR-VAT : 3 enceintes


 restreint la portée d'un champ ou d'une méthode au module où il (ou elle)
est déclaré(e).

 Visibilité Protégée protected


 tout champ ou méthode protégé(e) est accessible dans tous les
descendants, quel que soit le module où ils se situent.

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 40


Conception Orientée Objet
Accesseurs et Mutateurs

Les données membres notées « Privé » ne peuvent pas être manipulées


directement par les méthodes membres des autres classes. Ainsi, pour pouvoir
manipuler ces données membres, il faut des fonctions membres spéciales portant
l'étiquette « Publique ».

 Les fonctions membres permettant d'accéder aux données


membres sont appelées accesseurs ou getter

 Les fonctions membres permettant de modifier les données


membres sont appelées mutateurs ou setter

Support de cours Conception Orientée Objet – Enoch BIDIMA IST 2020 41

Vous aimerez peut-être aussi