¿Toma la FAA la selección del lenguaje de programación de la aviónica de la aeronave como un factor al decidir el certificado de aeronavegabilidad de la aeronave?

Parece que muchos instrumentos militares/espaciales/de aviación están programados en Ada o Spark. Porque estos lenguajes reclamaban y demostraban su seguridad. ¿Qué sucede si su sistema no está escrito en estos idiomas? ¿Influirá eso en que la FAA le otorgue el certificado de aeronavegabilidad?

No necesariamente fuera de tema, pero puede involucrar a más personas en la industria de la aviónica (y, por lo tanto, poder responder a su pregunta) en un sitio de ingeniería de software en lugar de aquí.
¡Bienvenido a aviación.SE! ¿ Es útil esta pregunta ?

Respuestas (2)

En mi experiencia, el lenguaje de programación seleccionado es menos importante que otros factores como:

  • la experiencia del equipo de desarrollo con el lenguaje.
  • la complejidad del producto que se está desarrollando
  • la criticidad de seguridad del producto, que, como señaló Gerry, puede impulsar la selección de un compilador certificado
Esa última viñeta generalmente lleva la discusión a la selección de los compiladores que se utilizarán, especialmente con el software DAL A. Tener un compilador calificado por la FAA; por ejemplo, Greenhills o Wind River, simplificará enormemente el esfuerzo de verificación.
No lo puedo creer, realmente lo hace. Entonces, un compilador certificado significa selección de idioma. Y los greenhills y winddriver que mencionaste deben ser compiladores propietarios costosos, supongo.
Sí, las herramientas de desarrollo de Wind River y Greenhills (que incluyen un compilador) no son baratas. Pero tratar de certificar su código usando un compilador no calificado significa mucho más trabajo para usted (impacto en el cronograma) sin garantías y potencialmente incluso más gastos. Y también mantienen sus herramientas actualizadas a medida que evolucionan los procesadores de destino. Dado que la aviónica puede tener una vida útil de 20 años o más, será necesario actualizar los productos a medida que los componentes se vuelvan obsoletos. Tener estas herramientas significa poder volver a compilar el código fuente antiguo para los nuevos objetivos con un esfuerzo mínimo.
@Gerry He visto la validación en un nivel de seguridad más bajo, y mi impresión es que involucró bastante culto a la carga y perdió el punto, porque nadie entendió realmente lo que se requiere. Las personas que realmente entienden y pueden hacer las validaciones de manera eficiente son pocas y distantes entre sí, por lo que siempre es bienvenido no tener que encontrar a alguien. Por otro lado, Space-X aparentemente pudo certificar una interfaz de usuario híbrida (basada en navegador) para vuelos espaciales, por lo que las personas competentes claramente pueden obtener la certificación de casi cualquier tecnología.
@JanHudec No estaré en desacuerdo contigo. En el mundo del desarrollo SW, la industria aeroespacial es un nicho de negocio. Trabajar con la FAA, la NASA y el Departamento de Defensa tiene sus desafíos. Si tiene a las personas adecuadas liderando el esfuerzo, una buena organización con procesos y procedimientos sólidos y una comunicación regular con su autoridad de certificación, todo puede ir relativamente bien. Si no, puede ser un verdadero desafío. He visto algunas soluciones no tradicionales bastante "creativas" a lo largo de los años obtener la certificación. Se trata principalmente de dinero y su tolerancia al riesgo (al programa).

El desarrollo de software para sistemas aerotransportados generalmente está cubierto por DO-178C (siendo C la última revisión). Cuando las autoridades de certificación analicen su proyecto, buscarán asegurarse de que ha cumplido con todos los objetivos establecidos en este documento, tiene procesos documentados para satisfacer esos objetivos y evidencia de que los ha seguido.

DO-178C no exige ningún idioma en particular sobre otro, se trata de proceso. Como se mencionó, el uso de compiladores calificados / calificables le permite reclamar crédito por muchos de los objetivos relacionados con la trazabilidad del código fuente a objeto, es decir, el código C que escribí coincide con el resultado del compilador. Hay casos en los que un compilador puede optimizar ciertas decisiones en el código según la configuración de optimización. Los desarrolladores deben comprender esta configuración y ceñirse a las pautas establecidas por el desarrollador del compilador.

Si no tiene un compilador calificado, deberá realizar el seguimiento del código fuente-objeto manualmente o usar una herramienta de verificación calificada para verificar la salida.

Además de DO-178C, hay una serie de complementos, incluido DO-332, que cubre técnicas de programación orientada a objetos para admitir lenguajes como C++.

En resumen: el idioma no importa tanto como el proceso.