UPPAAL
Model Checker
Overview
by Valerio Rosset
Uppaal

Uppaal é :
–

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
–
–
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:
–

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
Download

Ferramenta Uppaal