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

Slides:



Advertisements
Apresentações semelhantes
UML 2.0 Unified Modeling Language version 2.0 Workshop Sala ITA
Advertisements

GEOMETRIA DESCRITIVA A
Igor Cavalcanti Ramos José Francisco Pereira {icr2,
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Object Definifion Language - ODL
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
MER – Modelo de Entidade Relacionamento
Tratamento de incerteza em S.E. baseados em regras Fatores de Certeza
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Diagrama de Implantação
Geo Analítica Posições Relativas de duas Circunferências x Prof PH -2
De 26 1 MVV - Arquitetura da Máquina Virtual Virtuosi Carlos José Johann Kolb Programa de Pós-Graduação em Informática Aplicada Centro de Ciências Exatas.
Método Hierárquico Aglomerativo de Clusterização Algoritmo CURE
Método de Clusterização baseado em Densidade Algoritmo DBSCAN
Problema de Correspondência de Post (PCP)
Resolução.
Capítulo 4: Estado Global
Uma aproximação no meio dos nossos dois extremos Motivação: – Se nós não sabemos o valor do vem-1, o que podemos fazer? – Quando nós podemos sempre gerar.
Tiago Salmito SystemC Tiago Salmito
INF Computação Gráfica
Grafos - Definições Preliminares - Formas de Representação
Apresentação: Léia Michelle de Souza
Introdução a diagrama de classes e UML
Orientação a Objetos Classes
Aula 9 Fases do desenvolvimento de software UML Diagramas de classes
Classes & Objectos em JAVA5
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Comercialização de Produtos Agrícolas
SQL Server 2012 Introdução a Modelagem de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Diagrama de Classes e Colaboração
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
DIAGRAMA DE CLASSE Modelagem de Software
Arquiteturas de Referência
Política de Clark e Wilson Notas para a disciplina de Segurança Informática Pedro Félix Instituto.
MEN - Mercados de Energia Mestrado em Engenharia Electrotécnica
Vânia Maria Ponte Vidal
Nome do Projecto FEUP – Desenvolvimentos de Jogos de Computador - MIEIC.
Prof. Ricardo Santos PONTEIROS
ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto.
Lógica de Predicados Forma Prenex e Skolem.
Detalhes sobre o curso
SigA Sistema Gestor de Alunos
Alexandre Mota Introdução a CSP Alexandre Mota
Lógica de Predicados Forma Prenex e Skolem.
Carlos Cunha Joabe Jesus {ceac,
Carlos Cunha Joabe Jesus {ceac,
Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz
Orientação a Objetos e Java Graduação em Ciência da Computação
DI UFPE Sistema de Tipos de Eiffel A Proposal for Making Eiffel Type-safe W. R. Cook ECOOP’87 Proceedings Cambridge University Press, 1989.
Análise e Projeto de Sistemas
Análise de Sistemas de Informação
DESENVOLVIMENTO WEB I HTML Tabelas. Tabelas servem para organizar!!!  Usamos tabelas para organizar conteúdos que tenham relação entre si, procurando.
2002/2003 Programação Orientada para Objectos 1 Aula 6 Classes que reservam recursos externos Problemas comuns Construtores e destrutores Construção por.
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Modelagem Visual de Objetos Com UML
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Monitoria IP ~if669 Garbage Collection e pacotes.
MPS – Aula prática Diagrama de Pacotes / Esteriótipos Web
Generalização e herança Agregação e composição
Concurrent Versions System (CVS) Alexandre Monteiro.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Cápsulas, Protocolos, portas e conexões em UML-RT.
Projetar Cápsulas Segunda parte. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste.
Análise e Design de Software Site:
Transcrição da apresentação:

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

{ 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}  

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} 

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}  

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}

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]  

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}  

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

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

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 ^

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))

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

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

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

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

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)} 

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}

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}] ( ) 

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