uppaal model checker overview by valerio rosset. uppaal uppaal é : – uma ferramenta (toolbox)...

27
UPPAAL Model Checker Overview by Valerio Rosset

Upload: mateus-chaves-lemos

Post on 07-Apr-2016

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

UPPAAL Model Checker

Overview

by Valerio Rosset

Page 2: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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

Page 3: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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 …

Page 4: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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

Page 5: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Arquitetura do Uppaal

Page 6: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Ferramenta Uppaal

Interface de Modelação

Page 7: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Ferramenta Uppaal

Interface de Simulação

Page 8: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Ferramenta Uppaal

Interface de Verificação

Page 9: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Modelagem

Locations: – Normal, Initial, Urgent and Committed (ações atómicas)

Edges (guards, sincronizadores, updates)

Page 10: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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.

Page 11: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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).

Page 12: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Exemplo 1: Lâmpada

Autómato Lampada

Page 13: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Exemplo 1: Lâmpada

Autómato Utilizador

Page 14: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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.

Page 15: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Tempo no Uppaal

Page 16: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Tempo no Uppaal

Page 17: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Tempo no Uppaal

Page 18: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Tempo no Uppaal

Page 19: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Simulação no Uppaal

Simulando o Exemplo da Lâmpada

Page 20: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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).

Page 21: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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

Page 22: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Propriedades

Safety : “Coisas ruins nunca ocorrem”. Dado um estado P, o mesmo precisa ser sempre satisfeito em todos os caminhos.– A[] P

Page 23: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Propriedades

Liveness : “Alguma coisa eventualmente acontece”. Dado um estado P, o mesmo é eventualmente satisfeito em todos os caminhos. – A <> P

Page 24: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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

Page 25: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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

Page 26: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

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.

Page 27: UPPAAL Model Checker Overview by Valerio Rosset. Uppaal Uppaal é : – Uma ferramenta (Toolbox) para verificação formal de sistemas de tempo real … Desenvolvido:

Obrigado !!!!

For More : www.uppaal.org