Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre 1 Poo Maj - v2

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 27

Chapitre 1 : La programmation orienté objet

Niveau : 2A / 2P
Equipe C++
Enseignante :

Mme Soumaya Argoubi

Année universitaire :2020-2021

1
Plan du chapitre

Introduction

Concept Objet

Notions de classe et d’instance

Best Practice & Programmation modulaire


2

16/02/2021 2
1. Introduction

 Importance de la maintenance

❏ Cycle de vie d’un logiciel :


● Analyse et spécifications des besoins
● Conceptions globale et détaillée
● Codage (Implémentation)
● Test et validation
● Maintenance

❏ Le développement du logiciel est suivi de son installation, puis d'une phase


d'exploitation et de maintenance.
● Maintenance corrective : corriger les défauts du logiciel.
● Maintenance évolutive : faire évoluer les fonctionnalités du logiciel.

❏ La phase de maintenance (phase d’évolution du logiciel), est coûteuse,


puisqu'elle représente souvent plus des deux tiers du coût global d'un
logiciel. 3
1. Introduction
 Limites de l’approche structurée

❏ Programme = Structures de données + Opérations


❏ Programmation structurée : séparation entre les données et les
traitements.
❏ Les données sont généralement en début de programme et donc
visibles de toutes les fonctions qui suivent.

4
1. Introduction

 Limites de l’approche structurée

 Quand les données évoluent, une modification d’une


structure de données est répercutée sur tous les
programmes qui la manipulent.

 Nécessité parfois de reconstruire tout le programme.

 Maintenance coûteuse, réutilisabilité et extensibilité très


difficiles.
1. Introduction

 La programmation orientée Objet (POO)

• Les objectifs:
• Faciliter le développement et l'évolution de l’application.
• Permettre le travail en équipe.
• Augmenter la qualité des logiciels ( moins de bugs).

 Solutions Proposées:
• Découper (Séparer) les parties des projets.
• Limiter (et localiser) les modifications lors des évolutions.
• Réutiliser facilement du code.

6
1. Introduction
 Solutions de la POO

❏ Regrouper les données et les opérations qui les manipulent au sein


d’un même entité : Objet
❏ Objet = caractéristiques (attributs) + actions (méthodes)
❏ Vision plus proche de la notre perception du monde réel
❏ Abstraction des données

7
1. Introduction

8
2. Application

Exercice

Ecrire un programme en langage C++ permettant de calculer la surface d’un


rectangle.

5 minute

16/02/2021 9
2. Application

Données :
Variables

Arguments

Traitement

16/02/2021 10
2. Application
Dans la programmation procédurale :

Données et traitements séparés

Absence de lien sémantique


Agissen
t

Traitements Données

16/02/2021 11
Influencen
2. Application

Arguments

Fonctions Variables
Agissen
t

Traitements Données

Influencen
16/02/2021 t 12
2. Application

Rectangle

Lien Sémantique

Rectangle

16/02/2021 13
2. Application
Même entité

Agissent

Traitements Données

Influencent

16/02/2021 14
3. Concept Objet

Rectangle Même entité Objet


largeur Données caractéristiques du rectangle
hauteur

surface () Traitements qui lui sont spécifiquement associés

16/02/2021 Lien EXPLICITE 15


3. Concept Objet

Rectangle

largeur
Données : Attributs
hauteur
Un objet est défini par ses
attributs et ses méthodes

surface Traitements : Méthodes

16/02/2021 16
4. Notions de classe et d’instance
• Plusieurs Objets Rectangles  une classe Rectangle .

s
• Une classe = Une catégorie d’objet Définit Un nouveau type

• Un objet = Une instance de classe C’est une Variable

• Déclaration d’une classe en C ++ :


class nom_classe { ……. };

• Déclaration d’une instance (Variable) :

nom_classe nom_instance ;
16/02/2021 17
4. Notions de classe et d’instance
• Notre premier programme en C++ :

?… Déclaration de la
classe ⮚ La variable rect1 est une
instance de la classe
Rectangle.

Déclaration de ⮚ rect1 représente un Objet


l’instance

16/02/2021 18
4. Notions de classe et d’instance

Déclaration des attributs de la


classe

Accès aux attributs pour


modification

16/02/2021 Accès aux attributs pour affichage


19
4. Notions de classe et d’instance

• Déclaration des méthodes d’une classe:

Entête de la
⮚ Une fonction relative à une classe bien déterminée. méthode

type_retour nom_methode (type parametre1, type parametre2, …… )

{ Corps de la
……. méthode
}

⮚ Cette déclaration se fait dans la classe


16/02/2021 20
4. Notions de classe et d’instance

Où sont les paramètres de notre méthodes ?

• Fonction usuelle : Besoin d’argument pour pouvoir faire le traitement demandé.

• Méthode de classe : a accès aux attributs de la classe.

• On ne passe jamais les attributs d’une classe comme paramètres de ses méthodes.

16/02/2021 21
4. Notions de classe et d’instance

• Les méthodes sont donc :

• Des fonctions propre à la classe

 Ont, donc, accès à tous ses attributs.

• Attention !

⮚ Une méthode peut avoir des paramètres.

⮚ Si elle a besoin de données en dehors de l’instance pour pouvoir fonctionner.

16/02/2021 22
4. Notions de classe et d’instance

16/02/2021 23
5. Best practice & Programmation modulaire

• Le nom d’une classe doit commencer par une lettre en Majuscule.

• Les noms des méthodes et des attributs doivent commencer par des lettre
en Minuscule.

• Si le nom est composé, la première lettre du deuxième mot doit


commencer par un Majuscule. Expl: nomCompose

• La déclaration d’une classe, de ses attributs et des entêtes de ses


méthodes seront placés dans des fichiers header (.h).

• Les corps des méthodes seront placés dans des fichiers sources (.cpp).

16/02/2021 24
Acquis

• Reconnaitre les notions d’objet, d’instance et de classe.

• Distinguer ente la partie données et la partie traitements d’un objet.

• Modéliser un problème de la vie courante en utilisant l’approche POO, la


syntaxe C++ et la programmation modulaire.

16/02/2021 25
Bibliographie & Netographie

• Introduction à la programmation orientée objet (en c++), MOOC EPFL.


https://fr.coursera.org/learn/programmation-orientee-objet-cpp

• Cours de C/C++, Christian Casteyde.

16/02/2021 26
Merci pour votre attention !

16/02/2021 27

Vous aimerez peut-être aussi