Você está na página 1de 6

Desastres de Software

Therac-25

Joao˜

M.Pereira, Julliana C.G.A.Silva, Nayana P.L. Farias, Willyelns G.Xavier

Instituto Metropole´

Digital – Universidade Federal do Rio Grande do Norte (UFRN) Caixa Postal 1641 - 59072-970 – Natal – RN – Brasil

{jmatiasn, jullianacrln}@gmail.com, naayfarias@hotmail.com, willyelnsg.x@ig.com.br

Abstract. In risk systems, simple mistakes can have huge consequences. Are the good programming practices and the use of models for software development such as waterfall model that bring enhanced reliability and security to the system.This paper aims to show that not using good programming practices can cause.

Resumo. Nos sistemas de risco, erros simples podem ter consequenciasˆ enormes.

Sao˜

como o modelo cascata que trazem maior confiabilidade e seguranc¸a ao sistema. Esse tra-

balho tem como objetivo mostrar o que o nao˜ ocasionar.

podem

e o uso de modelos de desenvolvimento de software,

as boas praticas´

de programac¸ao˜

uso de boas praticas´

de programac¸ao,˜

1 Contexto Historico´

Softwares tambem´ podem ser protagonistas em acidentes medicos.´ Um dos acidentes no ramo da radioterapia mais marcantes o caso Therac-25. A maquina´ foi desenvolvida pela Atomic Energy of Canada Limited (AECL) e pela CGR, uma empresa francesa, e era a suces- sora de duas outras maquinas:´ Therac-6 e Therac-20. Ao total, 11 maquinas´ foram instaladas no mundo: 5 nos Estados Unidos e 6 no Canada.´ Na maior parte das vezes, a Therac-25 se comportou como esperado e realizou corretamente a radioterapia. No entanto, entre junho de 1985 e janeiro de 1987, ocorreram seis acidentes envolvendo overdoses de radiac¸ao,˜ resultando em alguns feridos e ate´ mesmo mortos.Esses acidentes foram descritos como a pior serie´ de acidentes com radiac¸ao˜ dos 35 anos de historia´ dos aceleradores medicos.´

2 Funcionamento

Ao contrario´ das suas predecessoras (Therac-6 e Therac-20) o Therac-25 funcionava a par- tir de uma interface de software. O software apenas adicionava convenienciaˆ ao operar a maquina,´ ja´ que a mesma era capaz de funcionar apenas atraves´ do hardware. Os designers da maquina´ acreditavam poupar tempo e dinheiro com isso. A maquina´ fazia uso de um

minicomputador,o DEC PDP – 1 e operava em tresˆ microswitches:

modos que eram controlados por tresˆ

Modo eletron´

(ou low energy): O modo eletron´

era usado quando desejava-se aplicar

baixas doses de radioatividade. Tais doses podiam chegar a 5Mev 1 .

Modo foton´ (ou high energy): O modo foton´ era usado para terapias mais severas, in- vasiva.Nesse modo maquina´ havia sido desenhada para ajustar o feixe de raios de tresˆ maneiras: em relac¸ao˜ a intensidade (modelada por uma camaraˆ de ´ıons), a forc¸a e ao formato (modelado por um filtro). O tungstenioˆ encontrado na placa que o paciente us- ava durante o tratamento convertia o feixe de eletrons´ em Raios X. As doses chegavam a 25MeV.

Modo campo de luz: nao˜ utilizava feixes de raios radioativos, mas era usado para facilitar a colocac¸ao˜ do paciente na posic¸ao˜ correta.

3 Bugs e Problemas

3.1 Contextualizando o problema

Apesar de ter tresˆ modos de funcionamento, o problema da Therac-25 estava no segundo modo. A maquina´ havia sido desenhada para rotacionar tresˆ componentes: a intensidade , a forc¸a e o formato. Os acidentes aconteciam quando o feixe era ativado sem o primeiro compo- nente ter sido rotacionado para seu lugar. O software da maquina´ nao˜ detectava esse problema e entao˜ nao˜ conseguia detectar que o paciente estava recebendo uma dose letal de radiac¸ao˜ e por isso, nao˜ evitava que isso ocorresse.

3.2 Listando os bugs

1- Overflows podiam fazer o software nao˜

executar procedimentos de seguranc¸a;

2- O projeto nao˜ continha travas de hardware para prevenir que o feixe de eletrons´ de alta intensidade fosse aplicado sem o filtro estar em seu lugar; 3- O projeto do software nao˜ havia sido documentado com detalhes suficientes para permitir o entendimento dos erros; 4- A documentac¸ao˜ do sistema fornecida aos usuarios´ nao˜ explicava o significado dos

codigos´

5- O software de modelos mais antigos haviam sido reutilizado sem se considerar as diferenc¸as no hardware e software (novo); 6- Os modelos antigos possu´ıam travas de hardware, quando o defeito se manifestava nestes modelos, eles reiniciavam, o que sempre havia sido visto como algo perturbador, mas nunca foi investigado;

de erro que a maquina´

retornava;

1 MeV - Mega Eletron´

Volt

7- O sistema de controle nao˜ operava sincronizado com a interface usada pelo oper- ador da maquina,´ e caso o operador mudasse a configurac¸ao˜ da maquina´ muito rapidamente,

o sistema nao˜ atribu´ıa os valores digitados para os controles (o que levava a aplicac¸ao˜ das doses letais);

3.3 Bugs vs Cascata

O modelo de desenvolvimento de software em cascata possui 5 estagios´ gerais: requerimen-

tos, projeto, implementac¸ao,˜ verificac¸ao˜ e manutenc¸ao.˜ Analisando os problemas previa- mente citados em conjunto com a cascata podemos definir uma conexao˜ entre eles:

Projeto (2,4)*: Desconsiderac¸ao˜

na parte da seguranc¸a, principalmente por ser um sis-

tema de risco, sem analise´

de compatibilidade hardware/software.

Implementac¸ao˜ (1,3,6)*: Falta de atenc¸ao˜ no momento de implementar, nao˜ tratando excec¸oes˜ nem sincronia do sistema com o hardware.

Verificac¸ao˜ (5)*: Desconsiderac¸ao˜ de um comportamento inesperado do sistema.

3.4 Analise´

A conexao˜

reaproveitamento de hardwares defasados e incompat´ıveis, falta de tratamento de excec¸oes,˜ travas, revisao˜ e testes nos codigos´ de forma independente, alem´ da ineficienciaˆ na documentac¸ao˜ da maquina´ para os usuarios.´ Em nossa concepc¸ao,˜ todos esses problemas tiveram in´ıcio na fase projeto do modelo cascata.

entre a cascata e os problemas encontrados mostram ma´ formulac¸ao˜

do projeto,

cascata e os problemas encontrados mostram ma´ formulac¸ao˜ do projeto, Figure 1: Modelo de desenvolvimento em

Figure 1: Modelo de desenvolvimento em cascata

4

Casos Semelhantes

4.1 A Multidata System

que em

2001 teve um de seus softwares, utilizados em maquinas´ radioterapeuticas,ˆ envolvido em uma superexposic¸ao˜ de pacientes a` radiac¸ao,˜ no Panama.´

A Multidata Systems International e´ uma empresa de produtos radioterapeuticos,ˆ

4.2 O Problema

O software utilizado pela maquina´ permitia formas incorretas de entrada de dados que acabou

levando a` erros de calculos´ do tempo e dosagem de tratamento. Alem´ disso, alguns f´ısicos medicos,´ encarregados de checar a maquina,´ apos´ consultarem outros medicos´ e o manual do software pensaram ter descoberto um modo de burlar o problema da maquina:´ durante

o manuseio da maquina,´ ao inves´ de desenharem as 4 placas de protec¸ao˜ contra radiac¸ao,˜

faziam-na considerar que havia apenas uma placa grossa com uma cavidade, para evitar su- perdosagem. No entanto, ao inves´ de melhorar a situac¸ao,˜ isso apenas o agravou, pois depen- dendo de como a cavidade fosse desenhada na maquina´ ela poderia dar a dosagem correta ou uma superdose.

4.3 Desfecho do Caso

No total foram relatadas 28 casos de superdosagem, dentre eles, 8 mortes. Os 3 medicos´ que tentaram burlar o software foram indiciados por assassinato.A empresa fez uma convocac¸ao˜

e comec¸ou uma correc¸ao˜ do software problematico´ em setembro de 2001. A empresa foi julgada e responsabilizada pelo erro, devendo indenizar as v´ıtimas.

5 Conclusao˜

Antes da Therac-25 ser lanc¸ada no mercado dos Estados Unidos, a AECL obteve aprovac¸ao˜

da United States Food and Drug Administration(FDA). Mas so´ em marc¸o de 1983, a AECL

realizou uma analise´ de seguranc¸a na Therac-25. Essa analise´ foi feita no formato Fault Tree e aparentemente excluiu o software. De acordo com os resultados da analise,´ foram encontradas as seguintes conclusoes˜ sobre a maquina´ e seu software:

foram reduzidos por extensos testes em um simulador de hard-

ware e em condic¸oes˜ de campo em unidades de teleterapia. Quaisquer erros de software

Erros de programac¸ao˜

residuais nao˜

foram inclu´ıdas na analise;´

O software nao˜ se degrada devido a` fadiga ou processo de reproduc¸ao;˜

Erros de execuc¸ao˜

da maquina´

sao˜

causados por componentes de hardware com defeito

e por erros de software induzidos por part´ıculas alfa e ru´ıdos eletromagneticos.´

A Fault Tree resultante da analise´ pareceu incluir falha na maquina´ mas, aparente- mente, so´ considerou as falhas de hardware. Porem,´ mesmo com todos os testes e analises´ realizados para garantir a seguranc¸a e eficenciaˆ da Therac-25, em fevereiro de 1987 a Health Protection of the Canadian junto com a United States Food and Drug Administration (FDA) anunciaram que ela era perigosa ao ser usada e que seria desligada ate´ que mudanc¸as per- manentes fossem feitas. Finalmente em julho do mesmo ano, apos´ varias´ revisoes,˜ algumas recomendac¸oes˜ foram dadas pela AECL sobre como consertar o modelo Therac-25 para nao˜ ser mais ameac¸a a` saude.´ Algumas dessas recomendac¸oes˜ foram:

6

Os operadores nao˜

Assegurar que a placa de metal esteja no lugar se o raio-x for selecionado;

As mensagens de erro devem ser mais claras;

Doses administradas devem ser claramente mostradas ao operador;

Limitar as teclas de edic¸ao˜

Todos os manuais devem ser reescritos para refletir as novas alterac¸oes.˜

podiam mudar o modo de tratamento sem reiniciar a maquina;´

para evitar qualquer tipo de digitac¸ao˜

acidental;

Referenciasˆ

Wikipedia´

(2014), “Therac -25”,

L, Nancy (1995), “Medical Devices: The Therac – 25”, http://sunnyday.mit.edu/papers/therac.pdf

L, Joanne (1998), “An Engineering Disaster: Therac – 25”, http://www.bowdoin.edu/ ˜ allen/courses/cs260/readings/therac.pdf, Outubro.

L, Matt (2010), “Epic failures: 11 infamous software bugs”,

W, Alexis, “Sections 1: Failures and Errors in Computers.Section 2: Case Study- Therac 25”,

International Atomic Energy Agency, “Investigation of an Accidental Exposure of Radiother- apy Patients in Panama”, http://www-pub.iaea.org/MTCD/publications/PDF/Pub1114_scr.pdf, Junho.

Virginia Tech Department Computer of Science, ”Professionalism in Computing - Digital library,