1 / 21

Uma Visão em CSP para os Diagramas de UML-RT

Uma Visão em CSP para os Diagramas de UML-RT. Alexandre Mota (acm@cin.ufpe.br). Objetivos. Apresentar uma formalização dos diagramas de UML-RT em (Object-)Z Apresentar tradução de UML-RT em CSP. Exemplos de UML-RT. System1.  capsule  CapsA.  capsule  CapsB.  capsule  CapsX.

dea
Download Presentation

Uma Visão em CSP para os Diagramas de 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. Uma Visão em CSP para os Diagramas de UML-RT Alexandre Mota (acm@cin.ufpe.br)

  2. Objetivos • Apresentar uma formalização dos diagramas de UML-RT em (Object-)Z • Apresentar tradução de UML-RT em CSP

  3. Exemplos de UML-RT System1 capsule CapsA capsule CapsB capsule CapsX capsule CapsY c1 c2 c3 p1 q1 p2 q2 r1 System2 3 capsule A capsule B 3 c {u,v,w} p q

  4. System1 em CSP Sejam CapsX, CapsY, CapsB classes em CSP-OZ capsule CapsX capsule CapsY c2 c1 p1 q1 p2 { RX={p1  c1}  CapsX[RX] {c1}||{c1,c2} CapsY[RY] RY={q1  c1, p2  c2}  

  5. System1 em CSP capsule CapsA capsule CapsX capsule CapsY c1 c2 p1 q1 p2 q2 CapsA=(CapsX[RX] {c1}||{c1,c2} CapsY[RY])[c2  q2]\{c1} 

  6. System1 em CSP System1 capsule CapsA capsule CapsB capsule CapsX capsule CapsY c1 c2 c3 p1 q1 p2 q2 r1 System1=(CapsA[q2  c3] {c3}||{c3} CapsB[r1  c3])\{c3}  

  7. System2 em CSP capsule A 3 {u,v,w} p A(Adrp)=Produce(e) ; (|||out:Adrp p.out!eSKIP) ; A(Adrp) Onde Adrp será instanciado com {u,v,w}

  8. System2 em CSP 3 capsule B {u,v,w} q B=(q?xSKIP); Consume(x) ; B MB=|||in:{u,v,w} B[q  q.in]  B[q  q.in] =(q.in?xSKIP) ; Consume(x) ; B[q  q.in]  

  9. System2 em CSP System2 3 capsule A capsule B 3 c {u,v,w} p q System2=(A({u,v,w})[p  c] {c}||{c} MB[q  c])\{c}  

  10. Convenções da Proposta • Portas brancas são de entrada (?) • Portas pretas são de saída (!) • Cápsulas múltiplas só podem ter uma porta • Composição entre cápsula simples e cápsula múltipla induz em uso de potras múltiplas na cápsula simples • Entre duas portas só pode haver um conector (Comunicação binária) • Nomes de cápsulas são únicos

  11. Port name: PortName cname: CapName colour: Colour Multi: IN1 colour = white  multi = 1 Formalização de Diagramas de UML-RT em Z [PortName, ConName, CapName, InstName] Colour ::= black | white

  12. Connector name: ConName ports: IF Port # ports = 2 Capsule C: CapName   Capsule  na: dom C  na = C(na).name ^ name: CapName ports: IF Port  p: ports  p.cname = name Formalização de Diagramas de UML-RT em Z

  13. Formalização de Diagramas de UML-RT em Z CompCapsule inherit Capsule scnames: IF CapName conn: IF Connector  c: conn  c.ports  ports  {sn: scnames C(sn).ports}  c1,c2: conn  c1.ports  c2.ports    c1 = c2  c: conn  p, p’: c.ports  p  p’  p.cname  p’.cname  c: conn  p, p’: c.ports  (p  p’  (p  ports  p.multi = p’.multi  p.colour = p’.colour)  (p,p’  ports  p.colour  p’.colour ((p.multi=1  p’.multi = C(p.cname).multi)  (p’.multi=1  p.multi = C(p’.cname).multi))

  14. MultiCapsule inherit Capsule scname: CapName multi: IN1 inames: IF InstName # inames = multi Formalização de Diagramas de UML-RT em Z

  15. : Process  IP Events T: Capsule  ProcessEquations Tradução de Diagramas em UML-RT para CSP [Process, Chans, Val] Data ::= basic  Val  | comp  InstName  Data  Events == Chans Data

  16. Tradução de Diagramas em UML-RT para CSP (1) Seja BC uma cápsula básica com BC.ports={p1, ..., pm, q1 , ..., qn}, onde m, n  IN e p1, ..., pm são portas simples (pi.multi=1, i=1, ..., m) e q1 , ..., qn são portas múltiplas (qj.multi>1, j=1, ..., n). Então, assumimos novos parâmetros formais Adr1, ..., Adrn representando conjuntos de nomes de instâncias, que servirão de endereços para onde as portas múltiplas poderão conectar-se T(BC)  BC.name(Adr1, ..., Adrn) = RHS Onde RHS é o nome da classe CSP-OZ correspondente

  17. Tradução de Diagramas em UML-RT para CSP (2) Seja CC uma cápsula composta com CC.ports={p1, ..., pm, q1 , ..., qn} e Adr1, ..., Adrn como na regra (1) T(CC)  CC.name(Adr1, ..., Adrn) = ((||SN:CC.scnames[C(SN).ports[RSN,CC]]  SN(B1, ..., Bk(SN))[RSN,CC])[PCC])\HCC T(C(SN)), para todo SN: CC.scnames

  18. Tradução de Diagramas em UML-RT para CSP Suponha que r1, ..., rk(SN) sejam as portas-múltiplas da sub-cápsula de nome SN Bi=Adrpj, se ri estiver conectado a uma porta múltipla pública pj de CC Bi=MC.inames, se ri estiver conectado a uma porta simples pj de uma cápsula múltipla MC dentro de CC RSN, CC={pn: PortName; cn: ConName |  p: C(SN).ports; c: CC.conn  p  c.ports  pn=p.name  cn=c.name  (pn  cn)} 

  19. Tradução de Diagramas em UML-RT para CSP PCC={cn: ConName; pn: PortName |  p: CC.ports; c: CC.conn  p  c.ports  pn=p.name  cn=c.name  (cn  pn)}  HCC={c: CC.conn  c.name}

  20. Tradução de Diagramas em UML-RT para CSP (3) Seja MC uma cápsula múltipla com C(MC.cname).ports={p1, ..., pm, q1 , ..., qn} e Adr1, ..., Adrn como na regra (1) e (2) T(MC)  MC.name(Adr1, ..., Adrn) = |||in:MC.inamesMC.scname(Adr1, ..., Adrn)[ in ] T(C(MC.scname))) ( ) ( ) P[ in ]=P[{ch: Chans; d: Data | ch.d  (P)  ch.d  ch.in.d}] 

  21. Referências • Fischer, C., Olderog, E.R., e Wehrheim, H. A CSP View on UML-RT Structure Diagrams. FASE 2001, LNCS 2029, pp. 91-108

More Related