Initialement, la sécurité des systèmes ferroviaires reposait sur la maîtrise de la signalisation. Avec des systèmes automatiques comme les métros (voir ligne 14 du métro parisien et/ou le VAL – véhicule automatique léger – de l'aéroport Charles de Gaulle), les logiciels participent à la maîtrise de la sécurité. La norme CENELEC EN 50128 dans sa version 2001 a été rédigée pour définir un contexte permettant la maîtrise de la sécurité des logiciels. Cette version de la norme a profité de la mise en service de plusieurs systèmes à base de logiciel (SACEM, SAET-METEOR, etc.).
Depuis cette version, l'utilisation du logiciel a été généralisée à l'ensemble des parties du domaine ferroviaire (aide à la conduite, gestion des portes, gestion de la traction, gestion du paramétrage des capteurs, etc.) et il était nécessaire de prendre en compte les problématiques nouvelles telles que la maintenance et le déploiement. La maintenance du logiciel ne concerne pas seulement la correction des anomalies mais elle porte aussi sur la maîtrise des évolutions sur un ensemble d'équipements ; ceux-ci pouvant être déployés dans différents systèmes.
La réalisation d'une application logicielle repose sur l'utilisation d'outils complexes qui peuvent avoir un impact sur l'exécutable (générateurs de code, compilateurs, etc.) et/ou sur la vérification (environnement de test, outil de vérification des règles de programmation, etc.). C'est pourquoi il est nécessaire de qualifier les outils utilisés. À noter que cette notion de qualification est une notion qui a été introduite dans l'ensemble des standards qui ont été mis à jour (DO 178 : C, ISO 26262, IEC 61508).