49
UNIVERSIDADE DE PERNAMBUCO UPPAAL

UPPAAL

Embed Size (px)

DESCRIPTION

Conhecendo um pouco mais sobre a ferramenta para modelagem, simulação e verificação de sistemas em tempo real, UPPAAL.

Citation preview

Page 1: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

Page 2: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

UPPAAL é um ambiente

integrado de ferramentas para

modelagem, simulação e

verificação de sistemas de

tempo real.

Page 3: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Universidade de Aalborg, na Dinamarca.

Universidade de Uppsala, na Suécia.

Page 4: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Universidade de Aalborg, na Dinamarca.

Universidade de Uppsala, na Suécia.

Page 5: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

Page 6: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

É adequado para sistemas que podem ser

modelados como um conjunto de processos não

determinísticos com estrutura de controle finito e de

tempo real, se comunicando através de redes ou

variáveis compartilhadas.

Page 7: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

As áreas de aplicação típicas incluem

controladores em tempo real e os protocolos

de comunicação, em particular projetos onde

o aspecto do tempo é fundamental.

Page 8: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Licença

A ferramenta UPPAAL é gratuita para

aplicações não-comerciais na acadêmia. Para

aplicações comerciais, é necessária uma

licença comercial.

Page 9: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Site UPPAAL comercial:

http://www.uppaal.com/

Page 10: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

UPPAAL consiste em três partes principais:

• uma linguagem de descrição: serve como uma linguagem de

modelagem ou desenho para dscrever o comportamento do sistema;

• um simulador: é uma ferramenta de validação que permite o exame

de possíveis execuções dinâmicas;

• um verificador de modelos: verifica propriedades invariantes e

acessibilidade.

Page 11: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL Editor:

Page 12: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL Simulador:

Page 13: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL Verificador:

Page 14: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

EFICIÊNCIA FACILIDADE DE USO

Page 15: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

Para facilitar a modelagem e

depuração, o verificador de

Uppaal pode gerar

automaticamente um diagnóstico

que explica por que uma

propriedade é (ou não é) satisfeita

por uma descrição do sistema.

Page 16: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

Os vestígios de diagnóstico

gerados pelo verificador

podem ser carregados

automaticamente para o

simulador, o qual pode ser

utilizado para a visualização e

investigação.

Page 17: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

UPPAAL

• A primeira versão da ferramenta foi lançada em 1995 e tem

sido aplicada em uma série de estudos de caso.

• Para atender às exigências decorrentes dos estudos de

caso, a ferramenta foi estendida com várias características.

• A versão atual do UPPAAL foi lançada em 1º de Julho de

2014;

• É uma aplicação implementada em Java e C++, e está

disponível para Linux, SunOS e Windows 7 e 8.

Page 18: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Site para download da ferramenta:

http://www.uppaal.org/

Page 19: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Site UPPAAL comercial:

http://www.uppaal.com/

Page 20: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Download

• É preciso fazer um cadastro para

download da ferramenta, informando

o nome, a universidade e algumas

informações para contato.

• É necessário ter o Java instalado no

computador

(https://www.java.com/pt_BR/download

/).

Page 21: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Versões disponíveis para download da

ferramenta:

http://www.uppaal.org/

Page 22: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Pasta Descompactada do UPPAAL:

Page 23: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Ambiente de trabalho da ferramenta UPPAAL:

Page 24: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Sintaxe de UPPAAL

A sintaxe usada para declarações UPPAAL é semelhante a

sintaxe utilizada na linguagem de programação C.

• Clocks:

-Sintaxe

- Exemplo:

- clock x , y; Declara dois clocks , x e y.

Page 25: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Sintaxe

• Variáveis de dados:

- Exemplos:

- int a,b; Inteiro com o domínio default.

- int [0,2] a; Inteiro com o domínio de 0 até 2.

- int b[5]; Array de inteiros.

Page 26: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Sintaxe

• Ações (Canais):

- Exemplos:

- chan a, b[2]; Canais comuns.

- urgent chan c; Ações Urgentes.

Page 27: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Sintaxe

• Constantes:

- Exemplos:

- const int [0,1] YES = 1;

- const bool NO = false;

Page 28: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Declarações

Page 29: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Declarações

Page 30: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Templates

• Os autômatos podem ser definidos como um conjunto de

parâmetros que podem ser de qualquer tipo, por exemplo, Int,

Chan. Estes parâmetros são substituídos por um dado

argumento na declaração de processo.

• Templates podem receber parâmetros:

- int v; const min; const max;

• Os templates podem ser instanciados para formar processos:

- P := A (i, 1, 5);

- Q := A (j, 0, 4);

Page 31: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Invariantes

Uma invariante é uma expressão que satisfaz as seguintes

condições:

• Apenas variáveis inteiras e constantes são referenciados;

• É um conjunto de condições de forma x < x e/ou < = e, onde

x é um clock de referência e “e” avaliada como um inteiro.

Page 32: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Canais Urgentes

Semântica Informal :

• Não haverá atraso de transição com uma ação urgente;

Restrições:

• Nenhuma restrição de clock é permitida em transições com

ações urgentes.

• Invariantes e restrições de dados de variável são permitidos.

Page 33: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Broadcast Synchronisation

• Se a é um canal de Broadcast:

a! = Emissão de Broadcast

a? = Recepção de Broadcast

• Em uma transmissão de sincronização um remetente c! pode

sincronizar com um número arbitrário de Receptores c?.

• Um conjunto de arestas em diferentes processos podem sincronizar se

o emissor e o receptor estiverem no mesmo canal.

• Receptores devem sincronizar sempre que possível.

Page 34: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Mais Expressões

• Lógica:

• && and lógico

• || or lógico

• ! Negação lógica

• Bitwise:

• ^ xor

• & bitwise and

• | bitwise or

• Bit Shift:

• << left

• >> right

• Prefix e Postfix:

• ++ incremento

• -- decremento

• Numérico:

• % módulo

• <? Mínimo

• >? Máximo

• Atribuições:

• += -= != ^= <<= >>=

Page 35: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplos e Aplicações

Page 36: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

• E – existe um caminho;

• A – para todos os caminhos;

• [] – todos os estados em um caminho;

• <> - alguns estados em um caminho.

Combinaçõe suportadas:

• A[ ], A<>, E<>, E[ ].

Page 37: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

P Reachable – Épossivel alcançar um estado onde P é

satisfeito.

E<> P

Page 38: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

Invariantly P - Dado um estado P, o mesmo é sempre

satisfeito em todos os caminhos.

A[] P

Page 39: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

Inevitable P - Dado um estado P, o mesmo é inevitavelmente

satisfeito em alguns estados e em todos os caminhos.

A<> P

Page 40: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

Potentially Always P - Dado um estado P, existe um

caminho onde P é satisfeito em todos os estaos.

E[] P

Page 41: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

Process 1

idle:

req1=1;

want:

turn=2;

wait:

while(turn!=1 &&

req2!=0);

CS:

//critical section

job1();

req1=0;

//and return to idle

Process 2

idle:

req2=1;

want:

turn=1;

wait:

while(turn!=2 &&

req1!=0);

CS:

//critical section

job2();

req2=0;

//and return to idle

Page 42: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

Page 43: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Exemplo

Page 44: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Aplicações utilizando UPPAAL:

http://www.uppaal.com/

Page 45: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Aplicações ABB – Líder mundial em tecnologias de automação e energia

http://new.abb.com/br/empresa

Page 46: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Commercial Field Bus Protocol

• Protocolo de comunicação para barramento de campo comercial;

• Desenvolvido e implementado pela ABB para aplicações críticas de

segurança;

• Controle do processo;

• Um dos maiores estudo de caso onde UPPAAL foi aplicado;.

• Falhas na lógica do protocolo e Implementação;

• Fontes de erro são depuradas com base em modelos abstratos do

protocolo;

• Sugestões de melhorias;

Aplicações

Page 47: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Philips Audio Protocol

• Desenvolvido e implementado pela Philips;

• Troca de informações de controle entre os componentes de um

equipamento de áudio usando codificação Manchester;

• A correção da codificação se baseia em atrasos de tempos entre os

sinais;

• O protocolo é modelado e verificado utilizando UPPAAL.

Aplicações

Page 48: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Gearbox Controller

• Projeto e análise de um protótipo de controlador de caixa de marchas

de veículos por Mecel AB;

• Componente do sistema distribuído em tempo real que controla um

carro moderno;

• Solicitações de mudança de câmbo Interface homem / máquina

rede de comunicação controlador de caixa de marchas;

• O controlador implementa a mudança de marcha real;

• UPPAAL é aplicado para validar o comportamento do sistema;

• Provas automáticas de 46 propriedades especificados pelo Mecel AB.

Aplicações

Page 49: UPPAAL

UNIVERSIDADE DE PERNAMBUCO

Referências Bibliográficas

• Site: http://www.uppaal.org/

• Site: http://www.uppaal.com/

• UPPAAL Tutorial: http://www.it.uu.se/research/group/darts/papers/texts/new-

tutorial.pdf

• UPPAAL Now, Next and Future:

http://www.it.uu.se/research/group/darts/papers/texts/movep2k.pdf

• Uppaal 4.0: Small Tutorial. A short description of the tool as well as some

examples: http://www.it.uu.se/research/group/darts/uppaal/small_tutorial.pdf