A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Uma Visão em CSP para os Diagramas de UML-RT"— Transcrição da apresentação:

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

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 System2 capsule CapsA capsule CapsB
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 c1 c2 p1 q1 p2 { RX={p1  c1} CapsX[RX] {c1}||{c1,c2} CapsY[RY] RY={q1  c1, p2  c2}

5 System1 em CSP CapsA=(CapsX[RX] {c1}||{c1,c2} CapsY[RY])[c2  q2]\{c1}
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 B=(q?xSKIP); Consume(x) ; B
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 Formalização de Diagramas de UML-RT em Z
[PortName, ConName, CapName, InstName] Colour ::= black | white name: PortName cname: CapName colour: Colour Multi: IN1 colour = white  multi = 1 Port

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

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 Formalização de Diagramas de UML-RT em Z
MultiCapsule scname: CapName multi: IN1 inames: IF InstName # inames = multi inherit Capsule

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

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


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

Apresentações semelhantes


Anúncios Google