• 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

 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

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

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,

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

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

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

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