1 / 15

Aula Prática: A Ferramenta Possum

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

jaclyn
Download Presentation

Aula Prática: A Ferramenta Possum

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Roteiro • Características gerais • Escrevendo especificações em LaTeX • Exemplo • Como utilizar o sistema • Executando especificações

  3. Caracterí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;

  4. Escrevendo especificações Z em LaTeX • LaTeX é uma linguagem para criar documentos, tal como a linguagem implícita do WORD • Especificações Z usam símbolos gráficos especiais:D, X, Þ, 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

  5. \begin{zed} \forall x, y, z: \nat @ \\ \t1 x>y \land y>z \implies x>z \end{zed} º " x, y, z: IN · x>y ^ y>z Þ x>z \begin{axdef} C:T \where P(C) \end{axdef} C:T º P(C) \begin{schema}{Nome[Par]} \Delta Estado \where var1’=exp1 \\ var2’=var2 \end{schema} Nome[Par] DEstado º var1’=exp1 var2’=var2 Elementos de Z em LaTeX

  6. Esqueleto Básico de Especificação(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}

  7. Resultado 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 ser visualizado da seguinte forma: ulysses>xdvi espec Pode-se gerar espec.ps de espec.dvi para imprimir ou visualizar: Visualização ulysses>ghostview espec.ps Conversão ulysses>dvips espec Impressão ulysses>lpr -Pxerox espec.ps

  8. s : |P Pessoa # s  limite D Estado p?: Pessoa #s < limite p? Ï s s’ = s U {p?} Consulta X Estado p?: Pessoa ap!: Msg (p? Î s ^ ap! = PRESENTE) v (p? Ï s ^ ap! = AUSENTE) Exemplo: Controle de Acesso ESTADO INICIALIZAR [Pessoa] Estado’ limite == 3 s’ = {} INCLUSAO Msg ::= AUSENTE | PRESENTE EXCLUSAO D Estado p?: Pessoa p? Î s s’ = s \ {p?}

  9. Especificaçã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

  10. Esqueleto Básico de Especificação(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}

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

  12. Condiçõ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

  13. Executando 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?} >>

  14. Executando 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). Ctrle 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

  15. Exercícios 1) Incluir os seguintes elementos no conjunto: “joao”, “maria”, “pedro” executando a INCLUSAO 2) Tentar incluir mais um elemento 3) Verificar se “maria” está presente executando a operação CONSULTA 4) Deletar “joao” executando EXCLUSAO 5) Deletar “carla” executando EXCLUSAO 6) Especificar uma nova operação para remoção randômica 7) Carregar a especificação e tentar executar esta operação 8) Definir PESSOA como um registro, com atributos matrícula, nome, redefinir as operações de inclusão, exclusão e consulta

More Related