• Nenhum resultado encontrado

Projeto e Validação de Protocolos de Computadores

N/A
N/A
Protected

Academic year: 2021

Share "Projeto e Validação de Protocolos de Computadores"

Copied!
24
0
0

Texto

(1)

Projeto e Validação de Protocolos de

Computadores

Disciplina: Especificação Formal e Validação de Protocolos de Comunicação

Jo ˜ao Borges

[email protected]

Orientadora: PhD. Rossana Andrade

(2)

Motivação

• Problema antigo:

Ambiguidade dos protocolos de comunicação

• Polybius, historiador Grego (200 A.C.) • Telégrafo de Tochas (Polybius Square) • Sequências inesperadas de eventos

“O maior problema no projeto de protocolos é que o inesperado deve ser esperado.” [2]

(3)

Problemas

• Como um projetista pode garantir que os requisitos do

projeto foram atendidos?

• Como projetar conjuntos de regras mínimas para troca de

informação?

◦ Consistentes ◦ Completas

◦ Fácil implementação

• Como um analista pode demonstrar que o projeto está

conforme os requisitos (corretude)?

Problema fundamental: Projeto e validação de protocolos não ambíguos.

(4)

Protocolos como Linguagens

• Como uma linguagem de computador a linguagem do

protocolo não pode ser ambígua.

◦ Sintaxe - Formato preciso de mensagens válidas,

◦ Gramática - Um vocabulário de mensagens, regras e

procedimentos para troca de dados

◦ Semântica - Significados de mensagens, especificação

de serviços

• Devem especificar comportamentos de processos

(5)

5 Elementos de um Protocolo

1. O serviço a ser provido pelo protocolo

2. As restrições do ambiente no qual o protocolo será executado

3. O vocabulário de mensagens usado para implementar o protocolo

4. A codificação (sintaxe/formato) de cada mensagem do vocabulário

5. As regras de procedimento que garantem a consistência da troca de mensagens (gramática/comportamento)

O coração da definição do protocolo é o elemento 5. [1] Difícil de projetar e validar.

(6)
(7)

Projeto Estruturado de Protocolos

• Simplicidade - Protocolos Peso Leve

• Modularidade - Uma Hierarquia de Funções • Protocolos Bem-Definidos (Well-Formed )

◦ Limitado (não ultrapassa os limites do sistema)

◦ Auto-estabilizado (retornar para um estado desejável) ◦ Auto-adaptado (controle de taxa de fluxo)

• Robustez - Tratamento de eventos inesperados • Consistência

DeadlocksLivelocks

(8)

10 Regras de Projeto

1. O problema deve estar bem-definido.

2. Defina o serviço antes das estruturas (O quê vem antes de Como). 3. Projete funcionalidades externas antes das internas (caixa-preta)

4. Faça-o Simples (KISS) [6]. Fácil de implementar, validar e mais eficiente. 5. Não conecte o que é independente. Separe interesses ortogonais.

6. Não introduza o que é imaterial. Um bom projeto é “open-ended ”.

7. Antes de implementar, construa um protótipo e verifique sua corretude. 8. Implemente o projeto, meça sua performance, e se necessário, otimize-o. 9. Teste sua implementação final, se é equivalente ao projeto validado.

10. Não pule as regras de 1 a 7.

(9)
(10)

Requisitos de Corretude

• Para validar um projeto é preciso especificar o que significa

sua corretude.

• Critérios de corretude:

Ausência de deadlocksAusência de livelocks

◦ Ausência de términos inesperados

Um bom projeto é provavelmente livre de deadlocks.

“Não basta que seja possível uma interpretação correta de uma especificação, é preciso que uma interpretação incorreta não seja possível.”[2]

(11)

O Modelo de Validação

Uma metodologia.

Comportamento, é o conjunto das sequências de execução

que o modelo pode efetuar. (Inevitável ou impossível)

Sequência de execução, é um conjunto finito de estados. • Estado, é onde se especificam os valores para variáveis,

pontos de controle de fluxo e conteúdos das mensagens de canais.

• Um modelo pode alcançar um estado pela execução de

instruções.

• Um modelo pode ser colocado em um estado através da

(12)

Validade de Estados

• O estado inicial da sequência (i = 1) é o estado inicial do modelo, com todas as variáveis zeradas e mensagens vazias.

• Se o modelo está colocado em um estado i, há pelo menos uma instrução executável que o leve ao estado i + 1.

A união dos estados do comportamento do sistema é chamado o conjunto de estados alcançáveis do modelo.

(13)

Ferramentas de Validação

• Algumas ferramentas para automatização da validação já

foram propostas [4].

• Algumas utilizam técnicas de simulação exaustiva de todos

os possíveis comportamentos, buscando comportamentos errôneos ou indesejáveis [3].

• Provêem informações sobre onde no protocolo pode haver

bugs.

• Podem ser usadas para grandes protocolos (escalável). • Podem diminuir o tempo gasto nos processos de validação

(14)

V&V Inicial

• Para os dias atuais, a necessidade de V&V nas fases

iniciais do desenvolvimento é alta [5].

• Para sistemas críticos, pervasivos

• Deve-se ter certeza que o sistema é correto, de acordo com

sua semântica formal

Em [5] é proposto uma abordagem orientada a Gols.Gols são objetivos que o sistema em construção deve

atingir.

• Auxiliam no refinamento dos requisitos, utilizando uma

linguagem semi-formal, e na precisa definição destes, utilizando uma linguagem formal.

(15)
(16)

Teste de Conformidade

• Usado para checar um comportamento externo de um

protocolo implementado.

• Checar se a especificação formal é logicamente

consistente.

• A implementação de ser equivalente à sua especificação

formal.

“Se uma especificação formal tem um erro de projeto, a implementação dessa especificação passará no Teste de Conformidade se ela conter o mesmo erro.” [2]

(17)

Metodologia de Testes

A implementação é uma caixa preta com entradas e saídas. • Passam-se mensagens de entrada e observam-se os

resultados nas saídas.

• O teste terá sucesso se as saídas observadas estiverem

conforme sua especificação formal.

• Estados são agora definidos como condições estáveis de

espera por entradas

• Transições são definidas como consumos de sinais,

(18)

Principais Problemas nos Testes

• Encontrar um procedimento geral e eficiente para gerar

uma suíte de testes para um determinado protocolo.

• Encontrar um método para aplicar o teste em uma

(19)

Tipos de Teste - Funcional

• Verificar a conformidade sem ter acesso aos detalhes

internos da implementação.

• Problema: é impossível testar exaustivamente todos os

possíveis comportamentos de uma implementação

desconhecida somente por observações de suas respostas.

(20)

Tipos de Teste - Estrutural

• Não há consideração em valores de parâmetros. • Ênfase na estrutura de controle do protocolo.

• Verifica-se se a estrutura de controle da implementação

está conforme a estrutura da especificação.

◦ Possuem a mesma estrutura se possuírem o mesmo

conjunto de estados e permitirem as mesmas transições de estados.

(21)

Requisitos para Testes de Conformidade

1. * Implementação determinística com número de estados e vocabulários conhecidos.

2. * Produz respostas às entradas em um tempo finito.

3. * Todos os estados são alcançáveis por uma ou mais transações. 4. Estados devem aceitar e responder (inclusive null) às entradas. 5. Pode aceitar mensagens de status informando seu estado atual. 6. Pode aceitar mensagens de reset movendo-se para o estado inicial.

7. Pode aceitar mensagens de set efetuando a transição para o estado especificado no parâmetro dessa mensagem.

Com esses 7 requisitos os testes de conformidade podem ser efetuados.

(22)

Conclusão

• Problemas na criação de protocolos que: ◦ Realizem um dado serviço.

◦ Faça-o de maneira sem erros.

• As metodologias de projeto e validação de protocolos

permitem:

◦ Protocolos mais eficientes. ◦ Mais leves.

◦ Fáceis de manter e modificar.

(23)

Refer ˆencias

[1] G. J. Holzmann. Tutorial: Design and validation of protocols. In B. Pehrson,

B. Jonsson, and J. Parrow, editors, Proc. 11th Int. Conf on Protocol Specification, Testing, and Verification, INWG/IFIP, Stockholm, Sweden, 1991.

[2] Gerard J. Holzmann. Design and validation of computer protocols. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1991.

[3] Gerard J. Holzmann. Protocol validation. Encyclopedia of Telecommunications, pages 185–194, 1994.

[4] J.J. Li and J.R. Horgan. A tool for efficient protocol validation and testing. In

Computer Communications and Networks, 2000. Proceedings. Ninth International Conference on, pages 14 – 17, Oct. 2000.

[5] C. Ponsard, P. Massonet, J. F. Molderez, A. Rifaut, A. Van Lamsweerde, and H. Tran Van. Early verification and validation of mission critical systems. Form. Methods

(24)

Obrigado!!

João Borges

Referências

Documentos relacionados

Além de serem gravados no cartão, os dados são transmitidos através de um módulo de rádio frequência transmissor para um receptor do modelo, onde há um outro PIC capaz de

São muitos os problemas ambientais causados pelo crescimento urbano, o poder público não acompanha esse crescimento com investimentos em obras de infraestrutura, são ocupados

ed è una delle cause della permanente ostilità contro il potere da parte dell’opinione pubblica. 2) Oggi non basta più il semplice decentramento amministrativo.

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

In this work, improved curves are the head versus flow curves predicted based on the correlations presented in Table 2 and improved by a shut-off head prediction

Segundo o mesmo autor, a animação sociocultural, na faixa etária dos adultos, apresenta linhas de intervenção que não se esgotam no tempo livre, devendo-se estender,