Partie II : Le paradigme objet De l’approche procedurale vers l’approche objet

Partie II : Le paradigme objet De l’approche procedurale vers l’approche objet Oualid Khayati Année universitaire 2007-2021 2007-2021 Oualid Khayati 3 L’approche procedurale • Raisonnement en terme de fonctions du système – l’accent est mis sur les fonctions et non sur les données • Séparation des données et du code de traitement – Transposition dans les méthodes des contraintes du matériel • Diffusion des responsabilités – Intégrité des données non garanties – Ajout possible de nouvelles opérations à tout moment • Décomposition fonctionnelle descendante 2007-2021 Oualid Khayati 4 Héros Marcher Courir Sauter Tomber Coucher Application « MonJeu » struct Héros { char* nom; int Taille; int rapidite; }; Marcher (Héros,…); Coucher (Héros,…); 2007-2021 Oualid Khayati 5 Limite de l’approche fonctionnelle Un programme est conçu comme un ensemble de modules fonctionnels (procédures ou fonctions) qui manipulent des données Communication entre fonctions : – Par passage de paramètres – Par variables globales Accès libre aux données par n’importe quelle fonction Difficulté de réutiliser du code déjà écrit et testé La solution à ces limites et problèmes 2007-2021 Oualid Khayati 7 L’approche objet • Regroupement données-traitements • Diminution de l’écart entre le monde réel et sa représentation informatique (approche naturelle) – Les informaticiens sont pervertis : le monde est avant tout objet • Localisation des responsabilités : encapsulation • Décomposition par identification des relations entre objets : – Association, composition, généralisation/spécialisation 2007-2021 Oualid Khayati 8 Application « MonJeu » Héros nom, taille, rapidite Coucher Marcher Tomber Courir Heros.coucher(…) L’approche objet Les données ne sont manipulables que par l’objet lui-mêmeAttributsMéthodes 2007-2021 Oualid Khayati 9 Un pas dans le bonne direction • Étant donné que: – Verbes => Procédures et Fonctions – Noms => Données • Alors: – Programmes Orientés sur les fonctions = Collection de Verbes Supportés par des Noms (substantifs) [Nouns] – Programmes Orientés Objets = Collection de Noms Supportés par des Verbes Nous reprenons cette comparaison pour la phase d’analyse 2007-2021 Oualid Khayati 11 Analyse structurée orientée-traitement • Accent mis sur le traitement – Vision descendante de l'analyse – Décomposition en un programme principal formé d'appels de sous-programmes – Indépendants et de complexité moindre, sans se soucier des détails de réalisation – Ce processus est répété jusqu'à obtenir des sous-programmes élémentaires, ie. dont la réalisation est aisée – L'unité de décomposition est le traitement – Les langages procéduraux du type C sont bien adaptés 2007-2021 Oualid Khayati 12 Analyse orientée-objet • Accents mis sur les données – Déterminer les entités qui appartiennent à l'univers à modéliser et les opérations qui leur sont applicables, avant de se préoccuper de l'enchaînement des opérations – L'unité de décomposition regroupe les données et les opérations qui leur sont associées Un exemple pour mieux comprendre 2007-2021 Oualid Khayati 14 • Exemple : Imprimer un livre – Un livre est constitué d'un en-tête, d'une liste de chapitres et d'une bibliographie – Chaque chapitre est constitué d'une suite de sections, elles-mêmes composées de paragraphes et de figures 2007-2021 Oualid Khayati 15 Analyse orientée-traitement • procédure imprimerLivre : – imprimerEntête; – imprimerListeDesChapitres; – imprimerBibliographie; • Puis décomposition plus fine 2007-2021 Oualid Khayati 16 ImprimerUnLivre séquence 1 3 221 * * ImprimerEn-Tête ImprimerListedeChapitre Imprimer Bibliographie Imprimer Titre Imprimer Auteur * * ImprimerParagrapheOuFigure ImprimerChapitre * ImprimerSection Condition Alors Sinon Imprimer Référence 2007-2021 Oualid Khayati 17 Ces procédures • ne peuvent être réutilisées, sauf par duplication (gare aux problèmes de maintenance) • dans la pratique, les traitements sont souvent sortis de leur bloc d'origine afin de pouvoir être utilisés globalement (obligatoire en C qui n'autorise pas la définition de fonctions locales) 2007-2021 Oualid Khayati 18 Analyse orientée objet • Décomposition en "entités conceptuelles" matérialisées par des classes • Comment trouver les bonnes classes ? 2007-2021 Oualid Khayati 19 Un pas dans le bonne direction • Étant donné que: – Verbes => Procédures et Fonctions – Noms => Données • Alors: – Programmes Orientés sur les fonctions = Collection de Verbes Supportés par des Noms (substantifs) [Nouns] – Programmes Orientés Objets = Collection de Noms Supportés par des VerbesRAPPEL 2007-2021 Oualid Khayati 20 • Exemple : Imprimer un livre – Un livre est constitué d'un en-tête, d'une liste de chapitres et d'une bibliographie – Chaque chapitre est constitué d'une suite de sections, elles-mêmes composées de paragraphes et de figures 2007-2021 Oualid Khayati 21 Livre entête : Entête listeDeChapitre : set-of-chapitre bibliographie : Bibliographie imprimer : entête imprimer ; listeDeChapitre imprimer ; bibliographie imprimer ; Entête imprimer : titre imprimer ; auteur imprimer ; Chapitre Imprimer : … Figure Imprimer : … Section Imprimer : … Paragraphe Imprimer : … Bibliographie Imprimer : … 2007-2021 Oualid Khayati 22 Evolution des méthodes Conception Programmation Analyse L’évolution des méthodes s’est faite de la programmation vers l’analyse CS PF & PS AS CS POO AS COO POO AS COO POO AOO POO : Programmation Orientée-Objet COO : Conception Orientée-Objet AOO : Analyse Orientée-Objet PF : Programmation fonctionnelle & structurée CS : Conception Structurée AS : Analyse Structurée 2007-2021 Oualid Khayati 23 POO, COO, et AOO • Programmation Orientée-Objet (POO) - une méthode d'implantation dans laquelle les programmes sont organisés comme une collection d'objets, chacun étant une instance d'une classe, lesquels font partie d'une hiérarchie de classes unifiées via des relations d'héritage • Conception Orientée Objet (COO) - une méthode de conception contenant le processus de décomposition en objets et une notation décrivant les modèles logique et physique aussi bien que les modèles statiques et dynamiques du système à concevoir • Analyse Orientée Objet (AOO) - une méthode d'analyse qui examine les besoins d'un point de vue de classes et d'objets trouvés dans le domaine du problème 2007-2021 Oualid Khayati 24 Programmation Orientée-Objet • Programmation Orientée-Objet (POO) - une méthode d'implantation dans laquelle les programmes sont organisés comme une collection d'objets, chacun étant une instance d'une classe, lesquelles font partie d'une hiérarchie de classes unifiées via des relations d'héritage • Points clés de cette définition: – POO utilise des objets, pas des algorithmes, comme blocs fondamentaux de construction. – Chaque Objet est un membre d'une classe. – Les Classes sont reliées entre elles par le biais de relation d'héritage. 2007-2021 Oualid Khayati 25 Conception Orientée-Objet • Conception Orientée Objet (COO) - un méthode de conception contenant le processus de décomposition en objets et une notation décrivant les modèles logique et physique aussi bien que les modèles statique et dynamique du système à concevoir • Points clés de cette définition: – COO mène à la décomposition orientée objet. – COO utilise différentes notations pour présenter différents modèles de la conception logique (classe et la structure de l'objet) et physique (modules et l'architecture des processus) du système. – Note: COO se réfère à n'importe quelle méthode qui mène à une décomposition en objets. La décomposition en objet distingue COO de la conception structurée. 2007-2021 Oualid Khayati 26 Analyse à Objets • Analyse Orientée Objet (AOO) - une méthode d'analyse qui examine les besoins d'un point de vue de classes et d'objets trouvés dans le domaine du problème • Points clés de cette définition: – AOO utilise le vocabulaire du domaine du problème, formant ainsi des modèles réels du problème. 2007-2021 Oualid Khayati 27 Relation entre POO, COO, AOO AOO Objets COO Objets POO Construit Construit Utilisés dans Utilisés dans Est suivi par Est suivi par 2007-2021 Oualid Khayati 28 Pour finir : L’approche objet • Sépare spécification et implantation • Organise le développement en unités – plusieurs programmeurs – plusieurs niveaux de programmation • Exploite des composants écrits par d’autres – encapsulation, confidentialité du code – héritage ... • Réduit le code produit – héritage (le retour) – liaison dynamique, généricité uploads/S4/ partie-2-cours-3-de-l-x27-approche-fonctionnelle-vers-l-x27-app 1 .pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 30, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.3929MB