- ACN_ATLAS
- Cours pratique
- Informatique
Formation Conception et Programmation objet
Initiation, Vocabulaire, Conception, UML, Programmation, IDE, Framework, C#, Java

- Durée
- 3 jours
- Niveau
- Fondamental
- Modalités
- Présentiel / Distanciel
Description de la formation Programmation Objet
Cette formation vous permet de comprendre l'intérêt et toutes les possibilités offertes par le développement objet par rapport à une approche fonctionnelle (fonctions isolées). Les limites de cette dernière sont présentées de façon progressive afin que vous puissiez comprendre, grâce à de nombreux ateliers pratiques, qu'il existe une « autre façon » de penser le développement et de bien ancrer ainsi les principes et les spécificités de la programmation orientée objet (POO).
Au-delà de la rupture disruptive par rapport à l’approche structurée classique, il s‘agit tout simplement de savoir concevoir un modèle de classes pertinent pour ses applications en respectant les bonnes pratiques de conception d’une architecture conforme aux standards professionnels. Dans un premier temps vous manipulerez des classes simples (commande, article, etc.) et vous prendrez progressivement la mesure de l’impact de la conception des données et des traitements sur la qualité de votre application (performances, sécurité, évolutivité, lisibilité et maintenance) à travers des petits exercices, les. La conception fera également allusion aux Design Patterns afin de vous orienter vers les bonnes pratiques dans vos futurs programmes objets en étant capable d’utiliser des modèles existants. Vous traduisez ensuite votre travail de conception sous la forme d’un diagramme de classes UML afin de disposer d’une langage visuel commun et standardisé. Au-delà de la professionnalisation de la conception cela permet aussi au formateur de limiter les ambiguïtés d’interprétation avec les participants pour la suite de la formation.
Une fois les fondamentaux acquis (classe, propriétés, méthodes, instance, héritage, composition de classes) nous introduisons l’IA afin de vous montrer comment elle peut vous aider dans votre processus de conception. Pour cela nous vous montrerons comment écrire des prompts efficaces afin de vous assister dans vos réflexions, voir être force de proposition mais tout en vous habituant à porter un regard critique sur les réponses fournies par l’assistant IA en « gardant le contrôle ».
Afin de ne pas rester uniquement conceptuelle, la formation vous présente des exemples d’implémentation des concepts objets dans les principaux langages objets (Java et Python) ainsi que les apports des environnements de développement (IDE) pour l’utilisation des objets en programmation (Visual Studio Code, IntelliJ). Le formateur traduit, en Java par exemple, les travaux de conception objet réalisé jusque-là et dépose cet exemple dans une branche Git. Il demande à l’IA de traduire ce programme en Python et le dépose dans une autre branche afin de montrer les invariants tout en faisant passer un message d’acculturation fort sur l’IA et l’importance fondamentale de la conception par rapport à la syntaxe.
Nous proposons également de mettre en œuvre un projet simple intégrant l’IA générative basé sur 3 classes abstraites (service, question, réponse) et qui permet de soumettre un prompt à une IA générative et de récupérer le résultat dans notre application. On fait le lien également avec le concept des classes abstraites vu auparavant car il existe plusieurs sortes de prompt (textuel, sonore, etc.) pour la classe « Question » et différents types de fonction (résumé de texte, génération d’image, traduction, etc.) pour la classe « Service ». La classe « Réponse » elle contient la « chaîne de caractères » de la réponse et d’éventuelles méta-données (version, modèle de l’IA, etc.).
En fil rouge, la formation aborde la conception des structures de données et des traitements dans une approche objet d’une application web proposant un catalogue d’articles et des commandes associées. Nous cherchons à l’enrichir tout en intégrant progressivement les possibilités offertes par l’IA sans perdre de vue notre objectif pédagogique fondamental qui est de savoir concevoir une application évolutive grâce aux concepts objets. Nous faisons donc en sorte que notre application puisse facilement s’enrichir de nouveaux services (gestion de stocks, service bancaire paiement, exposition d’API, etc.) en se basant sur des classes représentatives de celles qu’on trouve dans les projets professionnels (par exemple une classe dédiée aux traitements des entrées/sorties pour les bases de données, une classe abstraite pour utiliser différents moteurs d’IA et rendre « intelligente » notre application, etc.) avec un impact minimum sur notre code grâce à nos choix de conception.

Objectifs pédagogiques
Objectifs pédagogiques :
À l'issue de cette formation Conception et Programmation objet, vous aurez acquis les connaissances et compétences nécessaires pour :
- Comprendre les principes et les spécificités de la conception Objet
- Passer d'une approche fonctionnelle à une approche Objet
- Savoir concevoir un modèle de classes pour ses applications
- Comprendre l’apport des Frameworks dans une approche Objet
- Découvrir l’impact de l’IA dans la programmation orientée objet
- Mettre en œuvre les concepts objets à travers un programme simple intégrant la programmation orientée objet et l’IA
Objectifs opérationnels
Savoir utiliser ses connaissances en programmation orientée objet pour développer et comprendre comment s’appuyer sur l’IA dans le cadre de ses développements.
Programme
Contenu du cours, module par module
8 modules
- Bien comprendre les limites de la programmation dite « structurée »
- Les objectifs du monde Objet
- En quoi l'approche objet facilite-t-elle les ateliers de développement logiciels ?
- Que retrouve-t-on de la programmation structurée dans la programmation objet ?
Travaux pratiques
Descriptif : Sur la base d'une application classique (commandes, articles), le formateur présente les fonctionnalités de l’application conçue dans une approche fonctionnelle (non objet). 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.
- 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 classes « mal conçues » qui complexifient le développement
- Savoir définir un dictionnaire de données et les attributs d'une classe
- Qu'entend-on par « encapsuler » les données ?
- Pourquoi utiliser des accesseurs ?
- L'origine et la fin d'un objet (constructeurs, destructeurs)
- Savoir définir les traitements (méthodes) d’une classe
- Liens entre états d'un objet et méthodes
- Ne pas mélanger la logique métier et la logique technique
- Exemple d’une classe dédiée aux I/O (Data Access Object)
- Bonnes pratiques de nommage
- Utilisation de classes existantes
Travaux pratiques
Descriptif : « Reconception » objet de l'application précédente (commandes, articles) conçue sur un modèle fonctionnel. Élaboration du dictionnaire de données conception des classes, attributs (dictionnaire de données ventilé dans les attributs), traitements (extraction des verbes d’action, des états d’une commande, etc.). Création d’une classe ArticleDAO implémentant les méthodes de sauvegarde et de chargement des articles.
- Visibilité des attributs entre les objets (publique, protégé, privé)
- Visibilité des méthodes entre les objets
- 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
Descriptif : Création d’une classe de commande en ligne (spécialisation de commande pour montrer l’héritage), de composition d’articles au sein d’une classe « Ligne de commande », et d’association sous la forme d’articles qui ne font pas partie de la commande (au catalogue ou en stock par exemple).
- Notions de classe virtuelle ou abstraite (factorisation de comportements)
- Utilisation par héritage
- Imposer un contrat à des classes (interface)
- Différences entre classe abstraite et interface
Travaux pratiques
Descriptif : Amélioration du modèle précédent avec l'utilisation de classes abstraites. On enrichit l’application fil rouge avec le paiement en ligne (classe abstraite pour intégrer différents mécanismes de paiement bancaire « classique », Paypal, bitcoin, etc. sans déstructurer notre conception précédente.
- UML (Unified Modeling Language) ne représente pas une démarche mais un formalisme
- Les deux types de vues (statiques, dynamiques)
- Tour d'horizon (rapide) des différents diagrammes UML
- L’assistance proposée par l’IA pour valider la modélisation (classes prédictives)
Travaux pratiques
Descriptif : Modélisation de notre application fil rouge avec UML, Soumission de notre modèle de classe à une IA pour comparaisons des résultats.
- 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
- Présentation rapide des IDE Visual Studio et IntelliJ
- Tour d’horizon des plugins standard disponibles
- Les apports des assistants IA comme GitHub Copilot (autocompletion intelligente, génération de fonction, suggestion de code, etc.)
Travaux pratiques
Descriptif : Nous implémentons les classes de notre application précédente en Java ou Python 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 que nous avons conçues « fonctionnent » dans une « vraie » application simplifiée.
- Briques techniques de l’IA (machine learning, deep learning, modèle, entraînement, etc.)
- Écrire des prompts (IA générative) efficaces pour le développeur
- Comment la complexité des bibliothèques d’IA (LLM, réseau de neurones, etc.) est encapsulée dans des bibliothèques Java, Python, C++, etc. ?
- Intégration d’un composant IA dans un projet objet métier (classes intelligentes qui prennent des décisions)
- Familles de classes autour de l’IA (ModeleIA, ClassifieurIA, RegresseurIA, ClusteringIA)
Travaux pratiques
Descriptif : L’atelier consiste à développer « from scratch » une application proposant un prompt capable d’interagir avec différents modèles d’’IA et récupérer les résultats (traduction, image, réusmé de texte, etc.) dans notre application.Pour cela nous prévoyons d’utiliser 3 classes abstraites « QUESTION » (attributs prompt, instructions, fichiers,etc. permettant de définir la question et son contexte, « REPONSE »proposant les attributs de la réponse (texte ou autre format selon la question, méta données éventuelles comme le nom du modèle d’IA, sa verison, etc. et « SERVICE » qui est la classe qui spécifie le service demandé (traduction, résumé, génération d’image, etc.). On voit bien ici que notre programme est extensible et capable d’intégrer de nouveaux services sans modification de code
Objectif : Consolider l’intégration de l’IA dans sa conception
Descriptif : L’atelier consiste à faire évoluer notre projet fil rouge en intégrant de l’IA avec l’utilisation d’une classe intelligente qui prend des décisions comme recommander un article, prédire une rupture de stock, détecter une anomalie, etc. On met à jour le diagramme UML de notre projet avec des éléments comme IAProcessor ou DecisionEngine
Travaux pratiques
L’approche pédagogique repose sur un apprentissage par la pratique structurée autour d’un projet fil rouge parlant à tout le monde (commandes, articles) mais tout en présentant les concepts « brique par brique ». On proposera donc parfois 2 ateliers (un pour valider un concept de façon « atomique » et l’autre pour se rapprocher progressivement d’une application métier réaliste. Chaque concept est introduit sous forme de problématique ou de question comme « En quoi l’approche fonctionnelle classique ne facilite pas toujours la maintenance d’une application ? », « Comment faire pour ne pas tout réécrire mon code quand je manipule des commandes en ligne et non plus des commandes classiques ? », ou encore « dois-je connaître les réseaux de neurones pour utiliser les bibliothèques d’IA ? », etc.
Chaque concept (classe, héritage, interface, UML, design patterns, etc.) est donc introduit via une mise en situation concrète, suivie de travaux pratiques qui permettent de valider les acquis. Les participants sont continuellement sollicités pour analyser, concevoir, tester et discuter (encore plus en mode distanciel). Des quiz quotidiens valident les acquis et la progression est accompagnée par des synthèses régulières.
L’important sujet de l’IA est amenée progressivement dans la formation. Dans un premier temps sous un angle d’assistant (syntaxe) puis on introduit sa dimension de « conseil » en proposant de valider notre modèle de classes ou même d’en proposer un, et enfin sous son aspect plus technique qui consiste à l’intégrer dans un projet métier (classes d’IA). Pédagogiquement nous prenons garde de ne pas faire évoluer les participants vers une dépendance passive et « risquée » auprès de l’IA et nous privilégions systématiquement l’assimilation des concepts objets avant toute utilisation de l’IA.
Programme mis à jour le 10/12/2025
Public concerné
Ce cours s’adresse aux développeurs ou aux chefs de projet pratiquant la programmation structurée traditionnelle. Le public visé cherche à comprendre l’approche objet et comment mettre en œuvre ses modalités concrètes lors de futurs développements.
Cette formation intéressera également tout développeur (objet ou non) désirant être plus à l’aise dans l’utilisation ou la conception des classes dans un projet applicatif.

Prérequis
Les participants à cette formation possèdent une première expérience en conception d’applications et en développement logiciel.
Quel que soit le langage utilisé (C, Cobol, Shell, Python, ...), il est important d’avoir déjà développé et livré une application, même de taille modeste, seul ou en équipe.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
4,7/5
24 avis
« Mon avis sur le contenu du stage : "Bonne organisation de la formation. Les éléments les + importants ont été très bien abordés. Les ateliers pratiques sont bien." Mon avis sur le formateur : "Tout était très clair. Le formateur prend bien son temps pour expliquer, et est très clair dans ses explications." Mon avis sur la salle de formation : "Malgré le fait de faire la formation à distance, tout s'est bien passé et tout était bien clair." Ce que j'ai le plus apprécié : "Le formateur + support de cours + les excercices" Ce que j'ai le moins apprécié : "Pas vraiment d'aspect négatif." »
MA « Mon avis sur le contenu du stage : "Le support papier est à revoir ! Tout les commentaires sont sur un seul axe vertical et de ce fait, les explications sont difficiles à appréhender. Par ailleurs, il y a des fautes (typo ou autres à corriger)." Mon avis sur le formateur : "Formateur très intéressant car passionné par son domaine de prédilection. De nombreux autres points ont été abordés ou expliqués sans qu'ils soient directement lié à la formation elle-même. " Ce que j'ai le plus apprécié : "La salle de pause a été trés appreciée ! (et les petits gâteaux...) " »
RS « Mon avis sur le formateur : "Parfois mis en retard par un métro capricieux il a toujours été disponible pour répondre à nos questions." Ce que j'ai le plus apprécié : "Le nombre restreint des participants est réellement un avantage pour avoir une assistance personnalisée. Disponibilité de l'équipe pédagogique. Rétroprojecteur Espace détente ;-)" Ce que j'ai le moins apprécié : "Feutres HS :-(" »
VALVERDE Jean-RobertAREA SANTE CENTRE DE GESTION
Les avis figurant ci-dessus sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.
Formations liées
- Conception, Architecture et Sécurité des APIs ReSTRéf. RSPI3 joursIntermédiaireProchaine session : 12 oct.2 090 €
- Design patterns pour les microservicesRéf. JDPM3 joursIntermédiaireProchaine session : 28 oct.2 090 €
- Développer des microservices événementiels avec Quarkus et Kafka Reactive MessagingRéf. DMRQ2 joursIntermédiaireProchaine session : 9 nov.1 590 €
- Drupal Développement Back-End AvancéRéf. DDA82 joursAvancéProchaine session : 17 déc.1 190 €