SlideShare une entreprise Scribd logo
Analyse et Conception Orienté
Objet
Module : Programmer en Orienté
Objet
Filière : Développement Digital
Formatrice : Meriem Onzy
E-mail : meriem.onzy@ofppt.ma
Unified Modeling Language
CHAPITRE 1
Génie Logiciel
Conduite de projet
informatique
Phases de développement
Méthodes
d’analyse/conception
01
Génie
Logiciel
L’ingénierie logicielle, est une discipline qui concerne
l'application systématique des principes, des
méthodes et des pratiques de l'ingénierie pour le
développement, la maintenance et l'évolution de
logiciels de qualité.
ualité
ǫ du
logiciel
Facteurs internes (concepteur)
• Réutilisabilité
•Aptitude d’un logiciel à être réutilisé, en tout ou en partie,
pour d ’autres applications
• Vérifiabilité
• aptitude d’un logiciel à être testé (optimisation de la
préparation
et de la vérification des jeux d ’essai)
• Portabilité
• aptitude d’un logiciel à être transféré dans des
environnements
logiciels et matériels différents
Facteurs externes
(utilisateur)
• Validité
• aptitude à répondre aux besoins et à remplir les fonctions
définies dans le cahier des charges
• Extensibilité
• facilité avec laquelle de nouvelles fonctionnalités peuvent
être
ajoutées à un logiciel
• Sécurité
• aptitude d’un logiciel à protéger son code contre des accès
non
autorisés.
• Efficacité
• utilisation optimale des ressources matérielles (processeur,
CHAPITRE 1
Génie Logiciel
Conduite de projet informatique
Phases de développement
Méthodes
d’analyse/conception
Modèles de développement
Un
Projet
Ensemble d’actions à entreprendre afin de répondre
à un
besoin défini dans des délais fixés, mobilisant des
ressources humaines et matérielles, possédant un
coût.
Acteurs d’un projet
Maitre d’ouvrage : personne physique ou morale
propriétaire de l’ouvrage. Il détermine les
objectifs, le budget et les délais de réalisation.
Maître d’œuvre: personne physique ou morale
qui reçoit mission du maître d’ouvrage pour
assurer la conception et la réalisation de
l’ouvrage.
Conduite de projet
Organisation méthodologique mise en œuvre
pour faire en sorte que l’ouvrage réalisé par le
maître d’œuvre réponde aux attentes du maître
d’ouvrage dans les contraintes de délai, coût et
qualité.
Qualité
Délai
Cout
CHAPITRE 1
Génie Logiciel
Conduite de projet informatique
Phases de développement
Méthodes d’analyse/conception
Modèles de développement
Activité en
binôme
• Étude de la
faisabilité
Proposez un ordre des différentes étapes d’un projet
informatique
• Planificatio
n
• Spécification des
besoins
• Analyse (Spécification
formelle)
• Conception (Spécification
technique)
• Implémentation
(Codage)
• Tests
unitaires
• Intégration et
tests
• Livraiso
n
• Maintenanc
e
Cycle de vie d’un
logiciel • Étude de la faisabilité
• Planification
• Spécification des besoins
• Analyse (Spécification formelle)
• Conception (Spécification
technique)
• Implémentation (Codage)
• Tests unitaires
• Intégration et tests
• Livraison
• Maintenance
Planification
• Objectifs : identification de plusieurs solutions et évaluation
des
coûts et bénéfices de chacune d'elles
• Activités : simulation de futurs scénarios de développement
• Sortie : un schéma directeur contenant
• la définition du problème
• les différentes solutions avec les bénéfices
attendus
• les ressources requises pour chacune d'elles
(délais,
livraison, etc.)
Spécification des
besoins
• Objectifs :
À partir du cahier des charges, description du
problème à
traiter
• identification des besoins de l'utilisateur
• spécification du "quoi" fait par le logiciel : informations
manipulées, services rendus, interfaces.
• Sorties:
• Modèle des besoins
• Manuel utilisateur provisoire pour les non
informaticiens
• Plans de tests du système futur (cahier de validation)
Analyse
• Objectifs :
• Répondre au « Que fait le système ? »
• Modélisation du domaine d’application
• Analyse du métier et des contraintes de
réalisation
• Activités :
• Abstraction et séparation des problèmes
• Sorties :
• Modèle conceptuel (diagrammes de classes
etc.)
Conception
• Objectifs :
• Répondre au « Comment faire le système ? • Décomposition
modulaire
• Activités :
• Définition de l’architecture du logiciel
• Définition de chaque constituant du logiciel : informations
traitées,
traitements effectués, résultats fournis, contraintes à respecter
• Sorties :
• Modèle logique (diagrammes de composants etc.)
Implémentation
• Objectifs :
• Réalisation des programmes dans un (des) langage(s) de
programmation
• Tests selon les plans définis lors de la conception
• Activités :
• Écriture des programmes • Tests • Mise au point
(déboguage)
• Sorties :
Modèle physique
• Collection de modules implémentés, non testés
• Documentation de programmation qui explique le code
Tests Unitaires
• Objectifs :
• Test séparé de chacun des composants du logiciel en vue de
leur
intégration
• Activités :
• réalisation des tests prévus pour chaque module
• les tests sont à faire par un membre de l'équipe n'ayant pas
participé à la fabrication du module
• Sorties :
Rapport de cohérence logique
Intégration et test du système
Objectifs :
• Intégration des modules et test de tout le système
• Activités :
• Assemblage de composants testés séparément
•Tests Alpha : l'application est mise dans des
conditions réelles d'utilisation, au sein de l'équipe de
développement (simulation de l'utilisateur final)
• Sorties :
• Rapport de conformité
• Documentation des éléments logiciels
Livraison, maintenance, évolution
Objectifs :
• Livraison du produit final à l'utilisateur,
• Suivi, modifications, améliorations après livraison.
Activités :
• Distribution du produit sur un groupe de clients avant la
version
officielle (version d’ évaluation)
• Livraison à tous les clients
• Maintenance
Sorties :
• Produit et sa documentation
CHAPITRE 1
Génie Logiciel
Conduite de projet
informatique
Phases de développement
Modèles de développement
Méthodes
d’analyse/conception
04
Modèles de
développement
Objectifs :
• Organiser les différentes phases du cycle de vie
pour
l'obtention d'un logiciel fiable, adaptable et efficace
• Guider le développeur dans ses activités
techniques
•Fournir des moyens pour gérer le développement
et la maintenance (ressources, délais, avancement,
etc.)
•Modèle (linéaire) en cascade • Modèle en V •
Modèle en spirale • Processus Unifié
Modèle en
cascade
Analyse
Conception
Implémentation
Tests
Maintenace
Modèle en
V
Implémentatio
n
Conception
des
composants
Conception
du
système
Spécificatio
n
fonctionnell
e
Expression
des
besoins
Tests des
composant
s
Tests du
systèm
e
Validation
fonctionnell
e
Validation
des
besoins
Modèle en spirale
CHAPITRE 1
Génie Logiciel
Conduite de projet
informatique Phases de
développement
Modèles de développement
Méthodes d’analyse/conception
05
UM
L
Méthodes d’analyse et de conception
•Proposition d’une démarche distinguant les
étapes du développement dans le cycle de vie du
logiciel
•Utilisation d’un formalisme de représentation qui
facilite la communication, l’organisation et la
vérification
• Production de documents (modèles) qui facilitent les
retours sur
De nombreuses
Méthodes
• Méthodes données :
- Entité-Relation, MERISE, ...
• Méthodes comportements
- SA-RT, Réseaux de Pétri, ...
• Méthodes objets
- OMT, OOA, Classe-Relation,
OOD,
CHAPITRE 1
Génie Logiciel
Conduite de projet
informatique Phases de
développement
Modèles de développement
Méthodes
d’analyse/conception
06
UML
Unification des méthodes Objet
■Au début des années 90, il existait une cinquantaine de
méthodes objet, liées uniquement par un consensus autour
d’idées communes (objet, classe, sous-systèmes,…)
■Chacune possède sa propre notation, SANS arriver à
remplir tous les besoins et à modéliser correctement les
divers domaines d’application.
Recherche d’un langage commun
unique
D’où la recherche d’un langage qui est:
•Utilisable par toute méthode objet, dans toutes les phases du
cycle de vie
• Compatible avec les techniques de réalisation actuelles.
L’unification des notations donne Naissance de UML
(signifie Unified Modeling Language)
UML
• Unified Modeling Language
• UML est un langage de modélisation objet
Support des phases d’Analyse et de Conception orientée
objet
• UML est un langage de communication
Utilisation d’un même formalisme par tous les intervenants
Permet de lever les ambiguités du language naturel
• UML est un langage simple de haut niveau
Facile à appréhender
Indépendant de tout langage de programmation
Types de Diagrammes UML
Dans UML on distingue trois types de diagrammes :
Diagrammes Structurels/ Statiques (ce que le système
est )
- diagrammes de classes
- diagrammes d’objets
- diagrammes de composants
- diagrammes de déploiement
- diagrammes de paquetages
Types de Diagrammes UML
Diagrammes Comportementaux ou Fontionnel
(ce que le système fait)
- diagramme de cas d’utilisation
- diagramme états – transitions
- diagramme d’activité
Diagrammes d’interactions / interactions
dynamiques
(comment le système évolue)
- diagrammes de séquence
- diagramme de communication
- diagramme global d’interaction
Vue logique
statique
Classes,
objets,
séquence
s
La
structuratio
n des objets
Les fonctions
du
système
La
dynamique
des objets
Vue logique
dynamique
Diagramme
s
d’activités
Vue externe
Cas
D’utilisatio
n
conceptue
l
physiqu
e
Vue
Implantation
Vue
Déploiement
Diagramme
s
composants
Diagramme
s
déploiemen
t
Les
composants
logiciels
L’architecture
physique
CHAPITRE 2
Diagrammes de cas
d’utilisation (Use Case
Diagram)
Exemple de diagramme de cas
d’utilisation
Diagramme de cas d’utilisation
• Modélise les besoins des utilisateurs.
• Précisent le but à atteindre.
•Permet d'identifier les fonctionnalités
principales (critiques) du système.
Un Cas d’utilisation
•Facilite la structuration des besoins
des utilisateurs.
•Exprime les limites et les objectifs
du système.
•Une suite d’interactions entre un
acteur et le système.
•Correspond à une fonction visible
par l’utilisateur.
Les
Acteurs
Acteur :
Une entité externe qui agit sur le système et prend
les
décisions contrairement à un élément logiciel possède un
rôle par rapport au système (utilisateur ou un autre
système)
Diagramme de cas
d’utilisation
Diagramme de cas
d’utilisation
Description d’un Use
Case
Description textuelle (informelle) :
Exemple :
Use case : “ Retrait en espèce ” :
1.Le guichetier saisit le n° de compte du client.
2. L’application valide le compte auprès du système central.
3. L’application demande le type d’opération au guichetier.
4. Le guichetier sélectionne un retrait d’espèces de 2000
DH.
5. Le système “ guichetier ” interroge le système central
pour
s’assurer que le compte est suffisamment approvisionné.
6. Le système central effectue le débit du compte.
7. Le système notifie au guichetier qu’il peut délivrer le
montant
Comment trouver les acteurs
Pour Dégager les acteurs d’un Système , on peut poser
les questions suivantes:
■Qui utilise le système.?
■Qui maintient le système?
■Qui administre le système?
■Quels autres systèmes qui interagit avec le système?
■Qui a besoin d'information venant du système?
Activité en binôme
Un opérateur Télécom désire disposer d’une platforme
d’achat en ligne ou les clients peuvent consulter ou/et
commander les produits qui sont disponibles sur un
catalogue.
Les administrateurs de la platforme sont responsables
de la mise à jour des produits et du traitement des
commandes effectués par les clients.
Proposez un diagramme de cas
d’utilisation
Descriptions à l’aide de diagrammes
de
séquences
Activité
CHAPITRE 3
Diagrammes de
classes
Objectifs d’un diagramme de
classes
■Déterminer les données qui seront manipulées par le système
■Ces données sont organisées en classes
■Donner la structure statique de ces données
■Ce diagramme permet de décrire la structure interne de chacune
des
classes
■Représenter les relations statiques existantes entre différentes
données du système
Classe et objet
Une classe est une description abstraite (modèle) d’un
ensemble
d’objets ayant :
- des propriétés similaires
- un comportement commun
- des relations communes avec d’autres objets
-des sémantiques communes
Un objet est représentation individuelle(instance) d’une
classe
Représentation d’une classe en UML
Nom de la classe
A
Attribut
s
Opération
s
Note: Les compartiments d’une classe peuvent être omis si leur
contenu
n’est pas intéressant dans le contexte d’un diagramme
Représentation d’une classe en UML
Exemples
Etudiant
nom
prénom
date de naissance
Age()
Personne
Filière
Attributs de
classes
Un attribut de classe définit une propriété commune aux
objets
d’une classe.
Nom de la classe
Nom de l’attribut : Type
Age()
Exemples
Attributs de
classes
Personne
Nom : chaine
Prénom :
chaine
Date de
naissance :
Date
Age()
Voiture
Immatriculation :
chaine Puissance :
chaine Marque :
chaine
Opérations de classe
- Une opération définit une fonction appliquée à des objets d’une
classe
Personne
Nom d’opération (liste d’arguments)
- Elle représente le service que la classe doit fournir à ces
utilisateurs
Opérations de
classes
Exemples
Etudiant
nom
prénom
date de naissance
Age()
changerAdresse()
ObjetGéométrique
Couleur : chaine
déplacer(dx:vecteur)
Sélectionner(p:point):boolean
Accessibilité aux attributs et opérations d’une classe
Trois niveaux de protection :
Public (+) : accès à partir de toute entité interne ou
externe à
la classe
Protégé (#) : accès à partir de la classe ou des sous-
classes Privé (-) : accès à partir des opérations de la
classe
Etudiant
- nom
- prénom
- date de naissance
+ Age()
+ CalculMoyenne()
Activité en
binôme
Associations
Les associations représentent les liens unissant les instances
des
classes
Personne Société
Voiture
Nommage des
associations
Personne Société
Voiture Personne
On note en général les associations par une forme
verbale,
soit active, soit passive
Travaille pour
Est la
propriété
de
Multiplicité des
associations
Personne
1..* 1
Société
employ
é
employeu
r
1 : Une personne travaille pour une et une seule
société
1 .. * : Une société emploie de un à plusieurs
personnes
Multiplicité des
associations
La multiplicité est une information portée par le rôle, qui
indique le
nombre d’objets successibles de participe à une association
1 Un et un seul
0..1 Zéro ou Un
M..N De M à N (entiers naturels)
* De zéro à plusieurs
0..* De zéro à plusieurs
1..* De Un à plusieurs
-une ou plusieurs couleurs peuvent figurer dans une
voiture
voiture
Association particulière: agrégation
couleur
1..*
1..*
Association particulière: agrégation
• Une agrégation est une association non symétrique : l’une
des
extrémités joue un rôle prédominant par rapport à l’autre.
Agrégat A Agrégat B
- Une classe B « fait partie » intégrante d’une classe A
-Les valeurs d’attributs de la classe B se propagent
dans les valeurs d’attributs de la classe B
Association particulière: Composition
Voiture Moteur
Carburateur Cylindre
0..1
0..1 1
Association particulière: Composition
La composition est une forme particulière d’agrégation. Le composant
est
« physiquement » contenu dans l’agrégat. La composition implique
une contrainte sur la valeur de la multiplicité du côté de l’agrégat : (0
ou 1)
Composé Composant
0..1
*
Généralisation -
Spécialisation
Exemple : un animal est un concept plus général qu’un chat ou un
chien.
Inversement un chien est un concept plus spécialisé qu’un animal.
La classe Animal est une généralisation de la classe Chat ou la
classe
Chien. La classe Chien est une spécialisation de la classe Animal.
Animal
Chat Cheval Chien
Spécialisatio
n
Généralisatio
n
Généralisation -
Spécialisation
Définition :
Relation (irréflexive, antisymétrique, transitive) entre une classe
plus générale et une classe plus spécifique (signifie “est un” ou
“est une sorte de”). Ce n’est pas une association.
Développeur
Front - end Back - end Full Stack
Spécialisatio
n
Généralisatio
n
Activité
Proposez des sous-classes de la classe
véhicule
Véhicule
vitesse : int
Démarrer()
Arrêter()
Activité
Proposez des sous-classes de la classe
véhicule
Héritage
L’héritage est mécanisme permettant à une classe d’utiliser les
membres de sa classe mère sans avoir à les redéfinir.
L’héritage est un mécanisme de la programmation objet.
Super
classe
Sous
classe
Activité
La classe
Personne
Rappel
- Un répertoire contient des fichiers
- Une pièce contient des murs
- Les modems et les claviers sont des périphériques
d’entrée/sortie
- Une transaction boursière est achat ou une vente
Déterminer la relation statique appropriée
(généralisation, composition, agrégation ou association)
dans chaque phrase. Proposez le diagramme de classe
correspondant.
Activité (diagramme de classes)
Object Oriented Programming course ,Python
Diagramme De Cas D’utilisation
Solution
Module : Programmer en Orienté
Objet
Filière : Développement Digital
Formatrice : Meriem Onzy
E-mail : meriem.onzy@ofppt.ma
PLAN DU
COURS
01
Introduction &
Historique
02
Les notions classe,
objet
et méthodes
03
Modélisation
d’une classe
04
Activités
Historique
Les années 70
Simula
Simula
I
Smalltal
k
Les années 80
C++
Objective
C
Les années 90
Java
De nos jours
PHP
v5
C#
Ruby
Pytho
n
Le Paradigme de l’orienté objet
Paradigme = Représentation du monde
Modèle de la terre
plate
Le Paradigme de l’orienté objet
Un paradigme de programmation est une façon de
concevoir votre code
Un moyen de formuler un problème, imaginer sa solution
et
l’implémenter
Le Paradigme de l’orienté objet
Procédura
l
Fonctionn
el
Orienté
Objet
Les paradigmes
courants
Le Paradigme de l’orienté objet
Procédura
l
Fonctionn
el
Orienté
Objet
Les paradigmes
courants
Le Paradigme de l’orienté objet
Fonctionn
el
Orienté
Objet
Les paradigmes
courants
2
Procédura
l
1
Le paradigme Procédural
Procédura
l
1
Programmation Impérative
Structurée
i
f
else
whil
e
For
Le paradigme Procédural
1
Procédura
l
Programmation Impérative Structurée
Fait appel à des procédures
réutilisables
Le paradigme Procédural
Procédura
l
1
A = (0, 0)
B = (1,1)
distance(A,B)
Donnée
s
Procédur
e
Le paradigme Procédural
A = (0, 0)
B = (1,1)
distance(A,B)
DONNEES
ET
PROCEDU
RES
Programmation Procédurale vs
POO
Données Données
Données
Fonctions
Fonctions
Fonctions
Données
globales
Fonction 1 Fonction 3
Fonction 2
Données
Locales
Données
Locales
Données
Locales
Programmation
Procédurale
Programmation Orientée
Objet
Le Procédural comparé à L’Orienté
Objet
A = (0, 0)
B = (1, 1)
Distance(A,B)
Priorité à
l’algorithme
A = Point(0, 0)
B = Point(1, 1)
A.Distance(B)
Priorité à
l’objet
Notion
d’objet
Des Objets Application
Objet = Structure de
données
Type de
données
int
floa
t
str
pytho
n
Objet = Structure de
données
pytho
n
Notion
d’objetObjet = Structure de
données
Obje
t
Se trouve dans un
état
Répond à des
messages
[propriétés
]
[comportement
s]
Nad
a
Développer des Sites Statiques 16,0
Manipuler les Base de données 17,5
Programmer en Javascript 6,0
Notes du 1er
Contrôle
Nad
a
Développer des Sites Statiques 16,0
Manipuler les Base de données 17,5
Programmer en Javascript 13,0
Notes du 2e
Contrôle
Notion
d’objet
17,0
17,5
13,0
16,0
17,5
6,0
Etat
1er Contrôle
Etat
2e Contrôle
étudie
r
Notion d’une
classe
Une classe est une description d’un ensemble d’objets
qui
partagent les mêmes attributs et méthodes
Concept
CLASSE OBJET
OBJET OBJET OBJET
CLASSE
OBJET OBJET OBJET
Exemple
Objets
étudiants
Sara
Etudiant
préno
m note
passer_un_examen()
16.0
Nad
a
13,0
Ali
17,0
Abstraction
Concept
d’étudiant
Identit
é
Propre
Classe
Etudiant
En POO un objet est une instance de sa
classe
Objets
(instances)
Etudiant
prénom
note
passer_un_examen()
Classe
Etudiant
Modélisation d’une classe
Classe
Véhicule
Véhicule
Marque : string
Puissance : integer
Vitesse-max :
integer
Démarrer(
)
Accélérer()
Avancer()
Nom de la
classe
Les
attributs
Les
méthodes
Composant
e Statique
Composant
e
Dynamique
Instances de la classe
véhicule
EXEMPLE
CLASSE
Dans un jeu ou on va s’occuper des
chiens
CHIEN
nom
taille
race
poid
s
est_a
llong
e
dormir(
)
Classe
Propriétés
Méthodes
CHIEN mon_chien
nom
taill
e
race
poid
s
est_
allo
SAM
110 cm
Bouvier Bernois
45 Kg
FAUX
CLASSE OBJET
CHIEN mon_chien
nom
taille
race
poid
s
est_a
llong
SAM
110 cm
Bouvier
Bernois 45 Kg
VRAI
CLASSE OBJET
mon_chien.dormir()
Travail de réflexion
La classe
camion
Camion
délai de disponibilité
Mode de livraison
vendre
calculer une remise
de prix
Camion
temps de
fabrication cout de
fabrication
fabriquer
stocker
Camion
capacité
vitesse maximale
cout
d’amortissement
procéder au paiement
Travail de réflexion La classe
camion
Camion
délai de disponibilité
Mode de livraison
vendre
calculer une remise
de prix
Camion
temps de
fabrication cout de
fabrication
fabriquer
stocker
Camion
capacité
vitesse maximale
cout
d’amortissement
procéder au paiement
La classe « Camion
»
Abstraction du
client
La classe « Camion »
abstraction du responsable
de la gestion de la
production
La classe « Camion »
abstraction du
responsable
commercial
Remarques sur
l’exemple
- La même classe peut avoir
- Le concept du Camion dans le même programme peut être
différent
- La conception d’une classe n’est pas unique
Synthèse
- Un objet est une entité qui possède un état (défini par
ses
attributs) et des comportements(définis par ses
méthodes)
- Une classe est une description d’un ensemble d’objets
qui
partagent les mêmes attributs et méthodes
- Un objet est une instance de sa classe
UIZ
ǫ
a b
Est-ce que ces objets sont des
instances :
des classes
différentes
de la même
classe
Proposez la/les
classes
Les avantages de la
POO
Modularité : les objets forment des modules compacts regroupant des
données et un ensemble d'opérations ce qui réduit la complexité de
l’application (classe = module)
• Réutilisabilité : La POO favoriser la réutilisation de composants
logiciels et
même d'architectures complexes
Les Avantages de la
POO
Abstraction
- Les détails qui ne sont pas
utiles à l'utilisateur lui sont
masqués
- Regrouper un certain nombre de
classes selon des caractéristiques
communes
Les principes de l’orienté
objet
L'objectif de l'encapsulation : Ne laisser
accessible que le strict nécessaire pour
que la classe soit utilisable
Encapsulation
Restreindre l'accès à certains éléments
d'une classe (le plus souvent ses
attributs)
Les principes de l’orienté
objet Héritage
Les principes de l’orienté
objet Héritage
Conception et organisation des
armes
ARME
_poids
_taille
_valeur
attaquer()
Hache
Couteau Corde
_type_corde
TP
TP
TP
Corrigé
Constructeur par Défaut
Constructeur Paramétrés
Implémenter une
solution
orientée objet
Exemple 1
Ecrire en Python une classe «Rectangle» ayant deux
variables « a » et « b » et une fonction membre «
surface() » qui retournera la surface du rectangle.
Exercice 2
Écrire en Python une classe « Somme » ayant deux variables « n1 » et
« n2 » et une fonction membre « som() » qui calcule la somme.
Vous devez :
• demandez à l’utilisateur d’entrer deux entiers
• passez-les au constructeur par défaut de la classe « Somme »
• afficher le résultat de l’addition des deux nombres.
Exemple 1
Ecrire en Python une classe «Rectangle» ayant deux
variables « a » et « b » et une fonction membre «
surface() » qui retournera la surface du rectangle.
Corrigé
Corrigé
Constructeurs
• Un constructeur est une méthode particulière invoquée
implicitement
lors de la création d'un objet
• Il permet d'initialiser les données des objets (les attributs) de la
classe
dont elle dépend
• Le constructeur ne doit pas avoir un type de retour
• Une classe peut posséder plusieurs constructeurs, mais un objet
donné
n'aura pu être produit que par un seul constructeur
Constructeur et
instanciation
Constructeur et instanciation
Rappel
Quel code ne va pas me retourner d’erreur après exécution
Destructeur
Les
Méthodes
Affichage de l’instance
Attributs
Attributs Spéciales
Attributs Spéciales
Attributs d’instance
Attributs de
classe
Attributs de
classe
Rappel
Méthodes Spéciales
1) Une classe peut instancier
des
variables
des
objets
des
attributs
des
méthodes
2) Que retourne un constructeur
Rien des
arguments
True Or
false
3) Comment ajoutez-vous un élément à la fin d'une liste en
Python?
list.insert(
)
list.add(
)
list.append(
)
Les tuples
Les tuples sont immuables, une fois créés, vous ne pouvez
pas
ajouter, supprimer ou modifier des éléments.
Les tuples
Fonction
s Index() len()
str
< main .Personne object
at
0x00000268E5267150
>
str
Prenom :
Ahmed
Age : 30 Adresse : Rue de
Rome,Casablanca
Exercice 3
Implémentez la classe « Etudiant » avec les membres
suivants: nom : (de type String)
note1, note2 : (de type float)
calc_moy() : calcule la note moyenne.
afficher () : affiche le nom et la note
moyenne.
Demandez à l’utilisateur d’entrer le
nom et les notes d'un étudiant. et
affiche
leur nom et la note moyenne.
Exercice
Ce programme simule la gestion d’un simple compte bancaire. Le compte est
créé avec un solde initial. Il est possible de déposer et de retirer des fonds,
d’ajouter des intérêts et de connaître le solde actuel. Cela devrait être
implémenté dans une classe nommée Compte qui comprend:
1) Un constructeur qui accepte une balance initiale comme paramètre.
2) Une fonction getBalance qui renvoie le solde actuel.
Exercice
Ce programme simule la gestion d’un simple compte bancaire. Le compte est
créé avec un solde initial. Il est possible de déposer et de retirer des fonds,
d’ajouter des intérêts et de connaître le solde actuel. Cela devrait être
implémenté dans une classe nommée Compte qui comprend:
1) Un constructeur qui accepte une balance initiale comme paramètre.
2) Une fonction getBalance qui renvoie le solde actuel.
3) Une méthode deposer pour déposer un montant spécifié.
4) Une méthode retirer pour retirer un montant spécifié.
5) Une méthode ajouter_Interet pour ajouter de l’intérêt au compte.
La méthode ajouter_Interet prend le taux d’intérêt comme paramètre et
modifie
le solde du compte en solde * (1 + taux d’intérêt).
Corrigé
Corrigé
Passage Par référence
Visibilités
Nom de Classe
+ Attribut publique
- Attribut privé
# Attribut protégé
+ Méthode publique
- Méthode privé
# Méthode protégé
Getters & Setters
Pour interagir avec les attributs d'un objet de l'extérieur, il suffit de créer des
méthodes publiques dans la classe appelée Accesseurs et
Modificateurs
Getters et Setters
Les Getters et Setters en Python sont souvent utilisés pour éviter l’accès direct
à un champ de classe, c’est-à-dire que les variables privées ne peuvent pas être
accessibles directement ou modifiées par un utilisateur externe.
Encapsulatio
n
P R O T E C T I O N D E S D O N N É E S
M O D U L A R I T É
O B J E T = C O D E ( M É T H O D E S )+ D O N N É E S ( A T T R I B U T S
)
Encapsulation &
Privilèges
P R O P E R T Y
P R O P E R T Y
P R O P E R T Y

Contenu connexe

PPTX
Unified Modeling Langage Course : Different diagrams and Exemples
PDF
Unified Modeling Language (Diagram Sequence/ Use Case / Class)
PPT
UML use case class une presentation sur uml .ppt
PPT
UML use case class2UML use case class2.ppt
PPTX
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
PPTX
10-Cours de Géniel Logiciel
PDF
Initiation à UML: Partie 1
PPTX
RA et CCDS - Séance 1.pptx
Unified Modeling Langage Course : Different diagrams and Exemples
Unified Modeling Language (Diagram Sequence/ Use Case / Class)
UML use case class une presentation sur uml .ppt
UML use case class2UML use case class2.ppt
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
10-Cours de Géniel Logiciel
Initiation à UML: Partie 1
RA et CCDS - Séance 1.pptx

Similaire à Object Oriented Programming course ,Python (20)

PPT
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
PPTX
CM Processus Méthodes
PPTX
Génie Logiciel.pptx
PDF
chapitre 1 SI.pdf
PDF
1-UML_ Analayse des Besoins_Unified process.pdf
PDF
UML Part1-Introduction Mansouri
KEY
PPT
1_Assurance Qualité et Génie Logiciel.ppt
PPTX
Atelier Genie Logiciel Developement.pptx
PDF
Cours Génie Logiciel 2016
PDF
Lecon 1.1
PPT
Introduction au Génie Logiciel
PDF
Uml partie 1
PDF
Gp unified process
PPTX
Cycles de vie d'un logiciel
PPTX
001GESTION DE PROJET INFO-Cours-GPI.pptx
PPT
Le processus de développement des application E-commerce
PDF
Methodo support
PDF
Rattrapage uml
PPTX
Cours_Magistral_Seance_1.pptx pour la conception orienté objet
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
CM Processus Méthodes
Génie Logiciel.pptx
chapitre 1 SI.pdf
1-UML_ Analayse des Besoins_Unified process.pdf
UML Part1-Introduction Mansouri
1_Assurance Qualité et Génie Logiciel.ppt
Atelier Genie Logiciel Developement.pptx
Cours Génie Logiciel 2016
Lecon 1.1
Introduction au Génie Logiciel
Uml partie 1
Gp unified process
Cycles de vie d'un logiciel
001GESTION DE PROJET INFO-Cours-GPI.pptx
Le processus de développement des application E-commerce
Methodo support
Rattrapage uml
Cours_Magistral_Seance_1.pptx pour la conception orienté objet
Publicité

Plus de MeryemOnzy (6)

PDF
Les Sous-Requetes, les cas d'utilisation en sql
PPTX
Le cloud computing, cloud notions de bases
PPTX
Cloud_Computing Fondamentals Concept de Base
PPTX
SequenceDiagram : A dynamic Diagram (Unified Modeling Language)
PPTX
Diagramme d'activité (un cas particulier du diagramme d'états)
PPTX
Diagramme de séquence (Unified Modeling Language)
Les Sous-Requetes, les cas d'utilisation en sql
Le cloud computing, cloud notions de bases
Cloud_Computing Fondamentals Concept de Base
SequenceDiagram : A dynamic Diagram (Unified Modeling Language)
Diagramme d'activité (un cas particulier du diagramme d'états)
Diagramme de séquence (Unified Modeling Language)
Publicité

Dernier (11)

PDF
Proposition de contenu pouvant résoudre les problèmes détectés à partir des é...
PPTX
Chapitre7-java------------------ Exception.pptx
PDF
famille ................................
PDF
UX DESIGN presentation canva plan et slides
PPT
Icc courant de court circuit explication
PPTX
mon_expose_de_geophysique_disposotif_de_wener.pptx
PDF
Regles sur la gestion de l’Eclairage public
PDF
ENSEIGNEMENT/APPRENTISSAGE ET COMPETENCE
PPTX
mon_expose_de_geophysique_dispositif_de_schlumberger.pptx
PDF
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
PPT
Présentation de l’Analyse et Concepti SI
Proposition de contenu pouvant résoudre les problèmes détectés à partir des é...
Chapitre7-java------------------ Exception.pptx
famille ................................
UX DESIGN presentation canva plan et slides
Icc courant de court circuit explication
mon_expose_de_geophysique_disposotif_de_wener.pptx
Regles sur la gestion de l’Eclairage public
ENSEIGNEMENT/APPRENTISSAGE ET COMPETENCE
mon_expose_de_geophysique_dispositif_de_schlumberger.pptx
Arouna Toure - Senior Ingénieur Logiciel Et Chef De Produit
Présentation de l’Analyse et Concepti SI

Object Oriented Programming course ,Python

  • 1. Analyse et Conception Orienté Objet Module : Programmer en Orienté Objet Filière : Développement Digital Formatrice : Meriem Onzy E-mail : meriem.onzy@ofppt.ma Unified Modeling Language
  • 2. CHAPITRE 1 Génie Logiciel Conduite de projet informatique Phases de développement Méthodes d’analyse/conception 01
  • 3. Génie Logiciel L’ingénierie logicielle, est une discipline qui concerne l'application systématique des principes, des méthodes et des pratiques de l'ingénierie pour le développement, la maintenance et l'évolution de logiciels de qualité.
  • 4. ualité ǫ du logiciel Facteurs internes (concepteur) • Réutilisabilité •Aptitude d’un logiciel à être réutilisé, en tout ou en partie, pour d ’autres applications • Vérifiabilité • aptitude d’un logiciel à être testé (optimisation de la préparation et de la vérification des jeux d ’essai) • Portabilité • aptitude d’un logiciel à être transféré dans des environnements logiciels et matériels différents
  • 5. Facteurs externes (utilisateur) • Validité • aptitude à répondre aux besoins et à remplir les fonctions définies dans le cahier des charges • Extensibilité • facilité avec laquelle de nouvelles fonctionnalités peuvent être ajoutées à un logiciel • Sécurité • aptitude d’un logiciel à protéger son code contre des accès non autorisés. • Efficacité • utilisation optimale des ressources matérielles (processeur,
  • 6. CHAPITRE 1 Génie Logiciel Conduite de projet informatique Phases de développement Méthodes d’analyse/conception Modèles de développement
  • 7. Un Projet Ensemble d’actions à entreprendre afin de répondre à un besoin défini dans des délais fixés, mobilisant des ressources humaines et matérielles, possédant un coût.
  • 8. Acteurs d’un projet Maitre d’ouvrage : personne physique ou morale propriétaire de l’ouvrage. Il détermine les objectifs, le budget et les délais de réalisation. Maître d’œuvre: personne physique ou morale qui reçoit mission du maître d’ouvrage pour assurer la conception et la réalisation de l’ouvrage.
  • 9. Conduite de projet Organisation méthodologique mise en œuvre pour faire en sorte que l’ouvrage réalisé par le maître d’œuvre réponde aux attentes du maître d’ouvrage dans les contraintes de délai, coût et qualité. Qualité Délai Cout
  • 10. CHAPITRE 1 Génie Logiciel Conduite de projet informatique Phases de développement Méthodes d’analyse/conception Modèles de développement
  • 11. Activité en binôme • Étude de la faisabilité Proposez un ordre des différentes étapes d’un projet informatique • Planificatio n • Spécification des besoins • Analyse (Spécification formelle) • Conception (Spécification technique) • Implémentation (Codage) • Tests unitaires • Intégration et tests • Livraiso n • Maintenanc e
  • 12. Cycle de vie d’un logiciel • Étude de la faisabilité • Planification • Spécification des besoins • Analyse (Spécification formelle) • Conception (Spécification technique) • Implémentation (Codage) • Tests unitaires • Intégration et tests • Livraison • Maintenance
  • 13. Planification • Objectifs : identification de plusieurs solutions et évaluation des coûts et bénéfices de chacune d'elles • Activités : simulation de futurs scénarios de développement • Sortie : un schéma directeur contenant • la définition du problème • les différentes solutions avec les bénéfices attendus • les ressources requises pour chacune d'elles (délais, livraison, etc.)
  • 14. Spécification des besoins • Objectifs : À partir du cahier des charges, description du problème à traiter • identification des besoins de l'utilisateur • spécification du "quoi" fait par le logiciel : informations manipulées, services rendus, interfaces. • Sorties: • Modèle des besoins • Manuel utilisateur provisoire pour les non informaticiens • Plans de tests du système futur (cahier de validation)
  • 15. Analyse • Objectifs : • Répondre au « Que fait le système ? » • Modélisation du domaine d’application • Analyse du métier et des contraintes de réalisation • Activités : • Abstraction et séparation des problèmes • Sorties : • Modèle conceptuel (diagrammes de classes etc.)
  • 16. Conception • Objectifs : • Répondre au « Comment faire le système ? • Décomposition modulaire • Activités : • Définition de l’architecture du logiciel • Définition de chaque constituant du logiciel : informations traitées, traitements effectués, résultats fournis, contraintes à respecter • Sorties : • Modèle logique (diagrammes de composants etc.)
  • 17. Implémentation • Objectifs : • Réalisation des programmes dans un (des) langage(s) de programmation • Tests selon les plans définis lors de la conception • Activités : • Écriture des programmes • Tests • Mise au point (déboguage) • Sorties : Modèle physique • Collection de modules implémentés, non testés • Documentation de programmation qui explique le code
  • 18. Tests Unitaires • Objectifs : • Test séparé de chacun des composants du logiciel en vue de leur intégration • Activités : • réalisation des tests prévus pour chaque module • les tests sont à faire par un membre de l'équipe n'ayant pas participé à la fabrication du module • Sorties : Rapport de cohérence logique
  • 19. Intégration et test du système Objectifs : • Intégration des modules et test de tout le système • Activités : • Assemblage de composants testés séparément •Tests Alpha : l'application est mise dans des conditions réelles d'utilisation, au sein de l'équipe de développement (simulation de l'utilisateur final) • Sorties : • Rapport de conformité • Documentation des éléments logiciels
  • 20. Livraison, maintenance, évolution Objectifs : • Livraison du produit final à l'utilisateur, • Suivi, modifications, améliorations après livraison. Activités : • Distribution du produit sur un groupe de clients avant la version officielle (version d’ évaluation) • Livraison à tous les clients • Maintenance Sorties : • Produit et sa documentation
  • 21. CHAPITRE 1 Génie Logiciel Conduite de projet informatique Phases de développement Modèles de développement Méthodes d’analyse/conception 04
  • 22. Modèles de développement Objectifs : • Organiser les différentes phases du cycle de vie pour l'obtention d'un logiciel fiable, adaptable et efficace • Guider le développeur dans ses activités techniques •Fournir des moyens pour gérer le développement et la maintenance (ressources, délais, avancement, etc.) •Modèle (linéaire) en cascade • Modèle en V • Modèle en spirale • Processus Unifié
  • 26. CHAPITRE 1 Génie Logiciel Conduite de projet informatique Phases de développement Modèles de développement Méthodes d’analyse/conception 05 UM L
  • 27. Méthodes d’analyse et de conception •Proposition d’une démarche distinguant les étapes du développement dans le cycle de vie du logiciel •Utilisation d’un formalisme de représentation qui facilite la communication, l’organisation et la vérification • Production de documents (modèles) qui facilitent les retours sur
  • 28. De nombreuses Méthodes • Méthodes données : - Entité-Relation, MERISE, ... • Méthodes comportements - SA-RT, Réseaux de Pétri, ... • Méthodes objets - OMT, OOA, Classe-Relation, OOD,
  • 29. CHAPITRE 1 Génie Logiciel Conduite de projet informatique Phases de développement Modèles de développement Méthodes d’analyse/conception 06 UML
  • 30. Unification des méthodes Objet ■Au début des années 90, il existait une cinquantaine de méthodes objet, liées uniquement par un consensus autour d’idées communes (objet, classe, sous-systèmes,…) ■Chacune possède sa propre notation, SANS arriver à remplir tous les besoins et à modéliser correctement les divers domaines d’application.
  • 31. Recherche d’un langage commun unique D’où la recherche d’un langage qui est: •Utilisable par toute méthode objet, dans toutes les phases du cycle de vie • Compatible avec les techniques de réalisation actuelles. L’unification des notations donne Naissance de UML (signifie Unified Modeling Language)
  • 32. UML • Unified Modeling Language • UML est un langage de modélisation objet Support des phases d’Analyse et de Conception orientée objet • UML est un langage de communication Utilisation d’un même formalisme par tous les intervenants Permet de lever les ambiguités du language naturel • UML est un langage simple de haut niveau Facile à appréhender Indépendant de tout langage de programmation
  • 33. Types de Diagrammes UML Dans UML on distingue trois types de diagrammes : Diagrammes Structurels/ Statiques (ce que le système est ) - diagrammes de classes - diagrammes d’objets - diagrammes de composants - diagrammes de déploiement - diagrammes de paquetages
  • 34. Types de Diagrammes UML Diagrammes Comportementaux ou Fontionnel (ce que le système fait) - diagramme de cas d’utilisation - diagramme états – transitions - diagramme d’activité Diagrammes d’interactions / interactions dynamiques (comment le système évolue) - diagrammes de séquence - diagramme de communication - diagramme global d’interaction
  • 35. Vue logique statique Classes, objets, séquence s La structuratio n des objets Les fonctions du système La dynamique des objets Vue logique dynamique Diagramme s d’activités Vue externe Cas D’utilisatio n conceptue l physiqu e Vue Implantation Vue Déploiement Diagramme s composants Diagramme s déploiemen t Les composants logiciels L’architecture physique
  • 36. CHAPITRE 2 Diagrammes de cas d’utilisation (Use Case Diagram)
  • 37. Exemple de diagramme de cas d’utilisation
  • 38. Diagramme de cas d’utilisation • Modélise les besoins des utilisateurs. • Précisent le but à atteindre. •Permet d'identifier les fonctionnalités principales (critiques) du système.
  • 39. Un Cas d’utilisation •Facilite la structuration des besoins des utilisateurs. •Exprime les limites et les objectifs du système. •Une suite d’interactions entre un acteur et le système. •Correspond à une fonction visible par l’utilisateur.
  • 40. Les Acteurs Acteur : Une entité externe qui agit sur le système et prend les décisions contrairement à un élément logiciel possède un rôle par rapport au système (utilisateur ou un autre système)
  • 43. Description d’un Use Case Description textuelle (informelle) : Exemple : Use case : “ Retrait en espèce ” : 1.Le guichetier saisit le n° de compte du client. 2. L’application valide le compte auprès du système central. 3. L’application demande le type d’opération au guichetier. 4. Le guichetier sélectionne un retrait d’espèces de 2000 DH. 5. Le système “ guichetier ” interroge le système central pour s’assurer que le compte est suffisamment approvisionné. 6. Le système central effectue le débit du compte. 7. Le système notifie au guichetier qu’il peut délivrer le montant
  • 44. Comment trouver les acteurs Pour Dégager les acteurs d’un Système , on peut poser les questions suivantes: ■Qui utilise le système.? ■Qui maintient le système? ■Qui administre le système? ■Quels autres systèmes qui interagit avec le système? ■Qui a besoin d'information venant du système?
  • 45. Activité en binôme Un opérateur Télécom désire disposer d’une platforme d’achat en ligne ou les clients peuvent consulter ou/et commander les produits qui sont disponibles sur un catalogue. Les administrateurs de la platforme sont responsables de la mise à jour des produits et du traitement des commandes effectués par les clients. Proposez un diagramme de cas d’utilisation
  • 46. Descriptions à l’aide de diagrammes de séquences
  • 49. Objectifs d’un diagramme de classes ■Déterminer les données qui seront manipulées par le système ■Ces données sont organisées en classes ■Donner la structure statique de ces données ■Ce diagramme permet de décrire la structure interne de chacune des classes ■Représenter les relations statiques existantes entre différentes données du système
  • 50. Classe et objet Une classe est une description abstraite (modèle) d’un ensemble d’objets ayant : - des propriétés similaires - un comportement commun - des relations communes avec d’autres objets -des sémantiques communes Un objet est représentation individuelle(instance) d’une classe
  • 51. Représentation d’une classe en UML Nom de la classe A Attribut s Opération s Note: Les compartiments d’une classe peuvent être omis si leur contenu n’est pas intéressant dans le contexte d’un diagramme
  • 52. Représentation d’une classe en UML Exemples Etudiant nom prénom date de naissance Age() Personne Filière
  • 53. Attributs de classes Un attribut de classe définit une propriété commune aux objets d’une classe. Nom de la classe Nom de l’attribut : Type Age()
  • 54. Exemples Attributs de classes Personne Nom : chaine Prénom : chaine Date de naissance : Date Age() Voiture Immatriculation : chaine Puissance : chaine Marque : chaine
  • 55. Opérations de classe - Une opération définit une fonction appliquée à des objets d’une classe Personne Nom d’opération (liste d’arguments) - Elle représente le service que la classe doit fournir à ces utilisateurs
  • 56. Opérations de classes Exemples Etudiant nom prénom date de naissance Age() changerAdresse() ObjetGéométrique Couleur : chaine déplacer(dx:vecteur) Sélectionner(p:point):boolean
  • 57. Accessibilité aux attributs et opérations d’une classe Trois niveaux de protection : Public (+) : accès à partir de toute entité interne ou externe à la classe Protégé (#) : accès à partir de la classe ou des sous- classes Privé (-) : accès à partir des opérations de la classe Etudiant - nom - prénom - date de naissance + Age() + CalculMoyenne()
  • 59. Associations Les associations représentent les liens unissant les instances des classes Personne Société Voiture
  • 60. Nommage des associations Personne Société Voiture Personne On note en général les associations par une forme verbale, soit active, soit passive Travaille pour Est la propriété de
  • 61. Multiplicité des associations Personne 1..* 1 Société employ é employeu r 1 : Une personne travaille pour une et une seule société 1 .. * : Une société emploie de un à plusieurs personnes
  • 62. Multiplicité des associations La multiplicité est une information portée par le rôle, qui indique le nombre d’objets successibles de participe à une association 1 Un et un seul 0..1 Zéro ou Un M..N De M à N (entiers naturels) * De zéro à plusieurs 0..* De zéro à plusieurs 1..* De Un à plusieurs
  • 63. -une ou plusieurs couleurs peuvent figurer dans une voiture voiture Association particulière: agrégation couleur 1..* 1..*
  • 64. Association particulière: agrégation • Une agrégation est une association non symétrique : l’une des extrémités joue un rôle prédominant par rapport à l’autre. Agrégat A Agrégat B - Une classe B « fait partie » intégrante d’une classe A -Les valeurs d’attributs de la classe B se propagent dans les valeurs d’attributs de la classe B
  • 65. Association particulière: Composition Voiture Moteur Carburateur Cylindre 0..1 0..1 1
  • 66. Association particulière: Composition La composition est une forme particulière d’agrégation. Le composant est « physiquement » contenu dans l’agrégat. La composition implique une contrainte sur la valeur de la multiplicité du côté de l’agrégat : (0 ou 1) Composé Composant 0..1 *
  • 67. Généralisation - Spécialisation Exemple : un animal est un concept plus général qu’un chat ou un chien. Inversement un chien est un concept plus spécialisé qu’un animal. La classe Animal est une généralisation de la classe Chat ou la classe Chien. La classe Chien est une spécialisation de la classe Animal. Animal Chat Cheval Chien Spécialisatio n Généralisatio n
  • 68. Généralisation - Spécialisation Définition : Relation (irréflexive, antisymétrique, transitive) entre une classe plus générale et une classe plus spécifique (signifie “est un” ou “est une sorte de”). Ce n’est pas une association. Développeur Front - end Back - end Full Stack Spécialisatio n Généralisatio n
  • 69. Activité Proposez des sous-classes de la classe véhicule Véhicule vitesse : int Démarrer() Arrêter()
  • 70. Activité Proposez des sous-classes de la classe véhicule
  • 71. Héritage L’héritage est mécanisme permettant à une classe d’utiliser les membres de sa classe mère sans avoir à les redéfinir. L’héritage est un mécanisme de la programmation objet. Super classe Sous classe
  • 74. Rappel - Un répertoire contient des fichiers - Une pièce contient des murs - Les modems et les claviers sont des périphériques d’entrée/sortie - Une transaction boursière est achat ou une vente Déterminer la relation statique appropriée (généralisation, composition, agrégation ou association) dans chaque phrase. Proposez le diagramme de classe correspondant.
  • 77. Diagramme De Cas D’utilisation
  • 79. Module : Programmer en Orienté Objet Filière : Développement Digital Formatrice : Meriem Onzy E-mail : meriem.onzy@ofppt.ma
  • 80. PLAN DU COURS 01 Introduction & Historique 02 Les notions classe, objet et méthodes 03 Modélisation d’une classe 04 Activités
  • 81. Historique Les années 70 Simula Simula I Smalltal k Les années 80 C++ Objective C Les années 90 Java De nos jours PHP v5 C# Ruby Pytho n
  • 82. Le Paradigme de l’orienté objet Paradigme = Représentation du monde Modèle de la terre plate
  • 83. Le Paradigme de l’orienté objet Un paradigme de programmation est une façon de concevoir votre code Un moyen de formuler un problème, imaginer sa solution et l’implémenter
  • 84. Le Paradigme de l’orienté objet Procédura l Fonctionn el Orienté Objet Les paradigmes courants
  • 85. Le Paradigme de l’orienté objet Procédura l Fonctionn el Orienté Objet Les paradigmes courants
  • 86. Le Paradigme de l’orienté objet Fonctionn el Orienté Objet Les paradigmes courants 2 Procédura l 1
  • 87. Le paradigme Procédural Procédura l 1 Programmation Impérative Structurée i f else whil e For
  • 88. Le paradigme Procédural 1 Procédura l Programmation Impérative Structurée Fait appel à des procédures réutilisables
  • 89. Le paradigme Procédural Procédura l 1 A = (0, 0) B = (1,1) distance(A,B) Donnée s Procédur e
  • 90. Le paradigme Procédural A = (0, 0) B = (1,1) distance(A,B) DONNEES ET PROCEDU RES
  • 91. Programmation Procédurale vs POO Données Données Données Fonctions Fonctions Fonctions Données globales Fonction 1 Fonction 3 Fonction 2 Données Locales Données Locales Données Locales Programmation Procédurale Programmation Orientée Objet
  • 92. Le Procédural comparé à L’Orienté Objet A = (0, 0) B = (1, 1) Distance(A,B) Priorité à l’algorithme A = Point(0, 0) B = Point(1, 1) A.Distance(B) Priorité à l’objet
  • 94. Objet = Structure de données Type de données int floa t str pytho n
  • 95. Objet = Structure de données pytho n
  • 96. Notion d’objetObjet = Structure de données Obje t Se trouve dans un état Répond à des messages [propriétés ] [comportement s]
  • 97. Nad a Développer des Sites Statiques 16,0 Manipuler les Base de données 17,5 Programmer en Javascript 6,0 Notes du 1er Contrôle
  • 98. Nad a Développer des Sites Statiques 16,0 Manipuler les Base de données 17,5 Programmer en Javascript 13,0 Notes du 2e Contrôle
  • 100. Notion d’une classe Une classe est une description d’un ensemble d’objets qui partagent les mêmes attributs et méthodes
  • 104. En POO un objet est une instance de sa classe Objets (instances) Etudiant prénom note passer_un_examen() Classe Etudiant
  • 105. Modélisation d’une classe Classe Véhicule Véhicule Marque : string Puissance : integer Vitesse-max : integer Démarrer( ) Accélérer() Avancer() Nom de la classe Les attributs Les méthodes Composant e Statique Composant e Dynamique
  • 106. Instances de la classe véhicule
  • 107. EXEMPLE CLASSE Dans un jeu ou on va s’occuper des chiens
  • 111. Travail de réflexion La classe camion Camion délai de disponibilité Mode de livraison vendre calculer une remise de prix Camion temps de fabrication cout de fabrication fabriquer stocker Camion capacité vitesse maximale cout d’amortissement procéder au paiement
  • 112. Travail de réflexion La classe camion Camion délai de disponibilité Mode de livraison vendre calculer une remise de prix Camion temps de fabrication cout de fabrication fabriquer stocker Camion capacité vitesse maximale cout d’amortissement procéder au paiement La classe « Camion » Abstraction du client La classe « Camion » abstraction du responsable de la gestion de la production La classe « Camion » abstraction du responsable commercial
  • 113. Remarques sur l’exemple - La même classe peut avoir - Le concept du Camion dans le même programme peut être différent - La conception d’une classe n’est pas unique
  • 114. Synthèse - Un objet est une entité qui possède un état (défini par ses attributs) et des comportements(définis par ses méthodes) - Une classe est une description d’un ensemble d’objets qui partagent les mêmes attributs et méthodes - Un objet est une instance de sa classe
  • 115. UIZ ǫ a b Est-ce que ces objets sont des instances : des classes différentes de la même classe Proposez la/les classes
  • 116. Les avantages de la POO Modularité : les objets forment des modules compacts regroupant des données et un ensemble d'opérations ce qui réduit la complexité de l’application (classe = module) • Réutilisabilité : La POO favoriser la réutilisation de composants logiciels et même d'architectures complexes
  • 117. Les Avantages de la POO Abstraction - Les détails qui ne sont pas utiles à l'utilisateur lui sont masqués - Regrouper un certain nombre de classes selon des caractéristiques communes
  • 118. Les principes de l’orienté objet L'objectif de l'encapsulation : Ne laisser accessible que le strict nécessaire pour que la classe soit utilisable Encapsulation Restreindre l'accès à certains éléments d'une classe (le plus souvent ses attributs)
  • 119. Les principes de l’orienté objet Héritage
  • 120. Les principes de l’orienté objet Héritage Conception et organisation des armes
  • 122. TP
  • 123. TP
  • 128. Exemple 1 Ecrire en Python une classe «Rectangle» ayant deux variables « a » et « b » et une fonction membre « surface() » qui retournera la surface du rectangle.
  • 129. Exercice 2 Écrire en Python une classe « Somme » ayant deux variables « n1 » et « n2 » et une fonction membre « som() » qui calcule la somme. Vous devez : • demandez à l’utilisateur d’entrer deux entiers • passez-les au constructeur par défaut de la classe « Somme » • afficher le résultat de l’addition des deux nombres.
  • 130. Exemple 1 Ecrire en Python une classe «Rectangle» ayant deux variables « a » et « b » et une fonction membre « surface() » qui retournera la surface du rectangle.
  • 133. Constructeurs • Un constructeur est une méthode particulière invoquée implicitement lors de la création d'un objet • Il permet d'initialiser les données des objets (les attributs) de la classe dont elle dépend • Le constructeur ne doit pas avoir un type de retour • Une classe peut posséder plusieurs constructeurs, mais un objet donné n'aura pu être produit que par un seul constructeur
  • 136. Rappel Quel code ne va pas me retourner d’erreur après exécution
  • 146. Rappel Méthodes Spéciales 1) Une classe peut instancier des variables des objets des attributs des méthodes 2) Que retourne un constructeur Rien des arguments True Or false 3) Comment ajoutez-vous un élément à la fin d'une liste en Python? list.insert( ) list.add( ) list.append( )
  • 147. Les tuples Les tuples sont immuables, une fois créés, vous ne pouvez pas ajouter, supprimer ou modifier des éléments.
  • 149. str < main .Personne object at 0x00000268E5267150 >
  • 150. str Prenom : Ahmed Age : 30 Adresse : Rue de Rome,Casablanca
  • 151. Exercice 3 Implémentez la classe « Etudiant » avec les membres suivants: nom : (de type String) note1, note2 : (de type float) calc_moy() : calcule la note moyenne. afficher () : affiche le nom et la note moyenne. Demandez à l’utilisateur d’entrer le nom et les notes d'un étudiant. et affiche leur nom et la note moyenne.
  • 152. Exercice Ce programme simule la gestion d’un simple compte bancaire. Le compte est créé avec un solde initial. Il est possible de déposer et de retirer des fonds, d’ajouter des intérêts et de connaître le solde actuel. Cela devrait être implémenté dans une classe nommée Compte qui comprend: 1) Un constructeur qui accepte une balance initiale comme paramètre. 2) Une fonction getBalance qui renvoie le solde actuel.
  • 153. Exercice Ce programme simule la gestion d’un simple compte bancaire. Le compte est créé avec un solde initial. Il est possible de déposer et de retirer des fonds, d’ajouter des intérêts et de connaître le solde actuel. Cela devrait être implémenté dans une classe nommée Compte qui comprend: 1) Un constructeur qui accepte une balance initiale comme paramètre. 2) Une fonction getBalance qui renvoie le solde actuel. 3) Une méthode deposer pour déposer un montant spécifié. 4) Une méthode retirer pour retirer un montant spécifié. 5) Une méthode ajouter_Interet pour ajouter de l’intérêt au compte. La méthode ajouter_Interet prend le taux d’intérêt comme paramètre et modifie le solde du compte en solde * (1 + taux d’intérêt).
  • 157. Visibilités Nom de Classe + Attribut publique - Attribut privé # Attribut protégé + Méthode publique - Méthode privé # Méthode protégé
  • 158. Getters & Setters Pour interagir avec les attributs d'un objet de l'extérieur, il suffit de créer des méthodes publiques dans la classe appelée Accesseurs et Modificateurs
  • 159. Getters et Setters Les Getters et Setters en Python sont souvent utilisés pour éviter l’accès direct à un champ de classe, c’est-à-dire que les variables privées ne peuvent pas être accessibles directement ou modifiées par un utilisateur externe.
  • 160. Encapsulatio n P R O T E C T I O N D E S D O N N É E S M O D U L A R I T É O B J E T = C O D E ( M É T H O D E S )+ D O N N É E S ( A T T R I B U T S )
  • 162. P R O P E R T Y
  • 163. P R O P E R T Y
  • 164. P R O P E R T Y