Introdução a CSP
description
Transcript of Introdução a CSP
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) 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
Elementos de CSP
Processo1
Processo2
Processon
.. .
EventosB
EventosDEventosF
EventosH
Ambiente
Ambiente
Am
bie
nte
Am
bie
nteEventosC EventosG
EventosE
EventosA
Alfabeto = Eventos
Exemplo Simples
7 8 94 5 61 2 3 X
Leitor Ótico
Caixa Automático
Terminal
Processos
Terminal
LeitorOtico
Interação
CaixaAutomatico
Interação
Interação
Ambiente(Cliente)
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
Leitor: Modelagem Formal
LeitorOtico = cartao?dados AnalisaDados(dados)
decodNOk LeitorOtico< isDec(dados) > decodOk EnviaCA(dados)
AnalisaDados(dados) =
EnviaCA(dados) = transf!dec(dados) LeitorOtico
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)
Terminal: Modelagem Formal
Terminal = decodOk transf?infoC Sistema(info)decodNOk ProbLeitura
Sistema(info) = ...
ProbLeitura = tela!Leitura_Invalida._Favor_Repetir Terminal
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 ...))
Combinando as Partes ...
CaixaAutomatico = Terminal || LeitorOticoI
Onde I = {decodOk, decodNOk, transf}
CaixaAutomatico = ( Terminal || LeitorOtico ) \ II
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
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
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)