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 Alexandre Mota

Apresentações semelhantes


Apresentação em tema: "Uma Visão em CSP para os Diagramas de UML-RT Alexandre Mota"— 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 capsule CapsA capsule CapsB capsule CapsX capsule CapsY c1 p1q1 c2 p2q2 c3 r1 capsule A 3 q capsule B 3 p c {u,v,w} System2 System1

4 System1 em CSP Sejam CapsX, CapsY, CapsB classes em CSP-OZ CapsX[R X ] {c1} || {c1,c2} CapsY[R Y ] R X ={p1 c1} R Y ={q1 c1, p2 c2} { capsule CapsX capsule CapsY c1 p1q1 p2 c2

5 System1 em CSP CapsA=(CapsX[R X ] {c1} || {c1,c2} CapsY[R Y ])[c2 q2]\{c1} capsule CapsA capsule CapsX capsule CapsY c1 p1q1 c2 p2q2

6 System1 em CSP capsule CapsA capsule CapsB capsule CapsX capsule CapsY c1 p1q1 c2 p2q2 c3 r1 System1 System1=(CapsA[q2 c3] {c3} || {c3} CapsB[r1 c3])\{c3}

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

8 System2 em CSP B=(q?x SKIP); Consume(x) ; B q capsule B 3 {u,v,w} 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=(A({u,v,w})[p c] {c} || {c} MB[q c])\{c} capsule A 3 q capsule B 3 p c {u,v,w} System2

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: IN 1 colour = white multi = 1 Port

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

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} c 1,c 2 : conn c 1.ports c 2.ports c 1 = c 2 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: IN 1 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 EventsT: Capsule ProcessEquations

16 Tradução de Diagramas em UML-RT para CSP (1) Seja BC uma cápsula básica com BC.ports={p 1,..., p m, q 1,..., q n }, onde m, n IN e p 1,..., p m são portas simples (p i.multi=1, i=1,..., m) e q 1,..., q n são portas múltiplas (q j.multi>1, j=1,..., n). Então, assumimos novos parâmetros formais Adr 1,..., Adr n 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(Adr 1,..., Adr n ) = 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={p 1,..., p m, q 1,..., q n } e Adr 1,..., Adr n como na regra (1) T(CC) CC.name(Adr 1,..., Adr n ) = ((|| SN:CC.scnames [C(SN).ports[R SN,CC ]] SN(B 1,..., B k(SN) )[R SN,CC ])[P CC ])\H CC T(C(SN)), para todo SN: CC.scnames

18 Tradução de Diagramas em UML-RT para CSP B i =Adr p j, se r i estiver conectado a uma porta múltipla pública p j de CC B i =MC.inames, se r i estiver conectado a uma porta simples p j de uma cápsula múltipla MC dentro de CC R SN, CC ={pn: PortName; cn: ConName | p: C(SN).ports; c: CC.conn p c.ports pn=p.name cn=c.name (pn cn)} Suponha que r 1,..., r k(SN) sejam as portas-múltiplas da sub-cápsula de nome SN

19 Tradução de Diagramas em UML-RT para CSP P CC ={cn: ConName; pn: PortName | p: CC.ports; c: CC.conn p c.ports pn=p.name cn=c.name (cn pn)} H CC ={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={p 1,..., p m, q 1,..., q n } e Adr 1,..., Adr n como na regra (1) e (2) T(MC) MC.name(Adr 1,..., Adr n ) = ||| in:MC.inames MC.scname(Adr 1,..., Adr n )[ 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 Alexandre Mota"

Apresentações semelhantes


Anúncios Google