1 / 15

Técnicas - Multi-Version

Técnicas - Multi-Version. Duas ou mais versões de uma mesma parte do software (módulo) usadas como meios de detectar e corrigir erros durante a execução. Se as versões são produzidas de diferentes maneiras (equipe, algoritmos, ferramentas) então elas falharão de maneiras distintas.

nile
Télécharger la présentation

Técnicas - Multi-Version

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Técnicas - Multi-Version • Duas ou mais versões de uma mesma parte do software (módulo) usadas como meios de detectar e corrigir erros durante a execução. • Se as versões são produzidas de diferentes maneiras (equipe, algoritmos, ferramentas) então elas falharão de maneiras distintas.

  2. Técnicas - Multi-Version • Técnicas para múltiplas versões • Recovery Blocks • N-Version Programming • N Self-Checking Programming

  3. Técnicas - Multi-Version • Recovey Block • Outras versões são desenvolvidas para serem usadas em caso de falha • Um teste de aceitação indica se a saída está dentro do intervalo esperado para aquele input

  4. Técnicas - Multi-Version • Recovey Block • Vantagens • A falha conjunta tem menor probabilidade • As versões alternativas podem recuperar o sistema • Desvantagens  • Mesmo diferentes versões podem falhar no mesmo ponto • O algoritmo apenas considera se a saída é válida (dentro de certo intervalo), não se é a saída correta

  5. Técnicas - Multi-Version • N-Version programming • Várias versões são projetadas e desenvolvidas para satisfazer o mesmo requisito • A decisão do resultado adequado é feito por um algoritmo (o mais simples é o de voto)

  6. Técnicas - Multi-Version • N-Version programming • Vantagens • A falha conjunta tem menor probabilidade • O desenvolvimento das versões pode ocorrer em paralelo • Normalmente a saída da maioria é a correta • Desvantagens • Mesmo diferentes versões podem falhar no mesmo ponto • O algoritmo de seleção pode ser complicado de desenvolver • Voto simples pode piorar a confiabilidade • Todas as saídas podem ser diferentes

  7. Técnicas - Multi-Version • N Self-Checking Programming • Melhoramento de N-Version, são construídos testes de aceitação para validar as saídas • N versões, M testes de aceitação são executados

  8. Técnicas - Multi-Version • N-Self checking programming • Vantagens • Todas as vantagens de N-Version • A saída é validada dentro de intervalos confiáveis e de diferentes formas (vários testes de aceitação) • Desvantagens • Custo de desenvolvimento • Processamento e degradação da performance • Mesmo com tudo isso, não garante a corretude e robustez

  9. Roteiro • Motivação • Definição • Exemplos • Técnicas • Falhas de Hardware • Falhas de Software • Desvantagens • Conclusões

  10. Desvantagens • Custo • Um componente pode ocultar falhas menores • Em outro componente • Em partes do próprio componente • Corrigir erros pode passar a ter baixa prioridade • Se as falhas não forem corrigidas, o acumulo pode causar uma falha do sistema • O sistema de backup pode estar com defeito

  11. Conclusões • Existem diversas técnicas para melhorar a confiabilidade e robustez de um sistema distribuído • Técnicas de tolerância a falha ajudam, mas o código ainda tem que ser bom • Não adianta ter defeitos replicados em todas as máquinas e versões • Complexidade é a maior causa de erros... Simplifique! • Prazos irreais (pra ontem) não ajudam • Utilize algoritmos comprovados e reuse software de qualidade • Revisão de código

  12. http://youtube.com/watch?v=Kbj8kMvQDfI Primeiro aviao sem piloto(airbus crash due to software error) - verificar veracidade http://youtube.com/watch?v=2eQpUgHkBcg If programmers have make a plane (tirando onda) http://youtube.com/watch?v=UZq4sZz56qM Software Crash On German's Millionaire's show http://www.youtube.com/watch?v=dXkt_WFNsT8&NR=1

  13. Referências http://www.ece.cmu.edu/~koopman/des_s99/sw_fault_tolerance/ http://en.wikipedia.org/wiki/Fault_tolerant http://en.wikipedia.org/wiki/List_of_software_bugshttp://pt.wikipedia.org/wiki/Toler%C3%A2ncia_a_falhas_em_software http://dmi.uib.es/~jproenza/case/torres-pomales00software.pdf

  14. http://www.cs.tau.ac.il/~nachumd/horror.html • apresentacaosobresistemascriticos e falhas: http://www.inf.ed.ac.uk/teaching/courses/seoc/2006_2007/notes/LectureNote21_DependableSystems.pdf • tecnicasparasistemas de tempo real http://www.eventhelix.com/RealtimeMantra/FaultHandling/ • tutorial da NASA http://techreports.larc.nasa.gov/ltrs/PDF/2000/tm/NASA-2000-tm210616.pdf • artigo q daumaideiageralem software(muitos links) http://www.ece.cmu.edu/~koopman/des_s99/sw_fault_tolerance/ • padrao de segurança http://en.wikipedia.org/wiki/IEC_61508

More Related