Pourquoi la qualité du code est-elle importante sur les marchés réglementés ?

Les normes définissent le minimum. Vector vous aide à aller au-delà.

Les logiciels utilisés dans les véhicules, les aéronefs, les dispositifs médicaux et les systèmes de contrôle industriels fonctionnent dans des environnements où un défaut peut avoir des conséquences physiques directes. Les organismes de réglementation de ces secteurs répondent à cette réalité en imposant des exigences de vérification obligatoires : la norme ISO 26262 pour le secteur automobile, la norme DO-178C pour l'aérospatiale, la norme CEI 62304 pour les dispositifs médicaux et la norme CEI 61508 pour les systèmes industriels. Sans preuve documentée de conformité, le produit ne peut pas être commercialisé.

Les enjeux dans les secteurs où la sécurité est primordiale

Automobile

Les véhicules modernes contiennent plus de 100 millions de lignes de code logiciel réparties sur des centaines d'unités de commande électroniques. Un défaut dans un logiciel lié à la sécurité, notamment au niveau des systèmes de freinage, de la direction et du déclenchement des airbags, peut avoir des conséquences physiques directes. La norme ISO 26262 définit un cadre fondé sur les risques pour la sécurité fonctionnelle des systèmes électriques et électroniques des véhicules routiers, exigeant une vérification systématique à chaque étape du développement.

Aérospatiale

Les logiciels destinés à une utilisation aéronautique doivent répondre à des critères rigoureux définis dans la norme DO-178C avant d’obtenir l’agrément de l’autorité de certification. Cette norme attribue aux logiciels des niveaux d’assurance allant de D (failles mineures) à A (conséquences catastrophiques en cas de défaillance), les exigences de vérification devenant de plus en plus strictes à mesure que l’on monte dans les niveaux. Une couverture MC/DC est requise pour les logiciels de niveau A.

Dispositifs médicaux

La norme CEI 62304 régit le cycle de vie des logiciels destinés aux dispositifs médicaux et impose des activités de vérification structurées pour tout composant logiciel susceptible d'affecter la sécurité des patients. Les conséquences d'une défaillance logicielle dans un stimulateur cardiaque, une pompe à perfusion ou un système d'imagerie sont sans équivoque.

Automatisation industrielle

La norme CEI 61508 constitue la norme de référence en matière de sécurité fonctionnelle des systèmes électroniques programmables destinés aux applications industrielles. Elle s'applique aux systèmes de commande d'usine, à l'automatisation des procédés dans les usines chimiques, et à bien d'autres domaines encore. Elle sert également de base à l'élaboration de nombreuses normes spécifiques à certains secteurs.

Le coût d'un code de mauvaise qualité

Au-delà des conséquences en matière de sécurité, la mauvaise qualité des logiciels entraîne des coûts économiques importants.

  • Les défauts détectés lors de l'intégration du système coûtent 10 à 100 fois plus cher à corriger que ceux détectés lors des tests unitaires
  • Les défaillances sur le terrain dans les secteurs réglementés peuvent entraîner des rappels de produits, des sanctions réglementaires et des litiges
  • Les audits échoués ou les refus de certification retardent les lancements de produits et nuisent aux relations avec la clientèle
  • La dette technique accumulée en raison de raccourcis en matière de qualité ralentit les développements futurs et accroît les risques

Ce que signifie la qualité dans la pratique

Pour les équipes de développement logiciel évoluant dans des secteurs réglementés, la qualité se définit par la capacité à démontrer, à l'aide de preuves documentées et traçables, que le logiciel a été développé correctement, testé de manière approfondie et vérifié au regard de ses exigences.

Cela implique de disposer de processus et d'outils capables de :

  • Détecter les défauts à un stade précoce, avant qu’ils ne se propagent tout au long du cycle de vie du développement
  • Mesurer et rendre compte de la couverture de code au niveau requis par la norme applicable
  • Reliant chaque résultat de test à une exigence spécifique
  • Générer des rapports prêts pour l’audit qui satisfont aux exigences des organismes de certification
PC-lint Plus, VectorCAST et Squore ont été spécialement conçus pour cet environnement. PC-lint Plus et VectorCAST sont certifiés conformes aux normes qu’ils prennent en charge et génèrent des résultats reconnus comme preuves de vérification par les organismes de certification. Squore regroupe ces preuves à l’échelle de la chaîne d’outils, surveille en permanence la conformité et applique les contrôles qualité qui permettent de maintenir les projets sur la bonne voie.