Download - Introdução a CSP
![Page 2: Introdução a CSP](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/5.jpg)
Exemplo Simples
7 8 94 5 61 2 3 X
Leitor Ótico
Caixa Automático
Terminal
![Page 6: Introdução a CSP](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/6.jpg)
Processos
Terminal
LeitorOtico
Interação
CaixaAutomatico
Interação
Interação
Ambiente(Cliente)
![Page 7: Introdução a CSP](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/12.jpg)
Combinando as Partes ...
CaixaAutomatico = Terminal || LeitorOticoI
Onde I = {decodOk, decodNOk, transf}
CaixaAutomatico = ( Terminal || LeitorOtico ) \ II
![Page 13: Introdução a CSP](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/568145fc550346895db30891/html5/thumbnails/15.jpg)
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)