15
Aula Prática: Aula Prática: A Ferramenta Possum A Ferramenta Possum Métodos Formais Augusto Sampaio

Aula Prática: A Ferramenta Possum

  • Upload
    jaclyn

  • View
    16

  • Download
    0

Embed Size (px)

DESCRIPTION

Aula Prática: A Ferramenta Possum. Métodos Formais Augusto Sampaio. Roteiro. Características gerais Escrevendo especificações em LaTeX Exemplo Como utilizar o sistema Executando especificações. Características gerais. Animador de especificações escritas em SUM (padrão) ou na notação Z - PowerPoint PPT Presentation

Citation preview

Page 1: Aula Prática: A Ferramenta Possum

Aula Prática:Aula Prática:A Ferramenta PossumA Ferramenta Possum

Métodos Formais

Augusto Sampaio

Page 2: Aula Prática: A Ferramenta Possum

RoteiroRoteiro

Características gerais Escrevendo especificações em

LaTeX Exemplo Como utilizar o sistema Executando especificações

Page 3: Aula Prática: A Ferramenta Possum

Características geraisCaracterísticas gerais

Animador de especificações escritas em SUM(padrão) ou na notação Z

As seguintes facilidades são oferecidas:– Análise sintática, incluindo vários sintaxes :

sum, zed.sty, oz.sty, email lexis;– Checagem de tipos – tradutor entre as sintaxes;– Avaliação de expressões e predicados;

Page 4: Aula Prática: A Ferramenta Possum

Escrevendo especificações Z em Escrevendo especificações Z em LaTeXLaTeX

LaTeX é uma linguagem para criar documentos, tal como a linguagem implícita do WORD

Especificações Z usam símbolos gráficos especiais: , , , etc

LaTeX substitui os símbolos por macros: \Delta, \Xi, \implies, etc.

Arquivo LaTeX pode ser processado por ferramentas para visualizar e/ou imprimir a especificação

Page 5: Aula Prática: A Ferramenta Possum

Elementos de Z em LaTeXElementos de Z em LaTeX

x, y, z: IN x>y ^ y>z x>z

\begin{zed} \forall x, y, z: \nat @ \\ \t1 x>y \land y>z \implies x>z\end{zed}

\begin{axdef} C:T\where P(C)\end{axdef}

C:T

P(C)

Nome[Par]Estado

var1’=exp1var2’=var2

\begin{schema}{Nome[Par]} \Delta Estado\where var1’=exp1 \\ var2’=var2\end{schema}

Page 6: Aula Prática: A Ferramenta Possum

Esqueleto Básico de EspecificaçãoEsqueleto Básico de Especificação(geração de Postscript)(geração de Postscript)

\documentstyle[zed]{article}% Ajustes do documento: margens, topo, etc. \begin{document}

\section{Tipos}

Os {\sl given sets} abaixo representam o conjunto de valores e s\’{\i}mbolos usados pela especifica\c{c}\~{a}o da tabela de s\’{\i}mbolos.

\begin{zed} [VAL,SYM] \end{zed}

\end{document}

Page 7: Aula Prática: A Ferramenta Possum

Resultado de um Documento LaTeXResultado de um Documento LaTeX Pode-se processar (compilar) um documento LaTeX para obter um documento de visualização. Por exemplo:

ulysses> latex espec.zed

Do comando acima obtém-se o arquivo espec.dvi, que pode servisualizado da seguinte forma:

ulysses> xdvi espec

Pode-se gerar espec.ps de espec.dvi para imprimir ou visualizar:

ulysses> dvips espec

Conversão

Visualização

ulysses> ghostview espec.ps

Impressão

ulysses> lpr -Pxerox espec.ps

Page 8: Aula Prática: A Ferramenta Possum

Exemplo: Controle de AcessoExemplo: Controle de Acesso

[Pessoa]

Estadop?: Pessoap? s s’ = s \ {p?}

limite == 3

Msg ::= AUSENTE | PRESENTE

ConsultaEstadop?: Pessoaap!: Msg

(p? s ^ ap! = PRESENTE) v(p? s ^ ap! = AUSENTE)

s : |P Pessoa

# s limite

Estadop?: Pessoa

#s limite p? ss’ = s U {p?}

INICIALIZAREstado’

s’ = {}

ESTADO

INCLUSAO

EXCLUSAO

Page 9: Aula Prática: A Ferramenta Possum

Especificação modo PossumEspecificação modo Possum

Possível inclusão de cabeçalhos, e.g.– \section {Nome da seção}– \subsection {Nome da subseção}– \subsubsection {Nome da subsubseção}

Dispense o uso de ajustes de documento para impressão PostScript

Na ferramenta apenas declarações e/ou cabeçalhos

Page 10: Aula Prática: A Ferramenta Possum

Esqueleto Básico de EspecificaçãoEsqueleto Básico de Especificação(Possum)(Possum)

\section{Tipos}

\begin{zed} [VAL,SYM] \end{zed}

\section{Estado do Sistema}

\begin{schema}{ESTADO} s_1 : X \\ s_2 : Y\where Predicado\end{schema}

Page 11: Aula Prática: A Ferramenta Possum

Como utilizar o sistema Como utilizar o sistema

Programa executado no Linux. A especificação a ser processada deverá ser escrita em

LaTeX (com as macros definidas no estilo zed.sty). No menu Dialogs selecione a operação Parameters.

Na janela que se abrirá modifique o campo Syntax de sum(padrão) para o formato zed

Para abrir um arquivo(leitura/edição) escolha o menu Files/Open e selecione o arquivo

O menu Files/Read Spec... carrega um arquivo no interpretador Possum

Page 12: Aula Prática: A Ferramenta Possum

Condições de ExecutabilidadeCondições de Executabilidade

É preciso indicar explicitamente o esquema que representa o estado e a inicialização na janela Possum Parameters

campo State Schema: nome do esquema - estado campo Init Schema: nome do esquema de inicialização

Valores atribuídos a variáveis do tipo Given Set devem ser colocados entre aspas

Voltar a sintaxe para sum, para melhor visualização Após carregar o arquivo, invocar a operação de

inicialização do esquema-estado

Page 13: Aula Prática: A Ferramenta Possum

Executando EspecificaçõesExecutando Especificações

Como executar um esquema:– menu Dialogs/Compound: escolher o esquema – escolher opção Invoke para executar o esquema

Os esquemas delta: as varíáveis de entrada recebem valores, não importando a ordem:– NomeDoEsquema (sem váriáveis de entrada)– NomeDoEsquema {Valor1/var1?, Valor2/var2?}

O esquema operação de consulta(produz uma saída) :– NomeDoEsquema >> (sem variáveis de entrada)– NomeDoEsquema {Valor1/var1?, Valor2/var2?} >>

Page 14: Aula Prática: A Ferramenta Possum

Executando EspecificaçõesExecutando Especificações

Os comandos correspondentes são exibidos na linha de comando do interpretador

O comando Ctrl Enter envia a consulta(declaração/ predicado/operação/expressão). Ctrle Ctrl permitem recuperar os últimos comandos

Ao avaliar uma declaração de um arquivo zed, se declaração for bem sucedida, passa com Yes.

Caso contrário emite uma mensagem apontando o erro na notação, ou a mensagem Whatever(falha na interpretação). No solution: predicado foi quebrado, resultou false

Page 15: Aula Prática: A Ferramenta Possum

ExercíciosExercícios1) Incluir os seguintes elementos no conjunto: “joao”, “maria”, “pedro” executando a INCLUSAO2) Tentar incluir mais um elemento3) Verificar se “maria” está presente executando a

operação CONSULTA4) Deletar “joao” executando EXCLUSAO5) Deletar “carla” executando EXCLUSAO6) Especificar uma nova operação para remoção

randômica7) Carregar a especificação e tentar executar esta

operação8) Definir PESSOA como um registro, com atributos

matrícula, nome, redefinir as operações de inclusão, exclusão e consulta