Introduo a CSP Alexandre Mota acmcin ufpe br
Introdução a CSP Alexandre Mota (acm@cin. ufpe. br)
Objetivos n n 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 n n n 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 Ambiente Eventos. A Processo 1 Eventos. H Eventos. C Eventos. D Alfabeto = Eventos Processon Eventos. E Ambiente Eventos. G Eventos. F Ambiente Processo 2 . . . Ambiente Eventos. B
Exemplo Simples Caixa Automático Terminal 7 8 9 4 5 6 1 2 3 X Leitor Ótico
Processos Caixa. Automatico Terminal Interação Leitor. Otico Ambiente (Cliente)
Leitor: Modelagem Informal Leitor. Otico 1. Aguarda um cartão ser inserido 2. Tenta decodificar dados do cartão 3. Se decodificação não foi bem-sucedida 1. Avisa ao Terminal 2. Volta ao passo 1 4. Se decodificação foi bem-sucedida 1. Envia dados decodificados para Terminal 2. Volta ao passo 1
Leitor: Modelagem Formal Leitor. Otico = cartao? dados Analisa. Dados(dados) = decod. NOk Leitor. Otico < is. Dec(dados) > decod. Ok Envia. CA(dados) = transf!dec(dados) Leitor. Otico
Terminal: Modelagem Informal Terminal 1. Aguarda sinal do leitor ótico 2. Se o sinal for de decodificação bem-sucedida 1. Recebe informações do cartão decodificadas (Sub-Fluxo) 2. Interage com o cliente 3. Volta ao passo 1 3. Se o sinal for de decodificação mal-sucedida 1. Informa ao cliente que houve problema de leitura do cartão 2. Volta ao passo 1
Terminal: Modelagem Formal Terminal = decod. Ok transf? info. C Sistema(info) � decod. NOk Prob. Leitura Sistema(info) =. . . Prob. Leitura = tela!Leitura_Invalida. _Favor_Repetir Terminal
Comportamento Interno Sistema(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 . . . n. Ok . . . ) )
Combinando as Partes. . . Caixa. Automatico = Terminal || I Leitor. Otico Onde I = {decod. Ok, decod. NOk, transf} Caixa. Automatico = ( Terminal || I Leitor. Otico ) I
Principais Operadores de CSP Processo Operadores a P Pré-fixo P�Q Escolha Externa P Escolha Interna Q P || Q X Paralelismo P ||| Q Interleaving PX Hiding P<b>Q Se Então Senão Nota: Alguns dos operadores acima possuem versões indexadas
Analisando CSP n n Uma das vantagens da modelagem em CSP é obter análise automática Existem duas abordagens para estudar um processo: n n Propriedades padrão (deadlock, livelock, nãodeterminismo) Refinamento entre processos n n n Oferecer pelo menos os mesmos serviços Falhar menos Divergir menos
CSP e UML n CSP poderia ser usada para representar: n Fluxo de Eventos em Casos de Uso n Diagramas de Interação n Diagramas de Atividade n Máquinas de Estados (State. Charts)
- Slides: 15