J'ai un diplôme "Expert en ingénierie logicielle"

Je sais faire les actions suivantes :

L’Expert en Ingénierie Logicielle intervient à différents niveaux d’activités : * Il analyse la stratégie et la politique informatique de ses clients. * Il recueille les besoins exprimés par les utilisateurs et les traduit en spécifications techniques et fonctionnelles en rédigeant un cahier des charges. * Il étudie une solution informatique en la proposant et en la justifiant auprès des utilisateurs. * Il pilote la réalisation du projet en constituant, organisant, coordonnant et en animant l’équipe projet. * Il est responsable de la conception, de la mise en œuvre et du maintien en conditions opérationnelles du Système d’Information et de sa qualité. * Il évalue et préconise les investissements en fonction des évolutions technologiques souhaitées. * Il s’assure de l’efficacité et de la maîtrise des SI en assurant sa gouvernance, il en mesure et apprécie les risques et apporte des solutions pour assurer sa sécurité. Ses missions peuvent porter spécifiquement soit sur de l'ingénierie logicielle en technologie web, soit sur de l'ingéniere logicielle en développement d'application "lourde".

OÙ SUIVRE CE DIPLÔME ?

EPITECH ECOLE INFORMATIQUE NOUV TECHNO

Saint-André

Non renseigné

Détails du diplôme

Quelles sont les compétences que vous allez apprendre mais aussi comment l'examen va-t-il se passer ?

Compétences attestées :

* Recenser les besoins du client et des utilisateurs en observant et en échangeant avec les parties prenantes afin de cerner les usages prévus, notamment pour les personnes en situation de handicap. * Réaliser un audit technique, fonctionnel et de sécurité de l'environnement dans lequel s'inscrit le projet (infrastructure, système d'information, ressources humaines, ...) afin de proposer les solutions les plus adaptées au contexte, en analysant les solutions déjà en place et leurs effets. * Rédiger les spécifications techniques et fonctionnelles à partir des résultats de l'audit, afin de couvrir tous les besoins clients, en décrivant précisément tous les aspects techniques (spécifications techniques) et humains (spécifications fonctionnelles) * Chiffrer le projet en calculant les éléments financiers de la solution technique et en réalisant un benchmark des solutions existantes afin de cadrer les prévisions budgétaires. * Prévoir les impacts techniques et fonctionnels de la solution préconisée, afin de sécuriser des pistes de mitigation le cas échéant, en s'assurant de sa bonne intégration dans l'environnement d'exploitation du client. * Mettre en place une veille légale et réglementaire prenant en compte les besoins des PSH en menant des recherches fréquentes sur les usages liés aux technologies, en recensant les aspects légaux et réglementaires parus et en participant régulièrement aux rencontres de la communauté professionnelle afin de minimiser la dette technique pour les aspects couverts par le projet. * Réviser régulièrement les protocoles existants, notamment au regard des nouvelles failles de sécurité identifiées afin de contribuer à l'utilisation de standards technologiques élevés au sein de l'entreprise, en impulsant une application régulière des nouveaux usages et outils à l'entreprise. * Présenter une solution technique créative, en collaboration avec l'équipe projet et ses différentes expertises, en prenant en considération les différentes contraintes apportées par le client (économique, RSE, …) ou imposées par l'environnement technique dans le but de résoudre la problématique exposée. * Sélectionner une hypothèse d'architecture et l'urbanisme de la solution logicielle ou web, afin de garantir l'intégration et la pérennité d'une solution, en prenant en compte le reste de l'écosystème technique présent au sein de l'entreprise ainsi que l'accessibilité numérique de la solution. * Traduire les spécifications techniques et fonctionnelles en un système cohérent de composants logiciels en mobilisant son expertise et en s'appuyant sur l'état de l'art en termes d'architecture logicielle afin de produire une solution technique adapatée au besoin du client. * Segmenter chaque problème complexe en un ensemble de sous-problèmes afin d'obtenir des tâches atomiques dans un objectif de performance, d'adaptabilité et de maintenabilité en fonction des besoins du client. * Identifier des solutions existantes ou originales afin de répondre à chaque problème posé en tenant compte des contraintes de performance et de scalabilité de la solution et de son environnement d'exécution. * Sélectionner les solutions de persistance de données (fichier texte ou binaire, format de fichier structuré, base de donnée...) en s'appuyant sur son expertise et celle de l'équipe projet et en mobilisant l'état de l'art afin de s'adapter aux contraintes techniques, fonctionnelles et de sécurité de l'application en terme de stockage de données. * Sélectionner les structures de données répondant aux contraintes de l'application en tenant compte de leur complexité algorithmique et spatiale (tableaux, listes, sets, tables de hashage...) dans un objectif de performance, de maintenabilité et d'évolutivité de l'application. * Concevoir les interfaces (GUI, TUI, CLI, …) afin de garantir une bonne expérience utilisateur dans le respect des conventions d'UI et d'UX spécifiques aux modalités d'interactions concernées, en optimisant les vues et en respectant les critères reconnus d'accessibilité. * Vérifier l'intégrité des données traitées en s'appuyant sur les techniques de vérification de données et dans le respect des normes de conformité et de sécurité afin de s'assurer que la donnée n'a pas été corrompue et de prévenir ainsi les dysfonctionnements du logiciel. * Sélectionner les solutions techniques adaptées (protocoles, formats de fichiers...) en utilisant des composants logiciels tiers (bibliothèque) afin de proposer des implémentations permettant l'interopérabilité avec d'autres systèmes. * Rédiger le code à l'aide du langage informatique adapté au logiciel en implémentant les solutions techniques précédemment identifiées, afin de concrétiser la vision et la valeur du produit par le client. * Intégrer l'usage de codes tiers au code produit en s'appuyant sur la documentation et en suivant les instructions relatives aux solutions retenues afin d'optimiser le temps de production et l'efficacité ainsi que la maintenabilité du code. * Concevoir les interfaces web en ayant recours aux langages dédiés (HTML, CSS, Javascript, ...) afin de garantir une bonne expérience utilisateur (UI/UX), en optimisant les vues et en respectant les critères reconnus d'accessibilité. * Rédiger le code à l'aide du langage informatique adapté au type d'application web, en implémentant les solutions techniques précédemment identifiées, afin de concrétiser la vision et la valeur du produit par le client. * Simplifier le développement de l'architecture web en utilisant des frameworks et des bibliothèques pour gérer l'état de l'application et encourager la réutilisation de composants. * Rédiger le code à l'aide des langages de programmation adaptés au développement back-end en utilisant des frameworks ou des bibliothèques pour accélérer le développement et fournir des fonctionnalités avancées. * Mettre en place les mesures de sécurité identifiée lors de l'audit pour protéger l'application web contre les attaques, gérer les sessions utilisateurs, les erreurs et exceptions en utilisant des composants logiciels identifiés comme sûrs et en les intégrant en suivant les bonnes pratiques afin de garantir le niveau de sécurité exigé par le projet. * Définir un protocole de tests et piloter ses différentes phases, afin de garantir la qualité pendant le développement et avant la livraison finale, en scénarisant et paramétrant la phase de tests. * Sélectionner les outils, scripts et frameworks les plus adaptés à l'implémentation du protocole de test afin d'atteindre les objectifs définis par la politique de test, en mobilisant son expertise et celle de l'équipe projet. * Tester la solution en termes de charge et de fonctionnalités, afin de proposer des correctifs adéquats au bon moment, en écrivant les tests nécessaires (unitaires, fonctionnels, d'intégration, de performance) et en auditant l'infrastructure en matière de sécurité * Elaborer une stratégie d'assurance qualité en définissant les normes et processus de qualité et en tenant compte des normes d'accessibilité pour les personnes en situation de handicap afin d'assurer un suivi par l'équipe de développement. * Mettre en oeuvre les activités spécifiques nécessaires à l'évaluation de la qualité de la solution logicielle en s'appuyant sur les outils adaptés (revues de code, audits, tests de conformités aux normes, revues de documentation, ...) dans l'objectif de répondre aux objectifs définis par la stratégie d'assurance qualité. * Sélectionner les technologies et services adaptés pour l'hébergement ou déploiement de la solution en termes de dimensionnement et de disponibilité, en prenant en considération les contraintes du client (budget, sécurité, scalabilité, qualité de service). * Implémenter les systèmes d'automatisation nécessaires à garantir la fiabilité du déploiement et la disponibilité de la solution ainsi qu'à optimiser le processus de mise à jour du projet en définissant précisément les tâches à automatiser, les interactions avec les autres systèmes, ainsi que les contraintes techniques et les performances attendues. * Faire appliquer les normes de sécurité en vigueur en respectant les bonnes pratiques d'administration système et réseau pour prémunir la solution déployée contre les intrusions ou les attaques par déni de service. * Rédiger la documentation à toutes les étapes de développement en garantissant l'évolution possible de la solution dans le temps et selon les besoins afin de pérenniser la solution et de permettre sa reprise ultérieure par une autre équipe, dans le respect de la réglementation en vigueur. * Communiquer avec les collaborateurs et les clients afin de garantir la collaboration entre les différents acteurs du projet, en partageant les éléments (avancées, blocages, demandes, livraisons) en sa possession de manière structurée et en adaptant la documentation pour permettre son appropriation par tout type de public, y compris en situation de handicap. * Définir l'ensemble des phases techniques du projet et les tâches à prévoir, afin d'anticiper les écarts techniques et de prévenir les résistances au déploiement de la solution dans les délais prévus. * Allouer les ressources (humaines et matérielles) au projet afin de l'insérer dans un portefeuille de projets informatiques, en tenant compte des besoins sur le projet et de la charge de l'ensemble du portefeuille. * Identifier les ressources humaines nécessaires au projet (en présence ou à trouver/développer), afin de respecter scrupuleusement le cahier des charges, en précisant les contraintes de temps, d'effort et de spécificités du projet. * Monitorer l'avancement du projet et son équipe afin de garantir sa performance, sa cohérence et son bien-être, en mettant en place les outils et méthodes nécessaires au bon déroulement du projet et en proposant des outils et aménagements spécifiques pour les membres de l'équipe en situation de handicap temporaire ou permanent. * Diffuser les informations au sein de l'équipe en utilisant les moyens mis à disposition par l'entreprise (réunion présentielle ou distancielle, messagerie interne, email, ...) et en respect des exigences définies par la politique de sécurité du client, afin de garantir la bonne compréhension des missions par tous les membres de l'équipe, en tenant compte des éventuels besoins particuliers des personnes en situation de handicap. * Collaborer dans un contexte international en utilisant l'anglais comme langue de travail, en présentiel et en distanciel, afin d'intégrer des équipes interculturelles.

Voies d'accès à la certification :

Voies d'accès Composition des Jurys
Après un parcours de formation sous statut d’élève ou d’étudiant
Autorisé
Trois personnalités extérieures représentatives du secteur, assistées de 2 personnes représentant la Direction Pédagogique.
En contrat d’apprentissage
Autorisé
Trois personnalités extérieures représentatives du secteur, assistées de 2 personnes représentant la Direction Pédagogique.
Après un parcours de formation continue
Autorisé
Trois personnalités extérieures représentatives du secteur, assistées de 2 personnes représentant la Direction Pédagogique.
En contrat de professionnalisation
Autorisé
Trois personnalités extérieures représentatives du secteur, assistées de 2 personnes représentant la Direction Pédagogique.
Par candidature individuelle
Non autorisé
Par expérience
Autorisé
Trois personnalités extérieures représentatives du secteur, assistées de 2 personnes représentant la Direction Pédagogique.

Segmentation de la certification

Cette certification se compose de 7 Blocs de compétences

Les modalités d'acquisition de la certification par capitalisation des blocs de compétences et/ou par équivalence sont définies par chaque certificateur accrédité qui met en œuvre les dispositifs qu’il juge adaptés. Ces modalités peuvent être modulées en fonction du chemin d’accès à la certification : formation initiale, VAE, formation continue.

RNCP37985BC01 - Cadrer un projet de conception et développement d'une solution logicielle

    Recenser les besoins du client et des utilisateurs en observant et en échangeant avec les parties prenantes afin de cerner les usages prévus, notamment pour les personnes en situation de handicap. Réaliser un audit technique, fonctionnel et de sécurité de l'environnement dans lequel s'inscrit le projet (infrastructure, système d'information, ressources humaines, ...) afin de proposer les solutions les plus adaptées au contexte, en analysant les solutions déjà en place et leurs effets. Rédiger les spécifications techniques et fonctionnelles à partir des résultats de l'audit, afin de couvrir tous les besoins clients, en décrivant précisément tous les aspects techniques (spécifications techniques) et humains (spécifications fonctionnelles) Chiffrer le projet en calculant les éléments financiers de la solution technique et en réalisant un benchmark des solutions existantes afin de cadrer les prévisions budgétaires. Prévoir les impacts techniques et fonctionnels de la solution préconisée, afin de sécuriser des pistes de mitigation le cas échéant, en s'assurant de sa bonne intégration dans l'environnement d'exploitation du client.

RNCP37985BC02 - Concevoir une architecture logicielle

    Mettre en place une veille légale et réglementaire prenant en compte les besoins des PSH en menant des recherches fréquentes sur les usages liés aux technologies, en recensant les aspects légaux et réglementaires parus et en participant régulièrement aux rencontres de la communauté professionnelle afin de minimiser la dette technique pour les aspects couverts par le projet. Réviser régulièrement les protocoles existants, notamment au regard des nouvelles failles de sécurité identifiées afin de contribuer à l'utilisation de standards technologiques élevés au sein de l'entreprise, en impulsant une application régulière des nouveaux usages et outils à l'entreprise. Présenter une solution technique créative, en collaboration avec l'équipe projet et ses différentes expertises, en prenant en considération les différentes contraintes apportées par le client (économique, RSE, …) ou imposées par l'environnement technique dans le but de résoudre la problématique exposée. Sélectionner une hypothèse d'architecture et l'urbanisme de la solution logicielle ou web, afin de garantir l'intégration et la pérennité d'une solution, en prenant en compte le reste de l'écosystème technique présent au sein de l'entreprise ainsi que l'accessibilité numérique de la solution. Traduire les spécifications techniques et fonctionnelles en un système cohérent de composants logiciels en mobilisant son expertise et en s'appuyant sur l'état de l'art en termes d'architecture logicielle afin de produire une solution technique adaptée au besoin du client. Segmenter chaque problème complexe en un ensemble de sous-problèmes afin d'obtenir des tâches atomiques dans un objectif de performance, d'adaptabilité et de maintenabilité en fonction des besoins du client. Identifier des solutions existantes ou originales afin de répondre à chaque problème posé en tenant compte des contraintes de performance et de scalabilité de la solution et de son environnement d'exécution. Sélectionner les solutions de persistance de données (fichier texte ou binaire, format de fichier structuré, base de donnée, etc.) en s'appuyant sur son expertise et celle de l'équipe projet et en mobilisant l'état de l'art afin de s'adapter aux contraintes techniques, fonctionnelles et de sécurité de l'application en terme de stockage de données. Sélectionner les structures de données répondant aux contraintes de l'application en tenant compte de leur complexité algorithmique et spatiale (tableaux, listes, sets, tables de hashage...) dans un objectif de performance, de maintenabilité et d'évolutivité de l'application.

RNCP37985BC03 - Créer une architecture logicielle pour des applications dites "lourdes"

    Concevoir les interfaces (GUI, TUI, CLI, …) afin de garantir une bonne expérience utilisateur dans le respect des conventions d'UI et d'UX spécifiques aux modalités d'interactions concernées, en optimisant les vues et en respectant les critères reconnus d'accessibilité. Vérifier l'intégrité des données traitées en s'appuyant sur les techniques de vérification de données et dans le respect des normes de conformité et de sécurité afin de s'assurer que la donnée n'a pas été corrompue et de prévenir ainsi les dysfonctionnements du logiciel. Sélectionner les solutions techniques adaptées (protocoles, formats de fichiers...) en utilisant des composants logiciels tiers (bibliothèque) afin de proposer des implémentations permettant l'interopérabilité avec d'autres systèmes. Rédiger le code à l'aide du langage informatique adapté au logiciel en implémentant les solutions techniques précédemment identifiées, afin de concrétiser la vision et la valeur du produit par le client. Intégrer l'usage de codes tiers au code produit en s'appuyant sur la documentation et en suivant les instructions relatives aux solutions retenues afin d'optimiser le temps de production et l'efficacité ainsi que la maintenabilité du code.

RNCP37985BC04 - Créer une architecture logicielle pour des applications web

    Concevoir les interfaces web en ayant recours aux langages dédiés (HTML, CSS, Javascript, etc.) afin de garantir une bonne expérience utilisateur (UI/UX), en optimisant les vues et en respectant les critères reconnus d'accessibilité. Rédiger le code à l'aide du langage informatique adapté au type d'application web, en implémentant les solutions techniques précédemment identifiées, afin de concrétiser la vision et la valeur du produit par le client. Simplifier le développement de l'architecture web en utilisant des Frameworks et des bibliothèques pour gérer l'état de l'application et encourager la réutilisation de composants. Rédiger le code à l'aide des langages de programmation adaptés au développement back-end en utilisant des Frameworks ou des bibliothèques pour accélérer le développement et fournir des fonctionnalités avancées. Mettre en place les mesures de sécurité identifiée lors de l'audit pour protéger l'application web contre les attaques, gérer les sessions utilisateurs, les erreurs et exceptions en utilisant des composants logiciels identifiés comme sûrs et en les intégrant en suivant les bonnes pratiques afin de garantir le niveau de sécurité exigé par le projet.

RNCP37985BC05 - Définir et piloter la politique d'assurance qualité d'un projet de développement d'une solution logicielle

    Définir un protocole de tests et piloter ses différentes phases, afin de garantir la qualité pendant le développement et avant la livraison finale, en scénarisant et paramétrant la phase de tests. Sélectionner les outils, scripts et Frameworks les plus adaptés à l'implémentation du protocole de test afin d'atteindre les objectifs définis par la politique de test, en mobilisant son expertise et celle de l'équipe projet. Tester la solution en termes de charge et de fonctionnalités, afin de proposer des correctifs adéquats au bon moment, en écrivant les tests nécessaires (unitaires, fonctionnels, d'intégration, de performance) et en auditant l'infrastructure en matière de sécurité Elaborer une stratégie d'assurance qualité en définissant les normes et processus de qualité et en tenant compte des normes d'accessibilité pour les personnes en situation de handicap afin d'assurer un suivi par l'équipe de développement. Mettre en œuvre les activités spécifiques nécessaires à l'évaluation de la qualité de la solution logicielle en s'appuyant sur les outils adaptés (revues de code, audits, tests de conformités aux normes, revues de documentation, etc.) dans l'objectif de répondre aux objectifs définis par la stratégie d'assurance qualité.

RNCP37985BC06 - Piloter la mise en production d'un projet de développement d'une solution logicielle

    Sélectionner les technologies et services adaptés pour l'hébergement ou déploiement de la solution en termes de dimensionnement et de disponibilité, en prenant en considération les contraintes du client (budget, sécurité, scalabilité, qualité de service). Implémenter les systèmes d'automatisation nécessaires à garantir la fiabilité du déploiement et la disponibilité de la solution ainsi qu'à optimiser le processus de mise à jour du projet en définissant précisément les tâches à automatiser, les interactions avec les autres systèmes, ainsi que les contraintes techniques et les performances attendues. Faire appliquer les normes de sécurité en vigueur en respectant les bonnes pratiques d'administration système et réseau pour prémunir la solution déployée contre les intrusions ou les attaques par déni de service. Rédiger la documentation à toutes les étapes de développement en garantissant l'évolution possible de la solution dans le temps et selon les besoins afin de pérenniser la solution et de permettre sa reprise ultérieure par une autre équipe, dans le respect de la réglementation en vigueur. Communiquer avec les collaborateurs et les clients afin de garantir la collaboration entre les différents acteurs du projet, en partageant les éléments (avancées, blocages, demandes, livraisons) en sa possession de manière structurée et en adaptant la documentation pour permettre son appropriation par tout type de public, y compris en situation de handicap.

RNCP37985BC07 - Piloter un projet de conception et développement d'une solution logicielle

    Définir l'ensemble des phases techniques du projet et les tâches à prévoir, afin d'anticiper les écarts techniques et de prévenir les résistances au déploiement de la solution dans les délais prévus. Allouer les ressources (humaines et matérielles) au projet afin de l'insérer dans un portefeuille de projets informatiques, en tenant compte des besoins sur le projet et de la charge de l'ensemble du portefeuille. Identifier les ressources humaines nécessaires au projet (en présence ou à trouver/développer), afin de respecter scrupuleusement le cahier des charges, en précisant les contraintes de temps, d'effort et de spécificités du projet. Monitorer l'avancement du projet et son équipe afin de garantir sa performance, sa cohérence et son bien-être, en mettant en place les outils et méthodes nécessaires au bon déroulement du projet et en proposant des outils et aménagements spécifiques pour les membres de l'équipe en situation de handicap temporaire ou permanent. Diffuser les informations au sein de l'équipe en utilisant les moyens mis à disposition par l'entreprise (réunion présentielle ou distancielle, messagerie interne, email, etc.) et en respect des exigences définies par la politique de sécurité du client, afin de garantir la bonne compréhension des missions par tous les membres de l'équipe, en tenant compte des éventuels besoins particuliers des personnes en situation de handicap. Collaborer dans un contexte international en utilisant l'anglais comme langue de travail, en présentiel et en distanciel, afin d'intégrer des équipes interculturelles.

Je cherche à faire...