• Nenhum resultado encontrado

Verificação de modelos clássica

A verificação de modelos clássica (CMC - Classical Model-Checking) (LARSEN; PETTERSSON; YI, 1995) é uma abordagem que usa algoritmos matemáticos executados automaticamente por uma ferramenta computacional para verificar a corretude de um sistema de acordo com requi- sitos especificados. Basicamente, o projetista dispõe como dados de entrada para a ferramenta, a descrição do modelo do sistema, que representa o possível comportamento do sistema real, e uma descrição da especificação dos requisitos, que representa o comportamento desejado. En- tão, a ferramenta verifica se as propriedades requisitadas são satisfeitas para um determinado estado inicial do modelo, e fornece tais resultados para o projetista. Uma propriedade muito importante da verificação de modelos é a sua capacidade de fornecer um contra-exemplo, que indica a situação na qual os requisitos foram violados. Desse modo, o projetista pode usar essa informação para corrigir erros no sistema. Um diagrama de blocos com a metodologia da verificação de modelos está representada na Figura 3.13.

Os algoritmos de verificação de modelos são baseados na pesquisa exaustiva do espaço de estados. Desse modo, um modelo de estados finito é requisitado e o sistema pode ser verifi- cado apenas para um conjunto fixado de parâmetros. O problema dessa técnica é a explosão do espaço de estados, que pode resultar na necessidade de alocar uma quantidade de memória

Sistema Requisitos Modelo do Sistema Especificação dos Requisitos Modelagem Formalização Verificador Contra Exemplo OK

Figura 3.13: Diagrama de blocos com a metodologia da verificação de modelos.

superior a disponível pelo computador que executa a ferramenta. Portanto, é crucial construir modelos compactos. Essa abordagem será utilizada para estudar sistemas modelados em autô- matos temporizados.

3.5.1

Autômatos temporizados

A teoria de autômatos temporizados foi desenvolvida por Alur e Dill ((ALUR; DILL, 1990) e (ALUR; DILL, 1994)) para modelar sistemas em tempo real. Uma versão simplificada, chamada de autômatos seguros temporizados (HENZINGER et al., 1994), foi introduzida para especificar propriedades de progresso usando condições chamadas de invariantes locais. Devido a sua sim- plicidade, autômatos seguros temporizados (doravante chamados de autômatos temporizados) foram adotados em várias ferramentas de verificação tais como, UPPAAL. A seguir, serão apre- sentados algumas definições de autômatos temporizados. Essas definições foram extraídas de Berhmann, David e Larsen (2004) e Bengtsson e Yi (2004).

Em sua essência, um autômato temporizado é um autômato de estados finito (que é um grafo contendo um conjunto finito de lugares e um conjunto finito de bordas rotuladas) que considera quantitativamente o tempo na transição dos estados. A progressão do tempo ocorre de acordo com um conjunto finito de relógios sincronizados na mesma taxa, onde os quais usam o modelo de tempo denso, ou seja, os valores dos relógios são números reais. Os valores dos relógios podem ser comparados com números inteiros e podem ser resetados quando uma transição for realizada (BENGTSSON; YI, 2004).

Sintaxe de autômatos temporizados

Considere um conjunto de relógios X com um conjunto de restrições B(X). As restrições dos relógios consistem de equações definidas por,

α ::= x ∼ c | x − y ∼ c | ¬α | (α ∧ α)

Onde: x, y ∈ X; c ∈ N; ¬ é o operador lógico proposicional que significa negação (não); ∧ é o operador lógico proposicional e9, e ∼ é um dos seguintes símbolos {≤, ≥, =, <, >}.

Definição 7 (Autômatos temporizados) Um autômato temporizado é uma 6-tupla

{Le, l0, X, Ac, E, I}, onde: Le é um conjunto finito de lugares (estados); l0 é o lugar inicial;

X é o conjunto de relógios; Ac é um conjunto de ações; E ⊆ Le× Ac × B(X) × 2X × Le

é um conjunto de bordas10. Desse modo, pode-se representar a transição de um lugarl para um lugarl′

, considerando o conjuntol, a, g, r, l′

∈ E, como l −−→ la,g,r ′

, onde: a é uma ação (canal de sincronização), que fornece sincronização entre autômatos, possibilitando formar uma rede de autômatos temporizados;g é uma restrição de tempo chamada de guarda e r é um conjunto de relógios a serem resetados; e I : Le → B(X) é uma função que atribui a

cada lugarLerestrições de tempoB(X), chamadas de invariantes de estado. Essas restrições

devem ser satisfeitas quando o sistema estiver nesses lugares.

Semântica de autômatos temporizados

Uma avaliação do relógio é uma função u : X → R≥0 a partir do conjunto de relógios X para

os reais não-negativos. RX denota o conjunto de todas as avaliações dos relógios. A avaliação

inicial u0(x) = 0 para todo x ∈ X. Considera-se na notação, guardas e invariantes no conjunto

de avaliações dos relógios. Então, u ∈ g significa que os valores dos relógios sob avaliação u satisfazem o guarda g ∈ B(X), e u ∈ I(l) significa que os valores dos relógio sob avaliação u satisfazem a invariante no lugar l.

A semântica é definida como um sistema de transição, onde um estado consiste do lugar atual (l) e dos valores atuais dos relógios (u), ou seja, do par (l, u). Existem dois tipos de transição entre estados: transição por ação (ocorre quando uma borda habilitada é executada) e transição por tempo (ocorre quando o lugar permanece o mesmo e o valor do relógio é incre- mentado).

Definição 8 (Semântica de Autômatos Temporizados) Considere um autômato

temporizado (Definição 7). A semântica é um sistema de transição rotuladahSe, se0, →i, onde

9Por exemplo, considere que n é um número natural, n < 4 ∧ n > 2 ⇔ n = 3.

Se ⊆ Le × RC é o conjunto de estados,se0 = (l0, u0) é o estado inicial, e →⊆ Se× {R≥0∪

Ac} × Seé a relação de transição tal que11:

• (l, u)−→ (l, u + d) se para todo dd ′ : 0 ≤ d′ ≤ d ⇒ u + d′ ∈ I(l), e • (l, u)−→ (la ′ , u′ ) se existe l −−→ la,g,r ′ ,u ∈ g, u′ = [r 7→ 0]u e u′ ∈ I(l),

onded ∈ R≥0, u + d mapeia cada relógio x em C para o valor u(x) + d, e [r 7→ 0]u denota

a avaliação do relógio que mapeia cada relógio emr para 0 e mantém u para o conjunto de relógiosX\r12.

Redes de autômatos temporizados

Autômatos temporizados podem ser compostos por uma rede de autômatos temporizados atra- vés de um conjunto comum de relógios e ações, consistindo de n autômatos temporizados Ai = {Lei, l

0

i, X, Ac, Ei, Ii}, onde 1 ≤ i ≤ n. Um vetor de lugares é um vetor ¯l = (l1,...,ln).

As funções invariantes são compostas em uma função comum por meio de vetores de lugares I(¯l) = ∧iIi(li). Usaremos ¯l[l

i\li] para denotar o vetor onde o ith elemento lide ¯lfoi substituído

por l′

i.

Definição 9 (Semântica da Rede de Autômatos Temporizados) Considere uma rede de autômatos temporizadosAi = {Lei, l

0

i, X, Ac, Ei, Ii} com n autômatos temporizados.

Seja ¯l0 = (l01,...,l0n) o vetor lugar inicial. A semântica é definida como um sistema de transição

hSe, se0, →i, onde Se = (Le1 × ... × Len) × R

X é o conjunto de estados,s

e0 = (¯l0, u0) é o

estado inicial, e→⊆ Se× Seé a relação de transição definida por:

• (¯l, u) → (¯l, u + d) se para todo d′ : 0 ≤ d′ ≤ d ⇒ u + d′ ∈ I(¯l); • (¯l, u) → (¯l[l′ i\li], u ′ ) se existe li a,g,r −−→ l′ i tal queu ∈ g, u ′ = [r 7→ 0]u e u′ ∈ I(¯l); • (¯l, u) → (¯l[l′ j\lj, l ′ i\li], u ′ ) se existe li c?,gi,ri −−−−→ l′ i e lj c?,gj,rj −−−−→ l′ j tal que u ∈ (gi ∧ gj), u′ = [ri∪ rj 7→ 0]u e u ′ ∈ I(¯l).

11∪ é o operador da teoria de conjuntos que significa união. Por exemplo, A ∪ B é um conjunto que contém

todos os elementos de A e B.

12\ é o operador da teoria de conjuntos que significa exceto. Por exemplo, A\B é o conjunto que contém todos

Representação simbólica do espaço de estados

Uma vez que os relógios são variáveis que assumem valores reais, o espaço de estados de um autômato temporizado é infinito. Para possibilitar a verificação do modelo, abstrações espe- cíficas tais como, regiões e zonas, foram definidas para resolver esse problema, gerando um modelo de estados finito. Especificamente, a ferramenta UPPAAL usa o conceito de zonas nor- malizadas que são representadas e armazenadas em memórias como DBMs (Difference Bound Matrices). Detalhes sobre esses conceitos são apresentados em Bengtsson e Yi (2004).