O documento discute a confiabilidade de software. Aborda como a confiabilidade pode ser medida e estimada usando dados históricos, e como falhas em software podem causar custos significativos. Também define termos como defeitos, falhas e disponibilidade, e discute como desenvolver software confiável.
1. Qualidade de
Software
Aula 03 - QS -
Confiabilidade de SW
Prof. Ms. Luiz Alberto
Contato: lasf.bel@gmail.com
Prof. Luiz Alberto -Aula 03 - QS - Confiabilidade de SW
Confiabilidade de software
– 1 –
usandousando
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 –
2. 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 –
3. 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
Custo
Confiança
Baixa Média Alta
Muito
Alta
Ultra
alta
11
4. Prof. Luiz Alberto -
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
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ç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
– 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 –
5. Prof. Luiz Alberto -
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.
– 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 ser
alcançados à custa do desempenho do sistema”
Refletindo...
confiabilidade
– 19 –
6. Prof. Luiz Alberto -
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
– 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 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.
– 21 –
Prof. Luiz Alberto -
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.
– 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 –
7. 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ção
Exemplo (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 –
8. Prof. Luiz Alberto -
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
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 –
9. 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 –
10. 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ão
necessariamente 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 –
11. Prof. Luiz Alberto -
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)
– 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, a
confiabilidade e a segurança do sistema poderão ser
comprometidos, se ataques externos provocarem algum dado
ao sistema.
– 43 –
12. 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 –
13. 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 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.
– 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õ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.
– 51 –
14. 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 –