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

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

Confiabilidade de Software

Apresentações semelhantes


Apresentação em tema: "Confiabilidade de Software"— Transcrição da apresentação:

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

2 Roteiro de apresentação:
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 Confiabilidade de software
pode ser usando dados históricos e de desenvolvimento medida e estimada usando

4 DEFINIÇÃO: 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). aborrecimentos Falhas catastrofes Não conformidade aos requisitos de software

5 Métricas de confiabilidade:
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 Classificação geral 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

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 Modelos que prevêm a confiabilidade como uma função cronológica (calendário) 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 disponiblidade confiabilidade segurança proteção 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 Fonte: (Sommerville, 2003)

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

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: Sistemas não confiáveis (não apresentam segurança ou são inseguros) não são utilizados; Os custos de falhas em um sistema podem ser enormes; É difícil readequar a confiança; 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 Confiabilidade de software
Dimensões da confiança do software: disponibilidade 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
A disponibilidade não depende do sistema em si, mas do tempo necessário para reparar os defeitos que tornam o sistema indisponível. 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?

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

17 Terminologia da confiabilidade
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.

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. Entradas que causam saídas errôneas Conjunto de entradas Ie programa Saídas errôneas Conjunto de saídas Oe

19 Confiabilidade de software
Dimensões da confiança do software: segurança 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: Evitar o perigo; Detectar e eliminar o perigo; (válvula de alívio) Limitar o prejuízo. (extintores de incêndio automáticos)

25 Confiabilidade de software
Dimensões da confiança do software: proteção 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 Danos provocados por ataques externos:
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 Para assegurar a proteção de um sistema:
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 Confiabilidade de software
Abordagens para assegurar a proteção de um sistema: Resistência a ataques; Reconhecimento de um ataque; Recuperação a partir dos danos provocados pelo ataque..

31 Confiabilidade de software
Sistemas críticos

32 Tipos de sistemas críticos:
Confiabilidade de software 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. Exemplo: sistema de contas de cliente de um banco.

33 Componentes dos sistemas que estão sujeitos a falhas:
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 Classificação das falhas Classe de falha Descrição
Confiabilidade de software Classificação das falhas Classe de falha Descrição Transiente 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.

35 Especificação de confiabilidade para um caixa eletrônico
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. 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
Definição de conceito e escopo Especificação da segurança – ciclo de vida de segurança da norma IEC 61508 Análise de perigos e riscos 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 Planejamento Validação O&M Instalação Validação da segurança Instalação e ativação Operação e manutenção Desativação do sistema

37 Especificação de proteção
Confiabilidade de software Especificação de proteção Identificação e avaliação de ativos (dados e programas); Análise de ameaças e avaliação de riscos; Atribuição de ameaças; Análise de tecnologia; 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"

Apresentações semelhantes


Anúncios Google