Calificación de herramientas para el desarrollo de software embebido

¡Hola, Habr! En este artículo quiero contarte de la forma más sencilla y accesible cómo se demuestra que tus herramientas de desarrollo y verificación son adecuadas para crear sistemas con mayor fiabilidad. Esta es una pregunta muy importante y lejos de ser la más fácil, y mi objetivo es responderla en el lenguaje más comprensible posible. En el artículo mismo, resumí las pautas de los estándares de la industria como KT-178 o R-331 (software integrado en la aviación), GOST R ISO 26262-8 (software integrado en la industria automotriz). Así que bienvenido debajo del gato.



Calificación: ¿por qué?



Los estándares de la industria como KT-178 o ISO 26262 describen procesos para crear software robusto. Si sigue estas descripciones, la creación de dicho software se convertirá en un infierno burocrático que durará para siempre. Pero hay software que puede automatizar una parte importante de estos procesos. Este software se llama herramienta. Y si usa una herramienta, entonces debe ser confiable (ISO 26262 incluso introduce el término “confianza en la herramienta”). Para confirmar la confiabilidad del instrumento, está calificado.



Calificación - teoría



Los estándares de la industria tienen un concepto de nivel de seguridad. En diferentes estándares, se denominan de manera diferente: nivel de software en CT-178, niveles de integridad de seguridad del vehículo en ISO 26262. Y para herramientas de desarrollo, se utilizan niveles de calificación de herramientas (CT-178) o niveles de clasificación de herramientas (ISO 26262). Estos niveles se asignan en función de la importancia de las herramientas: cuanta más influencia tenga una herramienta en el desarrollo, mayor nivel de habilidad se le asignará. Al mismo tiempo, uno de los principales criterios para determinar la influencia de una herramienta es la medida de su influencia en el software resultante.



Considere un generador de código fuente y un analizador de código estático como ejemplos. El código generado entra en el firmware del dispositivo, que se instalará a bordo de un avión o automóvil. Por tanto, el generador de código tiene un impacto directo en el software resultante. Dado que un generador de código es algo complejo y puede generar código con errores, se imponen requisitos estrictos sobre la calidad de este generador de código y el nivel de sus calificaciones será máximo. Otra cosa es un analizador estático, cuyo resultado no entra en el software integrado y el grado de su influencia es mínimo. Por lo tanto, el nivel de habilidad de un analizador estático será menor que el de un generador de código.



Y el nivel de calificación afecta directamente los costos laborales: por ejemplo, para la aviación, para la calificación de una herramienta al más alto nivel de KT-178S, se requieren 76 medidas de control, y para el nivel más bajo, solo 14.



Otro punto importante es que la calificación de las herramientas no la realiza el desarrollador de la herramienta, sino directamente por el desarrollador del software, ¡y la calificación debe realizarse para cada proyecto!



Calificación - Notas de práctica



Como se indicó en la parte teórica, la calificación de herramientas es un proceso costoso, pero se simplifica de varias maneras:



  • Soporte del proceso de calificación por parte de los fabricantes de herramientas (proveedores)

  • Pautas de calificación de instrumentos de estándares



Considérelos en orden. En primer lugar, los propios proveedores proporcionan paquetes de soporte para la calificación de herramientas. En segundo lugar, los estándares de la industria brindan orientación sobre las herramientas de calificación que pueden reducir la carga de trabajo.



Me gustaría detenerme en el segundo punto. Veamos nuevamente el generador de código. El código generado con su ayuda aún debe probarse, se recopilará la cobertura del código, se realiza su análisis, es decir, se verifica.



Los estándares de la industria nos dicen que si calificamos las herramientas que son responsables de verificar el código, entonces la calificación del generador de código en sí no será necesaria. Por lo tanto, los estándares en sí brindan orientación que puede seguir para reducir significativamente el costo de las calificaciones.



Para la calificación de herramientas de verificación, las normas prescriben demostrar su comportamiento en condiciones normales. En la práctica, se ve así:



  1. El proveedor proporciona un conjunto de plantillas de documentos, regulaciones y puntos de referencia para el instrumento y sus resultados de referencia.

  2. Complete las plantillas de documentos y ejecute las pruebas proporcionadas en su entorno.

  3. Los resultados de las pruebas que ejecuta se comparan con los puntos de referencia y, si hay una discrepancia en los resultados, elimina la discrepancia.



Vale la pena señalar que el proceso descrito también lleva mucho tiempo y, como todo desarrollo, se lleva a cabo en cooperación con las autoridades certificadoras.



Herramientas de MathWorks y sus calificaciones



Herramientas como Simulink, DSP Toolbox, Control System Toolbox son el estándar de la industria para el desarrollo de sistemas de control, procesamiento de señales digitales. No es de extrañar que se utilicen en la aviación, la automoción y otras industrias. Los modelos desarrollados se utilizan para generar código C / C ++ que viaja y vuela. Naturalmente, los desarrolladores se enfrentan a la cuestión de las calificaciones de las herramientas. Y la calificación de las herramientas MathWorks para KT-178S se lleva a cabo para herramientas de verificación de modelo y código:





Y para ISO 26262, se proporcionan certificados para:



  • Comprobación de Simulink

  • Cobertura de Simulink

  • Requisitos de Simulink

  • Verificador de diseño de Simulink

  • Prueba de Simulink

  • Generador de informes Simulink

  • Buscador de errores de Polyspace

  • Comprobador de código Polyspace

  • Codificador integrado

  • Codificador HDL

  • Codificador PLC



Dependiendo de la industria, se proporciona el kit de calificación DO para aviación o el kit de certificación IEC para la industria automotriz, ferroviaria y otras.



En lugar de conclusiones



Este artículo ha proporcionado una descripción general de alto nivel del proceso de calificación de herramientas estándar de la industria. En el curso de la redacción de este artículo, me guiaron las siguientes fuentes:



  1. R-330, "Guía de calificación de herramientas de software", en particular:



  • p. 2.0 Asignación de calificaciones de herramientas

  • pág. 3.1. Niveles de calificación

  • Referencia D pregunta D7



  1. GOST R ISO 26262-8, Capítulo 11, "Confianza en el uso de software de herramientas"



Si está interesado en cómo se crean los sistemas de mayor confiabilidad, escriba en los comentarios lo que debe considerar en los siguientes artículos.



All Articles