• Nenhum resultado encontrado

Comportamento de componentes e conectores

N/A
N/A
Protected

Academic year: 2022

Share "Comportamento de componentes e conectores"

Copied!
31
0
0

Texto

(1)

Comportamento de componentes e

conectores

Paulo Borba e Fernando Castor Centro de Informática

Universidade Federal de Pernambucio

1 Thursday, November 4, 2010

(2)

Componentes e

conectores...

(3)

sintaxe bem definida, mas bem abstrata...

interfaces poderiam detalhar melhor

serviços associados às portas!

3 Thursday, November 4, 2010

(4)

mas semântica ainda seria apenas parcial

e imprecisa!

(5)

Diagramas de sequência, comportamento menos

parcial

5 Thursday, November 4, 2010

(6)

comportamento completo

todos os possíveis = diagramas de

sequência?

(7)

Trabalhoso!

7 Thursday, November 4, 2010

(8)

comportamento completo

todos os possíveis =

fluxos de execução

(9)

Também

trabalhoso...

e infinito!

9 Thursday, November 4, 2010

(10)

Mas emerge das

possíveis sequências de eventos de...

Componentes (portas)

Conectores (papéis e ligações entre eles)

e da composição e interação dos mesmos

(11)

a ordem de eventos

pode ser codificada em termos de pré e pós

condições, mas melhor não!

11 Thursday, November 4, 2010

(12)

máquina estados: de

ordem de

eventos

(13)

Faltam

recursos para composição!

13 Thursday, November 4, 2010

(14)

Falta CSP

(álgebra de processos)

(15)

A chamada de um método atômico

O início ou fim da chamada de um método não atômico

A notificação de um evento da GUI ou de algum periférico

Algo atômico, instantâneo

Eventos

15 Thursday, November 4, 2010

(16)

ordem de execução de eventos

=

processo

(17)

Processos em CSP

Declarando os eventos ou canais de comunicação:

channel up, down

Definindo (nomeando) um processo cujo alfabeto é determinado pelos eventos acima:

P0 = up -> down -> up ->

down -> STOP

17 Thursday, November 4, 2010

(18)

Escolha externa e parâmetros (estado)

COUNT(n)=

if n==0 then

(up -> COUNT(1)) else

( up -> COUNT(n+1) []

(19)

Processos e máquinas de estados

Com STOP, prefixo, recursão, e escolha externa expressamos todas as máquinas de estados

finitas e determinísticas

19 Thursday, November 4, 2010

(20)

Operador para construir processos:

?x:A -> P(x)

dado uma variável x, um conjunto de eventos A, e um processo P(x)

Escolha Prefixada

(21)

DATA = {0,1}

channel left, right:DATA

COPY = left?x -> right!x -> COPY Binf(s) =

if s==<> then

left?x -> Binf(<x>)

else (left?x -> Binf(s^<x>)

[] right!head(s) -> Binf(tail(s)))

Eventos Compostos

21 Thursday, November 4, 2010

(22)

Represente, em CSP, o comportamento de

algum componente da

sua arquitetura

(23)

(a -> STOP) [] (b -> STOP) sempre oferece os eventos a e b

(a -> STOP) |~| (b -> STOP) pode rejeitar a ou b

Escolha Interna versus Externa

23 Thursday, November 4, 2010

(24)

Operador para construir processos:

P [|X|] Q

dado processos P e Q e um conjunto de eventos X

P e Q são executados em paralelo mas só sincronizando os eventos em X:

Composição

Paralela

(25)

–P || Q = P [|Events|] Q

–P ||| Q = P [|{}|] Q

Outros operadores de composição

paralela

25 Thursday, November 4, 2010

(26)

Comportamento de client-server

Connector CSconnector

Role Client = (request!x -> result?y -> Client) |~| Tick Role Server = (invoke?x -> return!y -> Server) [] Tick Glue = (Client.request?x -> Server.invoke!x ->

Server.return?y -> Client.result!y -> Glue) [] Tick

(27)

Semântica

Roles são especificações (abstratas ou não) para as portas e componentes

associados

Glue é a especificação do conector, restrições impostas na comunicação entre componentes

Resultado é a composição paralela de Glue com Roles

27 Thursday, November 4, 2010

(28)

Comportamento de shared data, roles

Connector SharedData

Role Initializer = set -> A where {

A = set -> A |~| get -> A |~| Tick

}

(29)

Comportamento de shared data, glue

Glue = Initializer.set -> Continue [] User.set -> Continue

[] Tick where {

Continue = Initializer.set -> Continue [] User.set -> Continue

[] Initializer.get -> Continue [] User.get -> Continue

[] Tick }

29 Thursday, November 4, 2010

(30)

Represente, em CSP, o comportamento da

composição de dois componentes da sua

arquitetura

(31)

Comportamento de componentes e

conectores

Paulo Borba e Fernando Castor Centro de Informática

Universidade Federal de Pernambucio

31 Thursday, November 4, 2010

Referências

Documentos relacionados

Os seguintes indicadores foram calculados: 1) Adesão à higiene simples das mãos com solução de álcool gel ou água e sabão na UTIn: número de vezes que o profissional higienizou

 Em vez do tradicional filme de 35mm faz uso de uma matriz 2D de sensores CCD (convertem fótons de luz em cargas elétricas)  Dimensões típicas: 6.4mm x 4.8mm – ½” (640x480

Graças a Deus aonde o Daime está estou Louvar a Deus e amar com todo amor. São João Batista é o

Tempo 1: pré-exercício da primeira prova; Tempo 2: pós-exer- cício da primeira prova; Tempo 3: pré-exercício da segunda prova, com máscara e sem a válvula de carga; Tempo 4: após

Goiânia confere um acervo de Art déco e de outros estilos também interessantes e que deveriam estar sendo bem preservados, pois é parte da história dos goianos e

Os valores limites considerados para fins de aprovação são os mesmos avaliados para a água fornecida pelo serviço de tratamento de água da região (DMAE) ou retirada de

As dificuldades em se determinar bons critérios de parada para os méto- dos de projeção podem ser parcialmente contornadas combinando algum método de regularização de

kötetlen, betűző írás: analizáló természet, jó elemző- és kritikai érzék egy betű, betűelem túldíszítése, elnagyolása: olykor elvész a részlete sovány betűk,