El 4 de junio de 1996, el cohete Ariane 5 lanzado por la Agencia Espacial Europea estalló 38 segundos después de su despegue desde Kourou, en la Guayana Francesa. El Ariane explotó en su primer viaje, después de una década de desarrollo, y las pérdidas se estimaron en 500 millones de dólares.
Abajo te dejo un video de la explosión.
La causa de la explosión fue un error en el software. Un error no detectado por falta de control de la calidad del software crítico del cohete. Todo sucedió porque un número real de 64 bits (coma flotante) relacionado con la velocidad horizontal del cohete se convirtió en un entero de 16 bits. Aunque encontrar el error no fue nada fácil.
Ese mismo año, en 1996, a Alain Deutsch, del INRIA, le encargaron averiguar cuál fue el error. Y para ello se puso manos a la obra usando herramientas que automatizaban el control de la calidad del software crítico. Concretamente, usó un prototipo de analizador estático (IABC) de código fuente Ada, el cual había desarrollado para su doctorado.
Automatizando la evaluación de la calidad del software crítico, del código fuente, encontró el error, y demostró la eficacia del análisis estático (os dejo un artículo para más detalles). Hoy en día el análisis estático del código es práctica usual, y prácticamente obligatoria, para controlar la calidad del software crítico, y del software embebido.
Fue a raíz de esta experiencia cuando se creó la empresa PolySpace, con el objetivo de comercializar la herramienta de evaluación de la calidad del software crítico que se utilizó para encontrar el fallo del Ariane. Y hoy las herramientas de PolySpace son unas de las más usadas para el control de la calidad del software crítico.
PolySpace tiene cuatro herramientas, para Ada, C, Ada95 y C++. Y buscan desbordamientos, divisiones por 0, accesos fuera de los límites de un array y otros errores de ejecución en el código fuente. También obtienen métricas, entre otras, la antigua y tan importante complejidad ciclomática (te recomiendo aquí este post sobre esta métrica).
- OKRs sin Lado Oscuro, IA para OKRs y alternativas para evaluarlos - 25 julio, 2024
- Por qué seguimos usando técnicas ágiles anticuadas: Efecto Einstellung - 18 julio, 2024
- Cómo crear una IA personalizada (me llevó meses, pero te lo enseño en 2 min) - 11 julio, 2024
Pingback: Bitacoras.com
Curioso que en muchas ocasiones tenga que pasar algo negativo para darnos cuenta que no estamos haciéndolo bien.
Os dejo este informe de inverstigación conjunta que se ordenó por parte del director de la ESA.
Ná, un fallico de ná…
http://esamultimedia.esa.int/docs/esa-x-1819eng.pdf
Hola,
Quizás herramientas como Sonar tmabién se puedan utilizar para evaluar caja blanca. Aunque la verdad que no hya muchas
Buen post
Pingback: Top 8 de errores informáticos más costosos de la historia - Javier Garzás | Javier Garzás