Cosas mías

May 27, 2005

El error informático que hizo perderse a la sonda Viking camino de Venus

Estoy leyendo el libro Sistemas de Tiempo Real y Lenguajes de Programación, de unos tales Alan Burns y Andi Wellings, en su verisón en castellano editada por Addison Wesley. Hasta donde he llegado, nada nuevo bajo el sol, pero me resulta curioso un texto que aparece en la página 44, al final de la misma. Cito textualmente:

Un ejemplo clásico de pobre convención léxica es el de FORTRAN. Este lenguaje permite el caracter en blanco como separador. Por poner un caso, un simple error al teclear un programa (us signo “.” en lugar de un signo “,”) terminó, según se dice, con la pérdida de la sonda norteamericana Viking en su camino a Venus. En lugar de la siguiente línea:

DO 20 I = 1,100

que es un bucle (salta a la etiqueta 20 mientras I toma valores de 1 a 100), se compiló una asignación (el operador de asignación es “=”):

DO 20 I = 1.100

o, puesto que los espacios pueden ser ignorados en los identificadores,

DO20I = 1.100

Para que luego digan del C. Eso sí que es peligroso.

La pregunta del millón
En el mismo libro, en la página 41, aparece una pregunta un tanto escatológica y que, por lo menos a mi, me lleva de cabeza (en mi caso, un error de ese tipo sólo lleva a pérdidas económicas por parte del cliente, así que por lo menos suelo dormir bastante tranquilo):

2.4 ¿Deberían ser los ingenieros de software responsables de las consecuencias de los errores de sus sistemas de tiempo real?

Ahí queda eso.

8 Comments »

The URI to TrackBack this entry is: http://rfog.blogsome.com/2005/05/27/el-error-informatico-que-hizo-perderse-a-la-sonda-viking-camino-de-venus/trackback/

  1. Claro que deberian ser responsables, pero todo eso bajo contrato. Seguramente no se atrevería a firmar nadie y bajarían las pretensiones del producto.
    A más responsabilidad, mas ingresos para el ingeniero.

    Comment by miguel — May 27, 2005 @ 5:54 pm

  2. Me parece un pregunta facil de responder: Absolutamente SI. Ese fue un descuido del programador y de nadie mas.. bah por ahi del que lo contrato….

    Comment by FaCuZ — May 29, 2005 @ 6:41 am

  3. Como ingeniero de SW en tiempo real, mi respuesta inmediata ha sido: “Norrrrrrllll!!!”. Pero claro, es algo ineludible, que en un equipo de SW, se analicen los fallos detectados, quien ha cometido el fallo, como, cuando, en que fase, por qué, por qué no se detecto en la fase de validacion, etc. O sea que los errores acaban siempre por personalizarse.

    Otra cosa es que la responsabilidad recaiga sobre el equipo de SW, o el Team Leader, o el Project Leader, etc. de cara a quien haya que rendir cuentas…

    Comment by Grishy — May 30, 2005 @ 12:49 pm

  4. En cierta medida son(o somos)responsables. No he programado nunca en sistemas de tiempo real. En tu caso, como dices tu sólo son perdidas económicas para tí. Pero has pensado en tu “boss”. Para él, será un despido automático hacia ti claro.
    ¿Imaginate una central nuclear? Uff!!

    Comment by Gema — May 30, 2005 @ 3:59 pm

  5. Como IT Manager y responsable de varios proyectos de RealTime y otros procesos críticos ( Espacio )… mi respuesta es NO!. La culpa no es del programador, sino de la calidad del software entregable por la empresa, la cual ha firmado un contrato con el cliente, asegurando los niveles de calidad y fiabilidad del sistema.
    En ese caso concreto la empresa debería de haberse invertido en un grupo de SQA (Software Quality Assessment) quienes son los encargados de verificar que se cumplen los requisitos deseados sobre el sistema antes de entregarlo!!!, y por tanto, gente NO vinculada con el desarrollo directo del proyecto. Es así, como por ejemplo, se realiza el software de tierra o embarcado para el Arianne 5 y para el EuroFighter.

    El programador es responsable de su código para-con la empresa ( bajo posible despido ), pero la empresa es responsable de lo que entrega en todo momento al usuario final, y solo ella sabe y debe poner los medios oportunos para que no acaben las cosas en desastres.

    Comment by toni — July 12, 2005 @ 1:26 pm

  6. Por supuesto que en primer lugar la culpa ante un error es del equipo de desarrollo o del programador, pero es la empresa quien tiene la responsablidad de brindar un software de calidad dedicando los recursos necesarios.

    Comment by Pablo Martinez — July 13, 2005 @ 6:43 am

  7. Sólo un apunte: las sondas Viking, pues eran dos, iban dirigida a Marte, no a Venus, y no se perdieron. Por lo que sé, fue la sonda Mariner 2 (1962) la que tuvo ese fallo de software.

    Por cierto, felicidades por tu estupendo blog.

    Comment by Dani — July 31, 2006 @ 5:48 pm

  8. Dani, gracias por el apunte, pues en el libro entonces está mal, lo acabo de comprobar.

    Gracias.

    Comment by rfog — July 31, 2006 @ 6:10 pm

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.

Get free blog up and running in minutes with Blogsome
Theme designed by Gary Rogers