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

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

Embed Size (px)

Citation preview

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

Confiabilidade de SoftwareConfiabilidade de Software

Tania Fatima Calvi Tait

Processo de Engenharia de Software III

Page 2: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Roteiro de apresentação:

Conceito de confiabilidadeMedidas de confiabilidade e disponibilidadeModelos de confiabilidadeDimensões da confiança do software

Confiabilidade Desempenho e confiançaRazões para a confiabilidade de software

DisponibilidadeSegurançaProteção

Sistemas críticosSistema crítico de segurançaSistema crítico de missãoSistema crítico de negócios

Page 3: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

usandousando

Confiabilidade de software

Confiabilidade de software

medida e estimadadados históricos e de desenvolvimento

pode ser

Page 4: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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

Page 5: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Métricas de confiabilidade:

Tempo médio de ocorrência de falhasTempo médio até a ocorrência de falhasTempo médio de reparo

Taxa de ocorrência de falha.Probabilidade de falha sob demanda

Disponibilidade

Métrica donúmero de falhas do sistema

Métricas de tempoou número de transações

Tempo gasto parareparar oureiniciar o sistema

Classificação geral

Page 6: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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)

Page 7: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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 deocorrer em cada cem unidade operacionais de tempo. Essa medida=Intensidade de falhas.

ROCOF – Rate of failure occurrence

Page 8: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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 tempode processamento transcorrido( tempo de execução da CPU).

Page 9: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Dimensões da confiança do software

confiança

disponiblidade confiabilidade segurança proteção

Fonte: (Sommerville, 2003)

A capacidade do sistema disponibilizar serviços quando necessário

... disponibilizar serviços conformeespecificado

...operar sem falhascatastróficas

...se proteger contra invasãoacidental ou deliberada

Page 10: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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

Page 11: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Um software confiável inclui:

Código extra (redundante; para verificar os estados excepcionaisdo sistema e para possibilitar a recuperação necessária a partirdas falhas do sistema)

Aumento da capacidade de armazenamento

X

Redução do desempenho

Page 12: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Razões pelas quais a confiança é um atributo importante:

1. Sistemas não confiáveis (não apresentam segurança ousã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.

Page 13: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

A confiabilidade do produto de software é influenciada peloprocesso de software utilizado para desenvolver o produto.

Um processo orientado no sentido de evitar defeitos poderádesenvolver um sistema confiável.

Page 14: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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.

Page 15: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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.

Page 16: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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)

Page 17: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Terminologia da confiabilidade

Termo Descrição

Falha do sistema Um evento que ocorre em algum momento, quando o sistema não fornece o serviço como é esperado por seus usuários.

Erro do sistema Comportamento errôneo do sistema, quando o comportamento do sistema não atende à sua especificação.

Defeito do sistema Um estado incorreto do sistema, ou seja, um estado do sistema que é inesperado para seus projetistas.

Erro ou engano humano Comportamento humano que resulta na introdução de defeitos no sistema.

Page 18: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Os defeitos de software causam falhas de software quando o códigocom defeito é executado com um conjunto de entradas que expõemo defeito.

Conjunto de entradas

Conjunto de saídas

programa

Ie

Oe

Entradas quecausam saídaserrôneas

Saídas errôneas

Page 19: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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;

Page 20: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Controle de hardware e controle de software: complexidade

Exemplo: monitoramento de aeronaves militares avançadas

Page 21: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Classes de softwares críticos de segurança:

Software crítico de segurança primáriaEsse é um software que é embutido como um controlador emum sistema. A disfunção desse software pode causar umadisfunção de hardware, o que resulta em ferimentos em pessoas ou dano ambiental.

Software crítico de segurança secundáriaEsse é um software que pode indiretamente resultar emferimentos. Exemplo: banco de dados de um médico – erro pode resultar em dose errada de medicamento.

Page 22: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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ãonecessariamente seguros.

Page 23: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Razões pelas quais os sistemas de software que são confiáveisnão são necessariamente seguros:

1. A especificação pode estar incompleta, pelo fato de não descrevero 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, podemlevar a uma disfunção do sistema. (mecânico e software para levantartrem de aterrissagem)

Page 24: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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)

Page 25: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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, aconfiabilidade e a segurança do sistema poderão ser comprometidos, se ataques externos provocarem algum dadoao sistema.

Page 26: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Erros no desenvolvimento de um sistema podem levara 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çõesconfidenciais.

Page 27: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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.

Page 28: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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.

Page 29: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Uso da Internet

Mais conexõesMais facilidade de ataques

Atributo relacionado ao uso da Internet: sobrevivência.

É a capacidade de um sistema continuar a prestar serviçosenquanto sob ataque e, potencialmente, parte do sistemaestá incapacitada.

Page 30: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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:

Page 31: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Page 32: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Tipos de sistemas críticos:

Sistema crítico de segurançaUm 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ãoUm 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óciosUm sistema cuja fábrica pode resultar no fracasso dos negóciosque utilizam o sistema.Exemplo: sistema de contas de cliente de um banco.

Page 33: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Componentes dos sistemas que estão sujeitos a falhas:

Hardware de sistemaerros de fabricaçãofinal de sua vida útil

Software de sistemaenganos na especificação, projeto ou implementação

Operadores humanosfalhar ao operar o sistema

Page 34: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Classificação das falhas

Classe de falha DescriçãoTransiente Ocorre somente com algumas

entradas.

Permanente Ocorre com todas as entradas.

Recuperável O 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ível A falha não corrompe o estado do sistema ou seus dados.

Corruptível A falha corrompe o estado do sistema ou seus dados.

Page 35: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Especificação de confiabilidade para um caixa eletrônico(fonte: Sommerville, 2003)

Classe de falha

Exemplo Mé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.

Page 36: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

Confiabilidade de software

Especificação da segurança – ciclo de vida de segurança da norma IEC 61508

PlanejamentoValidação O&M Instalação

Definição de conceito e escopo

Análise de perigose riscos

Desativação dosistema

Operação emanutenção

Instalação eativação

Validação da segurança

Derivação de Requisito de

segurança

Alocação de requisito de segurança

Desenvolvimento desistemas relacionados

Com a segurança

Recursos de reduçãode risco externo

Page 37: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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.

Page 38: Confiabilidade de Software Tania Fatima Calvi Tait Processo de Engenharia de Software III

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.