Qualification d'outils pour le développement de logiciels embarqués

Bonjour, Habr! Dans cet article, je souhaite vous expliquer de la manière la plus simple et la plus accessible comment il est prouvé que vos outils de développement et de vérification sont adaptés à la création de systèmes avec une fiabilité accrue. C'est une question très importante et loin d'être la plus simple, et mon objectif est d'y répondre dans le langage le plus compréhensible possible. Dans l'article lui-même, j'ai résumé les lignes directrices des normes de l'industrie telles que KT-178 ou R-331 (logiciel embarqué dans l'aviation), GOST R ISO 26262-8 (logiciel embarqué dans l'industrie automobile). Alors bienvenue sous chat.



Qualification - pourquoi?



Les normes de l'industrie telles que KT-178 ou ISO 26262 décrivent les processus de création de logiciels robustes. Si vous suivez ces descriptions, la création d'un tel logiciel se transformera en un enfer bureaucratique qui durera pour toujours. Mais il existe des logiciels qui peuvent automatiser une partie importante de ces processus. Un tel logiciel est appelé un outil. Et si vous utilisez un outil, alors il doit être fiable (l'ISO 26262 introduit même le terme «confiance dans l'outil»). Pour confirmer la fiabilité de l'instrument, sa qualification est effectuée.



Qualification - théorie



Les normes de l'industrie ont un concept de niveau de sécurité. Dans différentes normes, ils sont appelés différemment: Niveau logiciel dans CT-178, Niveaux de complétude de la sécurité des véhicules dans ISO 26262. Et pour les outils de développement, des niveaux de qualification d'outils (CT-178) ou des niveaux de classification d'outils (ISO 26262) sont utilisés. Ces niveaux sont attribués en fonction de la criticité des outils - plus un outil a d'influence sur le développement, plus son niveau de compétence sera élevé. Dans ce cas, l'un des principaux critères pour déterminer l'influence d'un outil est la mesure de son influence sur le logiciel résultant.



Considérez un générateur de code source et un analyseur de code statique comme exemples. Le code généré va dans le firmware de l'appareil, qui sera installé à bord d'un avion ou d'une voiture. Ainsi, le générateur de code a un impact direct sur le logiciel résultant. Puisqu'un générateur de code est une chose complexe et peut générer du code avec des erreurs, des exigences strictes sont imposées à la qualité de ce générateur de code et le niveau de ses qualifications sera maximal. Une autre chose est un analyseur statique, dont le résultat n'entre pas dans le logiciel embarqué et le degré de son influence est minime. Par conséquent, le niveau de compétence d'un analyseur statique sera inférieur à celui d'un générateur de code.



Et le niveau de qualification affecte directement les coûts de main-d'œuvre: par exemple, pour l'aviation, pour qualifier un outil pour le plus haut niveau de KT-178S, 76 mesures de contrôle sont nécessaires, et pour le niveau le plus bas - seulement 14.



Un autre point important est que la qualification des outils n'est pas effectuée par le développeur de l'outil, mais directement par le développeur du logiciel, et la qualification doit être effectuée pour chaque projet!



Qualification - Notes de pratique



Comme mentionné dans la partie théorique, la qualification d'outils est un processus coûteux, mais il est simplifié de plusieurs manières:



  • Prise en charge du processus de qualification par les fabricants d'outils (vendeurs)

  • Directives de qualification d'instruments à partir des normes



Considérons-les dans l'ordre. Tout d'abord, les éditeurs fournissent eux-mêmes les packages d'assistance à la qualification des outils. Deuxièmement, les normes de l'industrie fournissent des conseils sur la qualification des outils qui peuvent réduire la charge de travail.



Je voudrais m'attarder sur le deuxième point. Regardons à nouveau le générateur de code. Le code généré avec son aide doit encore être testé, la couverture du code sera collectée, son analyse est effectuée, c'est-à-dire vérifiée.



Les normes de l'industrie nous disent que si nous qualifions les outils chargés de vérifier le code, la qualification du générateur de code lui-même ne sera pas nécessaire. Ainsi, les normes elles-mêmes fournissent des conseils que vous pouvez suivre pour réduire considérablement le coût des qualifications.



Pour la qualification des instruments de vérification, les normes prescrivent de démontrer leur comportement dans des conditions normales. En pratique, cela ressemble à ceci:



  1. Le fournisseur fournit un ensemble de modèles de documents, de réglementations et de références pour l'instrument et leurs résultats de référence.

  2. Vous remplissez des modèles de document et exécutez les tests fournis dans votre environnement.

  3. Les résultats des tests que vous exécutez sont comparés aux tests de performance, et s'il y a un écart dans les résultats, vous éliminez l'écart.



Il convient de noter que le processus décrit prend également beaucoup de temps et, comme tout développement, est réalisé en coopération avec les autorités de certification.



Outils MathWorks et leurs qualifications



Des outils tels que Simulink, DSP Toolbox, Control System Toolbox sont la norme de l'industrie pour le développement de systèmes de contrôle, le traitement du signal numérique. Il n'est pas surprenant qu'ils soient utilisés dans les secteurs de l'aviation, de l'automobile et autres. Les modèles développés sont utilisés pour générer du code C / C ++ qui voyage et vole. Naturellement, les développeurs sont confrontés à la question des qualifications des outils. Et la qualification des outils MathWorks pour KT-178S est effectuée pour les outils de vérification de modèle et de code:





Et pour ISO 26262, des certificats sont fournis pour:



  • Vérification Simulink

  • Couverture Simulink

  • Exigences Simulink

  • Vérificateur de conception Simulink

  • Test Simulink

  • Générateur de rapports Simulink

  • Recherche de bogues Polyspace

  • Prouveur de code polyspace

  • Codeur intégré

  • Codeur HDL

  • Codeur PLC



Selon l'industrie, un kit de qualification DO pour l'aviation ou un kit de certification CEI pour l'industrie automobile, ferroviaire et autres sont fournis .



Au lieu de conclusions



Cet article a fourni un aperçu de haut niveau du processus de qualification des outils standard de l'industrie. Au cours de la rédaction de cet article, j'ai été guidé par les sources suivantes:



  1. R-330, "Guide de qualification des outils logiciels", en particulier:



  • p. 2.0 Attribution des qualifications d'outils

  • p. 3.1. Niveaux de qualification

  • Référence D question D7



  1. GOST R ISO 26262-8, Chapitre 11, "Confiance dans l'utilisation du logiciel d'outillage"



Si vous êtes intéressé par la façon dont des systèmes de fiabilité accrue sont créés, écrivez dans les commentaires ce que vous devez considérer dans les articles suivants.



All Articles