CSP-Z e sua Verificação

Slides:



Advertisements
Apresentações semelhantes
(Unified Modeling Language)
Advertisements

INVESTIGAÇÃO OPERACIONAL
Exemplo dos Internamentos
Ney Laert Vilar Calazans
Eletrônica Digital Funções e Portas Lógicas
Uma Ferramenta para Geração Automática de Requisitos a partir de Modelos CSP Glaucia Peres e Alexandre Mota 06/out/2007.
Estilos de Especificação
ÁLGEBRA DE CHAVEAMENTO
Prof. Alfredo Parteli Gomes
Patrícia Muniz Ferreira Sidney Nogueira
VUML Rafael Borges motivação estudar algumas ferramentas desenvolvedores só entendem uml uml não tem semântica bem definida.
Supporting Use Case Based Requirements Engineering David Marques Filipe Garcês Ricardo Cruz.
Circuitos Seqüenciais Contadores
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação 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.
Estudo dos Conceitos e Paradigmas de Programação
Detalhes sobre o curso
DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram.
Alexandre Mota/Augusto Sampaio {acm,
Linguagem Funcional 2 Linguagem Funcional 2 - LF2 Estende LF1 com funções de alta ordem Uma função passa a ser um valor O contexto inclui um único componente:
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.
Alexandre Mota Introdução a CSP Alexandre Mota
Linguagem de Expressões 2
Curso Prático de Métodos Formais Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)
Adalberto Farias Alexandre Mota
CSP: Semântica e Refinamento
Curso Prático de Métodos Formais
Aspectos Psicológicos Inerentes às Relações de Trabalho aula 5
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Compiladores Prof. Claudio Benossi.
Introdução a Banco de Dados Aula 04
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Métodos Formais.
Hardware Description Language Aula 8 –Verilog HDL
Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas.
Aula Prática: A Ferramenta ZANS
A Linguagem Formal de Especificação VDM-SL
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Semântica de Linguagens de Programaçã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)
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores De Escolha e Leis Algébricas.
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
Engenharia de Software
Modelo de Análise e Projeto
AULA 7 – CÁLCULO COM GEOMETRIA ANALÍTICA II
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores Básicos.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Modelos Semânticos e Noções de Refinamento.
Métodos Formais Juan Andrés Mussini.
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha.
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação Usando Conjuntos.
1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
Especificação Formal de Software
Alexandre Mota Breve introdução à CSO (Communicating Scala Objects)
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
Lógica Booleana IES-2015a George Simon Boole ( )
Adalberto Farias Alexandre Mota Augusto Sampaio
Aula Introdutória “Lógica para Computação”
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
MATA56 Tipos, Verificação de Tipos Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave – nomes.
Abstração de Processos Infinitos em CSP Z : Tratando Comunicação e Instabilidade Aluno: Adalberto Cajueiro de Farias Orientador: Alexandre Mota Co-Orientador:
Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,
Desenvolvimento de Software I
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Sincronização Lip Sync Sincronização cursor-voz Entre outras mídias.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
Transcrição da apresentação:

CSP-Z e sua Verificação Alexandre Mota and Augusto Sampaio Motivação A Linguagem CSP-Z Um Exemplo: O Relógio de Parede Verificação Automática de CSP-Z Traduzindo CSP-Z para CSPM

Motivação Combinando Teorias e Ferramentas Capturar todas as propriedades de um sistema Elegância da Especificação Aspectos do sistema em módulos distintos Verificação Automática (Model-Checking) “Provador de teoremas automático”

CSP-Z Integração formal entre CSP e Z Captura tanto aspectos concorrentes quanto de estruturas de dados de um sistema É uma extensão conservativa de CSP e Z, com diferenças mínimas em ambas O refinamento de CSP-Z pode ser obtido pelo de CSP ou o de Z com restrições

Exemplo: Relógio de Parede Dois eventos são visíveis pelo ambiente: ticktack e bird Ao ocorrer ticktack, o contador do relógio aumenta em 1 min Quando o contador atinge 60 min, o relógio volta ao seu estado inicial e mostra um passarinho (bird) counter = 50 counter = 60 counter = 40 counter = 20 counter = 30 counter = 10 counter = 0 Cookoo

Relógio em CSP-Z SOUND ::= Cookoo channel ticktack: [] channel bird: [msg: SOUND] spec Clock end_spec Clock main = ticktack®main € bird!msg®main State [Min:N] = ^ Init [State’|Min’=0] com_ticktack D State Min<60 Min’=Min+1 com_bird State D msg!=Cookoo msg!:SOUND Min=60 Min’=0

Interpretação Operacional de CSP-Z t (evento) Init (esquema de inicialização) e1 (evento) com_e1 (operação) com_en (operação) en (evento) main (processo)

Semântica de CSP-Z (Mudança de estado capturada por Z) P1 (S) enable _e1 Ù pre com_e1 P2 (S;com_e1) e1 enable _e2 Ù pre com_e2 e2 P3 (S;com_e1;com_e2)

Semântica de CSP-Z (Refutações introduzidas por Z) stop (refutada por Z) Ø pre com_e1 P1 (S) Ø pre com_e2 pre com_e1 P2 (S;com_e1) e1 pre com_e2 e2 P3 (S;com_e1;com_e2)

Model-Checking CSP-Z Z em CSP-Z é uma álgebra de processos como CSP CSP-Z é por definição uma comp. paralela de CSP e Z: PCSP-Z = PCSP [|I|] PZ, onde I é a interface de P Model-checking em CSP é refinamento em CSP Portanto, verificar se PCSP-Z satisfaz a propriedade Pr significa perguntar a FDR se: Pr PCSP-Z ou Pr PCSP [|I|] PZ

Traduzindo CSP-Z para CSPM State: parâmetro em processos, P(State) Init: processo de início, Init=main(State0) com_c: função de tipo State´In®State´Out pre com_c: função de tipo State´In®Bool Comunicações: compreensão de conjuntos, envolvendo a pré-condição se necessário Tipos: . . .

... ... ... ... ... Convertendo Z ... State Init com_a1 com_an Z(S) = preCom_a1(S,In1?) & a1Z(com_a1 (S,In1?))  ... preCom_an(S,Inn?) & anZ(com_an (S,Inn?)) -- Definições das operações e pré-condições: com_a1 (S, In1?) = ... com_an (S, Inn?) = ... preCom_a1(S,In1?) = ... preCom_an(S,Inn?) = ... Init ... ... com_a1 ... ... com_an

... Convertendo CSP-Z ... spec P main = ... State Init com_a1 com_an end_spec P spec P main = ... P = let main = ... Z(S) = preCom_a1(S,In1?) & a1Z(com_a1 (S,In1?))  ... preCom_an(S,Inn?) & anZ(com_an (S,Inn?)) -- Definições within main [|{|a1, ..., an|}|] Z(Init)

Tradução do Relógio em CSPM datatype SOUND = Cookoo channel ticktack channel bird: SOUND Clock = let main = ticktackmain [] bird?msgmain Z(Min) = preTickTack(Min) & ticktackZ(com_ticktack(Min)) [] preBird(Min) & bird!snd(com_bird(Min))com_bird(fst(com_bird(Min))) -- Definições das operações e pré-condições com_ticktack(Min) = Min + 1 com_bird(Min) = (0, Cookoo) preTickTack(Min) = (Min < 60) preBird(Min) = (Min == 60) within main [|{|ticktack, bird|}|] Z(0)

Algumas Observações Registros tornam-se tuplas Funções, bags, relações tornam-se conjuntos ou seqüências Uma ! em CSP frente a variável torna-se ? O uso de sub-tipos pode levar o sistema a ter um comportamento diferente