COURS DE PROGRAMMATION PARALLELE ET ORIENTE OBJET CT CHRISTOPHE TSHIMANGA BEYA

COURS DE PROGRAMMATION PARALLELE ET ORIENTE OBJET CT CHRISTOPHE TSHIMANGA BEYA Objectifs du cours Ce cours vise à donner à l’étudiant(e) une connaissance appliquée de la programmation et de la philosophie orientée objet. Connaissance appliquée signifiera à la fois le savoir permettant de comprendre le fonctionnement des systèmes développés selon les principes du modèle orienté objet . Afin d’atteindre cet objectif, nous développerons des habiletés de programmation en utilisant un langage facilitant la mise en pratique des principes exposés. Le langage de programmation retenu pour ce cours est le java . INTRODUCTION Pourquoi utiliser la programmation orientée objet ? La programmation de logiciels a connu il y a quelques années le passage d'une ère artisanale à une ère industrielle. Des logiciels de plus en plus complexes doivent être réalisés dans des délais de plus en plus courts, tout en maintenant le meilleur niveau de qualité possible. Comment faire pour répondre à ces exigences contradictoires ? La solution passe par l'emploi de techniques de développement adaptées. INTRODUCTION La programmation orientée objet, souvent abrégée POO, permet de concevoir une application sous la forme d'un ensemble de briques logicielles appelées des objets. Chaque objet joue un rôle précis et peut communiquer avec les autres objets. Les interactions entre les différents objets vont permettre à l'application de réaliser les fonctionnalités attendues. La POO facilite la conception de programmes par réutilisation de composants existants. Elle constitue le standard actuel en matière de développement de logiciels. INTRODUCTION Objectifs de la programmation par objets Modélisation du monde réel: Le monde réel est constitué d’objets (caractéristiques et comportement) en interaction. Modélisation proche du monde réel. Réutilisation de composants logiciels : Utilisation de composants préexistants (objets) comme : En électronique : composants, circuits intégrés, modules,… Constructions automobiles : moteurs, roues, etc… Réduction et explicitation du couplage entre différentes parties d’une application Définition d’une interface minimale et clairement définie entre objets INTRODUCTION Histoire de la programmation orientée objet Les concepts de la POO naissent au cours des années 1970 dans des laboratoires de recherche en informatique. Les premiers langages de programmation véritablement objets ont été Simula, puis Smalltalk. A partir des années 1980, les principes de la POO sont appliqués dans de nombreux langages comme Eiffel (créé par le Français Bertrand Meyer), C++ (une extension objet du langage C créé par le Danois Bjarne Stroustrup) ou encore Objective C (une autre extension objet du C utilisé, entre autres, par l'iOS d'Apple). INTRODUCTION Les années 1990 ont vu l'avènement des langages orientés objet dans de nombreux secteurs du développement logiciel, et la création du langage Java par la société Sun Microsystems. Le succès de ce langage, plus simple à utiliser que ses prédécesseurs, a conduit Microsoft à riposter en créant au début des années 2000 la plate-forme .NET et le langage C#, cousin de Java. De nos jours, de très nombreux langages permettent d'utiliser les principes de la POO dans des domaines variés : Java et C# bien sûr, mais aussi PHP (à partir de la version 5), VB.NET, PowerShell, Python, etc. INTRODUCTION Une connaissance minimale des principes de la POO est donc indispensable à tout informaticien, qu'il soit développeur ou non. REMARQUE : la POO s'accompagne d'un changement dans la manière de penser les problèmes et de concevoir l'architecture des applications informatiques. C'est ce que l'on appelle l'analyse (ou la modélisation) orientée objet. Son principal support est le langage de modélisation UML. INTRODUCTION Définitions Programmation orientée objet : ou programmation par objet, est un paradigme de programmation informatique qui consiste en la définition et l'assemblage de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. INTRODUCTION Programmation procédurale INTRODUCTION INTRODUCTION Programmation procédurale La programmation procédurale montre ses limites dans les projets complexes (plus de 10 000 lignes de codes) Le code procédurale est difficile à débugguer, difficile à tester et donc moins fiable. La qualité du programme se dégrade dans le temps. Il devient très difficile voir impossible de faire des mises à jour intégrant de nouvelles fonctionnalités. La reprise du code par d'autres développeurs est problèmatique. Notion d’objet et de classe Notion d’objet: Introduction Le monde dans lequel nous vivons est constitué d'objets matériels de toutes sortes. Par extension, il est possible de définir d'autres objets, sans masse, comme les comptes en banque, les polices d'assurance. Ces objets correspondent plutôt à des concepts plutôt qu'à des entités physiques. Notion d’objet et de classe Les objets L'objet est une unité atomique formée de l'union d'un état et d'un comportement. Tout objet présente les trois caractéristiques suivantes: un état, un comportement et une identité. Notion d’objet et de classe Notion d’objet et de classe Notion d’objet et de classe Notion d’objet et de classe L'état : L'état regroupe les valeurs instantanées de tous les attributs d'un objet (c'est à dire ses propriétés) sachant qu'un attribut est une information qualifiant l'objet qui le contient. Chaque attribut peut prendre une valeur dans un domaine de définition donné. L'état d'un objet, à un instant donné, correspond à une sélection de valeurs, parmi toutes les valeurs possibles des différents attributs. Notion d’objet et de classe Le comportement Le comportement regroupe toutes les compétences d'un objet et décrit les actions et les réactions de cet objet. Chaque atome de comportement et appelé opération (ou méthode). Notion d’objet et de classe L'identité En plus de son état, un objet comporte une identité qui caractérise son existence propre. L'identité permet de distinguer tout objet de façon non ambigu, et cela indépendamment de son état. Notion d’objet et de classe Notion d’objet et de classe Notion de classe: Une classe représente un ensemble d'objets qui partagent une structure commune et un comportement commun. Une classe est la description d'une famille d'objets qui ont la même structure et les mêmes comportements. Une classe est une sorte de moule a partir duquel sont générés les objets. Notion d’objet et de classe Notion d’objet et de classe Pourquoi créer une classe ? Notion d’objet et de classe La classe décrit donc la structure interne d'un objet, c'est à dire: les données qu'il regroupe (attributs) et les actions qu'il est capable d'assurer (méthodes). On dit qu'un objet est une instance de la classe ou un état de celle-ci. L'instanciation d'une classe est un objet unique. Notion d’objet et de classe Définissez la structure de la classe L'Encapsulation Le principe est d'interdire l'accès direct aux attributs d'un objet. On ne dialogue avec l'objet qu'à travers une interface définissant les services accessibles aux utilisateurs de l'objet. C'est alors le rôle des méthodes de modifier ou de retourner la valeur des attributs. L'Encapsulation L'Encapsulation Intérêt de l'encapsulation Facilite l'évolution d'une application 1. On peut modifier les attributs d'un objet sans modifier la façon dont il est utilisé. 2.Garantie l'intégrité des données, car leur accès direct est interdit (limité et/ou contrôlé) L'héritage Relation de spécialisation/généralisation entre deux classes. Elle indique qu'une classe est une sous-classe d'une autre, c.à.d. qu'elle possède les mêmes attributs et méthodes plus d'autres qui lui sont propres. L'héritage L'héritage Intérêt de l'héritage En construisant une hiérarchie de classe, on évite des répétitions dans le code (factorisation), en encourageant la réutilisation de classes déjà existantes. Cela permet également de simplifier la conception de la modélisation. Héritage multiple : Tous les languages ne le permettent pas et il n'est pas conseillé. Il peut introduire des bugs difficiles à décelés. Polymorphisme Littéralement : c'est la faculté de prendre plusieurs formes. En POO, c'est un mécanisme permettant à une sous-classe de redéfinir une méthode dont elle a hérité tout en gardant la même signature. Les Classes Abstraites Une classe abstraite est une classe dont les méthodes n’ont pas toutes été implémentées. Une classe abstraite est une classe qui ne permet pas d’instancier des objets, elle ne peut servir que de classe de base pour une dérivation. Dans une classe abstraite, on peut trouver classiquement des méthodes et des champs, dont héritera toute classe dérivée et on peut trouver des méthodes dites « abstraites » qui fournissent uniquement la signature et le type de retour. Les Classes Abstraites Règles des classes abstraites Dès qu’une classe abstraite comporte une ou plusieurs méthodes abstraites, elle est abstraite, et ce même si l’on n’indique pas le mot clé « abstract » devant sa déclaration. Une méthode abstraite doit être obligatoirement déclarée « public », ce qui est logique puisque sa vacation est d’être redéfinie dans une classe dérivée. Les noms d’arguments muets doivent figurer dans la définition d’une méthode abstraite Une classe dérivée d’une classe non abstraite peut être déclarée abstraite. Les Classes Abstraites Intérêt des classes abstraites Le recours aux classes abstraites facilite largement la conception orientée objet. On peut placer dans une classe abstraite toutes les fonctionnalités dont on souhaite disposer pour les classes descendantes Les Interfaces Si on considère une classe abstraite n’implantant aucune méthode et aucun champ , on aboutit à la notion d’interface. Une interface regroupe la signature des méthodes qui devront être implémentées par les uploads/Management/ cours-de-programmation-parallele-et-oriente-objet.pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jui 15, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 3.6386MB