A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Tópicos em Engenharia de Software II Fernando Castor Prof a.: Eliane Martins.

Apresentações semelhantes


Apresentação em tema: "1 Tópicos em Engenharia de Software II Fernando Castor Prof a.: Eliane Martins."— Transcrição da apresentação:

1 1 Tópicos em Engenharia de Software II Fernando Castor Prof a.: Eliane Martins

2 2 Roteiro Introdução e Objetivos Técnica 1: Cálculo de Refinamentos Técnica 2: Árvore de Falhas Conclusões

3 3 Roteiro Introdução e Objetivos Técnica 1: Cálculo de Refinamentos Técnica 2: Árvore de Falhas Conclusões

4 4 Introdução Nos dias atuais, sistemas de software são empregados em praticamente todos os ramos de nossa sociedade Complexidade desses sistemas aumenta a cada dia Cada vez mais, requisitos de dependability são exigidos

5 5 Introdução (cont.) Dependability envolve diversos fatores: Confiabilidade (reliability) Segurança contra acidentes (safety) Disponibilidade (availability) Segurança contra intrusão (security)

6 6 Introdução (cont.) Dependability envolve diversos fatores: Confiabilidade (reliability) Segurança contra acidentes (safety) Disponibilidade (availability) Segurança contra intrusão (security)

7 7 Confiabilidade The probability that a system will perform its intended function for a specified period of time under a set of specified environmental conditions Nancy G. Leveson Um sistema é confiável se ele se comporta de acordo com sua especificação

8 8 Objetivos Apresentar uma técnica para assegurar confiabilidade e outra para analisar segurança contra acidentes Através de uma mesma aplicação exemplo: algoritmo BubbleSort A segunda técnica será usada para analisar a confiabilidade do exemplo, devido à sua simplicidade Ressaltar as vantagens e desvantagens de cada técnica, com relação ao estudo de caso

9 9 Roteiro Introdução e Objetivos Técnica 1: Cálculo de Refinamentos Técnica 2: Árvore de Falhas Conclusões

10 10 Refinamento Se um programa prog 2 é melhor que um programa prog 1, dizemos que prog 2 refina prog 1, ou prog 1 prog 2 Exemplos: Algoritmos de ordenação: inteiros e números de ponto flutuante ou apenas inteiros? Altímetro de um avião: faixa de valores ou valor preciso?

11 11 Cálculo de Refinamentos Conjunto de leis que visam produzir programas confiáveis a partir de uma especificação formal Código produzido através do uso dessas leis garantidamente implementa a especificação Baseado no cálculo de predicados Especificações são programas que não podem ser executados por um computador: x :[pre, pos] Programas executáveis = código

12 12 Refinamento de Programas Exemplo: x:[ x > 0 ^ x|2, x > 100] x:[ x > 0, x = 101] ou x:[x > 100 ^ x < 120] Pré-condições são enfraquecidas Pós-condições são fortalecidas

13 13 Algoritmo BubbleSort m := #as; do !(m = 0) { n := 0; do !(n = m – 1) { if(as[n] > as[n+1]) { swap(as[n], as[n+1]) } else { skip } n := n + 1 }; m := m - 1 }

14 14 Especificação do BubbleSort var as:seq N Z; con A; and A = bag as as:[ ]

15 15 Refinamento (1)

16 16 Refinamento (2)

17 17 Refinamento (3)

18 18 Código resultante:

19 19 Características da Técnica Vantagens: O código gerado garantidamente atende à especificação Desvantagens: Trabalho muito grande é necessário para realizar o refinamento Não garante a corretude da especificação

20 20 Roteiro Introdução e Objetivos Técnica 1: Cálculo de Refinamentos Técnica 2: Árvore de Falhas Conclusões

21 21 Algoritmo BubbleSort (versão implementada) int m = as.length-1; int n = 0; while(0 as[n+1]) { int t = as[n+1]; as[n+1] = as[n]; as[n] = t; } n++; } n=0; m--; } return as;

22 22 Árvore de Falhas para o BubbleSort Array desordenado While externo não executado While externo executado m vezes OR 1.m 0 na primeira iteração 2.0 as.length 1 3.Se as.length = 0, não há elementos para ordenar 4.Se as.length = 1, o array está ordenado 5.Contradição (...)

23 23 Árvore de Falhas para o BubbleSort (2) AND Um sub-conjunto das iterações não ordena o array corretamente 0

24 24 OR While interno não executado While interno executado m-1 vezes para cada valor de m Árvore de Falhas para o BubbleSort (3) (...) 1.m n, na primeira iteração 2.n = 0, na primeira iteração 3.0 < m 4.Por 2 e 3, n < m, na primeira iteração 5.Por 1 e 4, Contradição (se o laço mais externo é executado pelo menos uma vez, o mais interno também é) (...)

25 25 AND Um sub-conjunto das iterações não coloca o maior elemento de as[0..m] na posição m n

26 26 Árvore de Falhas para o BubbleSort (5) OR Primeira iteração: n = 0 ^ v[0] > v[1] => swap(v[0], v[1]) (n-1)-ésima iteração: n > 0 ^ v[n] > v[m] => swap(v[n], v[m]) (...) Primeira iteração: n > 0 ^ v[n] skip (...) Indutivamente, percebe-se que a situação não ocorre Um sub-conjunto das iterações não (...)

27 27 Características da Técnica Vantagens: Pode ser usada tanto para analisar confiabilidade quanto segurança contra acidentes Mais fácil de aplicar e entender do que uma técnica inteiramente formal Representação gráfica Desvantagens: Não garante a corretude da especificação Pouco empregada, no contexto de software Não provamos que o programa atende à especificação

28 28 Roteiro Introdução e Objetivos Técnica 1: Cálculo de Refinamentos Técnica 2: Árvore de Falhas Conclusões

29 29 Conclusões Técnicas que analisar e garantir confiabilidade e segurança contra acidentes são importantes, mas caras Suporte de ferramentas pode amenizar esse custo Técnicas formais são extremamente trabalhosas Árvores de falhas são mais práticas, mas fornecem menos garantias

30 30 Referências T. Anderson e P. A. Lee. Fault Tolerance: Principles and Practice. Prentice-Hall, 2a edição, S. Coutinho, T. Reis e A. L. Cavalcanti. Uma ferramenta educacional de refinamentos. Anais do XIII Simpósio Brasileiro de Engenharia de Software - Sessão de Ferramentas, páginas 61-64, N. Leveson. Software Safety: Why, What and How. ACM Computing Surveys, 18(2): , junho C. Morgan. Programming from Specifications. Prentice-Hall, 2a edição, J. D. Reese e N. Leveson. Software Deviation Analysis: A Safeware Technique Safeware Engineering Corporation. Verification of Safety. Disponível para download em


Carregar ppt "1 Tópicos em Engenharia de Software II Fernando Castor Prof a.: Eliane Martins."

Apresentações semelhantes


Anúncios Google