Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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

description

Especificação de Sistemas Distribuídos. Parte 2. Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco. Detalhes sobre o curso. http://www.di.ufpe.br/~phmb/CSPZ/. Revisando a motivação. - PowerPoint PPT Presentation

Transcript of Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

Page 1: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

Paulo Borba e Augusto Sampaio

Departamento de Informática

Universidade Federal de Pernambuco

Especificação de Sistemas Distribuídos

Parte 2

Page 3: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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

Page 4: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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)

Page 5: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

• 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

Page 6: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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

Page 7: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

• 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

Page 8: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

• 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()

Page 9: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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

Page 10: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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)?

Page 11: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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};}

Page 12: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

Especificação em Z

• ... Ou especificada em uma linguagem como Z

Relogiomin: Z

tictacRelogio

min < 60min’ = min + 1

cucoRelogio

min = 60min’ = 0

initRelogio’

min’ = 0

Page 13: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

Especificação em CSP-Z

• Combina controle (CSP) com dados (Z)

com-tictacState

min < 60min’ = min + 1

com-cucoState

min = 60min’ = 0

initState’

min’ = 0

Statemin: N

spec Relogio channel tictac, cuco: [] main = tictac -> main [] cuco -> main

end_spec Relogio

Page 14: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

• 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

Conta

credito(valor) : voiddebito(valor) : voidsaldo() : doublenumero() : String

Page 15: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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

Page 16: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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

Page 17: Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco

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