1 Université de la Manouba Université de la Manouba Ecole Supérieure de Commerc
1 Université de la Manouba Université de la Manouba Ecole Supérieure de Commerce Electronique Ecole Supérieure de Commerce Electronique 2ème année E-Serv et E-com 2009/2010 Programmation Orientée Objet Réalisé par : Nabil KHEMIRI nabil.khemiri@yahoo.fr 2 Le Module P.O.O Le Module P.O.O Algorithmique Langage C Pré requis : Pré requis : Déroulement du module Déroulement du module Cours : 1.5 h TD/15 : 1.5 h TP/15 : 1.5 h 3 Plan du cours Plan du cours Introduction Classes et objets Héritage Object, Interfaces, classes imbriquées Exceptions Entrée-sortie Introduction à Swing 4 Introduction : Introduction : évolution du logiciel Année 1950 1980 • Problème : comment développer du « hardware» permettant de diminuer le coût des traitements et du stockage de données. Depuis 1980 • La puissance de calcule a beaucoup augmenté et les coûts ont diminués. • Problème : comment réduire le coût de production des logiciels et améliorer leur qualité. • Problème : Importance croissante du logiciel et de son évolution. 5 Introduction Introduction Complexité des développements logiciels Pas de distribution Batch Logiciel client Multi-utilisateurs, Temps réel, Bases de données, Progiciel Système distribués, Système « Intelligent », Informatique grand public Système experts, Machines parallèles, Simulateurs 1950 1960 1970 1980 1990 2000 6 Introduction : Cycle de vie d’un logiciel Introduction : Cycle de vie d’un logiciel Analyse Pré-analyse Analyse Développement Conception Programmation Teste Maintenance Maintenance 7 Il est très difficile de faire évoluer et développer un logiciel. Par conséquent, il doit répondre à un certains de facteurs de qualité pour minimiser les coûts d’évolution et de développement. J’ai besoin d’un logiciel • La correction : « le système est supposé faire ce pourquoi il a été conçu », • La robustesse : capacité d’un logiciel à répondre à des situations anormales, • L’extensibilité : facilité du logiciel à s’adapter aux changements de spécification, • La ré-utilisabilité : capacité des éléments du logiciel à être réutilisés, • La compatibilité : facilité avec laquelle les éléments du logiciel peuvent être combinés, • L’efficacité : capacité du logiciel à utiliser le minimum de ressources, • La portabilité : facilité avec laquelle un logiciel peut s’exécuter sur différente palte-formes. 8 Introduction Introduction Branchement par Goto : Assembleur Si nous sommes en présence d’une grosse application, le programme à réaliser sera alors gros et complexe : Lisibilité, maintenance et réutilisation du code ne sont pas favorisées. Programmation structurée : C, PASCAL, etc. Concevoir un ensemble de fonctions (et procédures) permettant de résoudre un problème. Trouver la manière appropriée de stocker les données. Programmes = Algorithmes + Structures de données Réutilisation de fonctions, Maintenance : lorsque l’on désire changer les structures de données. Effets de bord : plusieurs procédures agissent sur la même donnée. 9 Introduction : Introduction : L’approche objet Idée de base de l’Approche Orientée Objet (A.O.O.) repose sur l’observation de la façon dont nous procédons dans notre vie de tous les jours. Modéliser le réel : objet Objet : Un objet représente une entité du monde réel, ou de monde virtuel dans le cas d’objets immatériels, qui se caractérisent pas une identité, des états significatifs et par un comportement. Nous sommes entourés d'objets que nous manipulons. Il nous importe peu de savoir comment ils sont fabriqués. Objet Attribut1, Atribut2, Attribut3, … Métode1 Méthode2 Méthode3 10 L’approche objet Les objectifs : Répondre aux critères de modularité c’est-à-dire prendre en compte : • Les facteurs logiciels qui requièrent des architectures logiciel décentralisées : la réutilisabilité , l’extensibilité. Répondre aux critères de fiabilité c’est-à-dire prendre en compte : • les facteurs logiciels qui sont les plus importants aujourd’hui et qui manquent le plus : la correction, la robustesse. Un programme est vu comme un ensemble d’entités, une société d’entités. Au cours de son exécution, ces entités collaborent en s’envoient des messages dans un but commun. 11 L’approche objet public class etudiant { String nom; int promo; String traiterExam(String enonce) {…} } public class prof { String nom; String faireSujetExam() {…} int corrigerExam(String copie) {…} } Attributs Méthodes 12 P Programmation rogrammation O Orientée rientée O Objet : P.O.O bjet : P.O.O Objet Classe Encapsulation Héritage Surcharge Polymorphisme 13 P.O.O : Objet P.O.O : Objet Objet = Attributs + méthodes Ex. un objet "Télévision" • ses états = { allumé/éteint, chaîne courante, volume du son }, • ses comportements = { allumer, changer de chaîne, changer de volume du son, éteindre } 14 P.O.O : Classe P.O.O : Classe Classe : processus d’abstraction. • On peut faire l'analogie avec la philosophie platonicienne : tout le monde à une idée de ce qu'est un cheval, c'est un animal, qui a quatre pattes, une crinière, etc. L'idée "cheval" est une classe. • Une classe est un élément du logiciel qui décrit un type abstrait de données. • Une classe est un modèle de définition pour des objets. • ayant même structure (même ensemble d'attributs), • ayant même comportement (mêmes opérations, méthodes), • ayant une sémantique commune. Notation UML 15 P.O.O : Classe P.O.O : Classe Class Personne { String Nom; String Prenom; int age; Void afficheNom() {…}; } Objets instanciation Nom : ali Prenom : yousfi Age : 24 Nom : Mohamed Prenom : kefi Age : 26 Nom : Ines Prenom : jbali Age : 22 Une classe peut être réutilisée pour instancier plusieurs objets 16 P.O.O : Encapsulation P.O.O : Encapsulation Principe : Consiste à regrouper dans le même objet informatique des structures de données particulières et les méthodes qui leur sont spécifiques. Isolement et dissimulation des détails d’implémentation. Les méthodes n’ont jamais accès directement aux champs d’instance dans une classe autre que la leur. Les programmes doivent interagir avec les données d’un objet uniquement par l’intermédiaire des méthodes de l’objet. Objectifs : Réutilisation et Sécurité : une classe peut complètement modifier la manière dont elle modélise et stocke ses données, mais tant qu’elle continue à offrir les mêmes méthodes pour les manipuler, les autres objets n’en sauront rien et ne s’en préoccuperont pas 17 P.O.O : Encapsulation P.O.O : Encapsulation 18 P.O.O : Héritage P.O.O : Héritage Le développement de logiciel nécessite la mise en oeuvre d’un grand nombre de classes : beaucoup sont des variantes d’autres. • idée: il est nécessaire d’utiliser un mécanisme de classification pour maîtriser la complexité potentielle qui peut en résulter. • ce mécanisme s’appelle l’héritage. Personne Etudiant Enseignant Utilisation de l’héritage : • dans le sens “spécialisation” pour réutiliser par modification incrémentielle les descriptions existantes. • dans le sens “généralisation” pour abstraire en factorisant les propriétés communes aux sous-classes, • L’héritage permet d’écrire une classe « Etudiant » qui se comporte dans les grandes lignes comme la classe A, mais avec quelques différences sans toucher au code source de « Personne ». On a besoin seulement du code compilé de « Personne ». 19 P.O.O : Héritage P.O.O : Héritage La sous classe (ex. Etudiant) possède des attributs et des méthodes définis dans la superclasse (ex. Personne). Ex. public class Personne { String nom; public void envoyerMail( String adr, String message) { ….} } public class Etudiant extends Personne { String noEtudiant; Etudiant(String nom, String noEtudiant) { nom = nom; noEtudiant = noEtudiant; envoyerMail("admin@univ.fr", "creation de dossier : " + nom); } } 20 P.O.O : Polymorphisme P.O.O : Polymorphisme Le polymorphisme est la capacité d’un objet à posséder plusieurs formes. Polymorphisme = poly + morphisme plusieurs forme Marcher sur la queue d'un chat => il miaule, Marcher sur la queue d'un chien => il aboie. Même nom de fonction, plusieurs implantations. Une classe peut "redéfinir" (c’est-à-dire modifier) certaines des méthodes héritées de sa classe de base (classe mère). 21 Les Langages Orientés Objets Un Processus d'Analyse Orientée Objet Un langage est orienté objet s’il possède les mécanismes supportant le style de programmation orienté objet. Points de repères historiques : • 1980 : SmallTalk 80 de Goldberg du Xerox Palo Alto Research Center. • 1983 : C++ de Stroustrup de ATT & Bell – c’est aussi le C ANSI qui est crée à cette époque. • 1985 : Commercialisation C++ Version 1 – liaison dynamique, surcharge des opérateurs, références. • 1989 : C++ Version 2 – héritage multiple • 1995 : JAVA 1. Répertorier les objets 2. En déduire les classes auxquelles ces objets appartiennent 3. Architecturer l'ensemble des classes regroupant les données ou procédures communes à certaines classes d’où elles héritent. uploads/Industriel/ p-o-o-s1.pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 04, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.2438MB