Programmation
Orientée Objet (POO)
Présenté le: lundi 14 octobre 2024
Université de M’sila
Faculté des Mathématiques et d’informatique
Département d'informatique
2eme Année Licence Fondamentale
Présenté par: ARIOUAT Youcef
YOUCEF. ARIOUAT@Gmail.com
3
Intitulé de la Matière
Programmation Orientée Objet (POO)
4
Informations pratiques
• Semestre 3
• UEF2
• Coefficient: 3
• Crédits: 5
• 15 semaine : 67h:30’ (1Cours + 1TD + 1TP)
• Mode d’évaluation : Continu (TD et TP) et Examen
5
Objectifs
Introduire les concepts de base du langage Java
• Traiter spécialement les thèmes tels que:
• Technologie orientée objet,
• Encapsulation,
• Héritage,
• Polymorphisme,
• ……….
• Développer les notions de base du langage en particulier:
• les classes, les objets, les constructeurs, finalizer,
• les méthodes et les variables d'instances,
• les méthodes et les variables de classe,
• les sous classes,
• les interfaces et l'héritage multiple,
• …….
6
Compétences visées
• L'essence de la programmation objet en java
• Lire et comprendre des programmes en java
• Ecrire la solution d'un problème en java
• Ecrire des applications sophistiquées (utilisation de structures de
données avancées)
7
Contenu de la matière :
1. Introduction à la Programmation Orienté Objet
• Notions de base
• Historique
• Utilisation des TAD
2. Les classes
3. Héritage et polymorphisme
4. Interface et implémentation
5. Interface graphique et Applet
8
Contenu de la matière :
1. Introduction à la Programmation Orienté Objet
2. Les classes
• Déclaration des classes
• Les constructeurs et destructeurs
• Les méthodes d’accès
• Encapsulation
3. Héritage et polymorphisme
4. Interface et implémentation
5. Interface graphique et Applet
9
Contenu de la matière :
1. Introduction à la Programmation Orienté Objet
2. Les classes
3. Héritage et polymorphisme
• Généralités
• Surcharge et redéfinition
• Héritage : Références
• Polymorphisme
• Les classes abstraites
4. Interface et implémentation
5. Interface graphique et Applet
10
Contenu de la matière :
1. Introduction à la Programmation Orienté Objet
2. Les classes
3. Héritage et polymorphisme
4. Interface et implémentation
• Principe
• Application
5. Interface graphique et Applet
11
Contenu de la matière :
1. Introduction à la Programmation Orienté Objet
2. Les classes
3. Héritage et polymorphisme
4. Interface et implémentation
5. Interface graphique et Applet
• Composants, gestionnaire d’affichage
• Mise en page
• Gestion des événements et écouteur
• Applet
12
Références :
• Le site officiel de Sun Microsystems :
• fr.sun.com/
• Le livre Penser Java :
• bruce-eckel.developpez.com/livres/java/traduction/tij2/
• Conception objet en java avec bluej
• David Barnes. Pearson Education France
• Java outside in
• Bill Campbell. Cambridge University Press
13
Qu’est-ce que la
Programmation Orientée
Objet ?
14
Programmation Orientée Objet
La Programmation Orientée Objet est:
• Un paradigme de programmation
• Un style de programmation.
• Une méthodologie de programmation.
• Une démarche permettant de modéliser
et de résoudre un problème.
15
Programmation Orientée Objet
Pour quoi la Programmation
Orientée Objet ?
16
Quelques chiffres...
• Évolution de la taille de Windows NT
• Distribution Linux Red Hat (2001)
• > 30 millions SLOC
• ~10 millions SLOC pour Open Office
• ~ 8 000 hommes-ans
• navette spatiale > 50 millions LOC
Année Système SLOC (Million)
1993 Windows NT 3.1 4-5
1994 Windows NT 3.5 7-8
1996 Windows NT 4.0 11-12
2000 Windows 2000 > 29
2001 Windows XP 40
2003 Windows Server 50
17
Développement de logiciels :
• Une application peut comprendre des milliers de
lignes de code
• Systèmes bancaires,
• systèmes de contrôle (l'électricité, les téléphones,
l'aéroport),
• Systèmes de simulation ou de modélisation
• les domaines de la biologie, de l'économie
Un système implique
alors la participation
de plusieurs
programmeurs
18
Encore quelques chiffres...
Répartition des coûts de développement
• Les erreurs proviennent de :
6% spécification
5% conception
7% codage
15% test et validation
67% maintenance
56% exigence et spécification :
24% conception
10% codage
10% autres
19
La « Crise du Logiciel » (1960, 1970):
Problème
• Développer des logiciels de qualité à un coût acceptable
Comment évaluer la qualité du code ?
1. le code marche-t-il ?
2. le code est-il compréhensible ?
3. le code est-il modifiable facilement ?
4. Le code est-il modifiable sans risque ?
Idée: Diviser pour régner
Coût de production de logiciel qui
marche est trop élevé
20
La « Crise du Logiciel » (1960, 1970):
Solution
• Méthodes de construction de logiciel modulaire
• Il faut structurer les systèmes en composants pour:
• Faciliter la coopération des programmeurs,
• Favoriser les tests,
• Faciliter la maintenance du code,
• la réutilisation des codes, …
Coût de production de logiciel qui
marche est trop élevé
21
La « Crise du Logiciel » (1960, 1970):
22
Programmation orientée traitement
Axée sur les traitements
Que doit faire mon programme ?
• Centrée sur les procédures (opérations)
• On conçoit un ensemble de procédures pour
résoudre le problème,
• Chaque fonction ou procédure est associée à un
traitement particulier,
• On conçoit les structures de données pour faciliter
ces traitements.
• Les données sont indépendantes des
procédures
• Les données à traiter sont passées en arguments aux
procédures
Programmes = Algorithmes + structures de données
Exemple : langage C, pascal, …
23
Programmation orientée traitement
Limitation de cette approche :
• Un changement dans la structure des données peut
entraîner de profondes modifications dans l'organisation
des procédures.
• besoin de comprendre tout le code avant de pouvoir faire
une modification.
• il y a la difficulté de :
• Chercher les fonctions concernées par ce changement
• Pour les fonctions concernées :
• Ajout ou suppression d’arguments et de variables locales
• Ajout ou modification ou suppression d’instructions
Axée sur les traitements
Que doit faire mon programme ?
24
Programmation orientée objet
• Centrée sur les données
• Un programme est composé de plusieurs objets
qui contiennent:
• des données ”internes” appelés : attributs
• des traitements manipulant ces données internes
ou d’autres données, appelés : méthodes
• Les objets interagissent par envoie de
messages.
• Combinaisons des données et du code de
programmation.
Programmes = objets communiquant entre eux
Exemple : langage SmallTalk, C++, Python, Java
Axée sur les Données
De quoi doit être composé mon programme ?
25
Résumé
Problèmes du logiciel:
• Taille
• Coût : développement et maintenance
• principe du « software quality »
• comment faire des logiciels qui évoluent
• comment faciliter le travail collaboratif ?
Solutions :
• Modularité
• Réutiliser le code
Comment?
• Programmation procédurale : Fonctions et procédures
• Programmation objet: classes, objets et héritage
26
Programmation Orientée Objet
Principes de base la
Programmation Orientée
Objet
MERCI DE VOTRE ATTENTION

JAva chapitre 1 programmation orientée objet

  • 2.
    Programmation Orientée Objet (POO) Présentéle: lundi 14 octobre 2024 Université de M’sila Faculté des Mathématiques et d’informatique Département d'informatique 2eme Année Licence Fondamentale Présenté par: ARIOUAT Youcef YOUCEF. ARIOUAT@Gmail.com
  • 3.
    3 Intitulé de laMatière Programmation Orientée Objet (POO)
  • 4.
    4 Informations pratiques • Semestre3 • UEF2 • Coefficient: 3 • Crédits: 5 • 15 semaine : 67h:30’ (1Cours + 1TD + 1TP) • Mode d’évaluation : Continu (TD et TP) et Examen
  • 5.
    5 Objectifs Introduire les conceptsde base du langage Java • Traiter spécialement les thèmes tels que: • Technologie orientée objet, • Encapsulation, • Héritage, • Polymorphisme, • ………. • Développer les notions de base du langage en particulier: • les classes, les objets, les constructeurs, finalizer, • les méthodes et les variables d'instances, • les méthodes et les variables de classe, • les sous classes, • les interfaces et l'héritage multiple, • …….
  • 6.
    6 Compétences visées • L'essencede la programmation objet en java • Lire et comprendre des programmes en java • Ecrire la solution d'un problème en java • Ecrire des applications sophistiquées (utilisation de structures de données avancées)
  • 7.
    7 Contenu de lamatière : 1. Introduction à la Programmation Orienté Objet • Notions de base • Historique • Utilisation des TAD 2. Les classes 3. Héritage et polymorphisme 4. Interface et implémentation 5. Interface graphique et Applet
  • 8.
    8 Contenu de lamatière : 1. Introduction à la Programmation Orienté Objet 2. Les classes • Déclaration des classes • Les constructeurs et destructeurs • Les méthodes d’accès • Encapsulation 3. Héritage et polymorphisme 4. Interface et implémentation 5. Interface graphique et Applet
  • 9.
    9 Contenu de lamatière : 1. Introduction à la Programmation Orienté Objet 2. Les classes 3. Héritage et polymorphisme • Généralités • Surcharge et redéfinition • Héritage : Références • Polymorphisme • Les classes abstraites 4. Interface et implémentation 5. Interface graphique et Applet
  • 10.
    10 Contenu de lamatière : 1. Introduction à la Programmation Orienté Objet 2. Les classes 3. Héritage et polymorphisme 4. Interface et implémentation • Principe • Application 5. Interface graphique et Applet
  • 11.
    11 Contenu de lamatière : 1. Introduction à la Programmation Orienté Objet 2. Les classes 3. Héritage et polymorphisme 4. Interface et implémentation 5. Interface graphique et Applet • Composants, gestionnaire d’affichage • Mise en page • Gestion des événements et écouteur • Applet
  • 12.
    12 Références : • Lesite officiel de Sun Microsystems : • fr.sun.com/ • Le livre Penser Java : • bruce-eckel.developpez.com/livres/java/traduction/tij2/ • Conception objet en java avec bluej • David Barnes. Pearson Education France • Java outside in • Bill Campbell. Cambridge University Press
  • 13.
  • 14.
    14 Programmation Orientée Objet LaProgrammation Orientée Objet est: • Un paradigme de programmation • Un style de programmation. • Une méthodologie de programmation. • Une démarche permettant de modéliser et de résoudre un problème.
  • 15.
    15 Programmation Orientée Objet Pourquoi la Programmation Orientée Objet ?
  • 16.
    16 Quelques chiffres... • Évolutionde la taille de Windows NT • Distribution Linux Red Hat (2001) • > 30 millions SLOC • ~10 millions SLOC pour Open Office • ~ 8 000 hommes-ans • navette spatiale > 50 millions LOC Année Système SLOC (Million) 1993 Windows NT 3.1 4-5 1994 Windows NT 3.5 7-8 1996 Windows NT 4.0 11-12 2000 Windows 2000 > 29 2001 Windows XP 40 2003 Windows Server 50
  • 17.
    17 Développement de logiciels: • Une application peut comprendre des milliers de lignes de code • Systèmes bancaires, • systèmes de contrôle (l'électricité, les téléphones, l'aéroport), • Systèmes de simulation ou de modélisation • les domaines de la biologie, de l'économie Un système implique alors la participation de plusieurs programmeurs
  • 18.
    18 Encore quelques chiffres... Répartitiondes coûts de développement • Les erreurs proviennent de : 6% spécification 5% conception 7% codage 15% test et validation 67% maintenance 56% exigence et spécification : 24% conception 10% codage 10% autres
  • 19.
    19 La « Crisedu Logiciel » (1960, 1970): Problème • Développer des logiciels de qualité à un coût acceptable Comment évaluer la qualité du code ? 1. le code marche-t-il ? 2. le code est-il compréhensible ? 3. le code est-il modifiable facilement ? 4. Le code est-il modifiable sans risque ? Idée: Diviser pour régner Coût de production de logiciel qui marche est trop élevé
  • 20.
    20 La « Crisedu Logiciel » (1960, 1970): Solution • Méthodes de construction de logiciel modulaire • Il faut structurer les systèmes en composants pour: • Faciliter la coopération des programmeurs, • Favoriser les tests, • Faciliter la maintenance du code, • la réutilisation des codes, … Coût de production de logiciel qui marche est trop élevé
  • 21.
    21 La « Crisedu Logiciel » (1960, 1970):
  • 22.
    22 Programmation orientée traitement Axéesur les traitements Que doit faire mon programme ? • Centrée sur les procédures (opérations) • On conçoit un ensemble de procédures pour résoudre le problème, • Chaque fonction ou procédure est associée à un traitement particulier, • On conçoit les structures de données pour faciliter ces traitements. • Les données sont indépendantes des procédures • Les données à traiter sont passées en arguments aux procédures Programmes = Algorithmes + structures de données Exemple : langage C, pascal, …
  • 23.
    23 Programmation orientée traitement Limitationde cette approche : • Un changement dans la structure des données peut entraîner de profondes modifications dans l'organisation des procédures. • besoin de comprendre tout le code avant de pouvoir faire une modification. • il y a la difficulté de : • Chercher les fonctions concernées par ce changement • Pour les fonctions concernées : • Ajout ou suppression d’arguments et de variables locales • Ajout ou modification ou suppression d’instructions Axée sur les traitements Que doit faire mon programme ?
  • 24.
    24 Programmation orientée objet •Centrée sur les données • Un programme est composé de plusieurs objets qui contiennent: • des données ”internes” appelés : attributs • des traitements manipulant ces données internes ou d’autres données, appelés : méthodes • Les objets interagissent par envoie de messages. • Combinaisons des données et du code de programmation. Programmes = objets communiquant entre eux Exemple : langage SmallTalk, C++, Python, Java Axée sur les Données De quoi doit être composé mon programme ?
  • 25.
    25 Résumé Problèmes du logiciel: •Taille • Coût : développement et maintenance • principe du « software quality » • comment faire des logiciels qui évoluent • comment faciliter le travail collaboratif ? Solutions : • Modularité • Réutiliser le code Comment? • Programmation procédurale : Fonctions et procédures • Programmation objet: classes, objets et héritage
  • 26.
    26 Programmation Orientée Objet Principesde base la Programmation Orientée Objet
  • 27.
    MERCI DE VOTREATTENTION

Notes de l'éditeur

  • #2 Ce cours introduit la programmation orientée objet en l'illustrant en langage Java.
  • #3 Au cours de ce module vous allez apprendre un nouveau style de programmation qui est la POO Et ce a travers un langage le programmation OO bien connu JAVA
  • #4  Unité d’Enseignement Fondamentale Cours et TD par moi-même
  • #5 Description « officielle » du cours : Finalizer: En programmation orientée objet, le destructeur d'une classe est une méthode spéciale lancée lors de la destruction d'un objet afin de récupérer les ressources (principalement la mémoire vive)
  • #14 Un paradigme est un ensemble d’hypothèses, une manière de voir le monde ou de modéliser un problème. En informatique, un paradigme est une méthode générale, une démarche permettant de modéliser et de résoudre un problème.
  • #22 Que fait le programme ?
  • #23 Que fait le programme ?
  • #24 De quoi est composé le programme ? rassembler dans une même entité appelée objet les données et les traitements qui s'y appliquent.
  • #25 un module désigne une entité de données et d'instructions qui fournissent une solution à une (petite) partie bien définie d'un problème plus complexe. Un module peut faire appel à d'autres modules, leur transmettre des données et recevoir des données en retour. L'ensemble des modules ainsi reliés doit alors être capable de résoudre le problème global.