SlideShare uma empresa Scribd logo
Programação Diversitária
Componentes: Felipe Haack Schmitz - 106396
Lais Berlatto - 104493
Professor: Marcelo Trindade Rebonatto
Sistemas Distribuídos
Introdução
●Necessidade atual
●Tolerância a falhas - 1967
●Dependabilidade
Introdução
●Dependabilidade
Introdução
● N-Versões,
● programação N-Autoverificadora
● blocos de recuperação por consenso e votação
● blocos retry
● programação N-Cópias.
●Diversidade
O foco desse mecanismo consiste em utilizar variadas
implementações de um mesmo sistema para obter a
tolerância a falhas, crendo assim que diferentes
projetos e implementações autônomas também vão
apresentar falhas independentes.
Diversidade
●Ambiente de software com uma versão
Agrupa técnicas que são utilizadas para tolerar parcialmente falhas de
projeto de software:
Monitorando as técnicas - atomicidade das ações- verificações de
decisões-tratamento de exceções
●Ambiente de software com múltiplas versões
Diversas versões do mesmo software, com funcionalidades
equivalentes
Diversidade
●Princípio-chave da diversidade: REDUNDÂNCIA
Utilizada nas mais diversas fases do ciclo de vida de um
software, desde sua concepção até os testes, sempre
levando em conta os tipos de erro que se quer encontrar.
Programação N-Versões
●Sugeria por Elmendorf em 1972
●Conceito - Também chamada de programação
diversitária
● Consiste em uma técnica multi-versões em que
todas as versões são desenvolvidas para satisfazer
os mesmo requisitos básicos e a definição do
resultado correto é realizado pela comparação dos
resultados
Programação N-Versões
● A programação diversitária acaba resultando em um
mascaramento de falhas garantindo a que não serão dadas
respostas duvidosas, fazendo uso de recuperação de erros por
avanço.
● Esta técnica é considerada estática pelo fato da seleção do
resultado final ser definido através de um mecanismo de
decisão, ser realizado após obterem-se todos os resultados
advindos das diversas versões.
Programação N-Versões
●Vantagens
● A facilidade no reconhecimento de erros na fase de teste do sistema, a tolerância
tanto de falhas intermitentes quanto de permanentes e a atuação potencial também
contra erros externos ao sistema (como por exemplo erros do compilador, do sistema
operacional e até mesmo falhas de hardware)
●Desvantagens
Desvantagens da técnica também devem ser citadas, como o aumento dos
custos de desenvolvimento e manutenção, a complexidade de sincronização
das versões e o problema de determinar a correlação das fontes de erro.
Experimentos comprovam que o número de manifestações idênticas (erros que assim não
seriam detectados) é significativamente menor que o número total de erros.
Programação N-Versões
● Fatores que influenciam na eficácia:
● Vários fatores influenciam a eficácia da programação diversitária, como: as
equipes podem trocar algoritmos entre si, os membros das equipes podem, por
formação, tender a adotar os mesmos métodos de desenvolvimento, as equipes
podem buscar suporte nas mesmas fontes. Qualquer uma dessas correlações
imprevisíveis se constitui uma fonte potencial de erros.
Resumo
Em suma a programação diversitária, é uma técnica de
redundância usada para obter tolerância a falhas em
software. A partir de um problema a ser solucionado são
implementadas diversas soluções alternativas, sendo a
resposta do sistema determinada por votação. Essa
técnica é chamada de projeto diversitário quando o
desenvolvimento do sistema é realizado de forma
diversitária e de programação em N-Versões quando se
restringe à implementação do sistema.
Implementação (Estudo de caso)
●Paradigmas
●Linguagens de Programação
●Comunicação Socket em Diferentes Linguagens
Estrutura do Sistema
Computação Diversitária
●Cliente
●Servidor Central
●Servidor c#
●Servidor Python
●Servidor Java
Validação dos Dados por Votação
Referências
http://docs.oracle.com/javase/1.4.2
/docs/api/java/net/Socket.html
http://docs.python.org/library/socket.html
http://msdn.microsoft.com/pt-br/library/kx37x362
PULLUM, Laura L. Software Fault Tolerance Techniques
and Implementation Artech House, 2001.
Referências
JALOTE, P. Fault Tolerance in Distributed systems. New
Jersey: Pretince Hall, 1994.
PRADHAN, Dhiraj K. Fault tolerant computer system
design. New Jersey: Prentice Hall, 1996
PULLUM, Laura L. Software Fault Tolerance Techniques
and Implementation Artech House, 2001.
Referências
WEBER, Taisy S. Um roteiro par a exploração dos
conceitos básicos de tolerância a falhas, 2002. Disponível
em:<http://www.inf.ufrgs.
br/~taisy/disciplinas/textos/Dependabilidade.pdf>.Acesso
em: 27/11/2011.
JALOTE, P. Fault Tolerance in Distributed systems. New
Jersey: Pretince Hall, 1994.
PRADHAN, Dhiraj K. Fault tolerant computer system
design. New Jersey: Prentice Hall, 1996.
Perguntas?
Obrigado!

Mais conteúdo relacionado

Mais procurados

Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidas
ricardojp
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidas
ricardojp
 
Teste baseado em modelos
Teste baseado em modelosTeste baseado em modelos
Teste baseado em modelos
Andreza Pollyana
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
modeloespiral
 
Testes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM Open Source - TDC 2012 SPTestes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM Open Source - TDC 2012 SP
Elias Nogueira
 
Aula 03
Aula 03Aula 03
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De Software
Robson Silva Espig
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
Renato Groff
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
GrupoAlves - professor
 
Avaliacao2017
Avaliacao2017Avaliacao2017
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testes
André Luiz Forchesatto
 
Aula2 paradigmas
Aula2 paradigmasAula2 paradigmas
Aula2 paradigmas
Portal_do_estudante_ADS
 
Software Seguro
Software SeguroSoftware Seguro
Software Seguro
Rafael Alves
 
10.concurrency
10.concurrency10.concurrency
10.concurrency
Rodrigo Parente
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacao
lua alves
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de software
Ariane Izac
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
Kleber Bernardo
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta Jabuti
Inael Rodrigues
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
Adivaldo_badinho
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
Paulo César M Jeveaux
 

Mais procurados (20)

Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidas
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidas
 
Teste baseado em modelos
Teste baseado em modelosTeste baseado em modelos
Teste baseado em modelos
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Testes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM Open Source - TDC 2012 SPTestes Funcionais em um ALM Open Source - TDC 2012 SP
Testes Funcionais em um ALM Open Source - TDC 2012 SP
 
Aula 03
Aula 03Aula 03
Aula 03
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De Software
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
Avaliacao2017
Avaliacao2017Avaliacao2017
Avaliacao2017
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testes
 
Aula2 paradigmas
Aula2 paradigmasAula2 paradigmas
Aula2 paradigmas
 
Software Seguro
Software SeguroSoftware Seguro
Software Seguro
 
10.concurrency
10.concurrency10.concurrency
10.concurrency
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacao
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de software
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta Jabuti
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 

Destaque

Seminario 5
Seminario 5Seminario 5
Seminario 5
maralvbog
 
Pesq.bac 2
Pesq.bac 2Pesq.bac 2
Pesq.bac 2
Jefferson Borges
 
Patronato del hospital del niño, josé renán
Patronato del hospital  del niño, josé renánPatronato del hospital  del niño, josé renán
Patronato del hospital del niño, josé renán
Oriel Coronel
 
evento de letramento
evento de letramentoevento de letramento
evento de letramento
Angela Assunção
 
HISTORIA DE LA ANIMACIÓN
HISTORIA DE LA ANIMACIÓNHISTORIA DE LA ANIMACIÓN
HISTORIA DE LA ANIMACIÓN
Laura Mendez
 
The Wine
The WineThe Wine
The Wine
BiaEsteves
 
M11 Lehrgang e learning an hochschulen2
M11 Lehrgang e learning an hochschulen2M11 Lehrgang e learning an hochschulen2
M11 Lehrgang e learning an hochschulen2heiko.vogl
 
Regulamento 2013 2014
Regulamento 2013 2014Regulamento 2013 2014
Regulamento 2013 2014
HMigueu
 
O pai do impressionismo mundial: Oscar-Claude Monet
O pai do impressionismo mundial: Oscar-Claude MonetO pai do impressionismo mundial: Oscar-Claude Monet
O pai do impressionismo mundial: Oscar-Claude Monet
Seduc
 
Reflexión blog virtual
Reflexión blog virtualReflexión blog virtual
Reflexión blog virtual
luciana1001
 
Ejercicios Seminario 7
Ejercicios Seminario 7Ejercicios Seminario 7
Ejercicios Seminario 7
maralvbog
 
lionkingposter_livyashburne
lionkingposter_livyashburnelionkingposter_livyashburne
lionkingposter_livyashburneOlivia Ashburne
 
Tarea seminario 2
Tarea seminario 2Tarea seminario 2
Tarea seminario 2
maralvbog
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
TZADI
 
Vida Móveis
Vida MóveisVida Móveis
Vida Móveis
guiaseta
 
Kovacs Laszlo Pénzügyi Főiskola controlling certificate
Kovacs Laszlo Pénzügyi Főiskola controlling certificateKovacs Laszlo Pénzügyi Főiskola controlling certificate
Kovacs Laszlo Pénzügyi Főiskola controlling certificateLászló Kovács
 
Apresentação isla primeira 1
Apresentação isla primeira 1Apresentação isla primeira 1
Apresentação isla primeira 1
Marulem Júnior
 
Apresentação ELETROSOL Versão 1.0
Apresentação ELETROSOL Versão 1.0Apresentação ELETROSOL Versão 1.0
Apresentação ELETROSOL Versão 1.0
Honorrê Yhasmim
 
Where are the nine?
Where are the nine?Where are the nine?
Where are the nine?
ACTS238 Believer
 

Destaque (20)

Seminario 5
Seminario 5Seminario 5
Seminario 5
 
Pesq.bac 2
Pesq.bac 2Pesq.bac 2
Pesq.bac 2
 
Patronato del hospital del niño, josé renán
Patronato del hospital  del niño, josé renánPatronato del hospital  del niño, josé renán
Patronato del hospital del niño, josé renán
 
evento de letramento
evento de letramentoevento de letramento
evento de letramento
 
HISTORIA DE LA ANIMACIÓN
HISTORIA DE LA ANIMACIÓNHISTORIA DE LA ANIMACIÓN
HISTORIA DE LA ANIMACIÓN
 
The Wine
The WineThe Wine
The Wine
 
M11 Lehrgang e learning an hochschulen2
M11 Lehrgang e learning an hochschulen2M11 Lehrgang e learning an hochschulen2
M11 Lehrgang e learning an hochschulen2
 
Regulamento 2013 2014
Regulamento 2013 2014Regulamento 2013 2014
Regulamento 2013 2014
 
O pai do impressionismo mundial: Oscar-Claude Monet
O pai do impressionismo mundial: Oscar-Claude MonetO pai do impressionismo mundial: Oscar-Claude Monet
O pai do impressionismo mundial: Oscar-Claude Monet
 
Reflexión blog virtual
Reflexión blog virtualReflexión blog virtual
Reflexión blog virtual
 
Ejercicios Seminario 7
Ejercicios Seminario 7Ejercicios Seminario 7
Ejercicios Seminario 7
 
lionkingposter_livyashburne
lionkingposter_livyashburnelionkingposter_livyashburne
lionkingposter_livyashburne
 
Tarea seminario 2
Tarea seminario 2Tarea seminario 2
Tarea seminario 2
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Vida Móveis
Vida MóveisVida Móveis
Vida Móveis
 
Kovacs Laszlo Pénzügyi Főiskola controlling certificate
Kovacs Laszlo Pénzügyi Főiskola controlling certificateKovacs Laszlo Pénzügyi Főiskola controlling certificate
Kovacs Laszlo Pénzügyi Főiskola controlling certificate
 
Apresentação isla primeira 1
Apresentação isla primeira 1Apresentação isla primeira 1
Apresentação isla primeira 1
 
Apresentação ELETROSOL Versão 1.0
Apresentação ELETROSOL Versão 1.0Apresentação ELETROSOL Versão 1.0
Apresentação ELETROSOL Versão 1.0
 
graduation cert. y12
graduation cert. y12graduation cert. y12
graduation cert. y12
 
Where are the nine?
Where are the nine?Where are the nine?
Where are the nine?
 

Semelhante a Programação Diversitária

Overview de QA
Overview de QA Overview de QA
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
Wagner Zaparoli
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
Roberto Nunes
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
Mário Pravato Junior
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
Thiago Ghisi
 
[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP
GUTS-RS
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
Cloves da Rocha
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
MichaelArrais1
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
Camilo de Melo
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
Cloves da Rocha
 
Tees Final
Tees FinalTees Final
Tees Final
Marcus Oliveira
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Mayara Fernandes
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
Felipe Caputo
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
Kelvin Wesley
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
João Lourenço
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
Michel Alves
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
Robson Silva Espig
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
Renato Groff
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
José Agripino Duarte da Silva
 

Semelhante a Programação Diversitária (20)

Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Tees Final
Tees FinalTees Final
Tees Final
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 

Mais de Laís Berlatto

Cucumber - Um breve Review
Cucumber - Um breve ReviewCucumber - Um breve Review
Cucumber - Um breve Review
Laís Berlatto
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade
Laís Berlatto
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
Laís Berlatto
 
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Laís Berlatto
 
Ruby
RubyRuby
E-business
E-businessE-business
E-business
Laís Berlatto
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
Laís Berlatto
 
Specification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software houseSpecification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software house
Laís Berlatto
 
Bluetooth
BluetoothBluetooth
Bluetooth
Laís Berlatto
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Laís Berlatto
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DES
Laís Berlatto
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
Laís Berlatto
 
Amostragem
AmostragemAmostragem
Amostragem
Laís Berlatto
 
Estudo de caso
Estudo de casoEstudo de caso
Estudo de caso
Laís Berlatto
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber Funciona
Laís Berlatto
 
Ética hacker
Ética hackerÉtica hacker
Ética hacker
Laís Berlatto
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informática
Laís Berlatto
 
Especificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoEspecificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da Informação
Laís Berlatto
 
Modelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulênciaModelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulência
Laís Berlatto
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
Laís Berlatto
 

Mais de Laís Berlatto (20)

Cucumber - Um breve Review
Cucumber - Um breve ReviewCucumber - Um breve Review
Cucumber - Um breve Review
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
 
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
 
Ruby
RubyRuby
Ruby
 
E-business
E-businessE-business
E-business
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
Specification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software houseSpecification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software house
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DES
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Amostragem
AmostragemAmostragem
Amostragem
 
Estudo de caso
Estudo de casoEstudo de caso
Estudo de caso
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber Funciona
 
Ética hacker
Ética hackerÉtica hacker
Ética hacker
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informática
 
Especificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoEspecificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da Informação
 
Modelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulênciaModelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulência
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 

Último (6)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 

Programação Diversitária

  • 1. Programação Diversitária Componentes: Felipe Haack Schmitz - 106396 Lais Berlatto - 104493 Professor: Marcelo Trindade Rebonatto Sistemas Distribuídos
  • 2. Introdução ●Necessidade atual ●Tolerância a falhas - 1967 ●Dependabilidade
  • 4. Introdução ● N-Versões, ● programação N-Autoverificadora ● blocos de recuperação por consenso e votação ● blocos retry ● programação N-Cópias. ●Diversidade O foco desse mecanismo consiste em utilizar variadas implementações de um mesmo sistema para obter a tolerância a falhas, crendo assim que diferentes projetos e implementações autônomas também vão apresentar falhas independentes.
  • 5. Diversidade ●Ambiente de software com uma versão Agrupa técnicas que são utilizadas para tolerar parcialmente falhas de projeto de software: Monitorando as técnicas - atomicidade das ações- verificações de decisões-tratamento de exceções ●Ambiente de software com múltiplas versões Diversas versões do mesmo software, com funcionalidades equivalentes
  • 6. Diversidade ●Princípio-chave da diversidade: REDUNDÂNCIA Utilizada nas mais diversas fases do ciclo de vida de um software, desde sua concepção até os testes, sempre levando em conta os tipos de erro que se quer encontrar.
  • 7. Programação N-Versões ●Sugeria por Elmendorf em 1972 ●Conceito - Também chamada de programação diversitária ● Consiste em uma técnica multi-versões em que todas as versões são desenvolvidas para satisfazer os mesmo requisitos básicos e a definição do resultado correto é realizado pela comparação dos resultados
  • 8. Programação N-Versões ● A programação diversitária acaba resultando em um mascaramento de falhas garantindo a que não serão dadas respostas duvidosas, fazendo uso de recuperação de erros por avanço. ● Esta técnica é considerada estática pelo fato da seleção do resultado final ser definido através de um mecanismo de decisão, ser realizado após obterem-se todos os resultados advindos das diversas versões.
  • 9. Programação N-Versões ●Vantagens ● A facilidade no reconhecimento de erros na fase de teste do sistema, a tolerância tanto de falhas intermitentes quanto de permanentes e a atuação potencial também contra erros externos ao sistema (como por exemplo erros do compilador, do sistema operacional e até mesmo falhas de hardware) ●Desvantagens Desvantagens da técnica também devem ser citadas, como o aumento dos custos de desenvolvimento e manutenção, a complexidade de sincronização das versões e o problema de determinar a correlação das fontes de erro. Experimentos comprovam que o número de manifestações idênticas (erros que assim não seriam detectados) é significativamente menor que o número total de erros.
  • 10. Programação N-Versões ● Fatores que influenciam na eficácia: ● Vários fatores influenciam a eficácia da programação diversitária, como: as equipes podem trocar algoritmos entre si, os membros das equipes podem, por formação, tender a adotar os mesmos métodos de desenvolvimento, as equipes podem buscar suporte nas mesmas fontes. Qualquer uma dessas correlações imprevisíveis se constitui uma fonte potencial de erros.
  • 11. Resumo Em suma a programação diversitária, é uma técnica de redundância usada para obter tolerância a falhas em software. A partir de um problema a ser solucionado são implementadas diversas soluções alternativas, sendo a resposta do sistema determinada por votação. Essa técnica é chamada de projeto diversitário quando o desenvolvimento do sistema é realizado de forma diversitária e de programação em N-Versões quando se restringe à implementação do sistema.
  • 12. Implementação (Estudo de caso) ●Paradigmas ●Linguagens de Programação ●Comunicação Socket em Diferentes Linguagens
  • 13. Estrutura do Sistema Computação Diversitária ●Cliente ●Servidor Central ●Servidor c# ●Servidor Python ●Servidor Java
  • 14. Validação dos Dados por Votação
  • 16. Referências JALOTE, P. Fault Tolerance in Distributed systems. New Jersey: Pretince Hall, 1994. PRADHAN, Dhiraj K. Fault tolerant computer system design. New Jersey: Prentice Hall, 1996 PULLUM, Laura L. Software Fault Tolerance Techniques and Implementation Artech House, 2001.
  • 17. Referências WEBER, Taisy S. Um roteiro par a exploração dos conceitos básicos de tolerância a falhas, 2002. Disponível em:<http://www.inf.ufrgs. br/~taisy/disciplinas/textos/Dependabilidade.pdf>.Acesso em: 27/11/2011. JALOTE, P. Fault Tolerance in Distributed systems. New Jersey: Pretince Hall, 1994. PRADHAN, Dhiraj K. Fault tolerant computer system design. New Jersey: Prentice Hall, 1996.