ENGENHARIA CONFIABILIDADE
ENGENHARIA CONFIABILIDADE
DE SOFTWARE
DE SOFTWARE
Rivalino Matias Jr.
RIVALINO@K4B.COM.BRRivalino Matias Jr. –RIVALINO@K4B.COM.BR
Agenda
• Contextualização;
• A “Física da Falha” de Software;
• Introdução à Engenharia de Confiabilidade de
Software;
• Estudo de Caso Experimental;
• Considerações Finais.
Contextualização
Parte I
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Contextualização
• Importância do Software:
– Cada vez mais os processos da sociedade se tornam
dependentes
de sistemas computacionais;
– Em virtude desta dependência a
confiabilidade
destes sistemas é um atributo essencial;
– Falhas de software podem acarretar danos que
variam de fatos irrelevantes até catastróficos
;Ex. Therac-25, Ariane-5, Patriot.
Introdução
Contextualização
• Caso Therac-25:
– De 1985 – 1987 seis pessoas foram inadequadamente expostas a níveis elevados de radiação durante seus tratamentos com o equipamento Therac-25;
– Três dos pacientes morreram; – A causa do problema foi uma
falha no software de controle do equipamento.
Introdução
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Contextualização
• Caso Ariane-5:
– Em 4 de junho de 1996 o foguete não tripulado Ariane 5 explodiu quarenta segundos após o seu lançamento.
– O custo do projeto foi de US$ 7 bilhões e o equipamento destruído de US$ 500 milhões;
– A causa do problema foi uma falha no software de controle inercial do foguete.
Introdução
Contextualização
• Caso Patriot:
– 25 de fev. de 1991 (guerra do Golfo) uma bateria antiaérea Patriot falhou ao interceptar mísseis Sculd Iraquianos
contra um acampamento do exército norte americano. – Esta falha provocou a morte
de 28 soldados.
– A causa do problema foi uma falha no software de controle do radar da bateria.
Introdução
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Contextualização
• Excel 2007:
– Falha descoberta em final de Setembro de 2007;
– Aparentemente qualquer fórmula que resulte em 65535 ou 65536 ocasiona em valores incorretos (MS Article ID 943075)
• Ex. =850*77.1 MS 2007 = 100.000 (Correto = 65535)
– Já foi disponibilizada a correção.
Introdução
Contextualização
• A necessidade por maior confiança nos sistemas
fez emergir o conceito de dependabilidade
(ISO 9000-4);– A dependabilidade é um dos aspectos da qualidade de um sistema computacional;
– Esta área se preocupa com a confiança no funcionamento dos sistemas (hardware e software);
– A dependabilidade de um sistema computacional é a
habilidade deste sistema em fornecer um serviço no qual seu usuário pode, justificadamente, ter confiança no seu funcionamento.
Introdução
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Contextualização
IntroduçãoIntroduçãoÁrvore de Dependabilidade
Á
Á
rvore de
rvore de
Dependabilidade
Dependabilidade
Atributos Disponibilidade (availability) Confiabilidade (reliability) Segurança (safety) Integridade (integrity) Manutenibilidade (maintainability) Dependabilidade Meios
Prevenção de faltas (fault prevention) Tolerância a faltas (fault tolerance) Remoção de faltas (fault removal) Previsão de faltas (fault forecasting) Faltas (fault)
Erros (error) Falhas (failure) Ameaças
Física da Falha de
Software
Parte II
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Taxonomia
• Falha de software é uma das três ameaças à
dependabilidade computacional:
– Falha (failure): é um evento que ocorre quando a
função realizada pelo sistema não está de acordo com a correta especificação que foi definida para a sua
execução;
– Erro (error): o desvio do serviço (entregue) em relação à sua correta especificação;
– Falta (fault): a suposta causa de um erro.
Falhas de Software
“Física da Falha”
• Estes três elementos possuem uma relação causal
denominada de cadeia fundamental da dependabilidade.
• Após a ativação de uma falta, um erro pode se propagar entre os diversos componentes de um sistema antes de causar uma falha;
• A falha ocorrerá quando o erro for percebido pelo usuário do sistema como um desvio da função especificada.
Falta
Falta AtivaçãoAtivação ErroErro PropagaçãoPropagação FalhaFalhaCausaçãoCausação FaltaFalta
Falhas de Software
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
“Física da Falha”
Propaga
Propagaçãção do Erroo do Erro
Status do Serviço
do Componente A Falha Serviço
Incorreto Serviço Correto Falha Serviço Correto Falta Interna Dormente Erro Erro Erro Ativação Falta Exter na Propagação Propagação Interface de Serviço Propagação Erro de Entrada Propagação Erro Propagação Erro Componente B Componente A Fronteira Status do Serviço do Componente B S er vi ço In co rr et o Interface do Serviço Falhas de Software Falhas de Software
Faltas de Desenv. Faltas Físicas Faltas de Interação Faltas Operacionais Faltas de Desenv. Faltas Internas Faltas Externas Faltas Naturais Faltas Humanas Faltas de Hardware Faltas de Software Faltas Ñ Maliciosas Faltas Maliciosas Faltas Ñ Deliberadas Faltas Deliberadas Faltas Acidentais Faltas p/ Incomp. Faltas Permanentes Faltas Transientes xe m pl os 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Bug de Software Bombas Lógicas Errata de Hardware Defeitos de Produção Deterioração Física Interferên-cia Física Erros de Entrada Vírus & Tentativas de Intrusão Classes de Faltas Classes de Classes de Faltas Faltas
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Engenharia de Confiabilidade
de Software: Introdução
Parte III
Eng. de Confiabilidade de Software
• Definição
– Confiabilidade de Software é a probabilidade
do software operar livre de falhas por um
determinado tempo em um determinado
ambiente.
– Ex: Um Sistema A tem confiabilidade de 0.92
(92%) por 8 horas quando atendendo uma carga
de trabalho de até 70% de sua capacidade.
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Eng. de Confiabilidade de Software
• Modelagem
– A modelagem e análise de confiabilidade de um
sistema envolve diversos aspectos relacionados
à:
• Tempos de operação (lifetime ou uptime);
• Tempos de Falha (failure times);
• Cargas de trabalho (workload profiles);
• Aspectos ambientais (environment)
Eng. de Confiabilidade de Software
• Funções Confiabilidade e Probabilidade
de Falha: R(t) e F(t)
• Função Taxa de Falha - h(t)
• Tempo Médio até a Falha (MTTF = θ)
)
(
)
(
)
(
t
R
t
f
t
h
=
∫
∞=
( dt
)
θ
∫
∞ −−
=
−
=
tdt
t
f
t
F
t
R
(
)
1
(
)
1
(
)
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Eng. de Confiabilidade de Software
• Exemplos de Modelos p/ Confiabilidade
de Software e suas categorias:
– Exponential:
• Musa (1975), Littlewood(1983), outros.
– Weibull:
• Schick-Wolverton(1973), Wagoner(1973), outros.
– Gamma:
Eng. de Confiabilidade de Software
• Outras categorias de modelos são comumente
usadas:
– Pareto;
– Geometric;
– Inverse Linear;
– Logarithmic;
– Beta;
– Chi-square (χ
2)
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
)
exp(
)
(
t
t
f
=
λ
−
λ
,
λ
é a taxa de falha do sistema.
)
exp(
)
(
1
)
(
1
)
(
0t
dt
t
f
t
F
t
R
tλ
−
=
−
=
−
=
∫
Qual a Confiabilidade de um sistema com um
MTTF=500 horas após 24 horas de execução ?
Resposta:
953
0
500
24
24
)
exp
.
(
=
−
=
R
)
exp(
)
(
)
(
)
(
t
F
t
f
t
dt
t
R
tλ
−
=
−
=
−
=
∫
01
1
λ
1
=
MTTF
Exemplo de análise de Confiabilidade de um
Sistema Servidor Web:
0 2,00 0,40 0,80 1,20 1,60 1781,00 1782,80 1784,60 1786,40 1788,20 1790,00
Probabi l i ty Densi ty Functi on
Time, (t) f (t ) W eibull Dat a 1 W 3 M LE - SRM M ED F = 50 / S= 0 f( t) β η γ β η γ η β −Τ − − −Τ = Τ e f 1 ) (
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
Exemplo de análise de Confiabilidade de um
Sistema Servidor Web:
1783,4 1783,5 1783,6 1783,7 1783,8 1783,9 1784,0 1784,1 1784,2 1784,3 1784,4 T ime-to-Fail t 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 R e li a b il it y R (t )
)
(
1
)
(
t
F
t
R
=
−
Estudo de Caso
Parte IV
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
• Este estudo experimental objetivou avaliar falhas causadas por degradação do software Apache Web Server;
• Pesquisas anteriores comprovaram a existência dos sintomas de degradação de memória neste produto;
• Este software atualmente detém o maior marketshare de servidores web do mundo;
• A infra-estrutura de grandes portais web, tais como
Banco do Brasil, CNN, Terra, dentre outros, atualmente usam este software.
• A seleção da carga de trabalho foi baseada em trabalhos da literatura e de um projeto de experimentos (DOE) para identificar os fatores com maior influência sobre a
degradação do servidor web;
• A variável monitorada (resposta) foi o consumo de memória principal do servidor web;
• A estratégia de experimentação considerou um projeto fatorial 2k;
• Os resultados apontaram o tamanho de página como um dos fatores com maior influência sobre a degradação da
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
• A partir dos resultados do DOE adotou-se como
principal fator de estresse o tamanho de página;
• Para a realização dos ensaios definiu-se o seguinte
plano experimental:
– Plano tradicional c/ 3 níveis de estresse;
– Aplicação da carga de estresse de forma constante.
• Consumo de memória para os três cenários:
Resultados
Estudo ExperimentalEstudo ExperimentalD Dff h tt p d s iz e in c re a s e (M B )
num ber of requests (in cycles) 0 100 200 300 400 500 0 5 10 15 20 25 30 35 S 1 S 2 S 3 h tt p d s iz e in c re a s e (M B )
num ber of requests (in cycles) 0 100 200 300 400 500 0 5 10 15 20 25 30 35 S 1 S 2 S 3 Lotes de 1650 requisições Lotes de 1650 requisições D egra da çã o da m em ór ia d o se rvid or D eg ra da çã o da m em ór ia do se rv id or
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR
• No nível de estresse S3 foi possível obter os tempos
de falha;
• Nos demais níveis foi necessário o ajuste de um
modelo de regressão não-linear para estimar os
tempos de pseudo-falha;
• Como resultado foram obtidos 8 tempos de falha e 16
tempos de pseudo-falha.
• A amostra de dados foi utilizada para a obtenção da função densidade de probabilidade - f(x)
• O modelo mais adequado neste caso foi baseado na distribuição Lognormal:
Resultados
Estudo ExperimentalEstudo Experimentalβ η γ β
η
γ
η
β
−Τ − −
−
Τ
=
Τ
e
f
1)
(
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR Estudo Experimental Estudo Experimental
Função Confiabilidade R(t)
0 1 0.20 0.40 0.60 0.800 4000 8000 1.2E+4 1.6E+4 2.0E+4
Reliability vs Time Time (cycles) R e lia b ili ty 0 1 0.20 0.40 0.60 0.80
0 4000 8000 1.2E+4 1.6E+4 2.0E+4
Reliability vs Time Time (cycles) R e lia b ili ty
Estudo Experimental
Estudo Experimental
Confiabilidade vs. Superfície de Estresse
Tamanho de páginas
Tamanho de páginas
Rivalino Matias Jr. –RIVALINO@K4B.COM.BR