1 / 17

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

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.

brac
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  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 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 Especificação Formal

  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. Z • 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)

  8. Especificação • 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 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 init Relogio Relogio’ min: Z min’ = 0 tictac cuco D Relogio D Relogio min < 60 min’ = min + 1 min = 60 min’ = 0

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

  14. Especificação • 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

  15. Implementação class Conta { private double saldo; private Stringnumero; 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;} }

  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

More Related