Introdução

  

            Notam-se cada vez mais, as falhas em sistemas críticos. Essas falhas podem ocasionar problemas financeiros, pessoais e físicos.

Especificar um sistema crítico não é tarefa fácil, e, no entanto, o presente artigo menciona os conceitos de sistemas críticos bem como a confiança e a sua especificação.

 
Sistemas Críticos

 

As falhas nos softwares são cada vez mais constantes. Na maioria das vezes, os sistemas críticos causam transtornos ocasionando perdas econômicas, danos físicos ou ameaças aos seres humanos.

Os sistemas críticos são sistemas sociotécnicos ou técnicos, dos quais as pessoas dependem. Define-se sistema crítico, como um software em que suas características causam riscos inerentes a danos físicos, pessoal e financeiro. Atualmente, são três os tipos de sistemas críticos, tais como:

  1. Sistema crítico de segurança: sua falha pode proceder em prejuízos, danos ambientais e perda da vida humana. Um exemplo de sistema crítico de segurança é um software de controle de uma fábrica de fogos de artifício;
  2. Sistema crítico de missão: sua falha pode ocasionar problema em alguma atividade conduzida a metas. Um exemplo de sistema crítico de missão é um software de navegação para uma aeronave;
  3. Sistema crítico de negócio: sua falha pode resultar em custos elevados para a empresa que trabalha com o software. Um exemplo de sistema crítico de negócio é um software contábil de clientes bancários.

Um sistema considerado crítico, precisa ser de total confiança. Há diversas razões para que a confiança seja de fundamental importância, tais como:

  • Sistemas  não confiáveis ou desprotegidos: se as pessoas não confiam nele, com certeza não vão querer utilizá-los;
  • Custos de falhas nos sistemas são elevados: os custos de falhas nos software são altíssimos;
  • Sistemas que levam a desconfiança ocasionam perdas de informações: as perdas de informações são ocorridas nesses softwares e podem ocasionar prejuízos enormes.

 Devido o alto custo nas falhas dos sistemas críticos, eles são, na maioria das vezes, desenvolvidos com técnicas já conhecidas. Essas técnicas, embora antigas, tem seu ponto forte e fraco já conhecido, mas, ainda há componentes nos quais as falhas podem ocorrer, como exemplo menciona-se: o hardware do software pode falhar; pode ocorrer erros na especificação, projeto ou implementação e falhas humanas na operação do software.

Em um sistema crítico é preciso focar em todos os aspectos dele, como: hardware, software e processos operacionais, uma vez que qualquer falha pode acarretar problemas graves no futuro. Além disso, é preciso pensar também, na confiança, já que ela é fundamental no sistema considerado crítico.

 
Confiança no Sistema
 

A confiança em um sistema pode ser definida, como a confiança dos usuários de que o sistema não irá falhar. Há quatro dimensões para o sistema ser confiável, tais como:

  1. Disponibilidade: é a probabilidade de que ele esteja pronto para o uso, podendo ser utilizado há todo o momento;
  2. Confiabilidade: é preciso que o software forneça todos os serviços esperado pelo usuário;
  3. Segurança: exige que todo o software seja seguro, com a disponibilidade, a integridade, a confiabilidade, a autenticação e o não repúdio;
  4. Proteção: um software protegido não permite que ocorra invasão acidental e/ou intencional.

Para melhor entendimento, a figura abaixo mostra as propriedades de confiança (disponibilidade, confiabilidade, segurança e proteção) de forma inter-relacionadas:

 
Figura 1: Propriedades de confiança

Assim como essas dimensões, há também, outras propriedades do sistema consideradas aspecto de confiança, são elas:

  • Facilidade de manutenção: um sistema de fácil manutenção é aquele que pode ser atualizado com baixo custo e a sua adaptação não ocasiona erros;
  • Facilidade de reparo: a facilidade de reparos é aperfeiçoada quando a equipe que usa o software tem acesso ao código fonte e são aptas a realizar o reparo;
  • Tolerância a erros: quando verificado o erro, o sistema deve detectá-lo e corrigi-lo;
  • Capacidade de sobrevivência: esta é a capacidade do sistema continuar o serviço quando estiver sobre ataque.

Os sistemas críticos têm custos mais alto do que os sistemas não críticos, de nada adiantam desenvolver um sistema crítico se não atender os requisitos como disponibilidade, confiabilidade, segurança e proteção. Portanto essas são as propriedades fundamentais na construção de sistemas designados críticos.

 

Especificação Dirigida a Sistemas Críticos

 
           Especificar um sistema crítico, não é tarefa fácil, uma vez que é preciso compreender os riscos e gerar requisitos de confiabilidade para lidar com eles. A especificação dirigida a sistemas críticos envolve alguns fatores, são eles:
  •  Identificação de riscos: esse processo é na maioria das vezes, complexo e difícil, pois os riscos ocorrem devido interações entre o software e as condições raras do ambiente. Técnicas de trabalho em grupo, como o brainstorming, podem identificar riscos, outra técnica a ser usada, são as experiências anteriores dos analistas que trabalham no sistema crítico;
  • Análise e classificação de riscos: é preciso fazer uma análise para ver se determinado risco é uma ameaça ao ambiente ou ao sistema. Além disso, é preciso também, identificar os tipos de riscos, como: intolerável (riscos que ameaçam a vida humana ou a estabilidade financeira de um negócio), muito baixo (riscos que tem conseqüências mínimas) e aceitável (riscos que tem como ocorrência aceitável);
  • Decomposição de riscos: é nesse processo em que descobre as origens dos riscos no software. São várias as técnicas propostas para a decomposição de riscos, e, como exemplo tem-se a análise de árvore de defeito (envolve a identificação do evento não desejado e a análise retroativa a partir desse evento, a fim de desmembrar as causas do risco);
  • Avaliação de redução de riscos: ao identificar os riscos e as suas origens, é preciso derivar os requisitos de confiabilidade do software. Eles gerenciam os riscos e assegura que os acidentes não mais ocorram, mas, para isso, é preciso usar as seguintes estratégias: prevenção, detecção, remoção de riscos e limitação de danos.

Combinações de fatores são de fundamental importância em um sistema crítico, e, no entanto, cabe ao especificador se adequar as necessidades de cada sistema crítico.

 
Conclusão

 

Os sistemas críticos são sistemas sociotécnicos ou técnicos, dos quais as pessoas dependem.

Atualmente são três os tipos de sistemas críticos, tais como: sistema crítico de segurança, sistema crítico de missão e sistema crítico de negócio.

Os sistemas considerados críticos precisam ser de total confiança, mas para atingir esse requisito é preciso: disponibilidade, confiabilidade, segurança e proteção.

Para especificar um sistema crítico, é preciso compreender os riscos e gerar requisitos de confiabilidade para lidar com eles. No entanto, é preciso saber identificar os riscos e aplicar a cada tipo de sistema crítico.