A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III.

Apresentações semelhantes


Apresentação em tema: "Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III."— Transcrição da apresentação:

1 Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

2 Confiabilidade de software Roteiro de apresentação : Conceito de confiabilidade Medidas de confiabilidade e disponibilidade Modelos de confiabilidade Dimensões da confiança do software Confiabilidade Desempenho e confiança Razões para a confiabilidade de software Disponibilidade Segurança Proteção Sistemas críticos Sistema crítico de segurança Sistema crítico de missão Sistema crítico de negócios

3 usando Confiabilidade de software Confiabilidade de software medida e estimada dados históricos e de desenvolvimento pode ser

4 Confiabilidade de software Em termos estatísticos, a confiabilidade de software é definida como: “a probabilidade de operação livre de falhas de um programa de computador num ambiente específico durante determinado tempo” (Musa et al, 1987 in Pressman (1995). DEFINIÇÃO: Falhas aborrecimentos catastrofes Não conformidade aos requisitos de software

5 Confiabilidade de software Métricas de confiabilidade: Tempo médio de ocorrência de falhas Tempo médio até a ocorrência de falhas Tempo médio de reparo Taxa de ocorrência de falha. Probabilidade de falha sob demanda Disponibilidade Métrica do número de falhas do sistema Métricas de tempo ou número de transações Tempo gasto para reparar ou reiniciar o sistema Classificação geral

6 Confiabilidade de software Medidas de confiabilidade e disponibilidade de software MTBF = MTTF + MTTR MTBF – tempo médio de ocorrência de falhas (mean time between failure) MTTF – tempo médio até a ocorrência de falha (mean time to failure) MTTR – tempo médio de reparo (mean time to repair) Disponibilidade = MTTF x 100% (MTTF + MTTR)

7 Confiabilidade de software Probabilidade de falhas sob demanda (POFOD): A probabilidade de o sistema falhar quando um pedido de serviço é feito. Uma POFOD de 0,0001 significa que um entre mil pedidos de serviços pode resultar em falha. POFOD – probability of failure on demand Taxa de ocorrência de falha (ROCOF): A frequência com que um comportamento inesperado pode ocorrer. Uma ROCOF de 2/100 significa que duas falhas têm possibilidade de ocorrer em cada cem unidade operacionais de tempo. Essa medida= Intensidade de falhas. ROCOF – Rate of failure occurrence

8 Confiabilidade de software Modelos de confiabilidade de software 1)Modelos que prevêm a confiabilidade como uma função cronológica (calendário) 2)Modelos que prevêm a confiabilidade como uma função do tempo de processamento transcorrido( tempo de execução da CPU).

9 Confiabilidade de software Dimensões da confiança do software confiança disponiblidadeconfiabilidadesegurançaproteção Fonte: (Sommerville, 2003) A capacidade do sistema disponibilizar serviços quando necessário... disponibilizar serviços conforme especificado...operar sem falhas catastróficas...se proteger contra invasão acidental ou deliberada

10 Confiabilidade de software “altos níveis de confiança de software somente podem ser alcançados à custa do desempenho do sistema” Refletindo... Dimensões da confiança do software: confiabilidade

11 Confiabilidade de software Um software confiável inclui: Código extra (redundante; para verificar os estados excepcionais do sistema e para possibilitar a recuperação necessária a partir das falhas do sistema) Aumento da capacidade de armazenamento X Redução do desempenho

12 Confiabilidade de software Razões pelas quais a confiança é um atributo importante: 1.Sistemas não confiáveis (não apresentam segurança ou são inseguros) não são utilizados; 2.Os custos de falhas em um sistema podem ser enormes; 3.É difícil readequar a confiança; 4.Frequentemente é possível compensar a falha de desempenho do sistema; 5.Sistemas não confiáveis podem causar a perda das informações.

13 Confiabilidade de software A confiabilidade do produto de software é influenciada pelo processo de software utilizado para desenvolver o produto. Um processo orientado no sentido de evitar defeitos poderá desenvolver um sistema confiável.

14 Dimensões da confiança do software: disponibilidade Confiabilidade de software Disponibilidade: é a probabilidade de um sistema, em determinado instante, ser operacional e fornecer os serviços requeridos. A confiabilidade implica a disponibilidade – se um serviço especificado não for prestado, o sistema não estará se comportando de acordo com sua especificação.

15 Confiabilidade de software Exemplo: sistema A falha uma vez por ano e leva 3 dias para reiniciar; Sistema B falha uma vez por mês e leva 3 minutos para reiniciar. Qual a maior disponibilidade? Qual o preferido? A disponibilidade não depende do sistema em si, mas do tempo necessário para reparar os defeitos que tornam o sistema indisponível.

16 Confiabilidade de software A confiabilidade é comprometida com a ocorrência de falhas no sistema. Abordagens complementares para melhorar a confiabilidade de um sistema: 1.Evitar defeitos; (técnicas de desenvolvimento) 2.Detecção e exclusão de defeitos; (técnicas de verificação e validação) 3.Tolerância a defeitos (técnicas de tolerância a falhas)

17 Confiabilidade de software Terminologia da confiabilidade TermoDescrição Falha do sistemaUm evento que ocorre em algum momento, quando o sistema não fornece o serviço como é esperado por seus usuários. Erro do sistemaComportamento errôneo do sistema, quando o comportamento do sistema não atende à sua especificação. Defeito do sistemaUm estado incorreto do sistema, ou seja, um estado do sistema que é inesperado para seus projetistas. Erro ou engano humanoComportamento humano que resulta na introdução de defeitos no sistema.

18 Confiabilidade de software Os defeitos de software causam falhas de software quando o código com defeito é executado com um conjunto de entradas que expõem o defeito. Conjunto de entradas Conjunto de saídas programa Ie Oe Entradas que causam saídas errôneas Saídas errôneas

19 Dimensões da confiança do software: segurança Confiabilidade de software A segurança de um sistema é um atributo que reflete a capacidade do sistema de operar normal e anormalmente, sem ameaçar as pessoas ou o ambiente. Quando a segurança é um atributo essencial de um sistema crítico, esse sistema é “um sistema de segurança crítica”. Exemplos: Sistemas de controle de aeronaves; Sistemas de controle de processos em indústrias químicas;

20 Confiabilidade de software Controle de hardware e controle de software: complexidade Exemplo: monitoramento de aeronaves militares avançadas

21 Confiabilidade de software Classes de softwares críticos de segurança: Software crítico de segurança primária Esse é um software que é embutido como um controlador em um sistema. A disfunção desse software pode causar uma disfunção de hardware, o que resulta em ferimentos em pessoas ou dano ambiental. Software crítico de segurança secundária Esse é um software que pode indiretamente resultar em ferimentos. Exemplo: banco de dados de um médico – erro pode resultar em dose errada de medicamento.

22 Confiabilidade de software A confiabilidade e a segurança do sistema estão relacionadas, mas são atributos de confianças distintos. Os sistemas que apresentam tolerância a defeitos não são necessariamente seguros.

23 Confiabilidade de software Razões pelas quais os sistemas de software que são confiáveis não são necessariamente seguros: 1. A especificação pode estar incompleta, pelo fato de não descrever o comportamento exigido do sistema em algumas situações críticas; (dificuldades com requisitos). 2. As disfunções de hardware podem fazer com que o sistema se comporte de maneira imprevisível e apresentar o software em um ambiente não previsto. 3. O operador do sistema pode gerar entradas que não são individualmente corretas, que, em determinadas situações, podem levar a uma disfunção do sistema. (mecânico e software para levantar trem de aterrissagem)

24 Confiabilidade de software Chaves para garantir a segurança: 1.Evitar o perigo; 2.Detectar e eliminar o perigo; (válvula de alívio) 3.Limitar o prejuízo. (extintores de incêndio automáticos)

25 Dimensões da confiança do software: proteção Confiabilidade de software A proteção de um sistema é uma avaliação do ponto em que o sistema protege a si mesmo de ataques externos. Exemplo: ataque por vírus; uso não autorizado de serviços do sistema; modificação não autorizada do sistema ou de seus dados. Sem um nível razoável de proteção, a disponibilidade, a confiabilidade e a segurança do sistema poderão ser comprometidos, se ataques externos provocarem algum dado ao sistema.

26 Confiabilidade de software Erros no desenvolvimento de um sistema podem levar a falhas na proteção. Exemplo de fraquezas: Sistema não responde a entradas inesperadas; Seus limites não são verificados Alto nível de proteção: Sistemas militares; Sistemas de comércio eletrônico; Sistemas de processamento e intercâmbio de informações confidenciais.

27 Confiabilidade de software Danos provocados por ataques externos: 1. Interrupção de serviço; afeta a disponibilidade do sistema. 2. Corrupção de programas ou dados; afeta a confiabilidade e a segurança. 3. Revelação de informações confidenciais; afeta a disponibilidade e a confiabilidade.

28 Confiabilidade de software Para assegurar a proteção de um sistema: 1. Evitar a vulnerabilidade; Não conexão a uma rede pública. 2. Detectar e neutralizar ataques; Verificador de vírus. 3. Limitar a exposição. Cópias regulares do sistema e política de gerenciamento de configuração.

29 Confiabilidade de software Uso da Internet Mais conexões Mais facilidade de ataques Atributo relacionado ao uso da Internet: sobrevivência. É a capacidade de um sistema continuar a prestar serviços enquanto sob ataque e, potencialmente, parte do sistema está incapacitada.

30 Resistência a ataques; Reconhecimento de um ataque; Recuperação a partir dos danos provocados pelo ataque.. Confiabilidade de software Abordagens para assegurar a proteção de um sistema:

31 Confiabilidade de software

32 Tipos de sistemas críticos: Sistema crítico de segurança Um sistema cuja falha pode resultar em ferimentos, na perda de uma vida ou em grande dano ambiental. Exemplo: sistema de controle de fábrica de produtos químicos. Sistema crítico de missão Um sistema cuja falha pode resultar na falha de alguma atividade orientada a metas. Exemplo: sistema de navegação de aeronaves. Sistema crítico de negócios Um sistema cuja fábrica pode resultar no fracasso dos negócios que utilizam o sistema. E xemplo: sistema de contas de cliente de um banco.

33 Confiabilidade de software Componentes dos sistemas que estão sujeitos a falhas: Hardware de sistema erros de fabricação final de sua vida útil Software de sistema enganos na especificação, projeto ou implementação Operadores humanos falhar ao operar o sistema

34 Confiabilidade de software Classificação das falhas Classe de falhaDescrição TransienteOcorre somente com algumas entradas. PermanenteOcorre com todas as entradas. RecuperávelO sistema pode se recuperar sem a intervenção do operador. IrrecuperávelÉ necessário a intervenção do operador para a recuperação a partir da falha. Não corruptívelA falha não corrompe o estado do sistema ou seus dados. CorruptívelA falha corrompe o estado do sistema ou seus dados.

35 Confiabilidade de software Especificação de confiabilidade para um caixa eletrônico (fonte: Sommerville, 2003) Classe de falha ExemploMétrica de confiabilidade Permanente, não corruptível O sistema falha ao operar com qualquer cartão que seja inserido. O software deve ser reinicializado para corrigir a falha. ROCOF A ocorrência/ 1000 dias Transiente, não corruptível Os dados da fita magnética não podem ser lidos em um cartão sem defeito que tenha sido inserido. ROCOF 1 em 1000 transações Transiente, corruptível Um padrão de transações na rede causa a corrupção do banco de dados. Não quantificável Nunca deve acontecer no tempo de vida útil do sistema.

36 Confiabilidade de software Especificação da segurança – ciclo de vida de segurança da norma IEC Planejamento Validação O&M Instalação Definição de conceito e escopo Análise de perigos e riscos Desativação do sistema Operação e manutenção Instalação e ativação Validação da segurança Derivação de Requisito de segurança Alocação de requisito de segurança Desenvolvimento de sistemas relacionados Com a segurança Recursos de redução de risco externo

37 Confiabilidade de software Especificação de proteção 1.Identificação e avaliação de ativos (dados e programas); 2.Análise de ameaças e avaliação de riscos; 3.Atribuição de ameaças; 4.Análise de tecnologia; 5.Especificação dos requisitos de proteção. Padrões de gerenciamento de proteção estão em desenvolvimento.

38 Confiabilidade de software Referências bibliográficas: Pressman, Roger. Engenharia de Software., São Paulo Makron Books,:1995. Tradução: José Carlos Barbosa dos Santos. Sommerville, Ian. Engenharia de software. 6a.ed., São Paulo: Addison Wesley, 2003.


Carregar ppt "Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III."

Apresentações semelhantes


Anúncios Google