Master Expert en Ingénierie du Logiciel
ESIEA - École d'Ingénieur·e·s d'un numérique utile
L'ESIEA est une école d'ingénieurs française fondée en 1958, reconnue par la Commission des Titres d'Ingénieur (CTI). L'école formé des ingénieurs du numérique capables de relever les défis technologiques actuels et futurs. Le titre « Expert en Ingénierie du Logiciel » est un titre RNCP de niveau 7 (équivalent Master) certifié par l'ESIEA. Ce programme couvre l'ensemble des compétences requises pour concevoir, développer, tester, sécuriser et manager des projets logiciels complexes dans un environnement professionnel exigeant.
Approche d'apprentissage par projet combinant connaissances théoriques approfondies et applications concrètes en entreprise. Les étudiants travaillent sur des projets de niveau professionnel tout au long de leur cursus, couvrant l'ensemble du cycle de développement logiciel : de la conception architecturale au déploiement en production, en passant par le développement, les tests et la sécurisation. Le programme est conçu pour former des experts capables de concevoir, développer, tester, sécuriser et manager des projets logiciels complexes.
- Recueillir et analyser les besoins du client, adopter une approche conseil en apportant des solutions logicielles adaptées
- Répondre aux attentes des métiers en délivrant la valeur attendue, avec la juste qualité, en maîtrisant les coûts et les délais
- Prototyper, concevoir, développer, livrer et maintenir des solutions logicielles multi plate-forme
- Tirer profit de l'intelligence artificielle et du traitement massif de données dans le développement d'applications métier
- Maîtriser les langages de programmation essentiels et les environnements de développement correspondants
- Sécuriser les applications web en appliquant les recommandations OWASP et les bonnes pratiques de cybersécurité
- Valider la qualité logicielle par des stratégies de tests automatisés, de performance et d'intégration continue
43
thématiques
186
objectifs pédagogiques
1 151
formations
738h
heures de formation
Bloc 1 - Gestion de la relation client en ingénierie du logiciel
Analyse fonctionnelle d'un projet SI
- Expliquer le rôle de l'analyse fonctionnelle dans un projet SI
- Conduire une analyse fonctionnelle (besoins fonctionnels et non fonctionnels)
- Rédiger un cahier des charges fonctionnelles
- Traduire les besoins en user stories et en tâches techniques
Initier efficacement un projet SI
- Analyser la structure et les enjeux d'un système d'information
- Identifier, évaluer et prioriser les projets SI
- Estimer les coûts, délais et ressources d'un projet SI
- Exploiter et construire un business case
- Communiquer et accompagner le changement autour des projets SI
Droit des contrats informatiques
- Appliquer les principes juridiques des contrats professionnels (B2B)
- Identifier les mécanismes de propriété intellectuelle applicables aux solutions informatiques
- Détecter les clauses essentielles des contrats de développement ou de fourniture de solutions informatiques
- Identifier et analyser les contrats utiles pour sécuriser la fourniture et l'utilisation de solutions informatiques
- Appréhender les risques juridiques spécifiques liés aux contrats internationaux
UX et Wireframing
- Comprendre les enjeux et le périmètre de l'UX Design
- Découvrir les différentes étapes de la méthode
- Identifier les utilisateurs, leurs besoins, leurs attentes et leurs freins
- Concevoir une interface en utilisant et assemblant les éléments qui la constituent
- Tester votre projet pour connaître les axes d'amélioration
Design Thinking
- Appliquer la méthodologie du design thinking et les techniques de recherche utilisateur
- Stimuler la créativité au sein d'un groupe et générer des idées innovantes
- Maîtriser les outils de prototypage pour donner vie à leurs solutions
- Tester et itérer les solutions avec les utilisateurs pour optimiser leur proposition de valeur
- Concevoir et animer des ateliers d'intelligence collective en utilisant les techniques de facilitation
Management transversal
- Mettre en œuvre les outils et comportements clés du management transversal
- S'adapter aux différents profils comportementaux pour collaborer efficacement
- Organiser et coordonner une équipe sans lien hiérarchique
- Gérer les résistances et développer son leadership transversal
Animer et encadrer une équipe
- Acquérir les outils et méthodes pour un management efficace de son équipe
- Adapter son style de management en fonction des profils et des situations
- Maîtriser les techniques de communication (CNV) et de gestion des conflits
- Activer les leviers de motivation individuels et collectifs
Bloc 2 - Pilotage de projet d'ingénierie logiciel
Exécuter et piloter la réalisation d'un projet Génie logiciel
- Analyser et comprendre l'environnement de son projet
- Choisir et mettre en place un cadre d'exécution adapté
- Identifier et estimer le travail et les ressources d'un projet
- Organiser et séquencer l'exécution du travail
- Suivre et communiquer sur l'avancement d'un projet
Méthodes Agiles avancées / Scrum
- Différencier les approches traditionnelles des approches agiles et produit
- Maîtriser le framework Scrum : rôles, artefacts, rituels et estimation
- Organiser un backlog produit, rédiger des user stories et planifier une roadmap
- Appliquer Kanban et les principes d'amélioration continue
Leadership et Management
- Comprendre les enjeux du leadership vis-à-vis de ceux du management
- Découvrir des techniques de connaissance de soi qui renforcent le leadership du manager
- Développer des compétences relationnelles au service de l'engagement d'une équipe
- Faire face aux situations difficiles (syndrome de l'imposteur, tensions, stress, sexisme..)
Communiquer en mode projet
- Connaître les fondamentaux de la communication projet
- Comprendre comment élaborer un plan de communication performant
- Identifier les supports de communication essentiels en mode projet
- Maîtriser la communication en fin de projet
Bloc 3 - Intégration, industrialisation et déploiement du logiciel
Javascript : initiation et programmation orientée objet
- Comprendre l'usage de JavaScript dans le développement front-end
- Maîtriser la syntaxe et les bases indispensables du langage JavaScript
- Appliquer les bases de la POO (Programmation Orientée Objet) commune à l'ensemble des langages du web
- Concevoir du code à l'aide de méthodes spécifiques à JavaScript
Javascript : programmation événementielle et asynchrone
- Manipuler la structure DOM d'une page web
- Manipuler les feuilles de styles CSS
- Pratiquer la programmation événementielle et asynchrone
- Maîtriser l'API Fetch
Développer vos applications web avec TypeScript
- Maîtriser les types de TypeScript
- Mettre des contrôles avec les interfaces
- Structurer un projet avec les modules et namespaces
- Aller plus loin en programmation orientée objet (POO)
- Utiliser TypeScript dans différents environnements
Fondamentaux du développement Front-end avec Angular
- Maîtriser le fonctionnement d'une application Angular
- Appliquer les briques de base d'Angular : Composants, Services et Directives
- Debugger une application Angular
- Utiliser des observables
Approfondissement du développement Front-end avec Angular
- Créer une application Angular complète
- Créer et naviguer entre des pages avec le routeur
- Créer des formulaires complexes en utilisant les model-driven forms ou les template-driven forms
- Utiliser les pipes et créer des pipes custom
- Faire des requêtes HTTP (GET, POST..)
- Utiliser les intercepteurs
Maîtriser Java SE
- Développer des classes Java
- Maîtriser les principaux mots clefs du langage
- Mettre en œuvre des couches logicielles en utilisant des interfaces
- Utiliser l'API Stream et les lambdas
- Comprendre l'outil Maven, les bibliothèques Lombok et Log4J et le framework JUnit
Développer en Java avec Spring et Hibernate
- Maîtriser Jakarta Persistence et Hibernate pour la persistance des données
- Développer une application d'entreprise avec le framework Spring
- Concevoir et exposer une API REST avec Spring Boot
- Documenter une API avec Swagger et appliquer la programmation orientée aspect
Git avancé - GitHub et GitLab
- Maîtriser les commandes et concepts de Git
- Maîtriser les Pull Request sur GitHub
- Gérer un projet sur GitLab
- Appliquer les concepts internes de Git
Maîtriser Docker et le DevOps
- Comprendre les concepts de base de Docker
- Utiliser les outils Docker Compose pour définir et gérer des applications multi-conteneurs
- Déployer et gérer des applications à l'aide de Docker Swarm
- Utiliser les outils d'intégration continue avec Docker pour automatiser les processus de déploiement
Déploiement d'une application
- Décrire et exécuter le déploiement d'une application
- Choisir un mode de déploiement adapté en fonction du type d'hébergement
- Préparer un déploiement d'application web et microservice
- Prendre en compte la sécurité pour le déploiement d'application
Kubernetes pour orchestrer ses conteneurs
- Comprendre les concepts de base de Kubernetes
- Maîtriser les fondements des conteneurs et démontrer comment Kubernetes facilité leur gestion
- Déployer une application simple dans Kubernetes
- Créer un service pour exposer une application dans un cluster
- Utiliser kubectl pour surveiller l'état d'un cluster et récupérer des journaux
Maîtriser le langage Kotlin
- Maîtriser les fondamentaux et la syntaxe du langage Kotlin
- Appliquer la programmation orientée objet et fonctionnelle en Kotlin
- Exploiter des API REST et manipuler les données JSON
- Gérer les tâches asynchrones avec les threads
Développer des applications mobiles Android en Kotlin
- Créer une application native Android en Kotlin
- Concevoir et manipuler des interfaces graphiques (RecyclerView, menus, thèmes)
- Exploiter des API REST avec Retrofit et l'architecture MVVM
- Gérer le cycle de vie des activités, les permissions et les erreurs
Construire une API REST avec Spring Boot
- Découvrir le concept d'API REST
- Apprendre à générer un projet Spring Boot
- Savoir interagir avec une API REST en tant que client
- Documenter son API pour permettre sa compréhension
- Valider vos données avec les annotations
Bloc 4 - Conception avancée de l'architecture du logiciel
Principes SOLID en JAVA
- Identifier les enjeux du clean code
- Appréhender les principes SOLID
- Mettre en œuvre les principes SOLID en JAVA
Architecture logicielle
- Identifier et comparer les principales architectures logicielles (monolithique, SOA, microservices, événementielle, centrée données)
- Évaluer les cas d'utilisation adaptés à chaque type d'architecture
- Mettre en œuvre une architecture logicielle en Java
Conception d'application complexe avec UML
- Produire un code source à partir d'un diagramme de classe
- Représenter un scénario complexe à l'aide d'un diagramme de séquence
- Illustrer une architecture logicielle à l'aide d'un diagramme de composant
- Établir un diagramme de déploiement
- Produire un diagramme de package à partir du code source
Design Pattern en Java
- Connaître les 23 Design Pattern de conception du Gang of Four (GoF)
- Appliquer les principaux DP de création en Java (Singleton, Factory, Abstract Factory)
- Appliquer les principaux DP de structure en Java (Adapter, Proxy, Composite, Façade, Decorator)
- Appliquer les principaux DP de comportement en Java (Observer, Strategy, Iterator, Interpreter, Chain of Responsibility)
- Adapter un ou plusieurs DP à des situations réelles
Sécurité des applications web
- Appréhender les recommandations OWASP
- Connaître les modes d'authentification pour les applications web
- Implémenter une authentification basée sur les tokens en Java avec Spring Security
Algorithmie avancée
- Être en mesure de pouvoir comparer deux algorithmes
- Améliorer un algorithme en termes de temps d'exécution
- Améliorer un algorithme en termes d'utilisation de la mémoire
- Appliquer une stratégie de résolution de problème
Programmation fonctionnelle en Scala
- Comprendre les concepts fondamentaux de la programmation fonctionnelle
- Savoir utiliser les fonctions comme des valeurs
- Maîtriser les techniques de manipulation de données immuables
- Appliquer les concepts de récursivité et de fonctions de haut niveau
- Utiliser Scala pour mettre en pratique les concepts de la programmation fonctionnelle
Architecture distribuée et Big Data
- Comprendre les enjeux du Big Data
- Maîtriser le stockage relationnel & NoSQL : leurs garanties et leurs limitations
- Parcourir les caractéristiques des systèmes distribués
- Maîtriser les bases du traitement batch : MapReduce, Data Flow Engines (Spark..)
- Analyser la donnée temps réel avec du Streaming
NoSQL
- Comparer les modèles de bases de données relationnelles et NoSQL
- Maîtriser les bases NoSQL : clé-valeur (Redis), colonne (Cassandra), document (MongoDB), graphe (Neo4j)
- Concevoir et gérer des bases de données dans un environnement distribué
- Comprendre la répartition de charge, la cohérence des données et la tolérance aux pannes
Structure des données
- Comprendre les structures non linéaires à travers la structure graphe
- Représenter un graphe dans un langage de programmation
- Parcourir un graphe
- Résoudre des problèmes courants à l'aide de graphes
Plans de tests d'une application
- Construire et exécuter un plan de tests adapté selon la méthodologie de développement
- Différencier les types de tests et choisir une stratégie adaptée au contexte
- Créer et exécuter des tests automatisés sur des environnements adaptés
- Analyser la sécurité d'une application et apporter des corrections selon les recommandations de OWASP
Introduction au Machine Learning
- Définir le machine learning et ses composants
- Être capable de préparer des données
- Savoir entraîner et exploiter un modèle de machine learning
- Identifier des cas d'usage pertinents du machine learning
Bloc 5 - Préparation à votre niveau d'anglais
Anglais commercial
- Savoir accueillir, renseigner et faire remplir une fiche d'information
- Pouvoir communiquer et maîtriser les bases de l'anglais commercial
- Traiter des réclamations clients par écrit
- Enrichir et utiliser un vocabulaire spécifique et adapté
Anglais Commercial Niveau Avancé
- Améliorer les compétences de communication en anglais des affaires
- Développer des techniques et stratégies de vente avancées
- Renforcer les compétences de communication interculturelle pour le commerce international
- Appliquer les compétences de vente B2B et de gestion de comptes
- Comprendre les compétences en marketing et communication client
Anglais Commercial Niveau Intermédiaire
- Communiquer efficacement avec des collaborateurs, des clients ou des fournisseurs en anglais
- Découvrir des méthodes pour améliorer la prononciation et l'articulation en anglais
- Maîtriser les techniques de présentation efficace en anglais pour captiver l'audience
- Comprendre les besoins des clients et les reformuler
- Formuler des propositions commerciales et répondre aux objections
Anglais : préparation au TOEIC
- Se familiariser avec la formé du test TOEIC
- Identifier les points de grammaire à maîtriser et le vocabulaire à acquérir
- Déjouer les "pièges" du TOEIC
- Maximiser son score TOEIC grâce aux conseils de préparation et au passage d'un TOEIC blanc
Bloc 6 - Modules de mise à niveau préparatoire et de renforcement
Anglais des Ressources Humaines
- Concevoir et adapter des stratégies de communication en anglais pour des situations RH complexes et internationales
- Développer et enrichir un lexique RH spécialisé afin de formuler avec précision des politiques et procédures RH en anglais
- Élaborer des messages et supports RH (mails, entretiens, présentations) en anglais en intégrant les dimensions linguistiques et interculturelles
- Produire une communication RH cohérente, claire et crédible, adaptée à des interlocuteurs multiculturels et à des contextes organisationnels variés
Palmarès nationaux des écoles d'ingénieurs en France (2024-2026)
| Rang | Spécialité |
|---|---|
| 1 er | Spécialité Informatique |
| 3 ème | Écoles spécialisées Informatique |
| 4 ème | IA & Data Science |
| 5 ème | Top 20 Informatique Post-Bac |
| 6 ème | Ingénieurs Informatique |
| 10 ème | Palmarès Général Post-Bac |
| 11 ème | Écoles d'Ingénieurs Post-Bac |
| 13 ème | Ingénieurs Généralistes Post-Bac |
26 Compétence technique · 8 Compétence humaine
Compétence technique
Concevoir des systèmes logiciels évolutifs en utilisant des patterns architecturaux tels que l'architecture en couches, l'architecture hexagonale, les microservices, l'architecture événementielle et le CQRS.
Appliquer les principes SOLID (responsabilité unique, ouvert/fermé, substitution de Liskov, ségrégation des interfaces, inversion de dépendances) et les pratiques de code propre pour un logiciel maintenable.
Implémenter les design patterns du Gang of Four (créationnels, structurels, comportementaux) pour résoudre des problèmes de conception récurrents et construire des logiciels orientés objet flexibles et réutilisables.
Définir et exécuter des stratégies de tests complètes incluant les tests unitaires, les tests d'intégration, les tests de bout en bout, les pratiques TDD/BDD et les processus d'assurance qualité logicielle.
Sécuriser les applications web en appliquant les recommandations OWASP Top 10, en implémentant l'authentification/autorisation, en prévenant les attaques par injection, XSS, CSRF et en réalisant des audits de sécurité.
Maîtriser les paradigmes de programmation JavaScript incluant la programmation orientée objet, l'architecture événementielle, les patterns asynchrones (Promises, async/await) et les fonctionnalités modernes ES6+.
Développer des applications type-safe avec TypeScript en exploitant les systèmes de types avancés, les génériques, les décorateurs, les interfaces et l'intégration avec les frameworks et outils de build modernes.
Programmer des applications robustes en Java SE en maîtrisant les concepts fondamentaux tels que les collections, les génériques, les streams, le multithreading, les I/O et l'écosystème JVM.
Développer des applications d'entreprise avec le framework Spring (Boot, MVC, Security, Data) et Hibernate ORM pour la persistance des données, la gestion des transactions et le développement d'API RESTful.
Concevoir et implémenter des API RESTful selon les bonnes pratiques incluant la modélisation des ressources, les méthodes HTTP, les codes de statut, l'authentification, le versionnage, la documentation et la sécurité des API.
Conteneuriser les applications avec Docker, créer des images optimisées, gérer des environnements multi-conteneurs avec Docker Compose et intégrer les pratiques DevOps pour la livraison continue.
Appliquer des workflows Git avancés incluant les stratégies de branchement (GitFlow, trunk-based), les pull requests, les revues de code, l'intégration CI/CD et la collaboration sur les plateformes GitHub et GitLab.
Appliquer les pratiques avancées Agile et Scrum incluant la planification de sprints, le refinement du backlog, le suivi de vélocité, les rétrospectives et les frameworks de mise à l'échelle pour les projets logiciels complexes.
Exécuter et piloter des projets d'ingénierie logicielle de bout en bout, en gérant le périmètre, les délais, les budgets, les livrables et les attentes des parties prenantes tout au long du cycle de vie du projet.
Analyser et concevoir des algorithmes efficaces, comprendre la complexité computationnelle (notation Big O) et appliquer des structures de données avancées et des stratégies algorithmiques pour résoudre des problèmes complexes.
Modéliser des conceptions d'applications complexes à l'aide de diagrammes UML incluant les diagrammes de classes, de séquence, de cas d'utilisation, de composants et de déploiement.
Construire des applications front-end de niveau entreprise avec Angular, incluant les composants, les services, l'injection de dépendances, le routage, les formulaires réactifs, les observables RxJS et la gestion d'état.
Développer des applications Android natives avec Kotlin, incluant le design UI avec Jetpack Compose, l'architecture MVVM, la persistance des données, l'intégration d'API et les bonnes pratiques mobiles.
Concevoir et implémenter des systèmes distribués et des architectures Big Data en utilisant des technologies telles que Hadoop, Spark, Kafka et des bases de données distribuées pour le traitement de données à grande échelle.
Travailler avec des systèmes de bases de données NoSQL incluant Redis (clé-valeur), MongoDB (document), Cassandra (colonne) et Neo4j (graphe), en sélectionnant le modèle approprié pour chaque cas d'usage.
Appliquer les paradigmes de programmation fonctionnelle avec Scala, incluant l'immutabilité, les fonctions d'ordre supérieur, le pattern matching, les monades et les approches fonctionnelles de la programmation concurrente.
Comprendre et appliquer les fondamentaux du machine learning incluant l'apprentissage supervisé/non supervisé, les réseaux neuronaux, l'évaluation des modèles et l'intégration de capacités IA dans les applications logicielles.
Recueillir et analyser les besoins du client, modéliser les spécifications fonctionnelles et traduire les exigences métier en cahiers des charges logiciels à l'aide de techniques telles que les cas d'utilisation, les user stories et les matrices de traçabilité des exigences.
Concevoir des interfaces centrées utilisateur à travers la recherche UX, le wireframing, le prototypage, les tests d'utilisabilité et l'application de principes de design pour créer des produits numériques intuitifs et accessibles.
Développer et exécuter des stratégies de communication projet incluant le reporting aux parties prenantes, les tableaux de bord de suivi, la communication des risques et les techniques d'alignement d'équipe.
Comprendre le droit des contrats informatiques incluant les SLA, la propriété intellectuelle, la conformité RGPD, les clauses de responsabilité et les cadres juridiques régissant le développement logiciel et les services numériques.
Compétence humaine
Diriger et coacher des équipes de développement à travers le mentorat, la délégation, la motivation, le feedback de performance et la promotion d'une culture d'apprentissage continu et de croissance professionnelle.
Coordonner des équipes transversales, aligner des parties prenantes diverses et gérer des projets transverses couvrant plusieurs départements avec des priorités et contraintes différentes.
Collaborer efficacement au sein d'équipes Agile à travers le pair programming, les revues de code, les cérémonies de sprint, le partage de connaissances et les pratiques de travail d'équipe transversal.
Appliquer la méthodologie Design Thinking pour stimuler l'innovation, incluant la carte d'empathie, l'idéation, le prototypage rapide et la validation itérative avec les utilisateurs finaux.
Construire et maintenir des relations de confiance avec les clients à travers le conseil en IT, l'analyse des besoins, les propositions de solutions et les services de conseil alignant la technologie avec les objectifs métier.
Produire une documentation technique claire, rédiger des communications projet efficaces, créer des fiches de décision architecturale et présenter des concepts techniques complexes à des audiences diverses.
Communiquer efficacement en anglais professionnel à travers la documentation technique, les présentations, les réunions et la collaboration internationale avec des équipes de développement mondiales.
Naviguer dans la communication RH dans des contextes internationaux et multiculturels, incluant la sensibilisation interculturelle, la gestion de la diversité et la communication efficace au-delà des frontières culturelles.
MagicPlaylist - Découverte Musicale Android et Générateur de Playlists
Application Android native générant des playlists musicales à partir de morceaux de départ via les données de similarité Shazam et exportant vers Spotify - 5 666 lignes de Kotlin, 22 composants UI Compose, pipeline de mapping à 5 stratégies, construit en 2 jours avec développement assisté par IA.
Plateforme Collaborative de Gestion de Projets
Application web full-stack de gestion de projets d'équipe avec authentification JWT, contrôle d'accès par rôles, tableaux de bord temps réel, notifications email et pipeline CI/CD complet - 30 555 lignes de code, 12 user stories, 7 tables en base de données, déploiement Docker Hub.
GamesUP - Plateforme E-Commerce de Jeux de Société avec Recommandations ML
API backend complète pour une plateforme e-commerce de jeux de société avec moteur de recommandation KNN, sécurité JWT, architecture SOLID et 81% de couverture de tests - 32,6K lignes de code, 364 tests, 65+ endpoints REST, 4 conteneurs Docker, construite avec Spring Boot 3, Python FastAPI et Docker.







