View
16
Download
0
Category
Preview:
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
Aula Prática:Aula Prática:A Ferramenta PossumA Ferramenta Possum
Métodos Formais
Augusto Sampaio
RoteiroRoteiro
Características gerais Escrevendo especificações em
LaTeX Exemplo Como utilizar o sistema Executando especificações
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;
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
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}
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}
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
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
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
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}
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
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
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?} >>
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
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
Recommended