Aller au contenu
Avec l'industrie ferroviaire

Ingénieur(e) développement logiciel

Rechercher - Concevoir

A partir du niveau BAC + 5

DÉCOUVRE LE MÉTIER

Ingénieur(e) développement logiciel

En collaboration avec l'ensemble des équipes des services informatiques l'ingénieur développement logiciel est responsable de la conception, du développement, de l'intégration, de la maintenance et des évolutions d'un logiciel destiné à des systèmes embarqués, des plateformes de signalisation, des systèmes de contrôle-commande. Il intervient également sur des spécificités liées à la cybersécurité, les normes et réglementations ferroviaire et l'intégration des logiciels avec d'autres systèmes ferroviaires.

Activités d'un(e) Ingénieur(e) développement logiciel

  • Écoute et analyse du besoin fonctionnel
  • Définition des spécifications fonctionnelles et techniques du logiciel et rédaction du cahier des charges technique
  • Conception de l'architecture logicielle
  • Programmation des différentes fonctionnalités du logiciel avec les technologies retenues
  • Intégration du module, tests de fonctionnalité en conditions réelles et gestion de la maintenance corrective et évolutive du logiciel
  • Livraison de la solution la rendant opérationnelle pour l'utilisateur

Compétences techniques d'un(e) Ingénieur(e) développement logiciel

    • Recueillir, analyser et formaliser les besoins et contraintes : rédiger un cahier des charges, des spécifications techniques et fonctionnelles
    • Concevoir une architecture répondant aux spécifications techniques et fonctionnelles
    • Rédiger les documents formalisant l'architecture et réaliser les diagrammes d'architecture représentant la solution finale
    • Programmer dans un langage informatique spécifique, en s'assurant de la lisibilité, de la maintenabilité et des performances du code
    • Sélectionner, assembler et intégrer des composants informatiques (progiciels, bases de données, développements spécifiques)
    • Assurer la liaison fonctionnelle avec les autres éléments logiciels et matériels du système
    • Rédiger la documentation technique de la solution : exigences, spécifications, code source, conception de l'architecture, instructions de maintenance…
    • Définir et mettre en place un protocole de tests (tests unitaires, d'intégration, d'acceptations automatiques…)
    • Détecter les anomalies ou améliorations potentielles, mener les actions appropriées

Compétences transverses d'un(e) Ingénieur(e) développement logiciel

    • Intégrer l'intelligence artificielle dans le développement des solutions techniques, notamment pour optimiser la maintenance prédictive des équipements
    • Mettre en œuvre des processus d'intégration et de déploiement continus pour automatiser les développements
    • Assurer la cohérence et la qualité des déploiements entre les environnements de développement, de test et de production
    • Évaluer les performances d'une solution en récoltant les données et mesures à différentes étapes de son cycle de vie
    • Adopter une démarche d'amélioration continue pour identifier les axes de perfectionnement et optimiser la performance d'une solution
    • Mettre en œuvre une veille technologique permettant d'améliorer la prise de décisions techniques
    • Rédiger la documentation à destination des opérationnels afin de faciliter l'utilisation du logiciel et leur adhésion à celui-ci
    • Organiser et animer des formations pour faciliter la prise en main du logiciel
    • Communiquer sur les évolutions de la solution

Compétences comportementales d'un(e) Ingénieur(e) développement logiciel

    • Adapter sa méthodologie en fonction du projet et en prenant en compte divers paramètres (budget, cible, planning, etc.), et en intégrant ses contraintes, ses risques et ses enjeux
    • Adapter son organisation à la diversité, à l'incertitude et à la complexité des situations
    • Se montrer agile et proactif dans ses démarches (intrapreneuriat)
    • Transmettre les informations utiles au projet et communiquer avec l'ensemble des collaborateurs concernés
    • Superviser la collaboration entre les développeurs et les équipes opérationnelles
    • Travailler seul ou en équipe grâce à des outils et des méthodes partagés, en réseau et à distance
    • Superviser et coordonner les travaux de développement informatique
    • Intégrer des méthodes et outils de développement produits innovants : Analyse des usages, brainstorming, analyse de la valeur, design thinking…
    • Développer une méthode de travail structurée, pour mieux atteindre les objectifs du projet

ÉVOLUTIONS ANTICIPÉES

Ingénieur(e) développement logiciel

  • Transition numérique

    Digitalisation de la signalisation

    <p>Les ingénieurs développement logiciels doivent de plus en plus développer et assurer la maintenance de logiciels permettant la digitalisation de la signalisation</p>

  • Transition numérique

    Cybersécurité ferroviaire

    <p>Conception de systèmes robustes, résilients aux cyberattaques, tout en garantissant une interopérabilité et une conformité aux standards de sécurité</p>

  • Transition numérique

    Automatisation et mobilité autonome

    <p>Conception d'algorithmes d'optimisation, de navigation et de gestion d'énergie pour les trains autonomes</p>

  • Transition numérique

    Intégration de l'IA et des modèles de données

    <p>Implémentation des systèmes d'IA dans le développement des solutions techniques</p>

  • Transition numérique

    Maintenance prédictive

    <p>Développement des algorithmes de collecte de données de maintenance prédictive</p>

ACCÈS AUX MÉTIERS

Ingénieur(e) développement logiciel

Niveau de formation conseillée

Ce métier est accessible avec un diplôme de niveau bac + 5 dans le domaine de la programmation informatique

MÉTIERS PROCHES

de Ingénieur(e) développement logiciel

L’INTELLIGENCE ARTIFICIELLE

Trouvez le metier qui vous correspond

Découvrez les métiers faits pour vous