Notizen
Tarea 1 Fallos en Ingeniería de Software
Inhalt der Notizen (1)
Seite 1
Buenas noches:
Intenté enviar la tarea como documento de word anexo pero no encuentro la opción. La entrego por este medio.
Quedo pendiente para cualquier comentario al respecto.
Muchas gracias.
Fallos en Ingeniería de Software.
Actualización errónea de saldos.
Existía un error en un transacción de
390 del Banco que provocaba que el saldo de las cuentas de cheques se
actualizara con el saldo contable de la cuenta (suma total de operaciones
realizadas durante el día por cualquier canal, disposiciones y depósitos), en
vez del saldo disponible de la cuenta (restante en la cuenta después de todas
las operaciones del día).
Un cliente detectó esta
falla y llegó a tener saldos disponibles de hasta 2 millones de pesos para
disponer durante horarios en los que se aplicaban mantenimientos a la
aplicación de 390.
El problema fue detectado por
el Banco y denunciado como fraude, se inició un proceso penal en contra del
cliente y, después de un análisis de sobre la cuenta y sus movimientos, así
como del código de la transacción, el equipo de Sistemas corrigió el problema
para evitar que otro cliente lo aprovechara.
Therac-25
Instrumental médico de
aplicación de radiación. Por lo menos 5 personas murieron por un error en las
validaciones de entrada de su interface gráfica.
La Therac-25 era una
máquina de radioterapia producida por la Atomic Energy of Canada Limited
(AECL). Estuvo envuelta en al menos seis accidentes entre 1985 y 1987, en los
que los pacientes recibieron sobredosis masivas de radiación, de
aproximadamente cien veces la dosis esperada. Tres de los seis pacientes
murieron como consecuencia directa. Estos accidentes remarcaron los riesgos del
control por software de sistemas de seguridad crítica, y se convirtieron en un
caso de estudio típico de la informática médica y la ingeniería de software.
La máquina ofrecía dos
modos de terapia por radiación:
·
Terapia
de haz de electrones directo, la cual entregaba bajas dosis de electrones de
alta energía (5 MeV a 25 MeV) por cortos períodos de tiempo;
·
Rayos
X de Mega voltaje (Megavoltage X-Rays), la cual entregaba rayos X colisionando
electrones de alta energía (25 Mev) en un objetivo.
Los accidentes ocurrían
cuando el haz de electrones de alta energía era activado en lugar del haz de
baja energía y sin la placa difusora colocada en su lugar. El programa de la
máquina no detectaba que esto estaba ocurriendo, y por lo tanto no prevenía que
el paciente recibiera una dosis potencialmente letal de radiación. El haz de
electrones alcanzaba a los pacientes con aproximadamente cien veces la dosis de
radiación esperada. Varios días después aparecían quemaduras de radiación y los
pacientes mostraban los síntomas de envenenamiento radiactivo. En tres casos,
los pacientes afectados murieron por envenenamiento radiactivo. El defecto del
programa se determinó como una condición de carrera.
La comisión investigadora
ha concluido que la razón primaria puede ser atribuida a las malas prácticas de
desarrollo, un mal análisis de requerimientos y un mal diseño de software, y no
explicitó si fueron encontrados varios errores de código. En particular, el
programa fue diseñado de forma tal que era relativamente imposible de testear
de forma automática.
Los investigadores de los
accidentes encontraron varias causantes. Estas incluían las siguientes causas
institucionales:
·
AECL
no tenía el código fuente revisado de forma independiente.
·
AECL
no consideró el diseño del software durante su evaluación de cómo la máquina
produciría los resultados correctos y qué tipos de fallos existirían. Esto
forma parte de las técnicas conocidas como ingeniería de la confiabilidad y
gestión de riesgos.
·
El
sistema notificaba que algo andaba mal y detenía los rayos X, pero solamente
mostraba la palabra "MALFUNCTION" seguida de un número del 1 al 64.
El manual de usuario no explicaba ni mostraba los códigos de error, por lo
tanto el operador presionaba la tecla P para saltar la advertencia y proceder
con el proceso.
·
El
Personal de AECL, así como los operadores de las máquinas, inicialmente no
creían en las quejas de los pacientes. Probablemente porque estaban muy
confiados en la máquina.
·
AECL
no había probado la Therac 25 con la combinación de software y hardware antes
de montarla en el hospital.
·
Los
investigadores también encontraron problemas de ingeniería:
o
El
fallo sólo ocurría cuando una secuencia particular de teclas era ingresado en
la terminal VT100 que controlaba la computadora PDP-11: la X que (erróneamente)
seleccionaba el modo de fotones de 25MV, seguido de "cursor arriba",
"E" que (correctamente) seleccionaba el modo de electrones de 25MeV y
luego "Enter". Esa secuencia de pulsaciones era improbable, y por lo
tanto el problema no ocurría muy seguido y fue desconocido por un largo tiempo.
o
El
diseño no contaba con un entrelazado de hardware que previniese que el haz de
electrones operase en el modo de alta energía sin el objetivo en su lugar.
o
La
ingeniería había reutilizado software de modelos más antiguos, que contaban con
entrelazados hardware que cubrían los defectos de software. Esos dispositivos
de seguridad no tenían forma de reportar que habían sido disparado, por los que
no había indicación de la existencia de comandos del software que fallen.
o
El
hardware no suministraba ninguna forma para que el software verifique que los
sensores estaban funcionando correctamente.
o
La
tarea del equipamiento de control no se sincronizaba de manera adecuada con la
tarea de la interfaz de operador, por ello ocurrían condiciones de carrera si
el operador cambiaba la configuración demasiado rápido. Esto no se supo durante
las pruebas, ya que los operadores necesitaban práctica para poder manejar la
máquina velozmente para que ocurra el problema.
o
El
programa establecía una variable bandera incrementándola. Ocasionalmente
ocurría un desbordamiento aritmético, causando que el software ignorara los
chequeos de seguridad.
o
El
programa estaba escrito en lenguaje ensamblador, que puede requerir más
atención en las pruebas y en el buen diseño. No obstante, la elección del
lenguaje por sí misma no fue considerado como una causa primaria en el informe.
La máquina además usaba su propio sistema operativo.
Nasa
El Orbitador climatológico
de Marte y el Mars Polar Lander son solo 2 de las muy costosas misiones de la
NASA que fracasaron a causa de errores software. Generalmente las misiones de este
nivel pueden costar cientos de millones de dólares y varios años de
investigación. Sin embargo en la actualidad la NASA trabaja en la construcción
de software que le permita validar automáticamente el funcionamiento de sus
aplicativos. Una interesante aplicación a nivel de SQA. (Software Quality
Assurance).
El orbitador climatológico
de Marte se quemó en la atmósfera marciana en 1999 después de haber perdido su
inserción orbital, por calculaciones inconsistentes de la unidad.
Se sospecha que ese mismo año
el Mars Polar Lander se desplomo durante su aterrizaje en Marte, por un
desajuste de software.
La misión Mars Exploration
Rover (MER)2003, incluye dos Rovers programados a aterrizar en la superficie de
Marte en enero del 2004 para recoger muestras de rocas, el suelo, y la
atmósfera, durante un período de por lo menos 90 días.
A un costo de $400
millones por cada rover, un problema en el código que apaga un rover sobre el
periodo de una noche, sería en efecto un error de $4.4 millones, así como
también la pérdida de valioso tiempo de exploración en el planeta.
Para detectar tales
problemas en el código de software durante las misiones, NASA Ames está
desarrollando un software de técnicas de validación y verificación para
encontrar fallas más rápido y preciso que antes, automáticamente.
El día que desapareció Suecia
También en 2009 se produjo
el más genuino y espectacular bug de la historia. En esta ocasión, causado por
un solo carácter en una línea de código (faltaba un punto), que hizo
desaparecer a Suecia del mapa de Internet. Durante unas horas, que se
convirtieron en días en algunos casos, los servidores DNS no fueron capaces de
encontrar las direcciones con el dominio local y, por tanto, nadie pudo acceder
a ninguna página web alojada en el dominio “.se”. En la investigación se señaló
que una configuración incorrecta de un script de mantenimiento hizo que se
introdujera un error que afectó a todos los dominios “.se”.
El efecto 2000.
El problema del año 2000,
también conocido como efecto 2000, error del milenio, problema informático del
año 2000 (PIA2000) o por el numerónimo Y2K, es un bug o error de software
causado por la costumbre que habían adoptado los programadores de omitir la
centuria en el año para el almacenamiento de fechas (generalmente para
economizar memoria), asumiendo que el software solo funcionaría durante los
años cuyos nombres comenzaran con 19. Lo anterior tendría como consecuencia que
después del 31 de diciembre de 1999, sería el 1 de enero de 1900 en vez del 1
de enero de 2000.
Algunos de los problemas
divulgados son:
·
En
Ishikawa, Japón, un equipo de supervisión de radiación falló a medianoche, pero
los funcionarios dijeron que no había ningún riesgo para el público.
·
En
Japón, la red de comunicaciones móviles de NTT (NTT DoCoMo), el operador de
telefonía móvil más grande de Japón, divulgó el 1 de enero de 2000 que algunos
modelos de teléfonos móviles suprimían los nuevos mensajes recibidos, en lugar
de los viejos, cuando se llenaba la memoria.
·
En
Estados Unidos, el observatorio naval, donde funciona el reloj principal que
marca el tiempo oficial del país, tuvo una interferencia de Y2K en su sitio
web. Debido a un problema de programación, el sitio divulgó que la fecha era el
1 de enero de 1910.
·
En
el Reino Unido, algunas transacciones de tarjetas de crédito fueron rechazadas
o fallaron en conjunto mientras que trabajaron recíprocamente ciertos sistemas.
·
En
Italia, Telecom Italia envió los primeros dos meses de cuentas, con fecha de
enero de 1900.
·
En
Pennsylvania, Estados Unidos, una computadora de la biblioteca de una escuela
primaria cobró al cuerpo estudiantil excesivamente por tener prestados los
libros durante 100 años.
Fuentes.
Moriel. (2003). Historial
de «Therac-25». 25 Junio 2015, de Wikipedia Sitio web:
https://es.wikipedia.org/wiki/Therac-25
Jonas Dino. (2008). La
computadora lo puede verificar. 25 Junio 2015, de Ames Sitio web:
http://www.nasa.gov/centers/ames/spanish/research/exploringtheuniverse/exploringtheuniverse-computer...
José Manuel López Torets.
(2013). Los Cinco Grandes Errores de la Historia del Software. 25 Junio 2015,
de MTP Digital Business Assurance Sitio web:
http://www.mtp.es/noticias/264-los-cinco-grandes-errores-de-la-historia-del-software
Sauron. (2003). Problema
del año 2000. 25 Junio 2015, de Wikipedia Sitio web:
https://es.wikipedia.org/wiki/Problema_del_a%C3%B1o_2000
Informationen
- Beschreibung
- Tarea 1 UVM Fallos en Ingeniería de Software
- Erstellt von
- marisol.zaratef
- Aufrufe
- 54
- Tags
- Bewertung