Jean-Louis BOULANGER
Docteur en science de l'informatique - Évaluateur – Certificateur - SILAS-SAS, Champigny, France
Tout système peut être impacté dans son fonctionnement par des entraves, fautes, erreurs, défaillances. C’est d'autant plus vrai dans le cas d’intégration de composants électroniques dans un système mécanique. Apprenez quelles sont les techniques de sécurisation d’une architecture matérielle.
Depuis le développement de la première application ferroviaire à base de logiciel, nommée SACEM, les méthodes formelles ont été largement utilisées et mises en œuvre par des industriels à différents niveaux (spécification, conception, code) et pour différents types d’applications (métros automatiques, sous-systèmes de signalisation, applications trains développées avec ControlBuild par exemple). La norme CENELEC 50128 dédiée à la réalisation des applications logicielles pointe l’intérêt de mettre en œuvre des méthodes formelles. Cet article présente le processus de développement des applications logicielles tel que mis en œuvre dans le domaine ferroviaire, et les évolutions induites par la mise en œuvre des méthodes formelles.
La réalisation d'un système ou d'un élément de système passe par la définition du besoin et par la démonstration que le système satisfait au besoin et aux exigences des utilisateurs. L'identification des acteurs et de leurs interactions avec le système ou l'élément à réaliser, ainsi que la formulation du besoin, sont des étapes clés lors de la mise en place du processus d'acquisition du besoin. Plusieurs approches ont été développées pour y répondre, permettant d'exprimer la notion de besoins sous forme d'exigences. Cet article décrit l'ensemble du processus d'ingénierie des exigences permettant d'acquérir, de formaliser et de démontrer que le besoin est satisfait.
Les données statiques gérées par les systèmes ferroviaires sont constituées de données fixes, dites invariantes, décrivant la topologie de la ligne, et d’autres liées aux caractéristiques du train. Le traitement de ces données peut s’effectuer sur la base d'une application générique associée à un processus de paramétrage permettant d'obtenir une application spécifique. La norme CENELEC 50128:2011 permet de couvrir ces deux aspects. L'objet de cet article est de présenter la problématique, les notions associées et les attendus de la préparation des données, au travers d'une analyse de la norme CENELEC 50128:2011.
Cet article présente le processus de qualification des outils tel qu'il est défini dans la version 2011 de la norme CENELEC EN 50128. La précédente version se focalisait sur la qualification des compilateurs, mais la nouvelle version prend en compte l'ensemble des outils mis en oeuvre pour la réalisation d'une application logicielle. La notion de qualification des outils est ainsi présentée et des exemples permettent d'expliciter le besoin.
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, les logiciels participent à la maîtrise de la sécurité. La norme CENELEC EN 50128 dans sa version 2001 définit un contexte permettant la maîtrise de la sécurité des logiciels. Depuis cette version, l'utilisation du logiciel s’est étendue à l'ensemble d’autres parties : 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.
Les systèmes mécatroniques sont de plus en plus complexes. Ils induisent par voie de conséquence de multiples défaillances. La sécurisation de ces systèmes vise à combattre ces erreurs et à tenter d'en limiter le risque. Cet article s'intéresse à l'aspect application logicielle, dont la sécurité passe par la maîtrise de la qualité. Sont présentées quelques techniques de programmation tolérante (redondance, détection d'ereurs ou programmation défensive). Les fautes sont souvent dues au caractère artisanal de la réalisation d'une application logicielle, et l'utilisation d'outils d'un environnement de développement ne retire pas au logiciel sa complexité intrinsèque.
Cet article a pour objectif de présenter les principes de sécurisation pouvant être mis en oeuvre dans le cadre des systèmes mécatroniques, afin de réduire le risque de défaillance. Un système mécatronique est composé d'éléments de différentes natures : des composants mécaniques, électroniques et logiciels. Deux aspects particuliers sont abordés : les aspects "architecture matérielle" (composante électronique) et les aspects "application logicielle" (composante informatique). La sécurisation d'une architecture matérielle a été l'occasion de nombreux travaux, qui ont permis de définir différents mécanismes tels que la détection des défauts, la diversité, la redondance temporelle, la redondance du matériel, la redondance des données et la reprise.