Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
08/12/2019 HIMI-Tizi-Ouzou 3
Programmation orientée
objet en C++
Chapitre 0 : Les concepts de base du paradigme
orienté objet
Résumé par : N. TAMANI
Objet, identité, état & comportement
Objet : Un objet est un élément concret ou abstrait du
monde réel. Il forme une unité atomique composée
d'un état et d'un comportement.
Identité : construite à partir d'un identifiant issu du
domaine d'étude.
État : à un instant donné, correspond à une sélection
de valeurs parmi toutes les valeurs possibles des
différents attributs de l'objet.
Comportement : qui regroupe toutes les compétences
de l'objet en termes d'opérations exécutées suite à un
message envoyé par un autre objet.
08/12/2019 HIMI-Tizi-Ouzou 5
Objet, identité, état & comportement
Exemple : soit l’objet étudiant
L’identité : numéro de carte d’étudiant;
État :
• Nom : Ali
• Prénom : Yacine
• Adresse : Tizi-Ouzou
• …
Comportement :
• inscrire ()
• Réinscrire ()
• Passer_examen ()
• …
08/12/2019 HIMI-Tizi-Ouzou 6
Classe, attributs & opérations
Classe : le domaine de définition d'un ensemble
d'objets. Chaque objet appartient à une classe.
La création d'objet à partir de leur classe se fait par le
processus d'instanciation.
La classe porte un nom issu du domaine de l'application, et
éventuellement un stéréotype qui décrit explicitement son
rôle dans le système.
Attributs ou données membres : les informations
caractérisant la classe; représentant l’état d’un objet;
Opérations ou fonctions membres : les services ou
responsabilité de la classe; opérations applicables aux
objets.
08/12/2019 HIMI-Tizi-Ouzou 7
Classe, attributs & opérations
Exemple : soit la classe Etudiant :
Attributs :
• Numéro_carte
• Nom
• Prénom
• Adresse
• …
Méthodes :
• inscrire()
• Se_réinscrire()
• Passer_examen ();
• …
08/12/2019 HIMI-Tizi-Ouzou 8
Encapsulation et masquage d’information
08/12/2019 HIMI-Tizi-Ouzou 9
Relations entre classes : l’association
Association : est une relation qui exprime une
connexion sémantique bidirectionnelle et symétrique
entre classes.
• L'extrémité d'une association est appelée rôle.
Exemple : étudiant s’inscrit en formation
Étudiant Formation
S’inscrire >
08/12/2019 HIMI-Tizi-Ouzou 10
Relations entre classes : l’association
Une information de multiplicité est précisée pour chaque rôle
dans l’association;
Multiplicité : précise le nombre d’instances (objets) qui
participent à l’association;
Les valeurs possibles :
1 Un et un seul objet;
0..1 Un objet au plus;
M..N De M à N objets (valeurs entières)
* Zéro ou plusieurs objets
0..* Zéro ou plusieurs objets
1..* Au moins un objet
08/12/2019 HIMI-Tizi-Ouzou 11
Relations entre classes : l’association
Exemple : étudiant s’inscrit en formation
• Du côté « étudiant », on fixe un objet « formation » puis on
détermine le nombre d’objets « étudiant » qui peuvent lui
être associés * ou 0..*
• Du côté « formation », on fixe un objet « étudiant » puis on
détermine le nombre d’objets « formation » qui peuvent lui
être associés 1
Étudiant Formation
* 1
S’inscrire >
08/12/2019 HIMI-Tizi-Ouzou 12
Relations entre classes : la dépendance
Dépendance : est une relation d'utilisation unidirectionnelle
entre éléments du même modèle.
La dépendance n’est pas forcément un lien entre objets;
La dépendance est limitée dans le temps;
Un élément A dépend d'un élément B, lorsque A utilise des
services de B.
Exemple : un objet « étudiant » nécessite l’objet
« print_manager » pour imprimer la carte d’étudiant;
Étudiant Printer_manager
08/12/2019 HIMI-Tizi-Ouzou 13
Relations entre classes : l’agrégation
Agrégation : représente une connexion
bidirectionnelle dissymétrique. Elle permet de
représenter les relations de type maître/esclave, tout
et parties ou composé et composants.
Exemple : un objet « ordinateur » est composé d’un
objet « UC », d’un objet « DD » et d’un objet
« périphérique »
UC
Ordinateur
DD
Périph.
08/12/2019 HIMI-Tizi-Ouzou 14
Relations entre classes :
généralisation/spécialisation
Généralisation/spécialisation : désignent une relation
de classification hiérarchique entre classes.
La généralisation : consiste à factoriser les éléments
communs (attributs, opérations et contraintes) d'un
ensemble de classes dans une classe plus générale
appelée superclasse.
La spécialisation : permet de capturer les
particularités d'un ensemble d'objets appartenant à des
classes identifiées. Ces particularités communes sont
représentées par une nouvelle classe, sous-classe des
classes existantes.
08/12/2019 HIMI-Tizi-Ouzou 15
Relations entre classes :
généralisation/spécialisation
Exemple de généralisation/spécialisation : un étudiant
est une personne : Personne
Num_SS
spécialisation
Nom
Généralisation
Prénom
Adresse
…
Étudiant
Num_carte
Année_étude
…
08/12/2019 HIMI-Tizi-Ouzou 16
Le polymorphisme
Polymorphisme : mot grec qui signifie « qui peut
prendre plusieurs formes ».
Caractéristique d’un même objet à se présenter sous
plusieurs formes selon le contexte;
Exemple : l’étudiant « Ali » se présente en tant qu’un
objet étudiant au sein de son établissement et en tant
qu’une personne à l’extérieur;
08/12/2019 HIMI-Tizi-Ouzou 17
Le polymorphisme
Le polymorphisme est relatif aux méthodes des
objets.
Polymorphisme d’opération;
08/12/2019 HIMI-Tizi-Ouzou 18
Méthode Orientée Objet
Appréhender le problème à résoudre selon le
paradigme Objet;
Concevoir la solution Objet sans rentrer dans les
spécificité d’un langage le modèle objet;
Représenter la solution sous forme graphique
(généralement l’UML) compréhensible par tous les
acteurs d’un projet logiciel;
Le concepteur Orienté Objet n’est pas forcément un
programmeur.
Exemple : Grady Booch, OOD, Rational Process, etc.
08/12/2019 HIMI-Tizi-Ouzou 19
Langage Orienté Objet
Outil d’implémentation d’un modèle objet;
Chaque langage possède ses spécificités
d’implémentation du paradigme Objet;
Existence d’outils d’automatisation du processus
d’implémentation : Rational Rose basé sur l’UML;
Exemple : C++, JAVA, etc.
Un programmeur n’est pas forcément un concepteur
objet;
08/12/2019 HIMI-Tizi-Ouzou 20
Programmation Orientée Objet
La programmation orientée objet implique :
1. Une conception d’un modèle objet à l’aide d’une
méthode;
2. Implémentation à l’aide d’un langage orienté objet;
08/12/2019 HIMI-Tizi-Ouzou 21