PLB CONSULTANT : 01. Conception et programmation objet
Organisme
92300 LEVALLOIS PERRETVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Travaux pratiques. Auto-évaluation en début et en fin de formation.
Prix
Public
Développeurs, analystes, chefs de projets souhaitant évoluer vers les technologies du développement objet
Pré-requis
Disposer des connaissances de base et d’une expérience en conception d'applications et en développement logiciel.
Objectifs pédagogiques
- Comprendre les principes et les spécificités de la conception Objet
- Passer d'une approche fonctionnelle à une approche Objet
- Savoir modéliser une application à l’aide d’UML (introduction)
- Comprendre l’utilité des Frameworks dans une approche Objet
- Savoir mettre en œuvre des Design Patterns (introduction)
- Mettre en œuvre les concepts objets à travers un programme simple
Programme détaillé
Travaux Pratiques d'introduction programmation et conception objet
Un TP évolutif, de la conception du modèle objet à la mise en œuvre (assistée), en passant par la maintenance, permettra de progressivement prendre la mesure de l'intérêt de l'approche objet. Nous nous appuyons sur un système de gestion (simplifiée) des demandes de formation au sein d'un département de ressources humaines.
De la programmation structurée (fonctionnelle) vers la programmation objet
Bien comprendre les limites de la programmation structurée
Les objectifs du monde Objet
En quoi l'approche objet facilite-t-elle les ateliers de développement logiciels ?
Que reste-t-il de la programmation structurée dans la programmation objet ?
Travaux Pratiques
Sur la base d'un programme simple, l'intervenant commente les grandes lignes du logiciel, les structures de données et les traitements utilisés (volontairement limités). Les participants sont amenés à répondre à certaines questions concernant la lisibilité des traitements, des variables, et sur l’évolution du logiciel. Les limites de la programmation classique sont volontairement amplifiées afin d'être clairement identifiées.
Apprendre à concevoir des classes d'objet
Définir un comportement commun au sein d'une classe
Comment « reconnaître » une classe ?
Savoir faire un effort d'abstraction et rester conceptuel
Liens entre classe et objets (instance)
Exemples de « mauvaises » classes
Savoir définir un dictionnaire de données
Et en extraire les attributs d'une classe
Savoir recenser les états d'un objet
L'origine et la fin d'un objet (constructeurs, destructeurs)
Définir les traitements dans des méthodes
Que deviennent les fonctions traditionnelles ?
Les risques de « retomber » dans le modèle données/fonctions
Travaux Pratiques
« Reconception » objet de l'application précédente.
Élaboration du dictionnaire de données, des traitements, et des flux.
Conception des classes
Visibilité entre les objets
Qu'entend-on par « encapsuler » les données ?
Pourquoi utiliser des accesseurs ?
Voir les objets comme « responsables » de leur comportement
Visibilité des attributs entre les objets (publique, protégé, privé)
Visibilité des méthodes
Travaux Pratiques
Exemples de non encapsulation de données et d’expositions de méthodes amenant à une lisibilité et une maintenance complexe. Reconception « propre »
Liens entre les classes
La puissance de l'héritage
Réflexions sur l'héritage multiple
Ne pas confondre composition et héritage
Intérêt du polymorphisme
La surcharge des opérateurs
Appels de méthode d'une autre classe (message)
Travaux Pratiques
Évolution de la conception vers un modèle de hiérarchie des classes
Conception de l'encapsulation des traitements
Compléments sur la conception objet
Qu'est-ce qu'une méthode virtuelle ?
Et une classe abstraite ?
Intérêt des classes abstraites sans implémentation (interface)
S'appuyer sur une manière de faire éprouver (design patterns)
Exemples de design patterns
Travaux Pratiques
Amélioration du modèle précédent avec l'utilisation de classes abstraites
Introduction à la modélisation objet avec UML
UML (Unified Modeling Language) ne représente pas une démarche mais un formalisme
Les deux types de vues (statiques, dynamiques)
Tour d'horizon des différents diagrammes UML
Modélisation d'une classe
La visibilité des attributs (publique, protégé, privé)
Les diagrammes d'objet (attributs, méthodes, identité)
Synthèse sur les diagrammes liés aux vues dynamiques
Travaux Pratiques
Formalisation avec UML du diagramme de classes de notre application.
Présentation des 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
Travaux Pratiques
Quizz : On présente une problématique et il faut choisir le bon patron (Pattern)
Mise en œuvre des concepts objets (Java ou C#)
Définir une classe et ses méthodes
Mettre en œuvre l’’encapsulation des données
Mise en œuvre de l'héritagePrésentation rapide des IDE Visual Studio et Eclipse
L’aide apportée aux développeurs pour manipuler les classes/objets
Les apports des frameworks pour le développeur objet
Les différentes familles (web, data, communication, etc.)
Travaux Pratiques
Nous implémentons les classes de notre application précédente en Java sous Eclipse ou en C# sous Visual Studio selon l’environnement préféré par les participants. Il s’agit d’une simple prise en main et le code est volontairement très simple car on ne prévoit pas de détailler la syntaxe de ces langages.
On commente un exemple de code accédant à une base de données (connexion, chargement de données) pour comprendre comment les classes d’un framework « cohabitent » avec les classes métiers que nous avons créés.