ENGENHARIA CONFIABILIDADE DE SOFTWARE



Documentos relacionados
Teste de Software. Prof. Wylliams Barbosa Santos Laboratório de Programação

Qualidade de Software

AVALIAÇÃO DE DESEMPENHO

Módulo 4 DISPONIBILIDADE E CONFIABILIDADE DE ATIVOS DE TRANSPORTES

Engenharia de Software III

Testbed para métricas de dependabilidade em cloud computing.

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

DISTRIBUIÇÃO DE WEIBULL CONCEITOS BÁSICOS APLICAÇÕES

Qualidade de Software. Profa. Cátia dos Reis Machado

Engenharia de Requisitos

Calendário Treinamentos e Eventos Brasil e Portugal

Modelagem e Simulação Material 02 Projeto de Simulação

Universidade Federal de Minas Gerais ICEx / DCC

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Falha benigna. Sistema. Sistema Próprio. Interrompido. Restauração. Falha catastrófica. Falha catastrófica. Sistema. Impróprio

Engenharia de Software 1

SIC A Engenharia de Confiabilidade Quebrando Paradigmas de Manutenção. João Luis Reis e Silva. Votorantim Metais

Cálculo Numérico. ECA / 4 créditos / 60 h Introdução, Erros e Matlab. Ricardo Antonello.

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Probabilidade. Distribuição Exponencial

GARANTIA DA QUALIDADE DE SOFTWARE

A Gerência em Redes de Computadores

3 a Lista de Exercícios

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

SLA - Service Level Agreement (Acordo de Nível de Serviço) Gerenciamento de Estoque

Fundamentos em Teste de Software. Vinicius V. Pessoni

Sistemas Distribuídos

Calendário 2016 Treinamentos e Eventos do Brasil, América do Sul e Portugal

Garantia da Qualidade de Software

Como implementar os processos de Gerenciamento de Demanda e Capacidade de serviços de TI.

Probabilidade. Distribuição Exponencial

Engenharia de Software

Gestão de contratos de Fábrica de Software. Secretaria da Fazenda do Estado de São Paulo

Avaliação de Desempenho de Sistemas

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

Aula 01 Introdução ao Gerenciamento de Redes

Arquitetura dos Sistemas de Informação Distribuídos

Construção e Implantação de Software II - Unidade 3- Estratégias Para Testes de Software. Prof. Pasteur Ottoni de Miranda Junior

Modelagem e Simulação

Dicionário da EAP - Software FarmaInfor

Fábrica de Software Fatores motivadores, restrições e tendências

Avaliação de disponibilidade de alternativas arquiteturais em ambientes de Mobile Cloud Computingcom

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

Tipos de teste de software

MÓDULO 5 DISTRIBUIÇÃO DE WEIBULL. Curso de Especialização em Transporte Ferroviário de Carga

Análise RAM (Reliability Analysis System)

Engenharia de Software II

ATO Nº 233/2013. A PRESIDENTE DO TRIBUNAL REGIONAL DO TRABALHO DA 7ª REGIÃO, no uso de suas atribuições legais e regimentais,

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

FMEA - Análise do Tipo e Efeito de Falha. José Carlos de Toledo Daniel Capaldo Amaral GEPEQ Grupo de Estudos e Pesquisa em Qualidade DEP - UFSCar

Gerenciamento e Interoperabilidade de Redes

Desenvolvimento de Sistemas Tolerantes a Falhas

Como Definir Processos de Estimativas aderentes às Melhores Práticas do CMMI?

Universidade Paulista

PROJETO NOVAS FRONTEIRAS. Descrição dos processos de gerenciamento da qualidade

Importância da análise holística de um plano de manutenção por meio de simulação: Uma abordagem de RCM voltada a custo e disponibilidade

ITIL - Por que surgiu? Dependências de TI; A qualidade, quantidade e disponibilidade de infra-estrutura de TI afetam diretamente;

ITIL V3 (aula 5) AGENDA: GERENCIAMENTO DE CAPACIDADE GERENCIAMENTO DE CONTINUIDADE GERENCIAMENTO FINANCEIRO

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB

Gerenciamento de Problemas

Acordo de Nível de Serviço (SLA)

Sumário. Prefácio Capítulo 1 O que é qualidade? Capítulo 2 Normas e organismos normativos Capítulo 3 Métricas: visão geral...

Manutenção DSPTI II. Porque fazer Manutenção. Manutenção. Porque fazer Manutenção. Porque fazer Manutenção

Segurança da Informação e Proteção ao Conhecimento. Douglas Farias Cordeiro

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

ESTRUTURA DE GERENCIAMENTO DO RISCO OPERACIONAL DO BANCO COOPERATIVO SICREDI E EMPRESAS CONTROLADAS

Curso de formação: Análise de Risco, Segurança Operacional e Confiabilidade

Qualidade de Produto de Software

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

Gerenciamento de Incidentes

ANÁLISE E PROJETO DE SISTEMAS

Gerenciamento de projetos.

MINISTÉRIO DO TRABALHO E EMPREGO SECRETARIA DE INSPEÇÃO DO TRABALHO DEPARTAMENTO DE SEGURANÇA E SAÚDE NO TRABALHO

Roteiro SENAC. Análise de Riscos. Análise Quantitativa de Riscos. Análise Quantitativa de Riscos. Análise Quantitativa de Riscos

Curso de Engenharia de Produção. Manutenção dos Sistemas de Produção

Qualidade de Software. MC626 Adaptado de notas de aula da Prof. Eliane Martins (

Fundamentos de Tolerância a Falhas. Graduação: CIC e ECP Taisy Silva Weber 2002

1

DETERMINAÇÃO DO INTERVALO ÓTIMO PARA MANUTENÇÃO: PREVENTIVA, PREDITIVA e DETECTIVA

Transcrição:

ENGENHARIA CONFIABILIDADE DE SOFTWARE Rivalino Matias Jr. RIVALINO@K4B.COM.BR FEIT- UEMG - Outubro/2007

Agenda Contextualização; A Física da Falha de Software; Introdução à Engenharia de Confiabilidade de Software; Estudo de Caso Experimental; Considerações Finais.

Parte I Contextualização

Contextualização Introduçã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.

Contextualização Introduçã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.

Contextualização Introduçã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.

Contextualização Introduçã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.

Contextualização Introduçã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.

Contextualização Introduçã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.

Contextualização Introdução Árvore de Dependabilidade Dependabilidade Atributos Ameaças Meios Disponibilidade (availability) Confiabilidade (reliability) Segurança (safety) Integridade (integrity) Manutenibilidade (maintainability) Faltas (fault) Erros (error) Falhas (failure) Prevenção de faltas (fault prevention) Tolerância a faltas (fault tolerance) Remoção de faltas (fault removal) Previsão de faltas (fault forecasting) Fonte: Avižienis et al. (2004)

Parte II Física da Falha de Software

Taxonomia Falhas de Software 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.

Física da Falha Falhas de Software Estes três elementos possuem uma relação causal denominada de cadeia fundamental da dependabilidade. Falta Ativação Erro Propagação Causação Falha Falta 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.

Física da Falha Falhas de Software Propagaçã ção o do Erro Falta Interna Dormente Ativação Componente A Interface de Serviço Componente B Interface do Serviço Erro Propagação Erro Propagação Erro Propagação Erro de Entrada Propagação Erro Propagação Erro Falta Externa Status do Serviço do Componente A Serviço Correto Falha Serviço Incorreto Fronteira Status do Serviço do Componente B Serviço Correto Falha Serviço Incorreto

Classes de Faltas Faltas de Desenv. Faltas Físicas Faltas de Interação Faltas de Desenv. Faltas Operacionais 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 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 Exemplos Bug de Software Bombas Lógicas Errata de Hardware Defeitos de Produção Deterioração Física Interferência Física Tentativas de Intrusão Vírus & Worms Erros de Entrada

Parte III Engenharia de Confiabilidade de Software: Introdução

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. A análise de confiabilidade envolve estudos quantitativos!

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 = θ) h ( t) = θ = 0 f ( t) R( t) R( t) dt t R ( t) = 1 F( t) = 1 f ( t) dt

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: Moranda(1975),Yamada-Osaki(1983),outros.

Eng. de Confiabilidade de Software Outras categorias de modelos são comumente usadas: Pareto; Geometric; Inverse Linear; Logarithmic; Beta; Chi-square (χ 2 ) outros.

Qual a Confiabilidade de um sistema com um MTTF=500 horas após 24 horas de execução? Resposta: f ( t) = λ exp( λt), λ é a taxa de falha do sistema. R( t) = 1 F( t) = 1 f ( t) dt = exp( λt) 1 0 MTTF = λ t R( t) = 1 F( t) = 1 f ( t) dt = exp( λt) 0 t 24 R( 24 ) = exp = 0. 953 500

Exemplo de análise de Confiabilidade de um Sistema Servidor Web: f ( Τ) = β Τ γ η η β 1 e Τ γ η β 2,00 1,60 Probabi lity Density Function W eibull Data 1 W 3 MLE - SRM MED F= 50 / S=0 1,20 ) (t f f(t) 0,80 0,40 0 1781,00 1782,80 1784,60 1786,40 1788,20 1790,00 Time, (t) β=18,1092, η=3,8953, γ=1780,0444

Exemplo de análise de Confiabilidade de um Sistema Servidor Web: R( t) = 1 F( t) 1,0 R(t) with confidence intervals of 95% 0,9 0,8 0,7 Reliability R(t) 0,6 0,5 0,4 0,3 0,2 0,1 0,0 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

Parte IV Estudo de Caso

Objetivo Estudo Experimental 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.

Metodologia Estudo Experimental 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 2 k ; Os resultados apontaram o tamanho de página como um dos fatores com maior influência sobre a degradação da memória.

Metodologia Estudo Experimental 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.

Resultados Estudo Experimental Consumo de memória para os três cenários: Degradação da memória do servidor httpd size increase (MB) 500 400 300 200 S3 S2 S1 100 0 0 5 10 15 20 25 30 35 num ber Lotes of de requests 1650 requisições (in cycles) D f

Resultados Estudo Experimental 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.

Resultados Estudo Experimental 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: f ( Τ) = β Τ γ η η β 1 e Τ γ η β

Estudo Experimental Função Confiabilidade R(t) 1 Reliability vs Time 0.80 Reliability 0.60 0.40 0.20 0 0 4000 8000 1.2E+4 1.6E+4 2.0E+4 Time (cycles)

Estudo Experimental Confiabilidade vs. Superfície de Estresse Tamanho de páginas

Considerações Finais A grande e crescente dependência da sociedade moderna em relação aos Sistemas Computacionais exige destes sistemas um alto nível de confiabilidade; A Engenharia de Software tem papel fundamental na busca por sistemas mais confiáveis, pois oferece o rigor e o formalismo necessários aos processos de desenvolvimento; A responsabilidade dos profissionais que projetam e desenvolvem sistemas computacionais é tão grande ou maior em relação àqueles que operam tais sistemas.

Obrigado pela Atenção! Rivalino Matias Jr. RIVALINO@K4B.COM.BR