Recherche avancée
Par formation
Par date
Par ville
logo HUB Formation
Organisme de Formation
aux Technologies et métiers de L'informatique
La pédagogie au service de la technologie
> > > Conception et programmation orientée objet

Conception et programmation orientée objet

Les fondamentaux du développement objet

Par opposition à la programmation procédurale, la programmation Objet est une façon très différente de réfléchir, d’architecturer et développer son application. Une fois assimilée, la programmation orientée Objet rend les développeurs plus à l'aise dans l’élaboration d’architectures complexes puisqu'elle leur permet de mettre en place une meilleure modélisation des idées de tous les acteurs d'un projet. Enfin, elle permet de mieux structurer son développement et favorise la maintenance et la réutilisabilité du code.

Objectifs

  • Comprendre la notion d’objet et les concepts associés
  • Disposer des connaissances générales nécessaires à l'apprentissage du développement Objet
  • Comprendre la notion d'Objet et les concepts associés
  • Être capable de modéliser une application à l’aide d’UML 2
  • Identifier les apports des Design Patterns en phase de conception

Public

  • Développeurs issus du monde de la programmation procédurale
  • Développeurs, analystes programmeurs et chefs de projets "anciennes technologies"

Prérequis

  • Disposer d’une première expérience de la programmation en environnement professionnel

Programme de la formation

Qu'est-ce que la conception d’un programme informatique

  • Enjeux et défis : des systèmes de plus en plus complexes
  • Les acteurs d’un projet informatique
  • Importance du choix de la méthode et des outils
  • L’apport d’UML dans la modélisation de programmes informatiques

Structurer un programme

  • Les bonnes pratiques de l’écriture de code
  • Notions sur le "Clean Code"
  • Commentaires utiles
  • L’approche structurée
  • Modularité du code par ajout de bibliothèques
  • Couplage faible Vs. Cohérente forte
  • Gestion des bibliothèques
  • Gestion des données du programme

Programmation structurée et programmation orientée objet

  • Pourquoi travailler avec des objets
  • Dualité données et traitement dans l’approche orientée objet
  • Concepts de classe, héritage, polymorphisme
  • Les avantages de l'encapsulation

L’approche objet

  • Les objectifs de la programmation Objet
  • L’instanciation ou la création d’un objet à partir d’une classe
  • Utilisation de constructeurs
  • Libération des ressources à l’aide des destructeurs
  • Les concepts objet : les objectifs du monde Objet, les classes et les objets, les attributs, les méthodes, l'encapsulation, l'instanciation
  • Traduction des concepts Objet en langage : les packages et les espaces de noms, les classes, les méthodes et leur visibilité, les attributs et leur visibilité, l'instanciation, l'appel de méthodes et la référence aux variables
  • Organisation par package et espace de noms

Héritage et encapsulation

  • Comment spécialiser une classe et réutiliser du code
  • Un exemple concret pour comprendre l’utilité de l’héritage
  • Redéfinir une méthode dans une classe fille avec le polymorphisme
  • Notion de classes et de méthodes abstraites

Introduction à UML

  • UML un standard bien établi dans le monde industriel
  • L’importance de la modélisation dans les projets complexes
  • Présentation des différents diagrammes et points de vues
  • Présentation des outils de modélisation : Enterprise Architect , Magic Draw, Visual Paradigm

Concevoir le système logiciel à l’aide d’UML

  • Définir la plate-forme technique : définir l'architecture matérielle (diagramme de déploiement), choisir le framework logiciel
  • Concevoir un code source répondant aux exigences, maintenable et évolutif
  • Définir une architecture du code: le pattern en couches MVC, étendu au système entier
  • Concevoir les attributs: attributs identifiants et dérivés - association entre classes (diagramme de classe)
  • : utiliser les scénarios de cas d'utilisation – répondre aux exigences fonctionnelles, séparer les préoccupations selon MVC
  • Affiner la structuration du code source : affiner la structuration en packages (diagramme de packages), factoriser du code avec la généralisation – du bon usage de l'héritage, faire communiquer les classes en limitant les dépendances: utilisation des interfaces et des singletons – pattern de communication requête/notification, gérer les états (diagramme d'états)
  • Concevoir les composants déployables : définir les composants et leurs interfaces (diagramme de composant), définir le déploiement des composants (diagramme de déploiement)

Introduction aux Design Patterns

  • Principes des solutions de conception cataloguées
  • Méthodologie : définition des besoins techniques, des classes "types" du pattern, des collaborations entre classes
  • Présentation des patrons de conception : origine, les 3 familles (création, structuration et comportement), autres patrons
  • Présentation des principaux patrons de conception de chaque catégorie
  • Documentation d’un patron de conception et présentation des différents diagrammes UML utilisés
  • Bonnes pratiques : comment vous aider à choisir le bon patron pour un problème donné

Les + de cette formation

Les nombreux retours d'expériences de consultants expérimentés permettent d'illustrer les concepts et d'accroître la pertinence des réponses fournies. L'acquisition des bases nécessaires pour s'orienter sereinement vers le développement Objet. L'apprentissage par la pratique : une mise en pratique immédiate à travers la réalisation de programmes simples.