SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
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 aprendidasricardojp
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidasricardojp
 
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 SPElias Nogueira
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareRobson 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.netRenato Groff
 
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 testesAndré Luiz Forchesatto
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacaolua 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 softwareAriane Izac
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDDKleber Bernardo
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiInael Rodrigues
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individualAdivaldo_badinho
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo 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

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ánOriel Coronel
 
HISTORIA DE LA ANIMACIÓN
HISTORIA DE LA ANIMACIÓNHISTORIA DE LA ANIMACIÓN
HISTORIA DE LA ANIMACIÓNLaura Mendez
 
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 2014HMigueu
 
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 MonetSeduc
 
Reflexión blog virtual
Reflexión blog virtualReflexión blog virtual
Reflexión blog virtualluciana1001
 
Ejercicios Seminario 7
Ejercicios Seminario 7Ejercicios Seminario 7
Ejercicios Seminario 7maralvbog
 
lionkingposter_livyashburne
lionkingposter_livyashburnelionkingposter_livyashburne
lionkingposter_livyashburneOlivia Ashburne
 
Tarea seminario 2
Tarea seminario 2Tarea seminario 2
Tarea seminario 2maralvbog
 
Apresentacao
ApresentacaoApresentacao
ApresentacaoTZADI
 
Vida Móveis
Vida MóveisVida Móveis
Vida Móveisguiaseta
 
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 1Marulem 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.0Honorrê Yhasmim
 

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

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.pptxRoberto 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 SWEBOKMá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 Geralpaulo peres
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago 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 ERPGUTS-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 MestreCloves da Rocha
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo 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 SoftwareCloves da Rocha
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
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 IJoão Lourenço
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line VariabilitiesMichel Alves
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 

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
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos 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 ReviewLaí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
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve reviewLaí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 houseLaís Berlatto
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DESLaís Berlatto
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber FuncionaLaís Berlatto
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informáticaLaí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çãoLaí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ênciaLaí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

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Último (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.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.