1 / 25

Mapeamento de CSP em UML-RT

Mapeamento de CSP em UML-RT. P. State of P. q : Q. a.in / createCapsule(r);. a. r : R. a.in / removeCapsule(r);. Características de UML-RT. Cápsulas Classes ativas e independentes Comunicam-se através de mensagens (sinais)

zaide
Download Presentation

Mapeamento de CSP em UML-RT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mapeamento de CSP em UML-RT

  2. P State of P q : Q a.in / createCapsule(r); a r : R a.in / removeCapsule(r); Características de UML-RT • Cápsulas • Classes ativas e independentes • Comunicam-se 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)

  3. a.in / createInstance(r); r : R a.in / removeInstance(r); Características de UML-RT • Cápsulas Fixas x Cápsulas Opcionais P q : Q a • Cápsulas opcionais ativas comportam-se exatamente como cápsulas fixas • Cápsulas opcionais inativas não produzem qualquer efeito

  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 (como canais CSP)

  5. port.signal(data).send(); port.signal(data).send(Priority.High); port.signalIn(data).invoke(); Características de UML-RT • Mensagens • Podem ser: • Assíncronas • Síncronas (como eventos CSP) 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 expressões, métodos de cápsulas ou classes auxiliares

  7. Mapeamento de CSP em UML-RT

  8. Mapeamento de Tipos de Dados T datatype T = v0 | .. | vn $ v0 : T $ v1 : T T x : T1 y : T2 datatype T = T1.T2 getX() : T1 getY() : T2

  9. Mapeamento de Processos • Processos são representados como cápsulas • As transições da máquina de estados refletem o fluxo de controle (traces) do processo • Comunicação entre cápsulas deve atender o modelo de comunicação de CSP P a2 a1 P = a1?x → a2!x → Stop SP a1.in?x / a2.out!x; S1 S2

  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) • UML-RT possui • Comunicação síncrona e assíncrona

  11. a.request(1) true Mapeamento do Modelo de Comunicação de CSP • Mensagens síncronas de UML-RT são suficientes para implementar sincronismo simples P = a!{1,2,3} → STOP Q = a?{1,2} → STOP P |{a}| Q Q P A semântica do operador de paralelismo foi atendida

  12. a.request(1) a.request(1) true 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 P = a!{1,2,3} → STOP Q = a?{1,2} → STOP R = a?{2,3} → STOP P |{a}| Q |{a}| R Q P R A semântica do operador de paralelismo não foi atendida

  13. a.rollback true a.request(1) a.request(1) 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 P = a!{1,2,3} → STOP Q = a?{1,2} → STOP R = a?{2,3} → STOP P |{a}| Q |{a}| R Q P R A semântica do operador de paralelismo foi atendida

  14. a.commit a.request(2) a.request(2) true true a.commit 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 P = a!{1,2,3} → STOP Q = a?{1,2} → STOP R = a?{2,3} → STOP P |{a}| Q |{a}| R Q P R A semântica do operador de paralelismo foi atendida

  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 a

  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 channela P = a?m:{1,2} -> P Q = a?m:{2,3} -> Q Parallel = P [|{|a|}|] Q

  18. Mapeamento de Processos SParallel S0 Sc a.commit / aP.commit!invoke(); aQ.commit!invoke(); a.request?m /; F T a.rollback/ aP.rollback!invoke(); aQ.rollback!invoke(); / a.agreement!reply(); locked 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; } return r; Parallel a : CSPMessageProtocol p : P aP : CSPMessageProtocol q : Q 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 da cápsula controladora • Contêm uma porta específica para informar novos comportamentos à cápsula controladora

  21. 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 ... Mapeamento de Processos

  22. Mapeamento daSemâ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 c : CSPMessageProtocol a : CSPMessageProtocol p : P a : CSPMessageProtocol aP : CSPMessageProtocol b : CSPBehaviorProtocol bP : CSPBehaviorProtocol q : Q a : CSPMessageProtocol aQ : CSPMessageProtocol b : CSPBehaviorProtocol bQ : CSPBehaviorProtocol r : R a : CSPMessageProtocol aR: CSPMessageProtocol b : CSPBehaviorProtocol bR : CSPBehaviorProtocol w : W c : CSPMessageProtocol cW : CSPMessageProtocol b : CSPBehaviorProtocol bW : CSPBehaviorProtocol

  23. bP.term?N / removeCapsule(p); createCapsule(N); bQ.term?N / removeCapsule(q); createCapsule(N); Mapeamento daSemântica Comportamental SSystemController Sc 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 c : CSPMessageProtocol a : CSPMessageProtocol p : P a : CSPMessageProtocol aP : CSPMessageProtocol b : CSPBehaviorProtocol bP : CSPBehaviorProtocol q : Q a : CSPMessageProtocol aQ : CSPMessageProtocol b : CSPBehaviorProtocol bQ : CSPBehaviorProtocol P [|{|a|}|] Q

  24. bW.term?N / removeCapsule(w); createCapsule(N); bR.term?N / removeCapsule(r); createCapsule(N); Mapeamento daSemântica Comportamental SSystemController Sc c.request?x / if (wRef.status = active) cW.request(x).invoke(); SystemController c : CSPMessageProtocol a : CSPMessageProtocol r : R a : CSPMessageProtocol cR: CSPMessageProtocol b : CSPBehaviorProtocol bR : CSPBehaviorProtocol w : W a : CSPMessageProtocol cW : CSPMessageProtocol b : CSPBehaviorProtocol bW : CSPBehaviorProtocol R [|{|a|}|] W

  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 • Versão beta ...

More Related