A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.

Apresentações semelhantes


Apresentação em tema: "Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2."— Transcrição da apresentação:

1 Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2

2 http://www.di.ufpe.br/~phmb/CSPZ/ Detalhes sobre o curso

3 Revisando a motivação A modelagem de aplicações reais pode exigir o uso de vários paradigmas/linguagens/formalismos –Exemplo: sistemas embarcados “Linking Theories and Tools” é uma tendência –Convergência e complementaridade de abordagens Verificação de modelos (model-checking) – verificação totalmente automática é largamente aceita, na prática, pela indústria

4 Contexto e escopo Uma modelagem pode incluir vários aspectos ortogonais: –controle (possivelmente envolvendo concorrência) –dados –tempo real –probabilidade O curso aborda controle (CSP), dados (Z) e a integração destes (CSP-Z)

5 Z Especificação dos aspectos sequencias Quais são as operações e o que elas fazem? Implementação detalha como a operação é realizada Especificação Formal CSP Especificação dos aspectos concorrentes Quando as operações podem ser executadas e em que ordem? Implementação garante que a ordem de execução é satisfeita

6 Integação (CSP-Z) Extensão conservativa de CSP e (parcial) de Z –sintaxe –semântica –refinamento Ferramentas –Z-Eves verificação sintática e prova de propriedades e refinamento da parte em Z –FDR com extensão da estratégia de verificação para CSP-Z

7 Uma especificação pode ser vista como uma classe, com atributos (componentes de estado) e métodos (operações) –Z é Baseada em teoria de conjuntos e lógica de primeira ordem (cálculo de predicados) –Modelos (tipos) como conjuntos, relações, funções e seqüências permitem capturar entidades de forma abstrata e concisa –A descrição de operações usando predicados permite foco nas propriedades –Mas não há como capturar aspectos de controle (ordem de execução das operações) Z

8 Qual o fluxo de controle (em que ordem as operações são executadas)? CSP Qual o estado (atributos e tipos) e qual o efeito de cada operação no estado? Z Especificação Relógio tictac() cuco()

9 Especificação em CSP A cada minuto, o relógio faz tictac e, a cada 60 minutos, o cuco aparece Relogio (60) = cuco -> Relogio (0) Relogio (min) = tictac -> Relogio (min + 1) Mas nem sempre a estrutura de dados é tão trivial assim e CSP dispõe de tipos de dados muito restritos

10 Especificação em CSP Uma possível estratégia é especificar apenas a parte de controle em CSP Relogio = tictac -> Relogio [] cuco -> Relogio Mas como escolher entre os eventos tictac e cuco baseado no valor da hora (minutos)?

11 Implementação A estrutura de dados do exemplo pode ser implementada, por exemplo, como uma classe em Java... class Relogio { int min; void tictac() {if (min < 60) min = min + 1;} void cuco() {if (min == 60) min = 0;} Relogio() {min = 0}; }

12 Especificação em Z... Ou especificada em uma linguagem como Z Relogio min: Z tictac  Relogio min < 60 min’ = min + 1 cuco  Relogio min = 60 min’ = 0 init Relogio’ min’ = 0

13 Especificação em CSP-Z Combina controle (CSP) com dados (Z) com-tictac  State min < 60 min’ = min + 1 com-cuco  State min = 60 min’ = 0 init State’ min’ = 0 State min: N spec Relogio channel tictac, cuco: [] main = tictac -> main [] cuco -> main end_spec Relogio

14 Qual o fluxo de controle (em que ordem as operações são executadas)? CSP Qual o estado (atributos e tipos) e qual o efeito de cada operação no estado? Z Especificação

15 class Conta { private double saldo; private String numero; Conta (String n) {numero = n; saldo = 0;} void credito(double valor) {saldo = saldo + valor;} void debito(double valor) {saldo = saldo - valor;} String numero() {return numero;} double saldo() {return saldo;} } Implementação

16 Exercício Especifique Conta primeiro em CSP, considerando tanto controle quanto dado Em seguida, ignore a parte de dados e refaça a especificação em CSP A partir da implementação dada em Java, especifique a parte de dados em Z Combine as duas partes em uma especificação CSP-Z

17 Bibliografia Todas disponíveis na WEB, veja: http://www.di.ufpe.br/~phmb/CSPZ/Referencias.htm The Z Notation, A Reference Manual, J. M. Spivey, Prentice Hall Using Standard Z: Specification, Refinement and Proof, J. Woodcock & J. Davies, Prentice Hall The Z/Eves Reference Manual, M. Saaltink, Ora Canada Combining CSP and Z, C. Fischer, University of Oldenburg Model-Checking CSP-Z, A. Mota & A. Sampaio homepage do curso da graduação –http://www.di.ufpe.br/~acas/mf


Carregar ppt "Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2."

Apresentações semelhantes


Anúncios Google