Académique Documents
Professionnel Documents
Culture Documents
: TRP3309 V1
Méthodes formelles :
Date de publication :
10 février 2016 application au domaine
ferroviaire
Keywords Abstract Since the development of the first railway application software , named
formal method | verification | SACEM , formal methods have been widely used and implemented by industry at different
critical software | embedded
system levels (specification, design and code analysis) and for different types of applications
(automated metro , signaling subsystems, railway applications developed with
ControlBuild for example). The CENELEC 50128 standard dedicated to the realization of
advanced software applications highlights the benefit of implementing formal methods.
This paper presents the development process of software applications as implemented in
the railway sector, and the changes induced by the implementation of formal methods.
Par mail :
infos.clients@teching.com
Par téléphone :
00 33 (0)1 53 35 20 20 © Techniques de l'Ingénieur | tous droits réservés
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
7. Qualification ........................................................................................... — 29
8. Conclusion............................................................................................... — 30
9. Glossaire .................................................................................................. — 31
Pour en savoir plus ........................................................................................ Doc. TRP 3 309
formel.
C’est pourquoi d’autres techniques formelles ont été mises en place afin de
vérifier le comportement d’une application logicielle écrite dans un langage de
programmation tel que le C ou l’Ada. La principale technique, nommée inter-
prétation abstraite [5] [19] de programme, permet d’évaluer l’ensemble des
comportements d’une application logicielle au travers d’une analyse statique.
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
1. Développement du logiciel
Développement
Vérification Fabrication
1.1 Réalisation d’une application et validation
logicielle
Afin de fixer les idées, nous proposons ci-dessous une définition
pour caractériser une application logicielle.
Définition 1 – Application logicielle – Ensemble des pro-
Installation Maintenance
grammes, des procédés et des règles et éventuellement de la
documentation, relatifs au fonctionnement d’un ensemble de trai-
tement de l’information.
Il est à noter que nous parlons ici de la réalisation d’une applica-
tion logicielle et non du développement d’une application
logicielle : la notion de réalisation d’une application logicielle
couvre en effet les activités de développement mais aussi les acti- Retrait
vités de vérification, de validation, de production, d’installation et
de maintenance de l’application logicielle (figure 1).
Dans le cadre des applications critique de sécurité, les activités
de vérification et de validation sont importantes et seront plus ou Figure 1 – Étapes de réalisation d’un logiciel
moins développées en fonction du niveau de sécurité requis (cela
est vrais pour l’ensemble des domaines). Concernant les activités
de production et d’installation, elles sont cruciales et nécessitent la version. Le déploiement nécessite de garantir que le système soit
mise en place de processus spécifiques, mais qui n’impliquent pas fonctionnel après l’installation de la nouvelle version du logiciel.
le développement de l’application logicielle. La norme CENELEC EN 50128:2011 est la seule à introduire explici-
Le retrait d’une application logicielle est mentionné, mais il ne tement l’activité de déploiement.
pose aucun souci contrairement au retrait d’un système complexe
La maintenance d’une application logicielle se confronte à une
comme une centrale nucléaire ou une installation ferroviaire.
difficulté : la durée de vie de cette application logicielle. En effet,
La maintenance de l’application logicielle reste l’activité la plus pour le domaine ferroviaire, la durée de vie est de quarante à cin-
délicate. En effet, suite à une évolution, il faut maintenir un niveau quante ans, pour l’aéronautique, elle est de quarante ans, pour le
de sécurité tout en maîtrisant le coût de l’évolution et en minimi- nucléaire cinquante ans, pour l’automobile quinze ans. Au vu de
sant l’impact sur le système en service. La maintenance dans le ces durées de vie, il faut donc prendre des mesures pour garantir
cadre du logiciel introduit la nécessité de déployer une nouvelle le maintien du service et la maintenance de l’application logicielle.
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
La durée de vie est une contrainte qui nécessite de prendre en métadonnées UML basé sur XML) pour les modèles UML et les
compte l’obsolescence des machines, des systèmes d’exploitation nombreux problèmes de compatibilité) ?
(voire leur disparition) et des outils. Ainsi, il ne suffit pas seule- – sera-t-il possible de redévelopper un outil (nécessite la norma-
ment de mettre en place une gestion de configuration mais bien lisation d’une syntaxe, l’existence d’une sémantique, la définition
un processus qui garantisse une génération identique (dans le du format d’export, etc.) ?
meilleur des cas) de l’exécutable.
Il faut donc mettre en place des mesures pour garantir le main-
tien du service et la maintenance de l’application logicielle. Ces 1.2 Processus de développement
mesures doivent tenir compte du type de machine utilisée pour le
développement, des outils mis en œuvre, de la documentation à La réalisation d’une application logicielle est décomposée en
produire pour réaliser la maintenance et la reprise en cas de néces- étapes (spécification, conception, codage, tests, etc.) : on parle de
sité. cycle de vie. Ce dernier est nécessaire pour décrire les dépen-
Le SACEM (Système d’aide à la conduite, à l’exploitation et à la dances et les enchaînements entre les différentes activités.
maintenance) est un système qui a été mis en service en 1986 et
Le cycle de vie doit prendre en compte l’aspect progressif du
qui est régulièrement mis à jour. Le choix d’un langage comme
développement ainsi que les possibles itérations. Comme le
Ada ou C permet de se prémunir a priori des problèmes d’obsoles-
montre la figure 2, il existe plusieurs cycles : cycle en « V »
cence des machines, des systèmes d’exploitation et des outils. En
(figure 2a ), cycle en cascade (figure 2b), cycle en spirale
effet, comme ces langages sont normalisés, il est possible de
(figure 2c ), etc., pour la réalisation d’une application logicielle.
développer des versions pour différentes machines.
Mais qu’en sera-t-il de la maintenance du logiciel mettant en Les cycles de vie présentés dans le cadre de la figure 2 sont des
œuvre des environnements de développement formel tels que cycles de vie théoriques : la pratique montre cependant qu’il est
ControlBuild (produit de Dassault Systèmes), l’atelier B et/ou nécessaire de mettre en place des itérations sur certaines phases,
SCADE (à étendre pour tous les outils de modélisation) : le cycle théorique n’apparaissant qu’à la fin de la réalisation.
– sera-t-il possible de porter le modèle d’un outil vers un autre ; Dans la suite, nous allons prendre comme référence le cycle en
voir les travaux autour du format XMI (XMI pour XML Metadata « V », car c’est le cycle utilisé par les différentes normes (CENELEC
Interchange est un standard pour l’échange d’information de EN 50128, DO 178:C, IEC 61508:2008, ISO 26262:2011).
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Tests
Spécification
fonctionnels
Tests
Architecture
d’intégration
Conception préliminaire
Codage
Tests unitaires
Prototypage
Tests d’intégration
Début
Simulation
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Concernant la phase d’exploitation/maintenance, elle concerne sée et qu’elle répond au besoin exprimé et aux attentes.
la vie opérationnelle et la maîtrise des éventuelles évolutions.
Les activités de la phase remontante (exécution des TU, TI et TF)
Il faut noter qu’il existe une correspondance horizontale (flèche
doivent être préparées lors de la phase descendante, en définis-
pointillée) entre les activités de spécification, de conception et les
sant le plus en amont possible les plans de test correspondants.
activités de tests.
Le cycle en « V » (figure 4) est donc décomposé en deux phases, Nota : dans la suite, TU doit être remplacé par TU, TM ou TC en fonction du niveau de
la phase descendante et la phase remontante. La phase descen- granularité pris en compte dans le développement.
Analyse Exploitation
des besoins maintenance
Spécification Exécution
Spécification des tests des tests
fonctionnels fonctionnels
Spécification Exécution
Architecture des tests des tests
d’intégration d’intégration
Codage
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
1.4.1 Présentation
Vérification
et validation La réalisation d’une application logicielle doit prendre en compte
la conception de l’application logicielle mais elle doit prendre aussi
en compte les activités permettant de démontrer que l’application
Figure 5 – Cycle de gestion des anomalies logicielle atteint un certain niveau de qualité. L’atteinte d’un niveau
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
1.4.2 Vérification
Figure 7 – Vérification et validation sur le cycle en « V »
La norme ISO 9001:2008 recommande que chaque production
soit systématiquement vérifiée. La norme CENELEC EN 50128:2011
renforce ce point en indiquant que le rôle de la vérification est de
montrer que l’on réalise correctement le produit (pas d’introduc-
tion de défaut). Comme le montre la figure 8, sur la base des
entrées et des activités, il nous faut montrer que les éléments de
sorties sont corrects.
La vérification d’une phase nécessite de vérifier la mise en Entrées
œuvre des exigences qualité (application des procédures, respect
des formats, etc.), l’application des processus (respect des plans,
respect de l’organisation, etc.), la correction des activités et la
Vérification
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Voici une liste non exhaustive d’activités de vérification : En complément de la vérification du produit, il ne faut pas
– les revues relatives aux sorties d’une phase, destinées à assu- oublier la vérification de la qualité du produit, qui sera réalisée par
rer la conformité avec les objectifs et les prescriptions de la phase, l’équipe qualité au travers d’audits qualité (sur le produit, sur le
prenant en compte les entrées spécifiques à cette phase ; projet ou sur l’application d’un processus), de revues des éléments
produits (documentation, etc.) et d’activités de contrôle (suivi des
– les revues de conception (analyse du code, vérification des
anomalies, suivi des non conformités, suivi des retours client, etc.).
règles de codage, etc.) ;
– les tests d’ensemble réalisés sur le produit afin de s’assurer
que le fonctionnement est conforme à la spécification ; 1.4.3 Validation
– les tests d’intégration réalisés lors de l’assemblage élément
par élément de différentes parties d’un système, à partir d’essais La validation, dans le contexte du cycle de vie d’un système,
d’environnement, afin de s’assurer que toutes les parties fonc- regroupe les activités qui assurent et qui construisent la confiance
tionnent les unes avec les autres conformément aux dans le système et dans son aptitude à satisfaire les utilisations
spécifications ; prévues, l’atteinte des buts et objectifs assignés.
– le test des composants réalisé sur un composant (à ce point de Comme le montre la figure 9, la validation est une activité qui
la présentation, nous ferons le lien entre test de composant et test permet de montrer que l’application logicielle rend le service
de module et/ou test unitaire). prévu. Le service prévu étant défini par les exigences, il est néces-
Le chapitre 6.2 de la norme présente l’activité de vérification. saire de montrer que l’application logicielle sur le matériel cible
Cette activité doit être décrite dans le plan de vérification et valida- réalise les exigences au travers d’une activité de test. Si on consi-
tion (PVV) ou dans un PVéL et elle doit être justifiée. Le plan de dère l’activité de test comme une activité de vérification, la valida-
vérification doit être vérifié et le Rapport de vérification de la qua- tion est la confirmation, par examen et apport de preuves
lité (RVQ) doit contenir les résultats de cette vérification. Cette véri- tangibles, que le logiciel répond à la spécification des prescriptions
fication du plan doit permettre de montrer le respect du Manuel de sécurité du logiciel.
d’Assurance Qualité (MAQ) de l’entreprise et le respect des objec- La norme CENELEC EN 50128:2011 introduit la notion de tests
tifs de la norme pour le SSIL (Software Safety Integrity Level ) d’ensemble du logiciel en place et lieu du terme de tests de vali-
objectif. La notion de SSIL sera décrite dans le cadre de la dation. Au vu de la figure 7, toutes les phases sont soumises à
section 2. une activité de vérification (combinaison de revues, d’analyse sta-
Les vérifications étant réalisées pour chaque phase, il est néces- tique, de tests, etc.).
saire de prévoir un rapport de vérification pour chaque phase. La La validation d’une application logicielle consiste donc à combi-
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
production de ce rapport de vérification peut être couplée avec une ner l’ensemble des vérifications et à statuer sur le fait que l’appli-
revue de fin de phase. cation logicielle respecte ou non les exigences de la spécification
Dans les colonnes SSIL du tableau 1, 5 niveaux apparaissent : M du logiciel. Un rapport spécifique dénommé rapport de validation
(mandatory – technique obligatoire), HR (Highly Recommended – du logiciel (RVL) est à produire.
techniques à justifier si non mise en œuvre), R (Recommended – son
Au vu des définitions 4 et 5, la validation peut être considérée
utilisation est à la discrétion du concepteur) et « – » (n’est pas
comme une vérification externe du produit.
demander), NR (Not Recommended – ne doit pas être mis en œuvre).
Le chapitre 6.2 de la norme CENELEC EN 50128 s’appuie sur la
table A.5 (tableau 1) qui identifie deux familles d’activités : Validation
– les vérifications statiques (ne nécessitant pas d’exécution) : La validation consiste à montrer que c’est le bon produit qui
lignes 1, 2, 4, 5, 6 ; a été réalisé.
– les vérifications dynamiques (nécessitant une exécution) :
lignes 3, 7, 8, 9, 10.
1.4.4 Avantages/désavantages
Tableau 1 – Table A.5 de la norme CENELEC Le développement d’une application logicielle certifiable est
EN 50128:2011 contraint par les exigences des normes associées à chaque
domaine (aéronautique DO 178:C, automobile ISO 26262:2011, fer-
SSIL1 SSIL3 roviaire CENELEC EN 50128:2011, nucléaire IEC 880, générique
Mesure SSIL0
SSIL2 SSIL4 IEC 61508:2008).
1. Preuve formelle – R HR Ces exigences normatives recommandent la mise en œuvre d’un
processus de développement de type « cycle en V » qui se base
2. Analyse statique (A.19) – HR HR sur des activités de vérification et de validation basées sur la réali-
3. Analyse et tests dynamiques sation de tests (TU, TM, TC, TI S/S, TI H/S, TV, TE).
– HR HR
(A.13)
4. Métriques – R R
5. Traçabilité R HR M
Application logicielle
6. Analyse des effets des erreurs
– R HR Exigences
du logiciel
du logiciel
Architecture cible
7. Couverture de test pour le code R HR HR
8. Tests fonctionnels et boîte noire HR HR M
9. Tests de performance – HR HR
10. Tests d’interface HR HR HR Figure 9 – Validation
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
œuvre la technique de vérification choisie (model checking [8], mais elles ne mentionnent pas la notion d’interprétation abstraite
preuve, simulation, etc.) ; (ou de méthodes dérivées).
– analyser : la troisième phase consiste à réaliser la vérification Les différentes versions de la norme CENELEC 50128 recon-
elle-même. naissent les méthodes formelles et la preuve comme des tech-
niques et méthodes pouvant être mises en œuvre mais l’utilisateur
Définition 6 – Propriété – Une propriété est une caractéris- doit démontrer leur efficacité et doit justifier le retrait d’activité
tique qu’un composant (matériel ou logiciel) doit vérifier. comme les tests unitaires. Dans le cadre de la norme DO-178:C, le
Les propriétés sont classiquement séparées en deux ensembles : fascicule DO 333 [57] décrit les conditions de mise en œuvre des
les propriétés de sûreté et les propriétés de vivacité. méthodes formelles et les contraintes à respecter.
Afin d’améliorer l’efficacité des activités de vérification et de
Définition 7 – Propriété de sûreté – Une propriété de sûreté validation, il conviendrait de :
(au sens du terme anglais safety ) exprime que quelque chose de 3) Réaliser des vérifications formelles de type interprétation abs-
mauvais ne se produit jamais au cours de l’exécution. traite sur le code ;
Comme exemple de propriété de sûreté, nous pouvons citer
l’absence de blocage, l’exclusion mutuelle, etc. (et dans le cas du 4) Remplacer des activités de tests par des activités de preuve
ferroviaire, ce sera l’absence de collision entre les trains). formelle ;
5) Disposer de modèle permettant de faciliter la production des
Définition 8 – Propriété de vivacité – Une propriété de viva- tests (génération de cas de test, exploration de modèles, etc.).
cité (liveness) exprime que quelque chose de bon se produit
immanquablement au cours de l’exécution.
La vérification de propriétés au travers d’un modèle formel est
une approche intéressante mais au vu du nombre de lignes de 2. Normes ferroviaires
code développé manuellement, il peut être intéressant sur la base
des langages de développement classiques (comme le C) d’explo-
rer les comportements du programme et de démontrer qu’il vérifie
un certain nombre de propriétés. Il s’agit là d’une démonstration a 2.1 Référentiel CENELEC
posteriori.
Le référentiel ferroviaire CENELEC 5012x est une déclinaison de
La démonstration qu’un code vérifie des propriétés n’est pos- la norme générique IEC 61508 qui tient compte des spécificités du
sible qu’au travers de l’ajout d’annotations décrivant des condi- domaine ferroviaire et des expériences réussies (SACEM, TVM,
tions locales (préconditions, postcondition, invariants) et d’un SAET-METEOR, etc.).
mécanisme de propagation et/ou de preuve. Cette analyse des
comportements peut se faire au travers de la mise en œuvre de Concernant la maîtrise de la sécurité, dans le domaine ferro-
techniques d’analyse statique de code basée sur l’interprétation viaire, le référentiel normatif est constitué des normes suivantes
abstraite [19] et la preuve de programme [5] [10] est dédié à l’inter- (figure 11) :
prétation abstraite. – la norme CENELEC EN 50126 décrit le cycle de vie de la sécu-
Le langage C permet l’ajout d’assertion mais la version 2012 du rité sur l’ensemble d’un projet et les méthodes à mettre en œuvre
langage Ada [17] introduit explicitement les notions de précondi- pour spécifier et démontrer la fiabilité, la disponibilité, la mainte-
tion, postcondition et d’invariant et l’environnement SPARK 2014 nabilité et la sécurité (FMDS) ;
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
– la norme CENELEC EN 50128 décrit les actions à entreprendre Les premières utilisations des logiciels ont permis de rendre
pour démontrer la sécurité des logiciels utilisé dans les sous-sys- plus souples les principes de signalisation (report en cabine de
tèmes liés à la signalisation ; l’information de signalisation, découpage virtuel de la voie, etc.).
– la norme CENELEC EN 50129 décrit la structure du dossier de La seconde étape a consisté à embarquer du logiciel dans les
sécurité et les moyens à mettre en œuvre pour maîtriser la sécurité trains pour gérer les informations non sécuritaires et pour déve-
des éléments matériels (hardware ) ; lopper des fonctions spécifiques de petite taille. La nécessité de
maîtriser le poids et le coût a amené les industriels à remplacer le
– la norme CENELEC EN 50159 décrit les principes de sécurisa-
cuivre et les relais par des logiciels (TCMS par exemple).
tion à mettre en œuvre si l’on utilise des réseaux fermés et/ou
ouverts ; En complément, le besoin d’évolution rapide (sans remplace-
ment de l’équipement) et les innovations (moteur à aimant perma-
– la norme CENELEC 50155 décrit le processus de réalisation
nent) ont entraîné l’utilisation du logiciel pour les équipements
pour les équipements qui doivent être installés dans les trains.
classiques comme le manipulateur de conduite, la traction, le frei-
Cette norme couvre la qualité, la réalisation du matériel, la réalisa-
nage, etc.
tion du logiciel et les essais de type et de série.
Une des restrictions (figure 11) sur ce référentiel ferroviaire
Dans le cadre de l’article sur la maîtrise du SIL et la gestion des CENELEC 5012x est liée au domaine d’application des normes
certificats dans le domaine ferroviaire [D 5 560], nous avons pré- CENELEC EN 50128, CENELEC EN 50129 et CENELEC EN 50159 qui
senté le processus de management de la sécurité tel qu’identifié sont normalement limitées aux sous-systèmes de signalisation.
dans les normes CENELEC 50126 et 50129. Pour les architectures matérielles utilisées dans le cadre d’autres
Le référentiel ferroviaire CENELEC 5012x est applicable aussi sous-systèmes, il existe d’anciennes normes qui restent appli-
bien aux applications ferroviaires de type « urbaines » (métro, RER, cables (NF F 00-101, etc.). Des travaux sont en cours au sein des
etc.) qu’aux applications ferroviaires classiques (ligne grande groupes de certification pour étendre et généraliser ces deux
vitesse, train conventionnel, fret). normes au système ferroviaire dans son ensemble.
La figure 11 montre que le domaine ferroviaire est partitionné Parmi les actions de réduction de risque permettant d’atteindre
en deux parties : les applications liées à la signalisation et les un niveau de risque acceptable, la norme CENELEC
applications embarquées au sein des trains. En fait, il est néces- EN 50129 [D 5 560] décrit l’allocation d’objectifs de sécurité aux
saire d’ajouter une troisième famille, « les autres », recouvrant des fonctions du système et de ses sous-systèmes. À partir de l’événe-
moyens de gestion de l’énergie, des systèmes de gestion des tapis ment redouté et du taux de défaillance, il est ainsi possible de défi-
et escaliers roulants, des systèmes d’informations, les applications nir le niveau d’intégrité de sécurité associé aux fonctions système,
de gestion des systèmes annexes (ventilation en tunnel, détection aux sous-systèmes et aux équipements. Le niveau d’intégrité de
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
d’incendie, etc.), en fait tout ce qui peut être connecté au système sécurité (SIL pour Safety Integrity Level ) est défini comme un des
ferroviaire. Les systèmes annexes ne sont pas moins important : à niveaux discrets pour spécifier les exigences d’intégrité de sécurité
titre d’exemple, le système de détection d’incendie et de ventila- des fonctions de sécurité allouées aux éléments de sécurité. Le
tion en tunnel pourrait enfumer le tunnel lors d’une évacuation, et niveau d’intégrité de la sécurité varie de 1 (bas niveau de sécurité)
a donc un impact sur la sécurité. à 4 (haut niveau de sécurité).
Système complet
50126
50129
50159
Équipement Équipement
50128
50155
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
La norme CENELEC EN 50128 permet de gérer la sécurité des 2.2 Choix du SSIL
applications logicielles. Dans le cadre de [BM 8 071] nous avons pré-
senté les techniques de mise en sécurité d’une application logicielle.
Cette norme est plus particulièrement dédiée aux aspects dévelop- Le SSIL des fonctions du logiciel est donc identifié sur la base
pement des applications logicielles pour le domaine ferroviaire. des analyses de sécurité système. C’est un objectif à atteindre lors
Concernant les logiciels, le SSIL (Software SIL) défini permet de de la réalisation du logiciel. Une fois qu’il est déterminé, il est uti-
déterminer différents niveaux de criticité, de 0 (pas de danger) à 4 lisé pour choisir les méthodes et techniques à mettre en œuvre
(critique). lors de chaque phase du cycle de réalisation. L’annexe A de la
norme CENELEC EN 50128 introduit des tables (voir par exemple le
La norme CENELEC EN 50128 s’applique pour des domaines liés tableau 1) qui identifient pour chaque SSIL les techniques appli-
à la sécurité ou non – c’est pourquoi elle introduit le SSIL0 qui est cables (M, HR) ou non (R, -, NR). C’est pourquoi la norme CENELEC
lié aux applications logicielles sans besoin sécuritaire –, et exclusi- EN 50128 introduit la notion d’évaluation indépendante qui a pour
vement aux logiciels et à l’interaction de l’application logicielle but de faire confirmer l’atteinte de l’objectif par une personne
avec le système dans son ensemble. externe au projet [62] nommé ISA (Independant Safety Assessor ).
Elle introduit explicitement la notion d’évaluation. Comme nous
l’avions montré dans [2] [3] [6], pour les applications logicielles, l’éva- Une analyse approfondie de la norme CENELEC EN 50128
luation logicielle consiste à démontrer que l’application logicielle montre que pour un SSIL1 et un SSIL2 on réalise le même type
atteint les objectifs de sécurité (au sens safety ) qui lui ont été attribués. d’activité et qu’il en est de même pour un SSIL3 et un SSIL4. On
peut rappeler que le SSIL1 n’est pas lié à des impacts sur la vie
humaine mais plutôt à des impacts sur les équipements, c’est
SSIL pourquoi il est en général utilisé trois niveaux de SSIL : le SSIL0, le
Le SSIL est un objectif d’intégrité de la sécurité qu’il faut SSIL2 et le SSIL3/4. En cas d’identification d’un SSIL1, il est recom-
atteindre. Cet objectif n’est pas mesurable, c’est pourquoi la mandé de le reclasser en SSIL0 ou en SSIL2 en fonction de la gra-
norme CENELEC EN 50128 introduit la notion d’évaluation. Une vité des risques associés.
personne indépendante de l’équipe en charge de réaliser le
logiciel va évaluer l’atteinte de cet objectif. Il faut rappeler que
la principale mesure pour réaliser un logiciel de sécurité
consiste à maîtriser le nombre de fautes systématiques et pour 2.3 Structure de la norme CENELEC
ce faire, il faut maîtriser le processus de réalisation et la com- EN 50128
plexité du logiciel. Le SSIL est lié à la notion de confiance, et la
question posée à l’évaluateur est donc : « Avez-vous confiance
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
EN 50128
SSIL Clauses 4
Données de l’application
Clauses 8
Clauses 6 Clauses 9
Clauses 7
Assurance logiciel Maintenance
Déploiement
Logiciel générique
Annexe A Annexe D
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Vérification Vérification
1
ln 1
AND
Conception
Spécification des TC Exécution des TC
des composants 2
ln 2
Vérification Vérification Logical
operator
OR 1
3
ln 3 Logical Out 1
Codage operator 1
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
3.1.2 Méthode semi-formelle norme CENELEC 50128 identifiait SADT [13], OMT, JSD, CORE,
Yourdon temps réel, MASCOT. À noter que seule les approches
D’après la norme IEC 61508 (B.2.3), une méthode semi-formelle SADT et SART sont utilisées dans le domaine ferroviaire.
offre un moyen de développer une description d’un système à un La spécification structurée est une technique qui vise à mettre en
stade de développement (spécification, architecture et/ou concep- évidence les relations visibles les plus simples entre les exigences
tion). La description peut être analysée ou animée afin de vérifier partielles de la spécification fonctionnelle. L’analyse est affinée par
que le système modélisé satisfait aux exigences (réelles et/ou spéci- étapes jusqu’à obtenir de petites exigences partielles claires. On
fiées). Il est indiqué que les diagrammes d’états (automates finis) et obtient alors une structure hiérarchique d’exigences partielles qui
les réseaux de Petri temporels sont deux méthodes semi-formelles. permettront de spécifier les exigences complètes. La méthode met
Dans le cadre de la nouvelle norme CENELEC EN 50128:2011, les l’accent sur les interfaces entre les exigences et permet d’éviter les
méthodes semi-formelles disparaissent en tant que techniques. défaillances d’interfaces.
Cela est dû à l’ambiguïté qui existait, entre formel et semi-formel,
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
S2
E2
4.1 Spécification des exigences
du logiciel E3
4.1.1 Besoin I1 I2 I3
4.1.2 Spécification
La spécification d’une application logicielle est constituée au
minimum d’un ensemble d’exigences.
Maintenance Normal Dégradé
Mais cela n’est pas suffisant car l’environnement de l’application
logicielle est composé des interfaces avec les moyens matériels
(mémoire, adresse spécifique, entrées/sorties, watchdog, etc.),
avec d’autres applications logicielles (logiciel de base, application Figure 16 – Différents états applicables au logiciel
connexe, etc.) et/ou avec le système d’exploitation. Et cet environ-
nement doit être identifié au sein de la spécification des exigences.
La figure 15 fait apparaître un environnement de l’application
logicielle qui est composé de trois entrées Ei , de deux sorties Sd et Cahier des charges Analyse de sécurité
de trois interfaces Ik avec les moyens matériels (exemple accès à
une adresse mémoire spécifique).
À la mise sous tension d’un équipement, il y a une phase d’ini- Exigences
tialisation qui sera suivi par le passage en mode normal et suite à Exigences fonctionnelles extrafonctionnelles
la détection d’une défaillance, on pourra passer dans le mode Processus
dégradé. La figure 16 présente un exemple représentant les diffé- d’élaboration
rents modes de fonctionnement. Il faudra au niveau du logiciel de la spécification
identifier le comportement de l’application logicielle pour chaque
mode.
La figure 17 présente le processus d’élaboration de la spécifica- Spécification
tion. Une première analyse du cahier des charges fourni par le
client et/ou de la spécification système doit permettre d’identifier
les exigences fonctionnelles. Figure 17 – Élaboration de la spécification
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
En parallèle de ce travail, il est possible de débuter les analyses La réussite du développement d’une application logicielle main-
liées à la sûreté de fonctionnement qui ont pour objectif d’identi- tenable doit passer par au moins deux étapes :
fier les mitigations à mettre en place pour maîtriser les risques. Les – une phase de formalisation des exigences (figure 20). Cette
mitigations feront apparaître des exigences fonctionnelles et non phase de formalisation peut s’appuyer sur des méthodes structu-
fonctionnelles : exigences de sécurité mais aussi exigences de dis- rées (par exemple la figure 19 en SADT permet de mettre en place
ponibilité, de fiabilité ou autre. une analyse fonctionnelle, etc.), des méthodes semi-formelles ou
formelles (automate, réseau de Pétri, Grafcet, méthode B, SCADE,
Finalement, la spécification doit identifier : etc.) ;
– les interfaces avec l’environnement ; – une phase d’architecture (§ 4.2).
– la notion d’état en mettant en place une partition entre les Nota : la méthode SADT [13] (Structured Analysis and Design Technic ) a été mise au
point par la société Softech aux États-Unis ; il s’agit d’une méthode d’analyse par
états de bon fonctionnement, les états de repli et les états niveaux successifs d’approche descriptive d’un ensemble quel qu’il soit.
dangereux ; Dans le cadre du chapitre 2 de [30], nous avons présenté un exemple de l’utilisation
de SADT et de la méthode B [1] [24] dans le cadre du projet SAET-METEOR [4].
– la notion de comportement correct et de comportement Comme exemple d’utilisation de SCADE [9] on peut se référer à la réalisation du CBTC
dangereux ; de la ligne 5 d’Ansaldo STS, ou à la réalisation de logiciel du CBTC de la ligne 13 déve-
loppée par THALES.
– la notion d’exigence liée à la sécurité, ce type d’exigence doit
permettre de caractériser les comportements dangereux ; La phase de formalisation est importante car elle permet de tra-
duire une exigence abstraite en éléments modélisables, ainsi la
– le niveau d’intégrité du logiciel (noté SSIL).
propriété P1 suivante :
P1 : « il ne doit pas y avoir de risque de collision »
4.1.3 Mise en œuvre peut se traduire en logique ensembliste du premier ordre en
qui est le
Sur de nombreux projets (suite à des problèmes de coût et/ou domaine de marche du train i et [T ] qui est l’ensemble des trains.
de délais), les concepteurs d’applications logicielles passent direc- Le modèle B explicitant cette propriété, est donné en exemple à
tement des exigences textuelles au code sans avoir pu vérifier la la figure 20.
cohérence des exigences et sans toujours maîtriser l’ensemble des
exigences (figure 18). Le passage des exigences textuelles au modèle est présenté à la
figure 21.
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
…
Req_11: … Activation cycle
Req_12: … *
*
Req_13: …
Activation Déplacement Suite
+
… traitement
train train 1
MACHINE
Exemple
SETS
TRAIN
POSITION
VARIABLES
Domaine
INVARIANT
Domaine : TRAIN-->POW(POSITION)
& !(t1,t2). ((t1,t2: TRAIN*TRAIN) => ((Domaine(t1) ∧ Domaine(t2) = {}) & (t1/=t2)))
INITIALISATION
Domaine:( Domaine : TRAIN - ->POW(POSITION)
& !(t1,t2). ((t1,t2: TRAIN*TRAIN) => ((Domaine(t1) ∧ Domaine(t2) = {}) & (t1/=t2)))
)
END
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
– acquérir le besoin ;
… – formaliser le besoin et vérifier la cohérence et la complétude
Req_11: … du besoin ;
Req_12: … – aider à sélectionner les cas de tests de validation.
Req_13: … Comme le montre la figure 22, la modélisation peut être utilisée
… comme moyen de vérification des exigences. Les exigences en
entrée de la spécification du logiciel proviennent des spécifications
systèmes et des analyses de sécurité (analyse de sécurité système,
analyse de sécurité des interfaces, etc.). Sur la base de toutes les
exigences en entrée, il est possible de réaliser un modèle pour
vérifier qu’elles forment un ensemble cohérent, il sera aussi pos-
sible de travailler sur la complétude de cet ensemble d’exigences.
Dans la partie basse de la table A.2 (tableau 3) de la norme
CENELEC EN 50128:2011, il est indiqué qu’il est obligatoire de dis-
poser d’une expression textuelle des exigences et qu’il est possible
d’y associer tous les éléments de modélisation nécessaire. Comme
le montre la figure 23, tout ou partie des exigences peut être
modélisée afin de réaliser des vérifications de complétudes et de
Figure 21 – Formalisation des exigences cohérences. Il est possible d’avoir un ou des modèles.
La réalisation d’une spécification d’une application logicielle
4.1.4 Synthèse nécessite de :
6) Réaliser un modèle associé aux exigences ;
Dans le cadre du domaine ferroviaire, les méthodes structurées, 7) Disposer d’un moyen de faire des vérifications sur le modèle
semi-formelles et formelles sont utilisées pour : afin de vérifier la cohérence et/ou la complétude.
S1
E1
S1 …
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
E1 S2
… E2 Req_11: …
S2 Req_12: …
E2 Req_11: …
Req_12: … E3 Req_13: …
E3 Req_13: …
I1 I2 I3
I1 I2 I3
…
Req_11: …
Req_12: …
Req_13: … Analyse
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
4.2 Architecture
4.2.1 Présentation E2 C3 – {Ex3}
Une fois la spécification de l’application logicielle réalisée, il est
alors possible de mettre en place une architecture. Cette architec-
ture vise à « décomposer » l’application logicielle en composants
Figure 24 – Exemple d’architecture d’une application logicielle
(ou modules suivant le vocabulaire utilisé).
La figure 24 présente un exemple d’architecture, l’application
logicielle a été décomposée en trois composants (C1 , C2 , C3). Il 4.2.3 Avantages/désavantages
existe des interfaces entre l’environnement (E1 , E2 , S1 , S2) et les
composants et des interfaces entre les composants. Pour chaque Une architecture est par nature une collection de boîtes (compo-
composant, une liste des exigences à prendre en compte est don- sants), chaque boîte étant associée à des interfaces et les inter-
née et identifiée. Les exigences associées à chaque composant faces reliées par des connexions. Une architecture est donc un
sont traçable avec la spécification des exigences de l’application modèle au moins structuré (figure 26).
logicielle. L’architecture d’un logiciel est en soit un modèle (des compo-
sants, des interfaces et des liens entre interfaces). Ce modèle per-
4.2.2 Modèle met de vérifier la cohérence (toutes les interfaces sont connectées,
toutes les exigences sont tracées, etc.).
La nouvelle version de la norme CENELEC EN 50128:2011 – table
A.3 recommande que l’architecture de l’application logicielle se La réalisation d’une architecture d’une application logicielle
base sur une méthode structurée (SADT, etc.). Mais il est possible (mais on peut dire de même pour la phase de conception) néces-
de mettre en place une modélisation qui se base sur les techniques site de :
de la table A.17 (tableau 2). 6) Réaliser un modèle ;
La réalisation d’un modèle M est un moyen pour comprendre 7) Disposer d’un moyen de faire des vérifications sur le modèle
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
et/ou appréhender un problème/une situation. En général, la phase afin de vérifier la cohérence et/ou la complétude ;
de spécification qui permet de s’approprier le cahier des charges 8) Pouvoir poursuivre le processus de la phase de spécification
passe par la création d’un modèle M. Un modèle peut être plus ou jusqu’à la phase de conception, voire la phase de codage ;
moins proche du système étudié, on parle alors d’abstraction. Plus – etc.
la modélisation est proche, plus les résultats obtenus seront Par rapport à l’étape de spécification, ici le modèle d’architecture
proches de ceux qui seront observés sur le système final. est une partie du document d’architecture. La vérification du
Une autre caractéristique des modèles provient du fait que le modèle concerne la vérification des interfaces mais peut aller
langage support dispose ou non d’une sémantique. La présence jusqu’à la vérification de la cohérence des exigences.
d’une sémantique permet de mettre en œuvre des techniques de
raisonnement qui garantissent la correction des résultats obtenus.
Un modèle est en général composé de deux parties
4.3 Codage
complémentaires :
4.3.1 Présentation
– une modélisation statique (figures 18 et 23) décrivant les enti-
tés constituant le système et les états pouvant lui être associés ; Le processus classique de développement d’une application
– une modélisation dynamique décrivant les changements d’état logicielle se base sur l’utilisation de langage de programmation
autorisés. comme par exemple le langage Ada, C et/ou C++. Même si ces lan-
La figure 25 présente un exemple de modèle UML [31] d’un sys- gages sont d’un certain niveau d’abstraction par rapport au code
tème ferroviaire mettant en œuvre différentes modélisations : cas exécuté sur le calculateur final, ils nécessitent l’écriture de ligne de
d’utilisation, diagramme de séquences, diagramme états/transi- code.
tions et diagramme de classes. Il y a eu plusieurs essais de mise Il n’est pas possible d’analyser tous les langages de programma-
en œuvre de la notation UML (ligne 13 du métro parisien) qui n’ont tion existant et pour tous les domaines, aussi dans le reste de ce
pas été couronné de succès. paragraphe, nous analyserons l’évolution qui a pu avoir lieu dans
L’utilisation de la notation UML n’est donc pas sans soulever le domaine du ferroviaire.
certaines questions [32] [33]. Comment utiliser une notation Le but de cette section est de rappeler les points forts et les
n’ayant pas de sémantique ? Comment évaluer une application points faibles des langages utilisés afin d’expliquer pourquoi il est
fondée sur la notation UML ? Quels sous-ensembles d’UML pour nécessaire de s’orienter vers la génération de code automatique.
les applications critiques ? Plusieurs travaux visent à proposer des
réponses à ces questions, comme par exemple [35] [36] [38] [37] 4.3.2 Bilan
et/ou [34].
La notation UML [31] n’est pour l’instant pas reconnue comme 4.3.2.1 Langage Ada
une méthode structurée et/ou semi-formelle dans l’ensemble des Les premières applications ferroviaires en France ont été pro-
standards même si beaucoup veulent la mettre en œuvre complè- grammées, au milieu des années 1980, avec le langage Modula 2.
tement ou partiellement. Dans le cadre de [39] [43] et du chapitre Mais depuis, le langage Ada 83 est devenu le langage de référence
19 de [40], nous avons montré comment la notation UML peut être pour le développement des applications critiques [86]. Comme le
utilisé pour réaliser des modèles de systèmes critiques. Dans le montre le tableau 4, dans le cadre des applications ayant un haut
cadre des projets RT3-TUCS, ANR-SAFECODE et niveau de criticité (SSIL3/SSIL4), le langage Ada lui-même n’est
ANR-RNTL-MEMVATEX nous avons étudié différentes pistes pour que recommandé (R), il faut mettre en place un sous-ensemble du
introduire UML comme moyen de modéliser un système critique langage pour que l’utilisation du langage Ada soit hautement
(voir par exemple [33] [41] [42] [44] [45] [46]). recommandé (HR).
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
System
Start
the train
Conductor Physical
Train
Conductor Train
Start Start
Accelerate
Accelerate\speed=speed+x
Deccelerate[speed/=0]
Deccelerate[speed=0]
Train
Speed Wagon
1
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Start *
Accelerate
Deccelerate
Package
E1 … S1
Req_11: …
E2 S2
Req_12: …
E3
Req_13: …
l1 l2 l3
E1 S1
S2
E2
E3
l1 l2 l3
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ada R HR HR HR HR
Modula-2 R HR HR HR HR
Pascal R HR HR HR HR
C ou C++ R R R R R
C# R R R R R
Java R R R R R
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
les règles 14.4 et 14.7 énoncées dans le tableau 6) qui sont expli- œuvre, aux éléments produits (documents, sources, etc.) et aux outils utilisés (Ocaml,
cites dans plusieurs normes : Coq et autres outils libres doivent être démontrés comme de sécurité).
– règle 14.4 : dans la norme CENELEC EN 50128 – table A.12 ou
la norme IEC 61508 – table B.1 ; 4.3.2.3 Langage orienté objet
– règle 14.7 : dans la norme CENELEC EN 50128 – table A.20 ou
la norme IEC 61508 – table B.9 ; Comme déjà dit plus haut, l’aspect « orienté objet » n’est pas
– etc. pris en compte par les normes applicables CENELEC
EN 50128:2001, DO 178:B, IEC 61508:2008, ISO 26262:2011 aux
MISRA-C a été créé en 1998 et actualisé en 2004 et en 2012, ce applications critiques.
qui montre que l’on dispose d’un retour d’expérience certain.
L’aspect orienté objet est cité dans la norme CENELEC
La principale difficulté du langage C reste le choix d’un compila- EN 50128:2001, mais les contraintes s’appliquant aux langages ne
teur disposant d’un retour d’expérience suffisant pour la cible choi- permettent pas le développement d’une applications critiques
sie et pour le niveau de sécurité à atteindre. En l’absence d’une (SSIL3 et SSIL4) avec ce type de langage (tableau 7).
norme précise et complète, il n’existe pas de processus de certifi-
Règle 1.1 Requise Tout le code doit être conforme à la norme ISO 9899:1990 « Programming languages – C »,
amendée et corrigée par ISO/IEC9899/COR1:1995, ISO/IEC/9899/AMD1:1995 et
ISO/IEC9899/COR2:1996.
Règle 14.4 Requise Pas de branchement inconditionnel (goto) dans les programmes.
Règle 14.7 Requise Une fonction doit avoir un unique point de sortie à la fin de la fonction.
Règle 17.1 Requise L’arithmétique de pointeur ne peut être utilisé que pour des pointeurs qui adressent un
tableau ou un élément de tableau.
Règle 17.5 À traiter Une déclaration d’objet ne doit pas contenir plus de deux niveaux d’indirection de pointeur.
Une règle MISRA peut être « requise » (required ) ou « à traiter » (advisory). Une règle « requise » doit obligatoirement être mise en œuvre par le développeur
et une règle « à traiter » ne peut être ignoré même s’il n’est pas obligatoire de la mettre en œuvre.
MISRA-C:2004 introduit 122 règles « requises » et 20 règles « à traiter ».
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Comme le montre le tableau 5, le langage C++ est cité comme Sous diverses pressions (diminution du nombre de program-
applicable mais certaines recommandations concernant son utili- meurs Ada et C par exemple) la mise à jour des normes comme la
sation ne sont pas compatibles avec l’utilisation d’un langage norme CENELEC EN 50128 ou la DO 178 a donné lieu à des initia-
orienté objet comme le montre le tableau 7. tives visant à introduire les langages orientés objets.
Le langage C++ a été développé au cours des années 1980, il Ainsi, la nouvelle version de la norme CENELEC EN 50128:2011 a
s’agit d’une amélioration du langage C. Le C++ introduit la notion étendu la liste des langages orienté objet utilisable à JAVA et aux
de classe, d’héritage, de fonction virtuelle et de surcharge. Il a été C# comme le montre le tableau 5. Mais cette nouvelle version de
normalisé par l’ISO en 1998 et en 2003. la norme introduit quelques restrictions (limitation sur l’héritage)
comme le montre le tableau 8.
Depuis le début des années 2000, plusieurs travaux ont été
entrepris afin de définir un cadre permettant d’utiliser le langage La version C de la norme DO 178 devrait disposer d’une annexe
C++ pour le développement des applications à haut niveau de spécifique visant à définir les contraintes de mise en œuvre d’un
sécurité (SSIL3-SSIL4). langage orienté objet pour la réalisation d’une application critique.
Comme pour le C, le point difficile avec le C++ reste la démons-
On peut citer les travaux : tration que le compilateur pour la cible choisie et les bibliothèques
– de l’OOTIA (Object Oriented Technology in Aviation) qui a associées respectent des objectifs de sécurité qui ont été définie
publié plusieurs guides [35] [36] [37] [38] ; par les études de sécurité. Comme il n’existe pas de certification
– du JSF++ (Join Strike Fighter C++) qui a publié un guide [50] pour les compilateurs C++, il faudra mettre en place une justifica-
concernant le développement en C++. Ce guide reprend les tra- tion basée sur le retour d’expérience et/ou la qualification.
vaux existants et notamment la norme MISRA-C:1998 ;
– de MISRA qui a élaboré la norme MISRA-C++:2008. 4.3.3 Avantages/désavantages
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Le langage C++ est donc un langage assez ancien. Des Le langage de programmation utilisé doit faciliter la détection
approches identifiant les points faibles du C++ et proposant des des anomalies et pour cela il est nécessaire de mettre en œuvre un
règles sont apparues assez tôt [88] [89], mais la définition d’un typage fort et une programmation modulaire et structurée.
cadre pour l’utilisation du C++ pour les applications à haut niveau
de sécurité est assez jeune [35] [36] [37] [38] / [90] [91], ce qui Comme le montre le tableau 9, l’une des principales difficultés
explique que l’on trouve des applications en C++ jusqu’au niveau lors de l’utilisation de langage tel que le C ou le C++ réside dans la
de sécurité SSIL2. démonstration du caractère « éprouvé » du traducteur.
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
a
4.4 Génération de code
Les normes des différents domaines nécessitant un haut niveau Contraintes Contraintes
de sécurité prennent donc en compte l’utilisation des techniques Outils
formelles lorsqu’elles sont associées à des modélisations qui sont
associées aux documents de conception (spécification, architec-
ture, conception). Modèle
Actuellement, la phase de codage se base sur l’utilisation de lan- de Sources
gage de programmation du type Ada, C et/ou C++. Originellement, conception
ces langages ne sont pas associés à des techniques formelles de
vérification. b
La prise en compte des méthodes formelles passe par une évo- Figure 29 – Analyse formelle d’un code
lution du processus de réalisation qui doit prendre en compte la
phase de modélisation, comme le montre la figure 29.
La figure 30 présente le processus qui pourrait être mis en
Comme le montre la figure 29a, à partir des documents de
œuvre pour remplacer des TC et/ou des TI software/software (S/S)
conception (spécification, architecture, conception, etc.) et des pro-
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
E1 … S1
Req_11: …
E2 S2
Req_12: … Tests d’ensemble sur cible
E3
Req_13: …
l1 l2 l3
Tl S/S
Tl H/S
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Exécution
Compilation déboggage
5. Réalisation mettant
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
vérifications sur le modèle afin de vérifier la complétude des exigences au travers de techniques telles que la preuve
cohérence et/ou la complétude des exigences ou le model checking.
N.8 Nécessité de pouvoir poursuivre le processus de Les méthodes formelles telles que SCADE ou la méthode B permettent
la phase de spécification jusqu’à la phase de de réaliser des modèles qui couvrent les différentes phases de la phase
conception voir la phase de codage descendante du cycle en « V ».
N.9 Nécessité de définir un sous-ensemble du lan- La mise en œuvre d’une méthode formelle permet de disposer d’une
gage (limitant les difficultés) et de disposer d’un sémantique et donc de proposer un processus de traduction automa-
ensemble de règle de conception et de codage tique de la spécification en code permettant de faciliter la gestion du
sous-ensemble et des règles de conception.
N.10 Nécessité de disposer d’un retour d’expérience C’est un problème récurrent avec les nouveaux standards.
suffisant pour démontrer que les outils et plus La génération de code permet de régler une partie du problème mais il
particulièrement le compilateur est utilisable pour faut être capable de qualifier les outils.
le niveau de sécurité attendue
N.11 Nécessité de disposer d’outil d’analyse du code L’offre actuelle contient de nombreuses alternatives comme Astrée,
au lieu de réaliser les analyses manuelles CodePeer, Frama-C, Polyspace, etc.
Avant 1998, la RATP avait fait réaliser une analyse par interprétation abstraite du code de l’application SAET-METEOR, et il fallait environ une semaine de
traitement pour réaliser un « run ». Actuellement, il est possible de réaliser un « run » (sur un code de taille réelle) en quelques heures.
Dans le cadre de la figure 33, la spécification est indiquée sera nécessaire de justifier que l’activité de preuve est aussi effi-
comme étant non formelle mais il est possible d’avoir un premier cace que les activités de tests de composants et les tests d’intégra-
modèle (formel ou au moins structuré), qui a pour objectif de tion logiciel/logiciel.
structurer les exigences et d’aider à identifier les incohérences et L’efficacité des tests de composants est associé à la possibilité
les incomplétudes. Ce modèle peut ensuite, lors de la phase de de mesurer la couverture des tests, ce qui permet d’identifier des
conception, être associé à un modèle de conception formel. manques dans la construction du cahier de tests et/ou du code non
spécifié. Pour la preuve, il faudrait donc mesurer la couverture des
Si les outils mis en œuvre (simulateur, prouveur, générateur de
preuves par rapport au modèle. C’est une question difficile qui n’a
code, etc.) sont démontrés comme respectant des objectifs liés au
pas de réponse à l’heure actuelle. Cette problématique est essen-
niveau de sécurité à atteindre par l’application, ce type d’approche
tielle car un sous-ensemble de propriétés qui ne couvrirait pas le
permet de remplacer des activités de vérification et validation par
code pourrait ne pas révéler des problèmes pouvant avoir un
d’autres activités (à titre d’exemple les tests unitaires peuvent être
impact sur la sécurité. Parmi ces problèmes, les codes non spéci-
remplacés par une activité de preuve et une qualification/certifica-
fiés et les codes morts sont deux risques inacceptables.
tion du générateur de code, voir par exemple [2]).
L’efficacité des tests d’intégration logiciel/logiciel est basée sur
La figure 35 présente un processus où la preuve remplace les le fait que toutes les interfaces sont soumises à des tests, il faut
tests de composants (ou unitaire ou modulaire) et les tests d’inté- donc démontrer que les propriétés couvrent bien toutes les inter-
gration logiciel/logiciel. Il faut rappeler que la norme CENELEC faces, cela peut être fait par analyse et traçabilité comme pour le
EN 50128 permet de remplacer une activité par une autre mais il code.
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
E1 … S1
Tests d’ensemble du logiciel
Req_11: …
E2 S2
Req_12: …
E3
Req_13: …
l1 l2 l3
Le preuve remplace :
– TC/TM/TU
– S/S Tl
int xx;
main ()
{
…
} Plusieurs applications :
– méthode B
– SCADE
La figure 36 présente un processus ou la simulation au niveau niveau du modèle. Si le générateur de code est certifié, on pourra
du modèle remplace les tests de composants (ou unitaire ou s’arrêter là... mais si le générateur de code n’est pas certifié, il
modulaire) et les tests d’intégration logiciel/logiciel. Il faut dans ce pourra être nécessaire de rejouer tous les tests (composants et/ou
cas là, démontrer que le code simulé est le même que le code exé- intégration) sur le code généré et de mesurer la couverture sur le
cuté sur la cible et il est nécessaire de mesurer la couverture au code.
E1 … S1
Req_11: …
E2 S2
Req_12: … Tests d’ensemble sur cible
E3
Req_13: …
l1 l2 l3
La simulation remplace :
– les tests de composant
– les tests d’intégration S/S
int xx;
main ()
{
…
}
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
cation sont alors parties intégrantes du modèle tout comme les Définition 9 (application spécifique) – Une application spéci-
éléments du type : calcul des métriques, vérification de la cohé- fique est une application générique à qui un paramétrage a été
rence du modèle, vérification du respect des règles de codage, etc. associé. Cette application spécifique n’est utilisable que pour une
Ce type d’approche « centrée modèle » est intéressante mais elle seule installation.
fait disparaître de nombreux éléments documentaires qui sont À noter que la notion d’application spécifique (figure 38)
alors dit « non nécessaires » car productibles à la demande. Et couvre les aspects logiciel et matériel.
nous avons là, une potentielle « non-conformité » aux standards
orientés « objectif » tels que la IEC 61508:2008, l’ISO 26262:2011, la
CENELEC EN 50128, etc.
L’approche « centrée modèle » a pour point fort d’aider à la
convergence des métiers comme nous l’avons montré Paramètres
dans [4] [51]. En effet, les différentes équipes (logiciel et matériel,
conception, vérification et validation et sécurité) peuvent mettre en
commun des informations concernant leurs activités, ce qui per-
met de mieux appréhender les difficultés.
En général, l’équipe en charge de la sécurité, qui utilise ces
propres modèles fonctionnels et ces méthodes, peut avoir une Logiciel générique
vision quelque peu différente de l’équipe de conception et les
divergences peuvent avoir un impact fort sur les coûts et les
délais. L’utilisation d’un modèle commun permet de mettre à dis-
position au plus tôt les recommandations et les exigences liées à
la sécurité et il est possible de lier ces éléments à des morceaux de
Plateforme :
modèle.
hardware
L’approche « centrée modèle » fera (nous utilisons le futur car il + OS
n’y a pas d’application centrée modèle qui soit en service depuis + firmware
assez longtemps pour poser des problèmes, mais cela ne peut + middleware
qu’arriver) apparaître trois difficultés :
– l’absence de documents ne permettra pas de redévelopper la
même application logicielle en cas d’obsolescence des outils ;
– les outils deviennent le point central du processus, il est alors
nécessaire de montrer que les outils sont utilisables (notion de
qualification) pour le niveau de sécurité applicable à l’application Application générique
logicielle à réaliser. La qualification des outils devra être mise en
œuvre autant pour les générateurs de code que pour les outils de
vérification ;
– la complexité des techniques mises en œuvre (voir par Application spécifique
exemple les outils d’interprétation abstraite ou les techniques de
preuve [5]) impose un haut niveau de compétence pour les per-
sonnes en charge des activités. Figure 38 – Application spécifique versus application générique
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Définition 10 (application générique) – Une application Une application spécifique (voir définition 9) est donc dédiée à
générique est composée d’une plateforme d’exécution (appelée une utilisation. Cette application utilise des données qui peuvent
produit générique) et d’une application logicielle. Cette application être de différentes natures :
logicielle est définie en fonction d’un jeu de données de paramé- – les données d’activation/inhibition de services ;
trage qui devra être instancifié en fonction de l’utilisation finale – les données fixes n’évoluant pas dans le temps, elles décrivent
(dépendant du site, dépendant des services à activer, dépendant les caractéristiques du système (topologie, courbe de vitesse, point
des caractéristiques techniques, etc.). d’arrêts, etc.) ;
– les données évoluant dans le temps, le temps d’évolution étant
L’application générique [TRP 3 305] est alors la composition
le cycle ou une durée plus importante.
d’un logiciel générique et d’une plateforme d’exécution. La plate-
forme d’exécution est appelée produit générique et couvre les Les données évoluant régulièrement (dans le domaine ferro-
aspects matériels et les aspects logiciels (système d’exploitation, viaire, ces données sont nommées « variants ») peuvent être :
logiciel de base, couche middleware pour la gestion des communi- – des entrées que le système acquière régulièrement ;
cations, etc.). – des données que le système calcule comme les variables glo-
bales ou locales et les sorties du système.
Définition 11 (produit générique) – Un produit générique est
composé d’un ensemble d’éléments matériels et d’un ensemble de Définition 12 (données de paramétrage) – Une donnée de
logiciels et a pour objectif de permettre l’exécution d’une applica- paramétrage est une donnée n’évoluant pas durant l’exécution de
tion logicielle. Un produit générique peut être utilisé pour la réali- l’application logicielle.
sation de différents systèmes. Comme l’indique la définition 12, les données de paramétrage
(dans le ferroviaire on parle d’invariants) sont un premier type de
Comme l’indique la définition 11, un produit générique a pour données. Les données de paramétrages regroupent en générale
objectif d’exécuter différents types d’application logicielle, le coté deux familles : les données définissant les caractéristiques tech-
générique permet de ne pas la spécialiser, la notion de produit est niques (vitesse, poids, taille, nombre, etc.) et les données définis-
liée au fait que cet ensemble peut être certifié indépendamment du sant le cadre d’utilisation (la topologie, les courbes de vitesse, les
domaine d’utilisation, c’est par exemple le cas des automates pro- points d’arrêts, etc.).
grammables.
Comme le montre les deux premières lignes du tableau 11, les
Les données invariantes sont connues à la génération du sys- données peuvent être définies sous deux formes :
tème et définissent une configuration du système. Il est ainsi pos- – une forme tabulaire (figure 40a) : il s’agit de tableaux conte-
sible de définir un système de façon générique et de l’implanter au nant des données. Les tableaux peuvent être spécialisés afin
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
travers d’un paramétrage sur un autre site. d’accélérer les traitements (à partir d’une aiguille, on peut directe-
ment avoir accès aux signaux associés) ;
À titre d’exemple, de la description d’une ligne de métro, il est
– un algorithme (figure 40b) : les données sont décrites sous
possible de déduire un ensemble de données qui seront com-
forme d’algorithme et on peut construire une topologie de la ligne
munes à l’ensemble des équipements du système. Ces données
en connectant les données. Cette forme permet de définir un
dépendent de la topologie de la ligne, des caractéristiques des
« langage spécifique » qui tient compte du domaine.
trains et de choix technologiques (temps de réponse, temps de
calcul du processeur, etc.). Dans le monde du ferroviaire, elles sont La norme CENELEC EN 50128:2011 propose le processus de la
appelées invariants topologiques [4] [52]. figure 41 pour la préparation des données. Ce processus introduit
les phases classiques : planification, spécification et architecture,
Une ligne de métro (voir l’exemple fictif introduit à la figure 39) codage et vérification.
est composée de voies de circulation des trains. Ces voies sont
constituées de circuits de voie (noté CdV). Chaque circuit de voie La figure 42 montre que la préparation des données doit gérer
est une portion de voie qui permet de détecter la présence de deux types d’activités : la production des données de paramétrage
trains sur cette zone. Les circuits de voie sont en général connectés et l’intégration des données avec le logiciel générique. C’est pour-
à deux autres circuits de voie, mais dans le cas où ils sont connec- quoi le PPA (plan de préparation de l’application [TRP 3 306]) est à
tés à trois autres circuits de voie, ils doivent être associés à une réaliser soit pour chaque application spécifique, soit pour une
aiguille qui est un équipement permettant de choisir le chemin. classe d’applications spécifiques. S’il est produit pour une classe
d’applications spécifiques, on validera finalement une famille de
configurations.
La norme CENELEC EN 50128:2011 identifie un certain nombre
de techniques à mettre en œuvre pour la préparation des données
5 au travers de la table A.11 (tableau 11). La table A.11 de la norme
4 fait apparaître deux types de techniques :
3 – les langages (1 et 2) ;
– les moyens de vérification (de 3 à 9).
2 Le premier cas de la figure 43 consiste à ne développer qu’un
seul outil pour produire les données.
d1 1
Le deuxième cas consiste à disposer de deux outils, deux outils
diversifiés – mais disposant de la même spécification – réalisent la
même transformation et un comparateur permet de vérifier que le
résultat est identique (ou similaire si comparaison partielle). Le
6 dernier cas consiste à réaliser un outil qui fait la transformation et
un outil qui inverse la transformation et on complète avec un com-
parateur qui vérifie que le résultat est similaire (en général, les
transformations ne préservent pas toute l’information d’où une
incapacité à vérifier l’égalité).
f1 Le troisième cas de la figure 43 permet de garantir une diversité
plus forte (deux spécifications différentes) entre les deux outils que
Figure 39 – Exemple de topologie le deuxième cas (même spécification).
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
KagD KagG
left
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Not
not KagD et not KagG
controlled
right
Name 1 2 …
Position
a cas1 b cas 2
8.4.3 – Architecture/conception
8.4.6 – Validation et évaluation
8.4.1 – Planification
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
1) 2) 3)
Comparaison
Données
de paramétrage
Données
de paramétrage Données de paramétrage
Propriétés
Données
système
Outil
OK/KO
de preuve
Data Tool
Données utilisées
par le logiciel
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Processus de production
DATA des données
– Id
Application – Famille
générique – Format
– Unité
–… génération
extraction
DATA
– Id
– Famille
– Format
Propriétés Vérification – Unité
par preuve –…
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
7.2 Difficultés Les techniques formelles et les méthodes formelles sont mainte-
nant utilisées avec succès de manière industrielle sur des projets
de différentes tailles. Les outils associés ont atteint une maturité
L’un des points délicats concernant la mise en œuvre des diffé- permettant de prendre en compte la complexité de telles applica-
rents outils réside dans la démonstration que l’outil est utilisable tions. À noter que la complexité des applications industrielles à
pour le niveau de sécurité qui est visé. très souvent un impact sur le temps de traitement (dans le cadre
du SAET-METEOR, il a fallut plus d’une semaine en 1998 pour ana-
Comme le montre la figure 46, pour réaliser la qualification d’un lyser avec l’outil Polyspace les 100 000 lignes de code Ada, alors
outil, il faut mettre en place une activité de qualification qui peut que maintenant cela prendrait une ou deux heures).
être basé :
La prise en compte des techniques et des méthodes formelles a
– sur un certificat : il existe des certificats pour certains outils un impact sur le processus mis en œuvre et il est donc nécessaire
comme les compilateurs et les générateurs de code (par exemple de construire un nouveau processus (méthode, activité, éléments
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
le générateur de code C à partir du modèle SCADE est certifié en entrée, éléments en sortie, vérification à réaliser) conforme aux
SSIL3-4 pour la norme ferroviaire CENELEC EN 50128) ; normes qualité en vigueur.
– sur un retour d’expérience : il est possible de construire un La construction de ce processus doit prendre en compte le fait
argumentaire justifiant d’un retour d’expérience (liste de projets, que le modèle peut remplacer des documents qui étaient initiale-
exemple d’applications, nombre d’heures d’exploitation, etc.) ; ment à produire (demande des normes), la durée de vie du sys-
– et/ou sur une démonstration que le logiciel peut être utilisé tème (de 30 à 50 années) et les objectifs de maintenance associés
pour un niveau de sécurité donné (la démonstration peut (suite à la mise en service du système, il y a maintenant plusieurs
s’appuyer sur une démonstration de sécurité, sur une campagne versions qui sont produites). En effet, si l’outil utilisé pour la modé-
de validation, etc.) ; lisation n’est plus maintenu et que le formalisme utilisé pour réali-
ser le modèle est propriétaire (ou si le format des fichiers n’est pas
– l’ajout de contrôle d’exécution, etc. connu), il pourra être difficile voire impossible de mettre à jour
l’application en l’absence du modèle (incapacité à ouvrir le modèle
Pour les outils liés aux techniques formelles (prouveur, model et donc d’avoir accès à la documentation).
checker, interprétation abstraite, etc.), les algorithmes mis en
œuvre ne sont pas triviaux et il sera assez difficile de les valider ; Une autre difficulté des approches « centrées modèles » est de
sachant qu’il y a des outils commerciaux sous licence (impossibi- rendre le niveau de sécurité de l’application logicielle du niveau de
lité de connaître les algorithmes mis en œuvre) et des outils sous sécurité des outils utilisés. Autant il est difficile de montrer qu’un
licence non commerciale (en règle général, développé par des uni- compilateur C est SSIL4 autant il sera encore plus difficile de
versitaires) qui ne disposeront pas de dossier de validation au démontrer qu’un prouveur est SSIL4. Dans le cadre des compila-
niveau attendu. teurs, il était possible de mettre en place des stratégies basées sur
la redondance et la diversité autant pour les outils spécifiques tels
que des prouveurs, des outils de model checking et/ou des outils
d’interprétation abstraite, il est difficile d’avoir deux outils d’effica-
cité similaire sur le même domaine (il nous faut rappeler que pour
Retour d’expérience plusieurs des outils utilisés actuellement, les algorithmes ne sont
Bon comportement pas publiques et sont même sous copyright). Il faut alors mettre en
Certificat place des dossiers de qualification des outils.
Preuve de conformité
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Liste des termes et acronymes (suite) Liste des termes et acronymes (suite)
RATP Régie autonome des transports parisiens TC Test de composant
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
P
O
U
Méthodes formelles : application R
au domaine ferroviaire
E
par Jean-Louis BOULANGER
Évaluateur-Certificateur
Certifer (Anzin, France)
N
S
Sources bibliographiques
A
[1] ABRIAL Jr., The B Book. – Assigning pro-
grams to meanings. Cambridge University
Press, Cambridge, août 1996. [20]
Paris, France, vol. 19, n° 1-2-3, p. 155-164,
janv. 2000.
SOMMERVILLE (I.). – Software engineering 8 [34]
tional Conference on Software and Data
Technologies, Barcelona Spain (2007).
MOTET (G.). – Vérification de cohérence des
V
[2] BOULANGER (J.-L.) et SCHÖN (W.). – Logi-
ciel sûr et fiable : retours d’expérience. Re-
vue Génie Logiciel, n° 79, p. 37 à 40, déc.
[21]
(2007).
COUSOT (P.) et COUSOT (R.). – Abstract
interpretation : a unified lattice model for sta-
modèles UML 2.0. Première journée théma-
tique Modélisation de Systèmes avec UML,
SysML et B-Système, Association française
O
[3]
2006.
BOULANGER (J.-L.) et SCHÖN (W.). – As-
sessment of safety railway application. ES-
tic analysis of programs by construction or
approximation of fixpoints. Conf. Rec. Of the
4th Annual ACM SIGPLAN-SIGACT Symp. on [35]
d’ingénierie système, Toulouse, France
(2005).
OOTIA. – Handbook for object-oriented tech-
I
[4]
REL (2007).
BOULANGER (J.-L.). – Expression et valida-
tion des propriétés de sécurité logique et
Principles of Programming Languages
(POPL’77), Los Angeles, États-Unis, ACM
Press, New York, p. 238-252 (1977). [36]
nology in aviation (OOTiA). Handbook Over-
view, Revision 0, vol. 1, 26 oct. 2004.
OOTIA. – Handbook for object-oriented tech-
R
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
physique pour les systèmes informatiques [22] HALBWACHS (N.), CASPI (P.), RAYMOND nology in aviation (OOTiA). Considerations
critiques. Thèse, Université de Technologie (P.) et PILAUD (D.). – The synchronous data- and Issues, Revision 0, vol. 2, 26 oct. 2004.
de Compiègne (2006). flow programming language Lustre. Procee- [37] OOTIA. – Handbook for object-oriented tech-
[5] Sous la direction de BOULANGER (J.-L.). –
Utilisations industrielles des techniques for-
melles – Interprétation abstraite. Collection [23]
dings of the IEEE, n° 9, vol. 79, p. 1305-1320,
sept. 1991.
BEHM (P.), BENOIT (P.), FAIVRE (A.) et
nology in aviation (OOTiA). Best Practices,
Revision 0, vol. 3, 26 oct. 2004. P
[38] OOTIA. – Handbook for object-oriented tech-
[6]
IC2, Hermès (2011).
BOULANGER (J.-L.). – Le domaine ferro-
viaire, les produits et la certification. Journée
MEYNADIER (J.-M.). – METEOR : a success-
ful application of B in a large project. Procee-
dings of FM’99 : World Congress on Formal
nology in aviation (OOTiA). Certification
Practives, Revision 0, vol. 4, 26 oct. 2004.
L
[39] BOULANGER (J.-L.) et BON (P.). – BRAIL :
[7]
« ligne produit », École des mines de Nantes,
15 oct. 2009.
Observatoire français des techniques avan-
[24]
Methods, p. 369-387.
DESFORGES (P.), BUSTANY (F.) et
BEHM (P.). – Utilisation de la méthode B pour
d’UML à la méthode B pour modéliser un
passage à niveau. Revue RTS, n° 95,
U
p. 147-172, avr.-juin 2007.
cées (OFTA). – Applications des méthodes
formelles au logiciel. Arago, Masson, vol. 20,
juin 1997.
la réalisation des logiciels de sécurité du
SAET de METEOR. Revue des chemins de
fer, n° 6, juin 1996.
[40] RAMACHANDRAN (M.). et ATEM de
CARVALHO (R.). – Handbook of software en-
S
gineering research and productivity
[8] BAIER (C.), et KATOEN (J.-P.). – Principles of [25] BEHM (P.). – Application d’une méthode for-
technologies : implications of globalisation.
model checking. The MIT Press (2008). melle aux logiciels sécuritaires ferroviaires.
Information Science Reference, août 2009.
[9] DORMOY (F.-X.). – Scade 6 a model based In Atelier Logiciel Temps Réel, 6e Journées
solution for safety critical software develop- Internationales du Génie Logiciel (1993). [41] BOULANGER (J.-L.) et BERKANI (K.). – UML
ment. In Embedded Real-Time Systems [26] MONIN (J.-F.). – Introduction aux méthodes et la certification d’application. ICSSEA 2005,
Conference (2008). formelles. Hermès, préface de HUET (G.), Paris CNAM, 1-2 déc. 2005.
[10] HOARE (C.A.R). – An axiomatic basis for 2-7462-0140-2 (2000). [42] BOULANGER (J.-L.). – RT3-TUCS : How to
computer programming. Communications of [27] MONIN (J.-F.). – Understanding formal me- build a certifiable and safety critical railway
the ACM, vol. 12(10), p. 576-580 (1969). thods. Springer Verlag, Foreword by application. 17th international Conference on
[11] DIJKSTRA (E.W.). – Guarded commands, HUET (G.), Translation editor HINCHEY (M.), Softwaree Engineering and Data Enginee-
nondeterminacy and formal derivation of ISBN 1-85233-247-6 (2002). ring, SEDE-2008, Los Angeles, États-Unis,
2 - 2016
programs. Communications of the ACM, [28] HULL (E.), JACKSON (K.) et DICK (J.). – Re- p. 182-187, 30 juin-2 juill. 2008,.
vol. 18, n° 8, p. 453-457, août 1975. quirements engineering. Springer, Berlin [43] IDANI (A.), BOULANGER (J.-L.) et
[12] DIJKSTRA (E.W.). – A discipline of program- (2005). PHILIPPE (L.). – Linking paradigms in safety
ming. Prentice Hall (1976). [29] BOULANGER (J.-L.) et BADREAU (S.). – Ingé- critical systems. Revue ICSA, sept. 2009.
[13] LISSANDRE (M.). – Maîtriser SADT. Édition nierie des exigences – Méthodes et bonnes [44] IDANI (A.), BOULANGER (J.-L.) et
Armand Collin (1990). pratiques pour construire et maintenir un ré- PHILIPPE (L.). – A generic process and its tool
[14] Sous la direction de BOULANGER (J.-L.). – férentiel. Dunod, Paris (2014). support towards combining UML and B for
Doc. TRP 3 309
Mise en œuvre de la méthode B. Collection [30] Sous la direction de BOULANGER (J.-L). – safety critical systems. CAINE 2007, San
IC2, Hermès (2014). Techniques industrielles de modélisation for- Francisco, 7-9 nov. 2007.
[15] JONES (C.B.). – Systematic software deve- melle pour le transport. Collection IC2, Her- [45] IDANI (A.), OKASA OSSAMI (D.-D.) et
lopment using VDM. Prentice Hall Internatio- mès-Lavoisier (2011). BOULANGER (J.-L.). – Commandments of
nal, Second Edition (1990). [31] OMG. – Unified modeling language TM UML for safety. In 2nd International Confe-
[16] SPIVEY (J.M.). – The Z notation – A reference (OMG UML). Infrastructure, OMG (2011). rence on Software Engineering Advances
Manual. Prentice Hall International (1989). [32] BOULANGER (J.-L.). – UML et les applica- IEEE CS, Press, août 2007.
[17] BARNES (J.). – Programming in Ada 2012. tions critiques. Proceedings of Qualita’ 07, [46] RASSE (A.), BOULANGER (J.-L.),
Cambridge university press (2014). Tanger, Maroc, p. 739-745 (2007). MARIANO (G.), THIRY (L.) et PERRONNE
[18] KERNIGHAN (B.W.) et RITCHIE (D.M.). – The [33] OKALAS OSSAMI (D.D.), MOTA (J.-M.), (J.-M.). – Approche orientée modèles pour
C programming language. 2nd edition, Pren- THIRY (L.), PERRONNE (J.-M.) et une conception UML certifiée des systèmes
tice Hall, Englewood Cliffs (1988). BOULANGER (J.-L.). – A method to model logiciels critiques. CIFA, Conférence Interna-
[19] COUSOT (P.). – Interprétation abstraite. guidelines for developing railway safety-cri- tionale Francophone d’Automatique, Buca-
Technique et Science Informatique, Hermès, tical systems with UML. ICSOFT’07, Interna- rest, Roumaine, nov. 2008.
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
[71]
BOWEN (J.P.) et HINCHEY (M.G.). – Applica-
tions of formal methods. Prentice Hall (1995).
De la BRETESCHE (B.). – La méthode APTE :
On-board with safety critical software: Imple-
ment safety critical software for high-speed
2012. Technical report (2012). railway transportation. Alsys World Dia-
Parution : février 2016 - Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
[57] RTCA DO-333. – Formal methods supple- analyse de la valeur, analyse fonctionnelle. logue, 8(2), 1994.
ment to DO-178C and DO-278A, déc. 2011. Pétrelle, Paris (2000). [87] HATTON (L.) et SAFER ( C.). – McGraw-Hill,
[58] BOULANGER (J.-L.). – Mise en œuvre des [72] LANO (K.). – The B language and method : a 1904.
P normes CENELEC 50128 et IEC 62279.
BOULANGER (J.-L.) (Editor), Wiley-ISTE,
guide to practical formal development.
Springer Verlag London Ltd (1996).
[88] MEYERS (S.). – Effective C++ : 50 Specific
Ways to Improve your programs and design.
ISBN : 978-1-78405-009-2, 350 p., juil. 2014. [73] MEINADIER (J.P.). – Le métier d’intégration Addison Wesley 2nd Edition (1998).
L [59] RTA DO 330. – Software tools qualification
consideration to DO-178C and DO-278A, déc. [74]
de systèmes. Hermès, Paris (2002).
POHL (K.). – Requirements engineering : fun-
[89] SUTTER (H.) et ALEXANDRESCU (A.). – C++
coding Standards, 101 rules, guidelines and
2011. damentals, principles, and techniques. Sprin- best practices. Addison Wesley, Boston
U [60] DELEBARRE (V.), GALLARDO
JUPPEAUX (E.) et NATKIN (S.). – Validation
(M.),
[75]
ger, Berlin, juin 2010.
RAMACHANDRAN (M.). – Knowledge en-
(2005).
[90] LOCKHEED (M.). – Joint strike fighter air
des constantes de sécurité du pilote automa- gineering for software development life vehicle C++ coding standards for the deve-
S tique de METEOR. ICSSEA’99, Paris, CNAM.
[61] HOUTMANN (C.), ABO (R.), HUMBERT (P.),
cycles : support technologies and applica-
tions. IGI Publishers, avr. 2011.
lopment and demonstration program. Docu-
ment 2RDU00001, rev C (2005).
MOTA (J.-M.) et BONVOISIN (D.). – Proving [76] ROQUES (P.). – UML 2 par la pratique – [91] MISRA. – MISRA C++: 2008 guidelines for the
static data correctness using OVADO for the Études de cas et exercices corrigés. Eyrolles, use of the C++ language in critical systems.
Paris métro ligne 13. Congrès Lambda Mu 19 Paris (2006). Motor Industry Research Association (2008).
Sites Internet
CENELEC ERTMS
http://www.cenelec.eu/Cenelec/Homepage.htm http://www.ertms.com
COFRAC IEC
http://www.cofrac.fr http://www.iec.ch/
EPSF ISO
http://www.securite-ferroviaire.fr/ http://www.iso.org/iso/home.html
ERA MODUrban
http://www.era.europa.eu http://www.modurban.org/
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
tiwekacontentpdf_trp3309 v1 Ce document a ete delivre pour le compte de 7200104131 - systra // brigitte VERCHERE // 213.41.116.170
GAGNEZ DU TEMPS ET SÉCURISEZ VOS PROJETS
EN UTILISANT UNE SOURCE ACTUALISÉE ET FIABLE
RÉDIGÉE ET VALIDÉE MISE À JOUR 100 % COMPATIBLE SERVICES INCLUS
PAR DES EXPERTS PERMANENTE SUR TOUS SUPPORTS DANS CHAQUE OFFRE
NUMÉRIQUES
www.techniques-ingenieur.fr
CONTACT : Tél. : + 33 (0)1 53 35 20 20 - Fax : +33 (0)1 53 26 79 18 - E-mail : infos.clients@teching.com
LES AVANTAGES ET SERVICES
compris dans les offres Techniques de l’Ingénieur
ACCÈS
SERVICES ET OUTILS PRATIQUES
Archives Impression à la demande Alertes actualisations
Technologies anciennes et versions Commandez les éditions papier Recevez par email toutes les nouveautés
antérieures des articles de vos ressources documentaires de vos ressources documentaires
*Questions aux experts est un service réservé aux entreprises, non proposé dans les offres écoles, universités ou pour tout autre organisme de formation.
www.techniques-ingenieur.fr
CONTACT : Tél. : + 33 (0)1 53 35 20 20 - Fax : +33 (0)1 53 26 79 18 - E-mail : infos.clients@teching.com