UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox)...

Post on 07-Apr-2016

228 views 2 download

Transcript of UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox)...

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