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

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

CSP-Z e sua Verificação

Apresentações semelhantes


Apresentação em tema: "CSP-Z e sua Verificação"— Transcrição da apresentação:

1 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

2 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”

3 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

4 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

5 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

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

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

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

9 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

10 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: . . .

11 ... ... ... ... ... 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

12 ... 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)

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

14 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


Carregar ppt "CSP-Z e sua Verificação"

Apresentações semelhantes


Anúncios Google