Sistemas Críticos (Confiança) André Gustavo Hochuli [email protected] Introdução Familiarização com falha de sistema Sistemas entram em colapso sem um motivo aparente As falhas podem causar danos Tomamos medidas para contornar a falta de confiança Backups Introdução CONFIANÇA DISPONIBILIDADE CONFIABILIDADE Capacidade de o Capacidade de o sistema disponibilizar sistema disponibilizar serviços quando serviços conforme necessário necessário SEGURANÇA Capacidade de o sistema operar sem falhas catastróficas PROTEÇÃO Capacidade de o sistema se proteger contra invasão acidental ou deliberada Introdução Quanto maior o grau de confiança maior o custo Quanto maior a confiança menor o desempenho Verificação dos estados Recuperação de falhas Confiança as vezes é mais importante que desempenho Sistemas Críticos Quando uma falha pode causar: Perdas econômicas; Danos físicos ou ambientais; Oferecer riscos a vida humana; O custo de uma falha do sistema é grande ou irreparável Nesses sistemas a confiança é o requisito mais importante Tipos de Sistemas Críticos Segurança Missão Ferimentos, Riscos a vida humana, Danos Ambientais; Não atingir o objetivo. (controle de aeronaves por exemplo) Negócios Fracasso dos negócios que utilizam o sistema (Sistema de controle de clientes em um banco) Componentes Sujeitos a Falha Hardware Software Erros de fabricação Fim da vida útil Erro de especificação no projeto Enganos ou Erros de implementação Humanos Má operação do sistema Disponibilidade e Confiabilidade Disponibilidade È a probabilidade de um sistema, em um determinado instante, ser operacional e capaz de fornecer os serviços requeridos Confiabilidade É a probabilidade operação livre de falhas durante um tempo especificado, em um dado ambiente, para um propósito específico. Disponibilidade e Confiabilidade Sistema A: Falha uma vez por ano, porém a cada falha o sistema demora 3 dias para reiniciar Sistema B: Falha 1 vez por mês e cada falha demora 10 minutos para reiniciar o sistema. Conclusão: A é mais CONFIÁVEL que B. B tem mais DISPONIBILIDADE que A. Disponibilidade e Confiabilidade Saber se um sistema é confiável ou não, é uma questão relativa, ou seja, depende do contexto em que está sendo aplicado. Exemplo do carro a 100 Km/h Exemplo de uso de um S.O Disponibilidade e Confiabilidade Existem técnicas para melhorar a confiabilidade de um sistema: Evitar defeitos utilizando técnicas de desenvolvimento que evitem introdução de erros Detectar e excluir os defeitos por meio de testes e validações antes do sistema ser realmente utilizado. Tolerância a defeitos para que quando ocorrido, o sistema possa contornar a situação rapidamente Segurança Reflete a capacidade do sistema operar de forma normal e anormalmente, sem oferecer ameaças as pessoas ou ao ambiente. Sistemas que tem esse atributo como fator fundamental são chamados de “Sistemas Críticos de Segurança”. Segurança Segurança Primária A disfunção do software afeta diretamente. Segurança Secundária A disfunção do software afeta indiretamente. Ex: Programas de cálculos de engenharia. Segurança Segurança e Confiabilidade estão relacionadas, porém devem ser avaliados de forma independente. Enfim, Segurança é o quanto o software é capaz gerar danos ou não gerar dano algum se possível. Proteção Capacidade do sistema se proteger contra invasão acidental ou deliberada Danos causados por uma invasão Interrupção do serviço (Afeta disponibilidade) Corrupção de programas ou dados (Afeta confiabilidade e segurança) Revelação de informações confidenciais (Afeta segurança e posteriormente disponibilidade e confiabilidade Referências Bibliográficas Software Engineering Ian Sommerville Capitulo 16