Aula 03 qs - confiabilidade de sw

14
Qualidade de Software Aula 03 - QS - Confiabilidade de SW Prof. Ms. Luiz Alberto Contato: [email protected] Prof. Luiz Alberto - Aula 03 - QS - Confiabilidade de SW Confiabilidade de software –1– usando usando Confiabilidade de software medida e estimada dados históricos e de desenvolvimento pode ser Prof. Luiz Alberto - Aula 03 - QS - Confiabilidade de SW Falhas provocam custos Computadores são onipresentes Problemas causados por falhas vêm piorando • Exemplos: Falha em e-commerce Falha em controle embarcado de carros Software malicioso em computadores de uma empresa O usuário precisa confiar no sistema –2– Prof. Luiz Alberto - Aula 03 - QS - Confiabilidade de SW Confiança: Funcionalidade 1. Falhas do sistema afetam grande numero de pessoas 2. Usuários rejeitam sistemas não-confiáveis, inseguros ou desprotegidos 3. Custos de falhas do sistema podem ser enormes 4. Sistemas pouco confiáveis podem causar perdas de informação –3–

Transcript of Aula 03 qs - confiabilidade de sw

Page 1: Aula 03   qs - confiabilidade de sw

Qualidade de Software

Aula 03 - QS -Confiabilidade de SW

Prof. Ms. Luiz Alberto

Contato: [email protected]

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Confiabilidade de software

– 1 –

usandousando

Confiabilidade de software

medida e estimadadados históricos e de desenvolvimento

podeser

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Falhas provocam custos

• Computadores são onipresentes

• Problemas causados por falhas vêm piorando

• Exemplos:– Falha em e-commerce– Falha em controle embarcado de carros– Software malicioso em computadores de uma empresa

• O usuário precisa confiar no sistema

– 2 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Confiança: Funcionalidade

1. Falhas do sistema afetam grande numero de pessoas

2. Usuários rejeitam sistemas não-confiáveis, inseguros ou desprotegidos

3. Custos de falhas do sistema podem ser enormes

4. Sistemas pouco confiáveis podem causar perdas de informação

– 3 –

Page 2: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Tipos de falhas

1. Falhas de Hardware

2. Falhas de Software

3. Falhas operacionais

– 4 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Sistemas críticos

• É um tipo de sistema em que falhas podem causar:– Danos a pessoas,

– Danos ao ambientes,

– Grandes perdas econômicas

• Exemplos:– Bomba de insulina (crítico por segurança)

– Sistemas de navegação para ônibus espaciais (crítico por missão)

– Sistemas de transferência monetária online (crítico por negócio)

– 5 –

Prof. Luiz Alberto -

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– 6 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Propriedades de Confiança

• Muitas pessoas hoje usam computadores e convivem com falhas de sistema. Poucos confiam plenamente nos computadores que usam.

• Confiança é uma propriedade que reflete fiabilidade (o grau de confiança do usuário no sistema)

• Não pode ser expresso numericamente – Exemplo: “não confiável”, “muito confiável” “ultra

confiável”

• Confiabilidade ≠Utilidade, ex: editor de texto

– 7 –

Page 3: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Dimensões da Confiança

Confiança

Disponibilidade

Habilidade do sistema fornecer serviços quando

requisitado

Confiabilidade

Habilidade do sistema fornecer os serviços

especificados

Segurança

Habilidade do sistema operar sem falhas

catastróficas

Proteção

Habilidade do sistema se proteger contra intrusão acidental ou deliberada

– 8 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Para desenvolver um software confiável é preciso ...

1. Evitar introdução acidental de erros durante as fases de especificação e desenvolvimento.

2. Usar processos de verificação e validação que detectem erros residuais.

3. Projetar mecanismos de proteção que protejam o sistema contra ataques.

4. Configurar corretamente o sistema final e seus software de suporte para o ambiente operacional.

... e incluir mecanismos de recuperação para restaurar o serviço o mais rapidamente possível.

– 9 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Para tolerar defeitos é necessário:

• Usar código redundante para:– Monitorar o sistema– Detectar estados errôneos– Recuperar o sistema quando ocorrerem falhas

• Consequência: Perda de eficiência

Eficiência Confiança

Decisão do desenvolvedor

– 10 – Prof. Luiz Alberto -

Custos

• Software com baixa Confiança custa pouco para melhorar

• Sistema com alta confiança custa exponencialmente mais caro

• Custo aumenta exponencialmente

Cus

to

Confiança

Baixa Média AltaMuito Alta

Ultra alta

11

Page 4: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -

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 falhasdo sistema

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

Tempo gasto parareparar oureiniciar o sistema

Classificação geral

Métricas de confiabilidade:

– 12 – Prof. Luiz Alberto -

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)

– 13 –

Prof. Luiz Alberto -

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çospode 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

– 14 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Disponibilidade e Confiabilidade

Disponibilidade e Confiabilidade são propriedades relacionadas que podem ser

expressas numericamente.

– 15 –

Page 5: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -

disponibilidade

Disponibilidade: é a probabilidade de um sistema, em determinadoinstante, 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.

– 16 – Prof. Luiz Alberto -

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.

– 17 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Disponibilidade

• Probabilidade do sistema estar ativo e funcional para fornecer os serviços quando requisitado

• Ex. Se o sistema tem disponibilidade 0,999 significa que ele está disponível 99,9% das vezes em que é requisitado.

– 18 – Prof. Luiz Alberto -

“altos níveis de confiança de software somente podem seralcançados à custa do desempenho do sistema”

Refletindo...

confiabilidade

– 19 –

Page 6: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -

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

– 20 – Prof. Luiz Alberto -

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.

– 21 –

Prof. Luiz Alberto -

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.

– 22 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Confiabilidade

• Probabilidade do sistema fornecer os serviço conforme definido na especificação do sistema

• Ex. Se o sistema, em média, apresenta erros em 2 a cada 1.000 entradas a confiabilidade do sistema é 0,002

– 23 –

Page 7: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Relação entre Disponibilidade e Confiabilidade

• A importância da propriedade depende do sistema:

– Se o usuário demanda uso continuo do sistema, então a disponibilidade deve ser alta

• Sistemas bancários online

– Se os custos de uma falha são baixos, então a confiabilidade pode ser baixa.

• Sistemas telefônicos.

– 24 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Fator tempo

• Disponibilidade leva em conta o tempo para resolver uma falha

Sistema A

1 falha por ano 3 dias (média) para recuperar

4.320 minutos por ano indisponível

Sistema B

1 falha por mês 10 minutos (média) para recuperar

120 minutos por ano indisponível

Melhor disponibilidade– 25 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Fator Momento

• Não só o tempo é importante para a disponibilidade, mas também o momento em que as falhas ocorrem.

• Um sistema que falha uma hora por dia entre 3 e 4 da manhã não afeta tantos usuários quanto um sistema que falha 10 minutos por dia durante o horário comercial.

• A definição de disponibilidade NÃO leva em conta o momento da falha.

– 26 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Definições

Termo DescriçãoExemplo (sistema de avaliação

climática remoto)

Erro humano (Engano)Comportamento humano que resulta na introdução de erros no sistema

Programador decide computar a hora da próxima transmissão como sendo (hora atual + 1).

Erro de sistema (system fault)Característica de um sistema que pode levar a um defeito de sistema

Adicionar 1 a hora atual sem verificar se hora atual > 23

Defeito de sistema (system error)

Um estado incorreto do sistema, ou seja, um estado do sistema que não é esperado por seus projetistas

Valor da hora de transmissão é entrado como 24.XX em vez de 00.XX

Falha de sistema (system failure)

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

A informação não é transmitida porque a hora está incorretamente informada

– 27 –

Page 8: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -

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

Estado de erro

– 28 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Defeitos e Falhas

• Erros não necessariamente provocam defeitos.

• Defeitos não necessariamente provocam falhas.– Nem todo código de um programa é executado

– Defeitos são transientes

– O sistema pode conter detecção e proteção contra falhas.

– Usuários evitam entradas que a experiência mostrou provocar falhas.

– 29 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Como Melhorar a Confiabilidade

• Evitar erros.

• Detecção e remoção de erros.

• Tolerância a erros

especificação

– 30 – Prof. Luiz Alberto -

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;

11.3 Segurança

– 31 –

Page 9: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

11.3 Segurança

• Sistemas críticos com relação à segurança são aqueles em que a operação do sistema deve ser sempre segura, isto é, não devem causar danos às pessoas e ao ambiente, mesmo que ocorra uma falha.

• Exemplos:– Sistemas de controle de aviões;

– Sistemas de controle de automóveis;

– Sistemas de controle de plantas químicas, etc.– 32 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Geralmente...

• É mais simples implementar e analisar o controle de hardware do que o de software.

• Entretanto, sistemas muito complexos muitas vezes não podem ser controlados só por hardware.– Ex: aeronaves militares são aerodinamicamente

instáveis e requerem ajuste contínuo controlado por software.

– 33 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

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.

– 34 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Confiabilidade e segurança

• Há um relacionamento entre confiabilidade e segurança mas uma não implica na outra.

• Razões para que um software confiável seja inseguro:– Não é possível estar 100% seguro que um software esteja

livre de defeitos, que podem ficar adormecidos por muito tempo;

– A especificação pode ser incompleta;– Problemas de hardware podem levar a comportamentos

imprevisíveis;– Operadores do sistema podem gerar entradas erradas ou de tal

forma combinadas que levam a erros.

– 35 –

Page 10: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Confiabilidade e segurança

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.

– 36 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Terminologia de Segurança

– 37 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Garantia de segurança

• Garantir que não ocorram acidentes ou que as consequências sejam mínimas.– Prevenção de perigos: evitar riscos. Ex. apertar dois

botões para assegurar que as duas mãos estejam fora do alcance do perigo.

– Detecção e remoção de perigos. Ex. válvula para aliviar pressão.

– Limitação de danos: motor de avião, que possuem extintores de incêndio automáticos.

– 38 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Garantia da segurança (cont.)

• Análises de acidentes mostram que os acidentes geralmente ocorrem quando há várias falhas ao mesmo tempo.

• Combinações inesperadas de falhas podem levar a falhas globais.

• Há argumentos prós e contras o uso de software para controle.

• É preciso fazer uma análise de senso de proporção sobre a segurança do sistema, já que sistemas 100% seguros são impossíveis.

– 39 –

Page 11: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -

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)

– 40 – Prof. Luiz Alberto -

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)

– 41 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Proteção

• É um atributo do sistema que reflete sua capacidade de se proteger de ataques externos (acidentais ou deliberados).

• O uso em rede facilita o acesso de estranhos.• Exemplos: vírus, cavalos de troia, acesso não

autorizado, ...• Para alguns sistemas, a proteção é a dimensão mais

importante da confiança. Ex. sistemas militares, de comércio eletrônico e de reserva de passagens aéreas.

– 42 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Proteção

A proteção de um sistema é uma avaliação do ponto em que o sistema protege a si mesmo de ataques externos.

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.

– 43 –

Page 12: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Terminologia de proteção

– 44 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Terminologia de proteção

– 45 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Principais ameaças à proteção de sistemas em rede:

• Confidencialidade do sistema e seus dados.

• Integridade do sistema e seus dados.

• Disponibilidade do sistema e seus dados.

• As três são naturalmente interdependentes.

– 46 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Vulnerabilidades em Sistemas de Informação

• Falhas humanas: – senhas fáceis de descobrir ou senhas anotadas em lugares

que são facilmente descobertos

– Administradores cometem erros de configuração de controle de acesso

– Usuários não instalam software de proteção

• Muitas vezes, erros que parecem dos usuários são facilitados por decisões de projeto. Exemplo: exigência de alterações constantes de senhas, que levam à anotação das senhas em papel.

– 47 –

Page 13: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Controles para melhorar a proteção

• Prevenção de vulnerabilidade: para evitar que os ataques sejam bem sucedidos– Sistema não está ligado a uma rede pública– Criptografia

• Detecção e neutralização de ataques: funcionalidades para monitorar a operação do sistema e descobrir padrões incomuns de uso e tomar medidas como desligar o sistema, restringir o acesso etc.

• Limitação de exposição e recuperação. Ex. backups automatizado e espelhamento.

– 48 – Prof. Luiz Alberto -

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.

– 49 –

Prof. Luiz Alberto -

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.

– 50 – Prof. Luiz Alberto -

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.

– 51 –

Page 14: Aula 03   qs - confiabilidade de sw

Prof. Luiz Alberto -

Resistência a ataques;

Reconhecimento de um ataque;

Recuperação a partir dos danos provocados pelo ataque..

Abordagens para assegurar a proteção de um sistema:

– 52 – Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Comentários finais

• Métodos para certificação de disponibilidade, confiabilidade e segurança de sistemas assumem que o software operacional é o mesmo instalado originalmente.

• Se o sistema foi atacado e modificado, esses princípios não são mais válidos.

• Exemplo: controle de limites de vetores.

– 53 –

Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW

Lista de Exercício

1. Quais as dimensões mais importantes da confiança de sistema?

2. Sugira quais atributos de confiança podem ser mais críticos para os seguintes sistemas. Justifique sua resposta.

a) Um servidor de internet com milhares de clientes

b) Um bisturi controlado por computador usado em cirurgias laparoscópicas.

c) Um sistema de controle direcional, usado em um veículo lançador de satélite.

d) Um sistema de gerenciamento de finanças pessoais baseado na internet.

3. Confiabilidade e segurança são atributos de confiança relacionados, porém distintos. Descreva as principais distinções entre esses atributos e explique por que é possível que um sistema confiável seja inseguro e vice-versa.

4. Em um sistema médico projetado para liberar radiação de tumores, sugira um possível perigo e proponha um recurso de software que possa ser usado para garantir que o perigo identificado não resulte em um acidente.

– 54 –