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

Slides:



Advertisements
Apresentações semelhantes
Especificação de Processos
Advertisements

Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
CÁLCULO DA INVERSA DA BASE
Introdução Redes LAN - abrangência: edifícios e campos.
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
Estrutura de Dados em Java
Prof. Roberto Cristóvão
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA
Prof. Alfredo Parteli Gomes
UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Cálculo Numérico / Métodos Numéricos
Cálculo Numérico / Métodos Numéricos
Aulas 9,10 Fábio Nakano.
Interpretador Python.
Especificação de Processos e Dicionário de Dados
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Conjuntos (continuação)
Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de.
Esquemas e suas operações n Forma geral: Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado ^ n Esquemas são estruturas que agrupam variáveis.
Teoria das Relações (cont.)
Aula Prática: A Ferramenta Possum
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)
Adalberto Farias Alexandre Mota
Curso Prático de Métodos Formais
Projeto de Banco de Dados
Projeto de Software Joabe Jesus Engenharia de Software e Sistemas.
propriedades rose, roze, z-eves
Escolha o fundo e a cor das letras
Especificação de um Mecanismo Autonômico em CSP Adalberto R. Sampaio Junior Doutorado – Cin/UFPE.
Baseado no material do Professor Raul Paradeda
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Pontifícia Universidade Católica de Goiás Departamento de Engenharia
ANÁLISE DE SISTEMAS 1Trabalho elaborado por Alexandra.
PROCESSAMENTO DIGITAL DE IMAGENS
Campus de Caraguatatuba Aula 16: Sistemas de Equações Lineares (4)
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.
Prof. Guilherme Amorim 07/01/2014
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores De Escolha e Leis Algébricas.
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
Object Constraint Language Philip Stephen Medcraft.
Refinamento rose, roze, z-eves. introdução refinamento em diagramas UML Roze, Z-Eves.
Revisão básica Distribuição normal: conhecido o valor de z, podemos dizer qual a probabilidade de encontrar valores entre quaisquer dois números. Por.
Capítulo 9: SAD orientado a Modelo
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
Comparando Médias 1. Se um conjunto de medidas(amostra) faz parte de uma população. 1.1 Desvio padrão da população conhecido(teste –z) 1.2 Desvio padrão.
CSP-Z e sua Verificação
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação Usando Conjuntos.
Expansão dos Casos de Uso
Especificação Formal de Software
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
Adalberto Farias Alexandre Mota Augusto Sampaio
Introdução a Lógica Matemática
Introdução à Engenharia de Computação
Engenharia de Software com o RUP - Workflow de Requisitos
Interpolação Polinomial: Introdução; Lagrange.
Abstração de Processos Infinitos em CSP Z : Tratando Comunicação e Instabilidade Aluno: Adalberto Cajueiro de Farias Orientador: Alexandre Mota Co-Orientador:
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Interpolação PROF. HERON JR.. Objetivo  Interpolar uma função f(x) consiste em aproximar essa função por uma outra função g(x), escolhida entre uma classe.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
Controle de Sistemas Dinâmicos Sistemas de Controle - Implementação analógica Fevereiro Departamento de Eletrotécnica MA9 - Análise pelo método.
Tarefa Autor: Skyup Informática. Atividade – Tarefa O módulo atividade tarefa tem como principio básico a interação professor-aluno. Os alunos podem apresentar.
SEMÂNTICA DENOTACIONAL Alexandre Mota
Transcrição da apresentação:

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

Tópicos Abordados l Exemplo: A Tabela de Símbolos (TS) l Pré-condições: Estruturando l Provando Refinamentos –Mesmo Estado –Estados Diferentes

Exemplo: A Tabela de Símbolos [VAL,SYM] State st: ST Delete  State s?: SYM s?  dom(st) st’={s?} st ST == SYM VAL NotPresent  State s?: SYM rep!: Report s?  dom(st) rep!=Symbol_not_present Report ::= Ok | Symbol_not_present Success = [rep!:Report | rep!=Ok] ^ StDelete = (Delete  Success)  NotPresent ^ Update  State s?: SYM v?: VAL s?  dom st st’ = st  {s?  v?}

Pré-condição: Estruturando Disjunções:  - or. Por exemplo, considere StDelete: pre StDelete  pre Delete  pre NotPresent A estruturação é realizada a partir do cálculo intermediário das pré-condições envolvidas. Para o exemplo acima temos: theorem preStDelete  State; s?:SYM; v?: VAL  pre Delete  pre NotPresent Passos da prova: 1. try lemma preStDelete; 2. cases; (cálculos intermediários) 3. prove by reduce; 4. next; (próximo predicado) 5. prove by reduce; (2 objetivo) 6. next; (objetivo OU) 7. prove by reduce; (objetivo final)

Refinamento de Operações (Mesmo Estado) l Verificar se operações compostas refinam operações simples; l As obrigações são: a aplicabilidade e a corretude. l Há simplificação dos teoremas pois o esquema Retrieve é a relação identidade Delete StDelete ??? theorem aplicMesmoEstado pre Delete  pre StDelete theorem corrMesmoEstado pre Delete  StDelete  Delete

Estratégia para Refinamento l Os teoremas de refinamento usam as pré-condições mais de uma vez; l Portanto, neste caso é interessante guardar o resultado; l Desta forma, deve-se calcular as pré-condições; l Armazenar os resultados obtidos como esquemas; l Introduzir estes resultados nas obrigações de prova. \begin{schema}{Delete}... \end{schema} \begin{schema}{preDeleteRes}... \end{schema} \begin{theorem}{aplicacao}... preDeleteRes... \end{theorem}

Refinamento de Dados (funcional) l No caso geral, é necessário estabelecer uma relação entre os dois estados (abstrato e concreto); l Aqui, consideraremos que esta relação é sempre funcional. Inicialização: Cinit  Retr’  Ainit Aplicabilidade: pre Aop  Retr  pre Cop Corretude: pre Aop  Retr  Cop  Retr’  Aop

Refinamento de Dados (Geral) l Propor um novo estado; l Propor um esquema Retrieve; l Propor refinamentos para as operações; l Construir as obrigações de prova como teoremas; l Provar os teoremas.

Refinamento de Dados (Exemplo 1) Retrieve1 State State1 st = ran st1 State1 st1: seq(SYM  VAL) Update1  State1 s?: SYM v?: VAL s?  dom(ran st1) st1’ = st1 ^  (s?, v?)  A estratégia geral para o cálculo de refinamento é calcular as pré-condições envolvidas e usar estes resultados nos teoremas de aplicabilidade e corretude.

Refinamento de Dados (Exemplo 1 - continuação) l Calcular a pré-condição de Update e de Update1; l Armazenar como esquemas; l Usar esquema em teoremas. Exemplo: Calcular SymtabA SymtabC, considerando simplesmente as operações Update e Update1 preUpdateRes State s?: SYM v?: VAL s?  dom st preUpdate1Res State1 s?: SYM v?: VAL s?  dom (ran st1)

Refinamento de Dados (Exemplo 1 - continuação) theorem inicializacao Init1 \land Retr1’ \implies Init theorem aplicacao preUpdateRes \land Retr1 \implies preUpdate1 theorem corretude preUpdateRes \land Retr1 \land Update1 \land Retr1’ \implies Update

Refinamento de Dados (Exemplo 2) State b: bag IN find  State n?: IN rep!: Report n?  dom b rep! = Yes State1 s: seq IN find1  State1 n?: IN rep!: Report n?  ran s rep! = Yes Especificação Abstrata Especificação Concreta Report ::= Yes | No

Refinamento de Dados (Exemplo 2 - Escolha do Retr) Retr1 State State1 Alternativa 1: b = items s Retr2 State State1 Alternativa 2: dom b = ran s  n  dom b  b(n) = #(s |` {n})