• Nenhum resultado encontrado

Mapeamento de CSP em UML-RT

N/A
N/A
Protected

Academic year: 2021

Share "Mapeamento de CSP em UML-RT"

Copied!
25
0
0

Texto

(1)

Mapeamento de CSP

em UML-RT

(2)

Características de UML-RT

• Cápsulas

– Classes ativas e independentes

– Comunicam-se entre si através de mensagens (sinais)

– Máquinas de estado modelam o comportamento da cápsula para cada ocorrência de sinal

– Podem ser:

• Fixas: criadas automaticamente quando o sistema é iniciado • Opcionais ou Plug-in: criadas e destruídas em runtime

(como processos CSP) q : Q r : R P a.in / createCapsule(r); a State of P

(3)

Características de UML-RT

• Cápsulas Fixas x Cápsulas Opcionais

q : Q P a.in / createInstance(r); a.in / removeInstance(r); a r : R

• Cápsulas opcionais ativas comportam-se exatamente como cápsulas fixas

(4)

Características de UML-RT

• Portas

– Realizam protocolos

– Usadas para enviar ou receber mensagens de dados – Podem ser:

• Wired: explicitamente conectadas a outras portas, através de conectores

• Unwired: conectadas dinamicamente, em runtime

• Protocolos

– Definem as regras de comunicação entre portas de um mesmo tipo – Definem o tipo das mensagens que podem ser transmitidas ou

aceitas pelas portas das cápsulas

(5)

Características de UML-RT

• Mensagens – Podem ser: • Assíncronas • Síncronas port.signal(data).send(); port.signal(data).send(Priority.High); port.signalIn(data).invoke(); port.signalOut(data).reply();

(6)

Mapeamento de CSP em UML-RT

• Deve considerar:

– tipos de dados como classes básicas de negócio – processos como cápsulas

– canais como portas de comunicação – Parâmetros como atributos de cápsulas – funções e expressões lógicas como

(7)

Mapeamento de CSP em UML-RT

datatype X : x1 | x2 P(s) = a?x → P(f(x)) f(x) = x + 1 Datatype X $ x1 : X $ x2 : X

(8)

Mapeamento de Tipos de Dados

T $ v0 : T $ v1 : T

datatype T = v0 | .. | vn

T x : T1 y : T2 getX() : T1 getY() : T2

datatype T = T1.T2

(9)

Mapeamento de Processos

• Processos são representados como cápsulas

• As transições da máquina de estados refletem os eventos do processo • Comunicação entre cápsulas deve atender o modelo de comunicação

de CSP

a1 a2

P

P = a1?x → a2!x → Stop

SP

S1

S2

a1.in?x / a2.out!x;

(10)

Mapeamento do

Modelo de Comunicação de CSP

• CSP possui

– Modelo de comunicação síncrono

• Sincronização simples (2 processos em paralelo)

• Multi-sincronização (3 ou mais processos em paralelo)

– Causalidade entre eventos

• UML-RT possui

– Comunicação síncrona e assíncrona

– Semântica run-to-completion (um evento só ocorre após a

(11)

Mapeamento do

Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT são suficientes para implementar

sincronismo simples

Q

a.request(1) true P = a!{1,2,3} → STOP Q = a?{1,2} → STOP P |{a}| Q

P

(12)

Mapeamento do

Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT não são suficientes para

implementar multi-sincronismo de CSP

Q

R

a.request(1) a.request(1) true P = a!{1,2,3} → STOP Q = a?{1,2} → STOP R = a?{2,3} → STOP P |{a}| Q |{a}| R

P

(13)

Mapeamento do

Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT não são suficientes para

implementar multi-sincronismo de CSP

Q

a.request(1) a.request(1) true a.rollback

P

P = a!{1,2,3} → STOP Q = a?{1,2} → STOP R = a?{2,3} → STOP P |{a}| Q |{a}| R

R

A semântica do operador de paralelismo foi

(14)

Mapeamento do

Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT não são suficientes para

implementar multi-sincronismo de CSP

Q

R

a.request(2) a.request(2) true true a.commit a.commit

A semântica do operador de paralelismo foi

P

P = a!{1,2,3} → STOP Q = a?{1,2} → STOP R = a?{2,3} → STOP P |{a}| Q |{a}| R

(15)

Mapeamento do

Modelo de Comunicação de CSP

• Por se tratar de uma regra de comunicação entre portas, podemos

representar a causalidade entre eventos através de protocolos de comunicação

(16)

Mapeamento do

Modelo de Comunicação de CSP

Q = a?x:{1,2} -> STOP

Q

(17)

Mapeamento de Processos

• Operadores de CSP podem ser representados por cápsulas de controle, que contém outras cápsulas

• Ex: construa um modelo UML-RT a partir do código CSP abaixo

channel a

P = a?m:{1,2} -> P Q = a?m:{2,3} -> Q

(18)

Mapeamento de Processos

SParallel locked S0 a.request?m /; / a.agreement!reply(); Sc F T a.commit / aP.commit!invoke(); aQ.commit!invoke(); a.rollback/ aP.rollback!invoke(); aQ.rollback!invoke(); boolean r = False; rP = ap.request(m).invoke(); rQ = aq.request(m).invoke();

if (rp == true and rq == true) { r = True; } else { if (rp == true) aP.rollback; if (rq == true) aQ.rollback; r = False; } Parallel aP : CSPMessageProtocol p : P q : Q a : CSPMessageProtocol aQ : CSPMessageProtocol

(19)

Mapeamento de Processos

– Em CSP, processos podem comportar-se como outros processos

• P = Q

• P = a -> (R[]W) • P = a -> P\{a}

– Em UML-RT isto implicaria em cápsulas reaproveitarem ou serem substituídas por outras cápsulas

– UML-RT não admite recursão mútua entre cápsulas

P = a -> Q Q = b -> P

(20)

Mapeamento de Processos

• A recursão mútua é resolvida por uma cápsula controladora, que

contém as demais

• As cápsulas de processo:

– São sub-cápsulas opcionais de cápsula controladora – Contém uma porta específica para informar novos

(21)

Mapeamento de Processos

• Cápsula controladora deve:

– Receber as mensagens de dados enviadas pelo ambiente externo e repassá-las para as sub-cápsulas ativas.

– Receber as mensagens de novos comportamentos enviadas pelas sub-cápsulas ativas, e mudar sua configuração interna.

• Cápsula controladora interpreta o comportamento associado aos

operadores de CSP – P [|{|a|}|] Q

– P;Q – STOP

(22)

Mapeamento da

Semântica Comportamental

P = a?x:{1,2} → R Q = a?x:{2,3} → W R = a?x → P W = c?x → Q SystemController = P [|{|a|}|] Q SystemController aP : CSPMessageProtocol a : CSPMessageProtocol p : P a : CSPMessageProtocol bP : CSPBehaviorProtocol b : CSPBehaviorProtocol q : Q bQ : CSPBehaviorProtocol b : CSPBehaviorProtocol aQ : CSPMessageProtocol a : CSPMessageProtocol c : CSPMessageProtocol aR: CSPMessageProtocol a : CSPMessageProtocol r : R bR : CSPBehaviorProtocol b : CSPBehaviorProtocol w : W

(23)

Mapeamento da

Semântica Comportamental

SSystemController Sc bP.term?N / removeCapsule(q); createCapsule(N); bQ.term?N / removeCapsule(p); createCapsule(N); a.request?x /

if (pRef.status = active) aP.request(x).invoke(); if (qRef.status = active) aQ.request(x).invoke();

if (rRef.status = active) aR.request(x).invoke();

SystemController aP : CSPMessageProtocol a : CSPMessageProtocol p : P a : CSPMessageProtocol bP : CSPBehaviorProtocol b : CSPBehaviorProtocol q : Q bQ : b : aQ : CSPMessageProtocol a : CSPMessageProtocol c : CSPMessageProtocol

(24)

Mapeamento da

Semântica Comportamental

SSystemController Sc bW.term?N / removeCapsule(w); createCapsule(N); bR.term?N / removeCapsule(r); createCapsule(N); c.request?x /

if (wRef.status = active) cW.request(x).invoke();

SystemController cR: CSPMessageProtocol a : CSPMessageProtocol r : R a : CSPMessageProtocol bR : CSPBehaviorProtocol b : CSPBehaviorProtocol w : W b : cW : CSPMessageProtocol a : CSPMessageProtocol c : CSPMessageProtocol

(25)

Mapeamento de CSP em UML-RT

• Ferramenta para Geração automática de Modelos UML-RT – Cria modelos UML-RT no Rose RealTime

– Expressões lógicas e funções não são traduzidas. É necessário codificá-las

Referências

Documentos relacionados

Outros alunos não atribuíram importância a Química, não apresentando exemplos do seu cotidiano, o que gera preocupação, pois os sujeitos da pesquisa não

EM CONTATO COM O SOLO OU ÁGUA O PRODUTO PODE CAUSAR DESIDRATAÇÃO DE ESPÉCIES DA FAUNA E DA FLORA, PODENDO ALTERAR O ECOSSISTEMA LOCAL.. PERIGOS FÍSICOS

O mesmo pode ser relatado por Luz & Portela (2002), que testaram nauplio de Artemia salina nos 15 pri- meiros dias de alimentação exógena para trairão alcançando

Escola Nacional da Magistratura, Associação dos Magistrados Brasileiros e Faculdades de Direito da Universidade Clássica de Lisboa e da Universidade Nova de

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

Através do experimento in vivo, verificou-se que o pó nebulizado de nanocápsulas (Neb-NC) é efetivo na proteção da mucosa gastrintestinal frente à indometacina, enquanto que os

Geralmente, o espaço físico não é suficiente ou adequado para as atividades importante a serem desenvolvida pelas crianças dentro da sala de aula, como por

Pesquisas específicas sobre a deficiência podem fornecer informações mais abrangentes com relação às características da deficiência, como prevalência, condições