FMDS/RAMS
1/11/2023

Sécurité Fonctionnelle d'un Produit : Méthodes Simples

La Sécurité de Fonctionnement (SdF): définition, explication et exemple. Correspondant à la notion « Safety » en Anglais, il s’agit de l’ensemble des dispositions assurant que votre Système ne se dégrade pas ni ne blesse ses utilisateurs, à la suite de dysfonctionnements involontaires. Voici quelques méthodes simples pour sécuriser un Produit.

Sécurité, Sûreté, Fiabilité, Résilience… Ces 4 mots ne désignent en fait pas les mêmes notions. Et la différence est importante lors de la conception de votre produit car les objectifs et méthodes sont différents. Je traite dans cet article de la notion de Sécurité Système, et j'aborde la sécurisation d'un Système avec les méthodes simples de l'état de l'art.

Définition et objectif

La Sécurité est la lutte contre les dysfonctionnements involontaires d’un Système.

C'est le "S" de FMDS (ou RAMS, en Anglais).

Il s’agit, lors de la conception d’un Produit (et/ou son opération et/ou sa maintenance) :

  • D’identifier les risques
  • De les éliminer
  • Ou, si élimination pure et simple non réalisable, de les mitiger suffisamment pour les faire passer sous un niveau de criticité acceptable

Un Risque correspond à toute condition qui viendrait à produire au sein du Système une situation dysfonctionnelle amenant à :

  • Des dommages sur le Système lui-même
  • Des dommages à la personne utilisant, maintenant le Système ou même simplement se trouvant autour
  • Des dommages à l’Environnement.

Un Produit sécurisé, c’est un Produit qui se révèle au final pratique, robuste et sans danger à produire, utiliser, maintenir et retirer du service.

Cela influe directement sur le coût d’exploitation de ce Produit, son efficacité à l’utilisation, sa Disponibilité, et… le nombre de procès auxquels vous serez conviés.

Identifier les risques systèmes pour les mitiger (sécurité fonctionnelle) sécurité safety FMDS RAMS FMD RAM
Identifier les risques pour en maîtriser l'impact

Maîtriser les Risques de votre Produit, c’est maîtriser vos coûts.

Mais comment gérer des Risques quand on conçoit un nouveau Produit qui n’existe même pas encore ?

Et dis donc Jamy  sécurité safety ? FMDS RAMS FMD RAM
C'est une bonne question ça, Fred !

Les dysfonctionnements peuvent provenir du moindre élément non maîtrisé au sein de votre Produit, qu’il soit Logiciel, Électronique ou Mécanique.

Exemple de dysfonctionnements involontaires :

  • Bug Software qui fait reboot votre Système à un moment inopportun
  • Décharge électrostatique qui vient détériorer votre électronique et rend inopérant votre Produit
  • Casse d’une pièce mécanique en mouvement dans votre mécanisme du fait d’un non-alignement croissant des pièces autour

Avoir une connaissance poussée de son Système en cours de conception via l’application d’une méthode d’Ingénierie Systèmes est un bon début. En effet, documenter le Système sous la forme de listes d’exigences, de schémas d’architectures et autres représentations & modèles permet déjà de se faire une bonne idée de son fonctionnement et ainsi d’identifier par anticipation ses potentiels défauts et ce qui pourrait se produire de manière non souhaitée.

Une fois les Risques repérés grâce à vos schémas, il s’agit d'en tirer des exigences supplémentaires, à ajouter aux précédentes, afin de mettre en place petit à petit dans notre futur Systèmes les barrières qui viendront empêcher le Risque ou bien réduire ses conséquences à un niveau acceptable.

Vous l'aurez compris, la Sécurité doit faire partie intégrante de la Spécification, Conception et du Développement de son Système. Rajouter des éléments supplémentaires de sécurisation à la fin de sa conception est souvent inefficace et va mettre à mal tout l’effort de conception et d’esthétique de votre Produit. Il faudra souvent reboucler la conception pour insérer votre barrière, et c'est alors un allongement du temps Projet.

Exemples de sécurisations qui arrivent trop tard dans la conception du Produit :

  • Une boucle software rajoutée à la va vite qui vient tenter d’arranger des bugs à grands coups d’interruptions dans le thread principal
  • Une tresse de masse rajoutée à la fin sur votre Produit et qui vient complètement casser l’esthétique pensée initialement
  • Utilisation d’un matériau plus robuste pour votre pièce, mais beaucoup plus cher, pour encaisser les conditions de non alignement qui auraient dû être détectées et gérées lors de la conception.

En plus d'avoir un Produit qui va sembler un peu bancal, arranger son Produit sur la fin du projet va aussi coûter très cher.

Si vous savez déjà générer, gérer des exigences et leurs tests de vérification, alors vous n’aurez pas de mal à en ajouter quelques-unes qui vous garantiront un système safe, en tenant compte de toutes ses phases de vie.

Exemples de sécurisations arrivées au bon moment (lors de la conception) :

  • Logiciel : Faire en sorte que les alarmes logicielles (flags) soient up par défauts, et que ce soient les différentes composantes logicielles qui les maintiennent abaissées si ces composantes sont bien fonctionnelles. Si un software devant tenir abaissé un flag tombe KO, le flag correspondant va pop et une autre composante logicielle dédiée pourra prendre le relai et gérer le problème de manière plus fine et ciblée.
  • Electronique : Je souhaite mettre tel composant dans mon circuit, mais je sais qu’il va rapidement flancher. Je peux opérer une redondance froide : dès que le premier flanche, le 2ème prend le relais, et ce de manière totalement transparente.
  • Mécanique : s’il y a un risque prononcé de casse sur une pièce mécanique, alors je fais une redondance chaude de cette pièce (2 pièces se répartissent la fonction plutôt qu’une seule).

Tout ceci a bien été pensé lors des phases de Spécifications, Conception et Développement du Système. Il n’est pas possible (simplement) une fois le Système produit en série de rajouter une pièce mécanique, un composant électronique, ou de modifier profondément le logiciel. Le système doit être « Safe by design ».

L’ingénieur Systèmes, avec sa vision transverse et holistique du Système, a un rôle essentiel à jouer dans l’identification et la mitigation des Risques.

Concrètement, que dois-je faire et mettre en place ?

Il y a plusieurs moyens d'arriver à sécuriser son Système. Voici ci-dessous les méthodologies à exploiter. Il s'agit du « minimum syndical » (méthodes simples) de la conception Produit. Un autre article suivra pour les méthodes avancées.

Adopter un process d’Ingénierie Systèmes et se (faire) relire

C’est essentiel pour y voir clair sur le Système qu’on développe (cf. ci-dessus). Et je dirais qu’y voir clair, sur tout le cycle de vie du Produit, c’est déjà 60% du travail de Sécurité qui est fait.

En effet, avoir le « Produit » sous les yeux (sous ses différentes représentations) permet de mieux se rendre compte de ce qui pourrait mal se passer et de prendre les dispositions adéquates (rajouter un composant software de surveillance du fonctionnement, chanfreiner les bords tranchants, …).

Exemples de représentations de votre Produit :

  • Cycle de vie du Système
  • Uses Cases du Système
  • Diagramme Pieuvre
  • Diagrammes SADT
  • Scénarios d’interactions Système
  • Schéma des Chaînes Fonctionnelles, Fonctions, Sous-fonctions
  • Machines d'Etats, Modes
  • Scénarios fonctionnels
  • Arborescence Produit
  • Bill of Materials (BOM, en Français : nomenclature)
  • Interactions matérielles
  • Modèles CAO
  • Modèles sous forme de jeux d'équations (Simulink...)
  • Opérations de Manufacturing, Assembly, Integration, Tests (MAIT) envisagées dans le Dossier de Fabrication et Contrôle (DFC)
  • Opérations de Support envisagées
  • Listes d’exigences
  • etc.
schéma architecture systèmes sécurité safety FMDS FMD RAMS RAM
Exemple de schéma d'architecture Système pour décrire une fonctionnement opérationnel

Évidemment, toutes ces représentations, listes et autres schémas seront très flous et incomplets au début de votre conception. Qu'importe : ils représenteront déjà de précieuses informations sur votre futur Produit et le fonctionnement que vous envisagez pour lui. Cela vous permettra de vous rendre compte de certains risques, et de prendre vos premières décisions de sécurisation du Système.

A mesure que vous avancerez dans le Projet, certaines zones d'ombre s'éclairciront et vous pourrez ajouter les barrières pertinentes pour contrer les Risques que vous verrez apparaitre.

Astuce : faites relire les exigences et vos schémas d’architecture par une autre personne que celle qui les a rédigées et dessinés. Le point de vue extérieur aidera grandement pour détecter les Risques.

Trouver et exploiter les textes pertinents

Il faut rechercher les textes qui sont pertinents pour votre Produit et qui offrent des guidelines pour le sécuriser :

  • Règlementations Européennes/Nationales
  • Normes industrielles
  • Standards industriels
  • Standards militaires (si applicable)

NOTA : certains de ces textes, en plus d’être pertinents, seront obligatoirement à respecter pour mettre votre Produit sur le marché… Il ne s’agit pas que d’une aide à la conception.

Exemple de textes :

  • La Directive RED pour les Produits radioélectriques
  • ISO 14971 pour les dispositifs médicaux
  • Les MIL-STD entretenus pas l’armée US

Ces textes donnent généralement des exigences que vous pouvez insérer plus ou moins directement dans vos Spécifications Systèmes (exigences de design), ou qui vont vous donner des étapes à respecter dans votre processus de conception (exigences de process).

ISO14971 sécurité safety ISO 14971 FMDS FMD RAMS RAM
Du plus bel effet sur votre table de chevet

Exemple d’exigences que vous pouvez y retrouver :

  • Le système doit limiter les défaillances à X occurrences/an.
  • Les parties extérieures et métalliques du système doivent être reliées à la Terre.
  • Le système ne doit pas, via les ondes électromagnétiques émises, dégrader la santé des utilisateurs.

Vous noterez que pour le 1er exemple (taux de défaillance), la prise en compte n’est pas directe. Un vrai travail doit ensuite suivre pendant la conception et le développement du Produit pour s’assurer qu’on comprenne bien ce que cela implique et qu’on fasse les bons choix de design. Qu'est ce qu'on entend par défaillance ? Par quoi sont-elles provoquées ? Comment limiter leur occurrence ?

Analyses de Risques (AMDEC – FMECA) sur les exigences

AMDEC : Analyse des Modes de Défaillances, de leurs Effets et de leurs Causes. En Anglais, FMECA : Failure Mode Effects and Causes Analysis. C'est un incontournable des méthodes de sécurisation de son Système.

Typical table for FMECA sécurité safety FMDS AMDEC FMD RAMS RAM
Tableau typique d'une AMDEC

Une fois votre liste d’exigences constituant la Spécification Système complète , analysez chaque exigence (Fonction du Produit dans le tableau ci-dessus) et déterminez si un risque existe (on parle d’évènement redouté, ou de Mode de Défaillance dans le tableau ci-dessus) et a besoin d’une barrière spécifique (Action préventive dans le tableau ci-dessus). Faites autant de lignes à votre tableau que nécessaire.

Exemple de questions à se poser pour chaque exigence pour identifier le mode de défaillance :

  • Que se passe-t-il si la fonction concernée par l’exigence disparaît ?
  • Ou si elle ne parvient pas à se lancer ?
  • Ou se lance de manière aléatoire/intempestive ?
  • Ou ne s’arrête jamais une fois lancée ?
  • Ou se lance bien mais s'opère de manière dégradée ?

Pour chacun de ces évènements redoutés déduits, déterminez ensuite sa cause, sa conséquence (ou Effet selon le tableau ci-dessus) et notez ce risque via 3 critères :

  • Non détectabilité : le caractère non visible de la défaillance si elle se produit. Moins un dysfonctionnement est détectable (par un humain ou un logiciel), et plus il doit nous inquiéter.
  • Probabilité : Fréquence d’occurrence évaluée de la cause de l’évènement redouté
  • Gravité : gravité de la conséquence de cet évènement redouté.
RIsk scale for assesment sécurité safety FMDS FMD RAMS RAM
Exemple d'échelle de notation du Risque

Ci-dessus une échelle de notation pour les 3 critères. Pour ma part, je préfère limiter la note à 4 pour chaque critère. Cela oblige à faire pencher la balance du côté + ou du côté -, sans possibilité de mettre une note "neutre" sur les critères.

La criticité vient apporter la note finale de chaque risque :

Criticité = Non détectabilité * Probabilité * Gravité

Critic risk scale sécurité safety FMDS FMD RAMS RAM
Echelle de criticité

A ce stade, vous avez identifié vos risques et déduit de manière quantitative leur Criticité. Que faire ? 

Ci-dessus un exemple d'échelle de criticité vous permettant de savoir quand une barrière (Action) est nécessaire pour mitiger ou supprimer votre risque :

  • Case rouge : vous devez absolument faire quelque chose pour le risque concerné
  • Case verte : rien à faire a priori. Le risque est trop rare ou trop peu grave pour s'en inquiéter outre mesure
  • Case orange : le débat est ouvert !

Vous pouvez tout à fait redéfinir cette échelle de niveaux acceptables pour les risques. En effet, cela dépend de l’application de votre Produit. Si c’est un Système militaire, l’acceptabilité du risque est généralement sévère et il y a une plus grande part de cases rouges. Des normes peuvent aider à la définition de cette échelle en associant un niveau d'Assurance Level a votre produit ou ses composantes (DAL, SWAL, SIL...).

Si un risque de votre liste quantifiée dépasse le niveau de criticité limite que vous avez décidé, il faut trouver une barrière de sécurisation et la mettre en place.

Pour trouver une barrière, vous pouvez jouer sur :

  • La détectabilité du problème : Augmenter la détectabilité du problème est toujours souhaitable et aide à prendre la bonne décision à temps quand le problème se produit.
  • La probabilité d’occurrence (de la cause) : diminuer voire supprimer les occurrences.
  • La gravité (de la conséquence) : diminuer voire supprimer la conséquence néfaste

On peut combiner plusieurs barrières pour faire diminuer la criticité d'un évènement redouté sous une valeur acceptable.

FMECA table almost complete sécurité safety FMDS FMD RAMS RAM
Tableau AMDEC presque complet

Pour valider que les barrières envisagées sont bien suffisantes, refaite une notation des 3 critères en tenant compte de votre barrière ajoutée au Système, et voyez si la Criticité est effectivement passée sous le niveau limite que vous vous êtes défini. Si oui, c'est gagné ! Si non, réfléchissez encore à vos barrières...

Ajoutez enfin ces barrières déduites, sous la forme d’exigences, dans votre spécification pour la compléter.

Exemples de barrières devenant exigences :

  • Dans l'exemple mécanique ci-dessus (cisaille de tôles) : "La zone de production doit comporter au plus proche des cisailles guillotine une affiche permettant aux opérateurs de prendre connaissance et appliquer les réglages standard en moins de 5 min et durant le shift de jour comme le shift de nuit"*
  • Exemple électronique/logiciel avec un risque de processeur qui plante et brick le système : "Le processeur X gérant le Système doit avoir un watchdog implémenté", et "L'OS du processeur X doit avoir un watchdog activé avec une temporisation de Y secondes"

* Et oui, la sécurisation d'un Système peut aussi donner des exigences qui ne portent pas sur le Système lui-même !

A ce stade, vous avez appliqué 3 méthodologies pour sécuriser votre Système, et vous avez donc :

  • Vos exigences initiales, liées au Besoin fonctionnel que vous avez défini pour votre Système ("je veux que mon système découpe du bois")
  • Des exigences de sécurité qui vous proviennent des différents textes vus plus haut ("la machine ne doit pas couper plus de X doigts/an")
  • Des exigences issues de l’analyse de risque de vos exigences initiales ("la machine doit comporter un carter de protection au niveau des pièces en mouvement")

Le travail n'est pas pour autant terminé !

Décliner et gérer les exigences de Sécurité comme les autres…ou presque

A partir de ce moment-là, vous pouvez procéder aux déclinaisons d’exigences typiques de la descente du Cycle en V (ou de la méthode projet hybride que je propose).

Néanmoins, les exigences de Sécurité revêtant une importance particulière (car protègent des défaillances Système et notamment des défaillances pouvant blesser les utilisateurs…) il faut veiller à les taguer comme tel. La mention [SECURITE] dans l’intitulé de l’exigence peut suffire.

Et lors de la déclinaison, toutes les exigences issues d’une exigence [SECURITE] doivent hériter de ce tag. Cela permettra à vos collègues développant le logiciel, la mécanique et l’électronique de savoir que cette exigence est critique et nécessite donc d’être particulièrement soignée dans sa réalisation.

En plus du logiciel, de l’électronique et de la mécanique, on peut aussi voir ces exigences déclinées jusqu’à impacter des procédures d’utilisation (le manuel utilisateur par exemple, ou l'affiche sur la machine de cisaille guillotine - cf. ci-dessus), des procédures de fabrication du produit, ou bien faire apparaitre un besoin de formation spécifique du client lorsqu’il recevra son système. Les exigences de sécurité ne vont pas forcément porter seulement sur le Produit lui-même !

ne pas gerber sécurité safety
Petite affiche pour ne pas empiler les éléments les uns sur les autres...

Quelle priorisation à donner aux barrières si on a le choix entre plusieurs pour un même risque ?

La priorité est la suivante (par ordre décroissant) :

  • Eliminer le risque par la conception-même du Système
  • Réduire le risque par la conception-même du Système
  • Réduire le risque par l’ajout d’un 2ème système au sein/en interface de notre Système
  • Fournir un dispositif d’avertissement en cas de dysfonctionnement du Système (une LED, un son, …)
  • Fournir une formation aux utilisateurs et des procédures avec la conduite à tenir pour éviter les problèmes et les gérer quand ils surviennent.

On retrouve bien l’ordre logique et naturel pour éviter un problème :

  • tout d'abord supprimer le problème
  • Si on ne peut pas le supprimer, réduire sa probabilité d’occurrence ou ses conséquences
  • Si on ne peut pas supprimer le problème ni réduire sa probabilité et ses conséquences, faire en sorte que les gens concernés se rendent compte que quelque chose ne va pas
  • Si tout cela n’est pas suffisant, former les personnes à l’utilisation du Système, la détection de problème et le comportement à tenir.

On peut tout à fait choisir de cumuler les barrières pour faire "Ceinture-Bretelles". On peut cumuler des dispositions sur :

  • La réduction de probabilité de la cause + la diminution de la gravité de la conséquence (si toutefois on se méfie d'avoir réussi à réduire les causes à 0)
  • L'électronique + le logiciel

Validation des exigences spécifiques à la Sécurité du Produit

Lors des phases d’Intégration, Vérification, Validation et Qualification de votre Produit (IVVQ), vous avez bien travaillé et disposez d’une liste d’exigences de Sécurité avec le Plan de Test qui va en face.

Les exigences taguées [SECURITE] doivent évidemment être vérifiées à la fin du développement du produit, comme toutes les autres exigences.

On peut, comme pour tout le reste des exigences, procéder de la sorte pour se convaincre que l’exigence est bien atteinte par le Produit (méthode au choix) :

  • Inspection du Produit
  • Analyse (par exemple : via simulations ou jeux d’équation)
  • Démonstration (par exemple : justification écrite basée sur le raisonnement)
  • Tests
  • Analogies
  • Echantillonnage
  • ...

Quelques mots pour conclure

La Sécurité doit être partie intégrante de la démarche d’Ingénierie Systèmes.

La Sécurité d’un Système doit se penser dès le début si on veut que les barrières mises en place soient réellement efficaces, et à coût maîtrisé. Sinon, on va au-devant de mauvaises surprises et le Système sera bancal et dangereux. Les performances fonctionnelles d’un Produit se pensent dès le début (lors du Besoin, Spécification, Conception) et c’est normal. La Sécurité doit être considérée comme une performance du Système. X jours sans pb, X jours sans victimes... c’est une performance !

Il n’y a pas de magie : une grande part de la sécurisation d’un Système tient dans le fait de suivre un processus clair, rigoureux et systématique lors de la conception, du développement, et de la validation. Processus dans lequel vont intervenir des méthodes particulières que l’ingénieur en charge de la Sécurité peut utiliser de manière plus ou moins poussée. Il n’y a pas de façon générique et automatique de faire, pas d’outil adaptable à toutes les situations.

Je termine sur cette citation :

"If you think good design is expensive, you should look at the cost of bad design." — Dr. Ralf Speth

Aurélien NARDINI

Un Système Sans Problème est une ressource de connaissances et de savoir-faire pratiques, avec exemples concrets.

Que vous soyez Chef de Programme, Chef de Projet, Architecte Système, Ingénieur, Manager dans l'Industrie, Etudiant ou Curieux de l'Ingénierie, vous êtes au bon endroit.

Au travers d'articles publiés régulièrement, découvrez ou révisez les Processus, Méthodes, Outils et Astuces utiles pour concevoir et piloter dans les domaines du Software, Firmware, de l’Électronique, et de la Mécanique.
 
Parce-qu'un produit fiable et industrialisable ne s'improvise pas !