UPPAAL Model Checker Overview by Valerio Rosset
Uppaal Uppaal é : Desenvolvido: Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido: UPPsala University (Sweden ) AALborg University (Denmark) Primeira versão : 1995
Sistemas de Tempo Real Notas Sistema de Tempo Real : a correcção dos protocolos e algoritmos não depende apenas execução ordenada das acções mas também o tempo em que são realizadas. Ex: Air Bag, Drive-By-Wire, ABS … etc …
Model Checking Modelo A : conjunto de autómatos temporizados Requisitos F : Definição de propriedades como: Safety : Coisas ruins nunca acontecem Liveness: Alguma coisa boa eventualmente acontece
Arquitetura do Uppaal
Ferramenta Uppaal Interface de Modelação
Ferramenta Uppaal Interface de Simulação
Ferramenta Uppaal Interface de Verificação
Modelagem Locations: Edges (guards, sincronizadores, updates) Normal, Initial, Urgent and Committed (ações atómicas) Edges (guards, sincronizadores, updates)
Modelagem As transições podem ser controladas por : Guards: são expressões lógicas que determinam as condições para que uma transição ocorra. Sincronizadores: são chamados de channels e sincronizam ações entre os autómatos do modelo. Tempo: Invariantes ou Aleatoriamente.
Exemplo 1: Lâmpada A lâmpada pode ficar em 3 estados possíveis: desligada, baixa luminosidade, com alta luminosidade. O Utilizador pressiona um botão aleatoriamente para ligar e desligar a lâmpada. A transição de baixa luminosidade para alta se dá com a velocidade com que se pressiona o botão ( 2 clicks rápidos = Alta).
Exemplo 1: Lâmpada Autómato Lampada
Exemplo 1: Lâmpada Autómato Utilizador
Tempo No Uppaal Uppaal utiliza um modelo de tempo contínuo Clocks (relógios): podem ser declarados de maneira global ou individualmente aos autómatos, porém sempre evoluem sincronicamente.
Tempo no Uppaal
Tempo no Uppaal
Tempo no Uppaal
Tempo no Uppaal
Simulação no Uppaal Simulando o Exemplo da Lâmpada
Verificando o Modelo Propriedades (requisitos) são expressas e definidas utilizando uma simplificação da linguagem CLT (Computation Tree Logic). Propriedade = State Formulae & Path Formulae State Formulae : é uma expressão que identifica um estado no sistema. Ex: i==1 ou (i==1 and y==1).
Propriedades Path Formulae: Definem que tipo de propriedade se quer verificar. Reachability: Dado um estado P, existe um caminho onde P é eventualmente satisfeito. E <> P
Propriedades Safety : “Coisas ruins nunca ocorrem”. Dado um estado P, o mesmo precisa ser sempre satisfeito em todos os caminhos. A[] P
Propriedades Liveness : “Alguma coisa eventualmente acontece”. Dado um estado P, o mesmo é eventualmente satisfeito em todos os caminhos. A <> P
Verificando Verificando Exemplo 2 A[] Obs.taken imply x>=2 X é zerado sempre quando x<=2 E<> Obs.idle and x>3 Verifica se existe algum caminho onde X >3
Verificando Verificando Exemplo 2 A[] Obs.taken imply (x>=2 and x<=3) X é zerado sempre entre 2 e 3 A[] Obs.idle imply x<=3 X nunca ultrapassa o limite
Facilidades Uppaal ainda permite a utilização de diversas estruturas como arrays bem como a possibilidade de implementar funções e procedimentos onde é executar cálculos e verificações mais complexas (Sintaxe C++). Simulação e geração de Traces permite permite um fast debugging do modelo.
Obrigado !!!! For More : www.uppaal.org