Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
PROGRAMMATION ORIENTEE OBJET PowerPoint Presentation
Download Presentation
PROGRAMMATION ORIENTEE OBJET

PROGRAMMATION ORIENTEE OBJET

183 Views Download Presentation
Download Presentation

PROGRAMMATION ORIENTEE OBJET

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

    1. PROGRAMMATION ORIENTEE OBJET Conception objet

    2. 2 PLAN Qualits logiciel (#3) Qualits module (#4) Conception oriente action/objet (#6) Notion dinterface (#10) Notion de classe (#13) Notion dobjet (#18) Notion dhritage (#19) Mthodes virtuelles (#22) Qualits Design objet (#27) Dveloppement dun projet OO: architecture Modle-vue-contrleur (#33) La gestion des exceptions (#38)

    3. 3 QUALITES LOGICIEL Correct : rpond aux spcifications Robuste : rsiste aux situations difficiles Extensible : peut tre amlior et tendu Rutilisable : peut tre utilis par dautres softs

    4. 4 MODULE Module = partie dun logiciel contenant une partie des fonctionnalits ou de limplmentation Langage adapt Communique avec le moins de modules possibles Montre le moins dinterfaces possible aux autres modules 1. C - modules d'un pgm de gestion de laboratoire mdical : module 1 : lecture BD module 2 : analyse des donnes lues (couche mtier) module 3 : affichage des rsultats (interface graphique) 2. C - lib math, traitement de chanes de caractres 1. C - modules d'un pgm de gestion de laboratoire mdical : module 1 : lecture BD module 2 : analyse des donnes lues (couche mtier) module 3 : affichage des rsultats (interface graphique) 2. C - lib math, traitement de chanes de caractres

    5. 5 MODULE Interfaces entre modules clairement dclares Cache son implmentation 3. C++ - orient objet : (cache son implmentation) Exemple qui montre que le mode de pense objets correspond en fait notre mode de pense quotidien : Lorsque on vous demande de chauffer un verre de lait au MO, vous savez que vous devez appuyer sur 1 ou 2 boutons sur la face avant du MO et vous ne vous proccupez pas du soft et du hard du MO . Vous n'avez n'ailleurs pas besoin de connatre le soft ou le hard du MO pour chauffer votre verre de lait . 3. C++ - orient objet : (cache son implmentation) Exemple qui montre que le mode de pense objets correspond en fait notre mode de pense quotidien : Lorsque on vous demande de chauffer un verre de lait au MO, vous savez que vous devez appuyer sur 1 ou 2 boutons sur la face avant du MO et vous ne vous proccupez pas du soft et du hard du MO . Vous n'avez n'ailleurs pas besoin de connatre le soft ou le hard du MO pour chauffer votre verre de lait .

    6. 6 CONCEPTION Approche oriente action, fonction Approche oriente objet Exemple 1 : calcul intgrale Exemple 2 : personnel d'une socit Orient action : ajoute une personne Orient objet : personne : ajouter supprimer Socit : "a" n personnes directeur "est" un membre un personnel employ "est" un membre un personnel vendeur "est" un employ Faire UML : societe personnes directeur employ vendeur Exemple 1 : calcul intgrale Exemple 2 : personnel d'une socit Orient action : ajoute une personne Orient objet : personne : ajouter supprimer Socit : "a" n personnes directeur "est" un membre un personnel employ "est" un membre un personnel vendeur "est" un employ Faire UML : societe personnes directeur employ vendeur

    7. 7 APPROCHE ORIENTEE ACTION Privilgie les actions par rapport aux objets sur lesquels elles portent Procde par dcomposition des actions . Par raffinements successifs, on met en vidence des actions de plus en plus lmentaires . Dans la phase de programmation, on fait correspondre une fonction C chacune des actions ainsi identifies

    8. 8 APPROCHE ORIENTEE OBJET Privilgie les objets par rapport aux actions Procde par identification de toutes les classes dobjets du domaine dapplication et par regroupement, dans chaque classe, des oprations qui permettent de manipuler les objets correspondants . manipuler = modifier / inspecter ltat de lobjet .

    9. 9 APPROCHE ORIENTEE OBJET La liste des oprations est tablie en toute gnralit (indpendamment dun usage particulier)

    10. 10 INTERFACE Ensemble de mthodes offertes au monde extrieur Doit tre dfinie clairement et publiquement Doit tre documente Doit tre gnrique Une interface a un sens mme sans implmentation A une interface peuvent correspondre plusieurs implmentations indpendantes - apporter un enregistreur pour montrer l'interface - plusieurs implmentations : 1. mouvement : avion voiture bateau charrette du GB 2. START : MO machine lessiver photocopieuse - terme gnrique : mot qui convient toute une catgorie - interface gnrique : triangle ou carr d'un magntoscope, enregistreur - apporter un enregistreur pour montrer l'interface - plusieurs implmentations : 1. mouvement : avion voiture bateau charrette du GB 2. START : MO machine lessiver photocopieuse - terme gnrique : mot qui convient toute une catgorie - interface gnrique : triangle ou carr d'un magntoscope, enregistreur

    11. 11 INTERFACE : EXEMPLE La photocopieuse : nombre de photocopies +- dencre facteur de rduction tri choix du format de papier START STOP

    12. 12 INTERFACE : EXERCICES Rechercher linterface : dune machine lessiver dun micro-onde dun magntoscope dune voiture

    13. 13 CLASSE : concept Module = classe Classe = dfinition dun objet Contient la ou les interfaces de lobjet Contient les proprits = variables membres de lobjet Contient les mthodes dimplmentation de lobjet - en C++, class ~= struct- en C++, class ~= struct

    14. 14 CLASSE : concept Extension sur une ou plusieurs classes en les spcialisant Classe ouverte : se laisse tendre Classe ferme : non extensible Extension : drivation = hritage

    15. 15 EXEMPLE Modlisation SL Si on modlise la gestion administrative de l'Institut Saint- Laurent, les classes d'objets les plus significatives sont: tudiants, annes d'tude (SLx), sections enseignants matires locaux cours et labo documents administratifs: listes, bulletins, certificats, etc.. Buch : IGn - -- groupe <-- groupe ERASMUS a n hrite --- tudiants a nBuch : IGn - -- groupe <-- groupe ERASMUS a n hrite --- tudiants a n

    16. 16 EXEMPLE Modlisation SL Dans chaque classe d'objets, on regroupe les oprations relatives aux objets correspondants. tudiants: crer, inscrire, transfrer, diplmer, valuer (coter), supprimer, consulter, mettre jour, etc.. enseignants: crer, supprimer, affecter (matire, cours, labo), pensionner, etc.. locaux: crer, supprimer, occuper, librer, etc.. documents: crer, supprimer, mettre, etc..

    17. 17 CLASSE : protection Trois niveaux de protection : public/private/protected Linterface est publique Les mthodes dimplmentation sont prives Les donnes membres sont prives

    18. 18 OBJET Objet = instance dune classe Objet = zone mmoire contenant les donnes membres de lobjet

    19. 19 HERITAGE : concept Cration dune classe sur base dune classe de base Extension de la classe / spcialisation de la classe r-criture des mthodes hritage = drivation - Exemple : Personnel - drivation de carre --> rectangle drivation rectangle --> carre cas 1 : redfinir la fct de dessin cas 2 : hriter de la fonction de dessin - Exemple : Personnel - drivation de carre --> rectangle drivation rectangle --> carre cas 1 : redfinir la fct de dessin cas 2 : hriter de la fonction de dessin

    20. 20 HERITAGE : avantages Amliore lextensibilit Permet la rutilisation Simplicit Permet le polymorphisme - rutilisation : profiter de la stabilit du code dbogu - polymorphisme : 1. tourner gauche : voiture (volant) pdalo (barre) 2. START : MO machine lessiver- rutilisation : profiter de la stabilit du code dbogu - polymorphisme : 1. tourner gauche : voiture (volant) pdalo (barre) 2. START : MO machine lessiver

    21. 21 HERITAGE : protection public private protected : peut tre accd par la classe de base et par les classes drives ? protected permet lextensibilit en gardant la protection Ne pas montrer la premire sanceNe pas montrer la premire sance

    22. 22 METHODE VIRTUELLE : concept Dclare dans la classe de base Dclare virtuelle Implmente dans la classe de base (sauf virtuelle pure) Redfinie dans la (les) classe(s) drive(s)

    23. 23 METHODE VIRTUELLE : concept Si redfinition de la mthode : limplmentation de la classe drive est appele au lieu de celle de la classe de base (selon initialisation de lobjet et non dclaration) Exemple : dessin : - d'un cercle - d'un cercle opaque (colori)Exemple : dessin : - d'un cercle - d'un cercle opaque (colori)

    24. 24 METHODE VIRTUELLE : avantages Permet le polymorphisme Permet lextension Permet la r-utilisation Concept le plus puissant de la philosophie objet Donner les inconvnients : perte de mmoire et de temps : initialisation des pointeurs,...Donner les inconvnients : perte de mmoire et de temps : initialisation des pointeurs,...

    25. 25 METHODE VIRTUELLE PURE : concept Mthode virtuelle nayant pas dimplmentation dans la classe de base Une classe ayant une (des) mthode(s) virtuelle(s) pure(s) est dite abstraite On ne peut pas crer dobjet de cette classe Obligation de driver et dimplmenter les mthodes virtuelles pures - pas d'objet : Exemples : 1. mobile <-- voiture,avion,bateau,pdalo,... Pas d'implmentations de la mthode "tourner" --> pas d'objet 2. forme gomtrique : pas de dessin possible- pas d'objet : Exemples : 1. mobile <-- voiture,avion,bateau,pdalo,... Pas d'implmentations de la mthode "tourner" --> pas d'objet 2. forme gomtrique : pas de dessin possible

    26. 26 METHODE VIRTUELLE PURE : avantages Permet de dfinir une interface de manire purement indpendante de limplmentation Permet de dfinir des classes gnrales et de se servir de lhritage pour les rendre spcifiques Exemple : forme gomtrique - classes drives : cercle,rectangle,carr - proprit commune : centre (x,y) - methode non virtuelle : translation - mthodes virtuelles : dessin,rotationExemple : forme gomtrique - classes drives : cercle,rectangle,carr - proprit commune : centre (x,y) - methode non virtuelle : translation - mthodes virtuelles : dessin,rotation

    27. 27 DESIGN OBJET Simplicit Indpendance Polymorphisme Abstraction Protection

    28. 28 DESIGN OBJET : simplicit Un bon design doit tre constitu de choses simples Chaque module doit tre facilement comprhensible La documentation doit suffire la comprhension Une interface doit contenir le moins de mthodes possibles

    29. 29 DESIGN OBJET : indpendance Idalement, chaque module doit tre utilis indpendamment des autres Il est ncessaire de rduire la communication entre modules Essentiel pour les qualits logiciel

    30. 30 DESIGN OBJET : polymorphisme Une interface peut correspondre plusieurs implmentations Plusieurs objets ayant des comportements diffrents peuvent tre manipuls par la mme interface La conception dune interface doit tre gnrique

    31. 31 DESIGN OBJET : abstraction Limplmentation est cache Une interface sutilise sans connaissance de son implmentation Seule linterface intresse lutilisateur dune classe Limplmentation peut tre modifie sans consquence pour les utilisateurs de linterface

    32. 32 DESIGN OBJET : protection Protger = rendre inaccessible de lextrieur Limplmentation doit tre protge Les donnes membres doivent tre protges Il faut toujours passer par linterface Tout ce qui est protg peut changer - ce qui est protg peut changer : exemple : changer le hard ou le soft d'une photocopieuse- ce qui est protg peut changer : exemple : changer le hard ou le soft d'une photocopieuse

    33. 33 DEVELOPPEMENT DUN PROJET PLAN : Diffrentes phases du dveloppement MVC

    34. 34 Les diffrentes phases du dveloppement d'un projet Analyse des besoins Conception Programmation (implmentation) Test Intgration Gnralement, itrations sur ces phases, avec un prototype de plus en plus performant.

    35. 35 Au dpart Etapes suivre au dpart dun projet (aprs un premier apprentissage du mtier modliser) : Identifier les classes qui modliseront le mieux le problme rsoudre Dterminer les relations entre les diverses classes et concevoir la hirarchie Dfinir linterface de chaque classe Dfinir les scnarios dutilisation (Use Case)

    36. 36 ARCHITECTURE DUN PROGRAMME : Modle-vue-contrleur En orient actions, on spare les entres et les sorties, les traitements (la gestion du modle), les interfaces (et vues) et le contrle (main). Le contrle est gnralement squentiel; lutilisateur est contraint de rpondre aux messages du programme. En orient objets, on distingue des modules conceptuels (modules, classes variant peu avec lenvironnement informatique, appels aussi classes mtier) des modules de prsentation (trs lis lenvironnement informatique). Le contrle est vnementiel (lutilisateur commande le programme) et est souvent fortement li au cadre (framework) de dveloppement (par exemple MFC, .NET, eclipse, ). Rle du contrleur : maintenir dans un tat cohrent : - les diffrents objets du programme - en particulier, ltat dun modle et lensemble de ses reprsentations (vues) Procdural : donnes et manipulations spares POO: donnes et manipulations rassembles, encapsules : encapsulation des responsabilits, de ltat, du statutProcdural : donnes et manipulations spares POO: donnes et manipulations rassembles, encapsules : encapsulation des responsabilits, de ltat, du statut

    37. 37 ARCHITECTURE DUN PROGRAMME : Modle-vue-contrleur Le MVC est un modle de conception (Design pattern) Objectif: sparer et dcoupler les 3 composantes dune application: Modle : structures dinformations manipules par lapplication Vue: interface avec lutilisateur (affichage du modle, dialogues, ) Contrleur: contrle gnral du programme, ordonnancement des oprations Cf. le syllabus Concepts et mthodes de la programmation par objets chap.2 dA. Clarinval

    38. 38 La gestion des exceptions Programmation procdurale : Si une fonction dtecte une erreur et est incapable de la neutraliser, elle cesse son excution et envoie une valeur exceptionnelle la fonction appelante. Celle-ci devra prvoir 2 squences diffrentes : une traitant les cas derreurs et lautre les cas valides.

    39. 39 La gestion des exceptions (suite) POO : Programme tente dexcuter une squence dinstructions En cas de non validit dtecte lors de lexcution de la squence dinstructions, la squence met un signal dexception (via un objet temporaire dexception cr). Ceci entrane la sortie immdiate de la squence dinstructions. La suite du programme comporte une srie dinstructions capter (type dexception) dont chacune vrifie lexistence dun objet dexception dun type particulier et introduit la squence de traitement excuter en raction cette exception ; lobjet temporaire est automatiquement dtruit.

    40. 40 La gestion des exceptions (suite) POO : types de ractions aux cas derreurs: Ignorer lerreur (elle na pas dimpact sur la suite du programme) Neutraliser lerreur par des actions palliatives, aprs quoi lexcution se poursuivra normalement Transmettre le signalement de lerreur lappelant hirarchiquement suprieur. Remarques: Le traitement dun signal capt neutralise automatiquement ce signal Le traitement dun signal peut comporter lmission en cascade dun nouveau signal (ventuellement du mme type) destination de lappelant hirarchiquement suprieur - Si le signal nest pas capt (et trait) par un appelant hirarchiquement suprieur, lexcution du programme se termine brutalement