Curso Prático de Métodos Formais

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Banco de Dados Prof. Antonio.
Triggers Renata Viegas.
Banco de Dados SQL TRIGGERS (Gatilhos)
Algoritmos.
©Silberschatz, Korth and Sudarshan (modificado)1Database System Concepts result := {R}; done := false; calcular F+; while (not done) do if (há um esquema.
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Visões Marilde Santos.
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Métodos de Classificação por Seleção: HeapSort
Curso de PHP O comando // serve para comentário linear no php
FLG Análise Espacial e Geoprocessamento
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
O latch RS QN (QN)inv 1 S R QN+1 (QN+1)inv
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Banco de dados Profª Kelly Medeiros.
João Lucas de Oliveira Torres
Ada.
Estruturas de Controlo em Pascal
Aula R Prof. Naércio Filho Técnico em Informática
Python: Exceções, Iteradores e Geradores
Teorema Fundamental do Cálculo –T.F.C.
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
O Portal do Estudante de Computação
Primeira aula de PL/SQL Parte II
Profº Cláudio Barbosa VBScript – Estrutura condicional  Estrutura condicional simples Sintaxe if condição then comando.
POWER POWER POINT POINT.
Aula Prática: A Ferramenta Possum
DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram.
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Refinamento de Dados Estende o refinamento de operações –O estado da especificação abstrata pode ser diferente do concreto –Viabiliza a troca de tipos.
Curso Prático de Métodos Formais Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)
Estrutura de Decisão e Repetição
Anotando Diagramas de Classe com o Rose Engenharia de Software e Sistemas.
Projeto de Software Joabe Jesus Engenharia de Software e Sistemas.
propriedades rose, roze, z-eves
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
UNIDADE 2: Sistema Operativo em Ambiente Gráfico
Especificação de um Mecanismo Autonômico em CSP Adalberto R. Sampaio Junior Doutorado – Cin/UFPE.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Programação e Aplicações Gráficas
Métodos Formais.
Programação de Autómatos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Modelos de sistema: Larch Linguagem de especificação algébrica: Larch Arthur Bispo de Castro ra Luciano Antonio Digiampietri ra
Programação Lógica com Prolog
MatLab (Matrix Laboratory)
Aula Prática: A Ferramenta ZANS
Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar.
Iº Workshop Linux da Unijorge
Curso Prático de Métodos Formais Revisando Pré-Condições e Provando Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)
Teste Simbólico Execução do programa com dados simbólicos ao invés de dados reais Técnica de poio à seleção de dados para o teste estrutural.
Object Constraint Language Philip Stephen Medcraft.
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
Introdução à Programação
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
VBA – Visual Basic para Aplicativos
Programação estruturada unidade 2
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Variáveis, expressões e comandos Dilvan Moreira. Lembrando …  Instalação normal (para utilizar no PC com Windows) 
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
SEMÂNTICA DENOTACIONAL Alexandre Mota
Unidade 1 – Portas Lógicas Básicas – NOR, NAND, XOR e XNOR.
Transcrição da apresentação:

Curso Prático de Métodos Formais Calculando Pré-Condições e Provando Propriedades de Especificações em Z (Alexandre Mota e Augusto Sampaio)

Tópicos Abordados O Provador de Teoremas Z-EVES A Tabela de Símbolos (TS) Cálculo de Pré-condições: Simples e Compostas Provando Propriedades Propriedades Complexas

O Provador de Teoremas Z-EVES Interpretador Lisp executado no Windows Carrega-se uma especificação através da seqüência: FileÞImport (Menu) O comando reset; (digitado) é usado para poder carregar outra especificação Finalização é feita através de FileÞQuit (Menu) ou quit; (digitado)

Exemplo: A Tabela de Símbolos [VAL,SYM] State st: ST Update D State s?: SYM v?: VAL st’ = st Å {s? ® v?} Delete s? Î dom(st) st’={s?} st ST == VAL SYM NotPresent X State rep!: Report s? Ï dom(st) rep!=Symbol_not_present Report ::= Ok | Symbol_not_present Success = [rep!:Report | rep!=Ok] ^ StDelete = (Delete Ù Success) Ú NotPresent

Calculando Pré-condições try " State;In?:TIn · pre Schema-Name; (Objetivo) Calculando a pré-condição de Delete: => try \forall State; s?:SYM @ \pre Delete; => prove by reduce; st \in SYM \pfun VAL \\ \land s? \in SYM \\ \implies s? \in \dom st st Î SYM ® VAL ^ s? Î SYM Þ s? Î dom st + º Exercício: Calcular a pré-condição de Update e de NotPresent

Pré-condição de Esquemas Compostos Conjunções: Ù - and. Por exemplo, considere StUpdate: pre StUpdate º pre Update Disjunções: Ú - or. Por exemplo, considere StDelete: pre StDelete º pre Delete Ú pre NotPresent pre StDelete \begin{theorem}{preDelete_Or_preNotPresent} (Resultado de pre Delete) \lor \\ (Resultado de pre NotPresent) \end{theorem} Finalmente, try lemma preDelete_Or_preNotPresent; Exercício: Calcular a pré-condição de StLookUp

Provando Propriedades Expressa-se a propriedade desejada através de um teorema; Usa-se o comando try lemma Teorema; Usa-se o comando prove by reduce; Exemplo: Provar que o Esquema StLookUp resulta em Ok, quando s? Î dom st. \begin{theorem}{LookUpOk} \forall StLookUp | s? \in \dom st @ rep!=Ok \end{theorem} 1. try lemma LookUpOk; 2. prove by reduce;

Provando Propriedades Exercício 1: Provar que a composição seqüencial de Update com Delete não altera o estado do sistema quando s? incluído for o mesmo removido. Exercício 2: Provar que a aplicação de Delete quando s? Ï dom st resulta em um estado final indefinido.

Propriedades Complexas As vezes o Z-EVES não consegue reduzir um predicado automaticamente, então: Uso de teoremas do Z-EVES; Criação de novos teoremas; Uso de comandos especiais; etc.

Teoremas do Z-EVES Z-EVES vem com um conjunto de teoremas (arquivo ToolKit.zed); Usa-se o comando apply teorema; Em seguida, o comando prove. Exemplo: Pode-se remover o operador de power set de um predicado aplicando o teorema inPower. => apply inPower; => prove;

Criação de Teoremas A introdução de teoremas é importante: Os teoremas do Z-EVES são insuficientes; Reduzir o número de passos de uma prova. Introduz-se um teorema através do ambiente theorem; Teoremas automáticos são grules(reescrita); \begin{theorem}{grule select_2_1} (x,y).1 = x \end{theorem}

Comandos Especiais O comando split serve para criar um predicado do tipo IF/THEN/ELSE que permite maiores reduções; O comando cases serve para dividir um prova em mais de uma parte. Usa-se com o comando next que passa para a próxima parte da prova; O comando instantiate permite informar ao Z-EVES sobre o valor de um objeto; O manual contém outros comandos.

Conclusão Calcular a pré-condição de StDelete diretamente, ou seja, try pre StDelete; Miscelânea de comandos: apply inPower, split predicado, etc.