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

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

Verificando especificação de LEIS Rodrigo Paes. © LES/PUC-Rio Motivação Revisores –The concepts of scenes and XMLaw require more rigorous treatment such.

Apresentações semelhantes


Apresentação em tema: "Verificando especificação de LEIS Rodrigo Paes. © LES/PUC-Rio Motivação Revisores –The concepts of scenes and XMLaw require more rigorous treatment such."— Transcrição da apresentação:

1 Verificando especificação de LEIS Rodrigo Paes

2 © LES/PUC-Rio Motivação Revisores –The concepts of scenes and XMLaw require more rigorous treatment such as its underlying programming models, execution models and semantics Formalização iria ter como consequências –Reflexão sobre a semântica dos elementos do XMLaw –Deixar mais claro qual o poder de expressão da linguagem –Realizar verificações nas leis Estruturais Dinâmicas –Permitir comparações mais precisas com os trabalhos relacionados

3 © LES/PUC-Rio Visão geral Especificação XMLaw (.xml) Verificador de modelos Especificação Prolog (.pl) Perguntas Respostas Modelo

4 © LES/PUC-Rio Exemplos de perguntas 1.Existe algum estado no protocolo que nunca é alcançado? 2.Existe alguma situação na qual um agente pode adquirir uma obrigação e uma proibição ao mesmo tempo para uma mesma ação, caracterizando assim uma inconsistência? 3.Quem pode criar uma determinada cena? 4.Em quais estados um determinado agente desempenhando um papel pode participar da cena?

5 © LES/PUC-Rio Exemplos de perguntas 5.Quais os eventos necessários para ativar uma determinada norma? 6.Quais os eventos necessários para completar uma cena com sucesso? 7.Quais os eventos necessários para cumprir uma determinada obrigação?

6 © LES/PUC-Rio Passos para especificar o modelo XMLaw em prolog Definir a estrutura de especificação das leis Definir a dinâmica de cada um dos elementos –Ex: como especificar a propagação de eventos? –Como disparar transições no protocolo? –Como ativar normas?

7 © LES/PUC-Rio Estrutura de especificação message( Id da cena, Id do protocolo, Id da mensagem, Performative, Sender ) Exemplo: –message(cena1,protocolo1, m1,cfp,initiator). –message(cena1,protocolo1, m2,refuse,participant). –message(cena1,protocolo1, m3,propose,participant).

8 © LES/PUC-Rio Transição transition ( Id da cena, Id do protocolo, Id da transição, estado de origem, evento que ativa a transição, estado destino) Exemplo: –transition(cena1,protocolo1, t1, s1, event(m1,message_arrival), s2). –transition(cena1,protocolo1, t2, s2, event(m2,message_arrival), s3).

9 © LES/PUC-Rio Norma norm( Id da cena, Id da norma, Tipo da norma, acao que a norma representa, a quem a norma é dada, Indicação se é uma ativação ou desativação, evento que ativa ou desativa a norma) Exemplo: –norm(cena1, n1,obligation, acaoX, initiator,ativa,event(t6,transition_activation)).

10 © LES/PUC-Rio Ainda sobre estrutura Protocolo: estados de sucesso e falhas –estado_inicial(protocolo1, s1). –estado_sucesso(protocolo1, s5). –estado_falha(protocolo1, s8). Cena: cena(Id da cena, time to live). –cena(cena1, 10000). –criar_cena(cena1, initiator). –entrar_cena(cena1, participant, s1).

11 © LES/PUC-Rio Dinâmica: cadeia de eventos Operador basico: dispara –dispara( Sequencia de Eventos de Entrada, Sequencia de Eventos Resultantes, Estado Inicial, Estado Final )

12 © LES/PUC-Rio dispara no prolog dispara([Evento1|Sequencia], AcumuladorEventos,ResultadoEventos, EstadoAtual,ProximoEstado) :- interessado(Alguem, Evento1), gera(Alguem,Evento1, EventoX, EstadoAtual, EstadoIntermediario), dispara([EventoX|Sequencia],[Evento1|AcumuladorEventos],ResultadoEventos, EstadoIntermediario,ProximoEstado). Em bom português: A partir do evento 1 algum outro evento é disparado SE Existe alguém interessado no evento 1 AND Esse alguém no estado atual do prototolo, a partir do evento 1 gera um evento X qualquer e se move para um estado, igual ou diferente ao atual.

13 © LES/PUC-Rio interessado Implementa a idéia do observer no prolog –% Norma –i nteressado(Nid,Evento) :- norm(_,Nid,_,_,_,ativa,Evento). –% Protocolo –interessado(Pid,EventoRecebido) :- protocolo_controle(Pid, EventoRecebido, _,_,_).

14 © LES/PUC-Rio gera Representa a geração de eventos –% Protocolo –gera(Pid,EventoRecebido, EventoGerado, EstadoAtual, ProximoEstado) :- protocolo(Pid), protocolo_controle(Pid, EventoRecebido, EventoGerado, EstadoAtual, ProximoEstado). –% Norma –gera(Nid,EventoRecebido, EventoGerado, EstadoAtual, EstadoIntermediario) :- norm(_,Nid,_,_,_,ativa, EventoRecebido ), EventoGerado = event(Nid,norm_activation), EstadoAtual = EstadoIntermediario.

15 © LES/PUC-Rio protocolo_controle Representa quando um protocolo é ativado. Ou seja, quando existe uma transição que a partir de um evento é disparada. protocolo_controle(Pid, EventoRecebido, EventoGerado, EstadoAtual,ProximoEstado) :- transition(_,Pid,Tid,EstadoAtual,EventoRecebido,ProximoEstado), EventoGerado = event(Tid,transition_activation).

16 © LES/PUC-Rio Finalmente, voltando as perguntas 1.Existe algum estado no protocolo que nunca é alcançado? 2.Existe alguma situação na qual um agente pode adquirir uma obrigação e uma proibição ao mesmo tempo para uma mesma ação, caracterizando assim uma inconsistência? 3.Quem pode criar uma determinada cena? 4.Em quais estados um determinado agente desempenhando um papel pode participar da cena? ok

17 © LES/PUC-Rio Ainda com as perguntas 5.Quais os eventos necessários para ativar uma determinada norma? 6.Quais os eventos necessários para completar uma cena com sucesso? 7.Quais os eventos necessários para cumprir uma determinada obrigação? ok

18 © LES/PUC-Rio O que falta? Eliminar alguns bugs Refinar a modelagem prolog Incluir as noções de tempo: CLOCK


Carregar ppt "Verificando especificação de LEIS Rodrigo Paes. © LES/PUC-Rio Motivação Revisores –The concepts of scenes and XMLaw require more rigorous treatment such."

Apresentações semelhantes


Anúncios Google