introdução a csp

15
Introdução a CSP Alexandre Mota ([email protected])

Upload: major

Post on 13-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Introdução a CSP. Alexandre Mota ([email protected]). Objetivos. Apresentar a linguagem CSP Destacar os principais elementos de CSP Apresentar correspondência entre fluxo de eventos e CSP através de exemplo Possíveis ligações entre CSP e UML. CSP. Hoare (1985) e Roscoe (1998) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introdução a CSP

Introdução a CSP

Alexandre Mota([email protected])

Page 2: Introdução a CSP

Objetivos Apresentar a linguagem CSP Destacar os principais elementos

de CSP Apresentar correspondência entre

fluxo de eventos e CSP através de exemplo

Possíveis ligações entre CSP e UML

Page 3: Introdução a CSP

CSP Hoare (1985) e Roscoe (1998) Linguagem formal para modelar

aspectos comportamentais Estruturas de dados não muito

abstratas Troca de informações (interação) se

dá via comunicação Modelo de comunicação é síncrono

Page 4: Introdução a CSP

Elementos de CSP

Processo1

Processo2

Processon

.. .

EventosB

EventosDEventosF

EventosH

Ambiente

Ambiente

Am

bie

nte

Am

bie

nteEventosC EventosG

EventosE

EventosA

Alfabeto = Eventos

Page 5: Introdução a CSP

Exemplo Simples

7 8 94 5 61 2 3 X

Leitor Ótico

Caixa Automático

Terminal

Page 6: Introdução a CSP

Processos

Terminal

LeitorOtico

Interação

CaixaAutomatico

Interação

Interação

Ambiente(Cliente)

Page 7: Introdução a CSP

Leitor: Modelagem Informal

LeitorOtico

1. Aguarda um cartão ser inserido2. Tenta decodificar dados do cartão3. Se decodificação não foi bem-sucedida

1. Avisa ao Terminal2. Volta ao passo 1

4. Se decodificação foi bem-sucedida1. Envia dados decodificados para Terminal2. Volta ao passo 1

Page 8: Introdução a CSP

Leitor: Modelagem Formal

LeitorOtico = cartao?dados AnalisaDados(dados)

decodNOk LeitorOtico< isDec(dados) > decodOk EnviaCA(dados)

AnalisaDados(dados) =

EnviaCA(dados) = transf!dec(dados) LeitorOtico

Page 9: Introdução a CSP

Terminal: Modelagem Informal

Terminal

1. Aguarda sinal do leitor ótico2. Se o sinal for de decodificação bem-sucedida

1. Recebe informações do cartão decodificadas

2. Interage com o cliente3. Volta ao passo 1

3. Se o sinal for de decodificação mal-sucedida1. Informa ao cliente que houve problema de

leitura do cartão2. Volta ao passo 1

(Sub-Fluxo)

Page 10: Introdução a CSP

Terminal: Modelagem Formal

Terminal = decodOk transf?infoC Sistema(info)decodNOk ProbLeitura

Sistema(info) = ...

ProbLeitura = tela!Leitura_Invalida._Favor_Repetir Terminal

Page 11: Introdução a CSP

Comportamento InternoSistema(info) = saque SAQUE(info)

transferencia TRANSF(info)... outros OUTROS(info)

SAQUE(info) = cc TRANSAC(info, CC) poup TRANSAC(info, P)...

TRANSAC(info, op) = ... senha?s codigo?c (central!info!s!c

(ok ... nOk ...))

Page 12: Introdução a CSP

Combinando as Partes ...

CaixaAutomatico = Terminal || LeitorOticoI

Onde I = {decodOk, decodNOk, transf}

CaixaAutomatico = ( Terminal || LeitorOtico ) \ II

Page 13: Introdução a CSP

Principais Operadores de CSP

a P

P Q

P Q

P || Q

P ||| Q

P \ X

P < b > Q

X

Processo Operadores

Pré-fixo

Escolha Externa

Escolha Interna

Paralelismo

Interleaving

Hiding

Se Então Senão

Nota: Alguns dos operadores acima possuem versões indexadas

Page 14: Introdução a CSP

Analisando CSP Uma das vantagens da modelagem em

CSP é obter análise automática Existem duas abordagens para estudar

um processo: Propriedades padrão (deadlock, livelock,

não-determinismo) Refinamento entre processos

Oferecer pelo menos os mesmos serviços Falhar menos Divergir menos

Page 15: Introdução a CSP

CSP e UML

CSP poderia ser usada para representar:

Fluxo de Eventos em Casos de Uso

Diagramas de Interação

Diagramas de Atividade

Máquinas de Estados (StateCharts)