6. 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.
7. 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.
8. 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.
10. 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.
15. 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.
16. 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.
17. 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.
20. 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/).
24. 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.
25. 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.
26. UNIVERSIDADE DE PERNAMBUCO
Sintaxe
•Ações (Canais): - Exemplos: - chan a, b[2]; Canais comuns. - urgent chan c; Ações Urgentes.
27. UNIVERSIDADE DE PERNAMBUCO
Sintaxe
•Constantes: - Exemplos: - const int [0,1] YES = 1; - const bool NO = false;
30. 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);
31. 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.
32. 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.
33. 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.
34. 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:
•+= -= != ^= <<= >>=
36. 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[ ].
37. UNIVERSIDADE DE PERNAMBUCO
Exemplo
P Reachable – Épossivel alcançar um estado onde P é satisfeito. E<> P
38. UNIVERSIDADE DE PERNAMBUCO
Exemplo
Invariantly P - Dado um estado P, o mesmo é sempre satisfeito em todos os caminhos. A[] P
39. UNIVERSIDADE DE PERNAMBUCO
Exemplo
Inevitable P - Dado um estado P, o mesmo é inevitavelmente satisfeito em alguns estados e em todos os caminhos.
A<> P
40. UNIVERSIDADE DE PERNAMBUCO
Exemplo
Potentially Always P - Dado um estado P, existe um caminho onde P é satisfeito em todos os estaos.
E[] P
41. 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
45. UNIVERSIDADE DE PERNAMBUCO
Aplicações
ABB – Líder mundial em tecnologias de automação e energia
http://new.abb.com/br/empresa
46. 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
47. 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
48. 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
49. 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