cápsulas, protocolos, portas e conexões em...

47
Cápsulas, Protocolos, portas e conexões em UML-RT

Upload: others

Post on 24-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Cápsulas, Protocolos, portas e conexões em UML-RT

Projetar cápsulas | 2

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Classes Ativas

Motivação­ Facilitar a introdução de conceitos de

concorrência no projeto• Abordagens já existentes: ROOM, UML-RT, EDOC

­ Abstrair a implementação da comunicação• Troca de mensagens X chamada de procedimentos

­ Fluxo de execução independente do restante do sistema

Notação utilizada no Curso­ Cápsulas, Protocolos, Portas, Conexões

Projetar cápsulas | 3

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando Cápsulas

Cápsula­ Representa uma thread lógica do sistema­ Fluxo de controle independente no sistema

Em geral, podem ser identificadas a partir de eventos externos (interação usuários comcasos de uso) ­ Candidatas: classes presentes na realização de um

caso de uso, afetadas por um evento externo

No curso, processos CSP ...

Projetar cápsulas | 4

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Caso de uso – Atualizar Cotações

Cliente(from atores)

Consultar Cotações(from consultas)

Comprar Ações(from transacoes)

Vender Ações(from transacoes)

Operadora Mercado de Ações(from atores)

Relógio(from atores)

Atualizar Cotações(from transacoes)

Projetar cápsulas | 5

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Gráfico de interações entre cápsulasCaso de Uso: Atualizar Cotação

InterfaceRelogio<<Capsule>>

ControladorAtualizacaoCotacoes<<Capsule>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

interrupcao dadosCotacoes

consultarCotacoes

ComunicacaoNasdaq<<Capsule>>

ComunicacaoBovespa<<Capsule>>

consultarCotacoesNasdaq consultarCotacoesBovespa

dadosNasdaq dadosBovespa

Projetar cápsulas | 6

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando Protocolos das Cápsulas

Protocolos­ Identificam o ‘contrato’ entre cápsulas, definindo

um conjunto de sinais usados para comunicação entre diferentes threads, bem como a sequênciaválida de troca de sinais entre as cápsulas.

Passos­ Para cada interação entre cápsulas, criar um

protocolo­ Identificar similaridades entre protocolos e

promover reuso­ Associar protocolos a cápsulas

Projetar cápsulas | 7

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando ProtocolosCriar os protocolos

Escolha uma das duas cápsulas como referência para definir os sinais de entrada e os de saídaInsira os sinais de entrada e de saída da cápsula no protocolo criado

Projetar cápsulas | 8

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando ProtocolosCriar os protocolos

InterfaceRelogio<<Capsule>>

ControladorAtualizacaoCotacoes<<Capsule>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

interrupcao

consultarCotacoes

dadosCotacoes

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

ComunicacaoNasdaq<<Capsule>>

ComunicacaoBovespa<<Capsule>>

consultarCotacoesNasdaq consultarCotacoesBovespa

dadosNasdaq dadosBovespa

Projetar cápsulas | 9

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando ProtocolosCriar os protocolos

InterfaceRelogio<<Capsule>>

ControladorAtualizacaoCotacoes<<Capsule>>interrupcao

consultarCotacoes

dadosCotacoes

ConsultaCotacoes

dadosCotacoes ()

consultarCotacoes ()

<<Protocol>>

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

ComunicacaoNasdaq<<Capsule>>

ComunicacaoBovespa<<Capsule>>

consultarCotacoesNasdaq consultarCotacoesBovespa

dadosNasdaq dadosBovespa

Projetar cápsulas | 10

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando ProtocolosCriar os protocolos

InterfaceRelogio<<Capsule>>

ControladorAtualizacaoCotacoes<<Capsule>>interrupcao

consultarCotacoes

dadosCotacoes

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

ComunicacaoNasdaq<<Capsule>>

ComunicacaoBovespa<<Capsule>>

consultarCotacoesNasdaq consultarCotacoesBovespa

ConsultaCotacoes

dadosCotacoes ()

consultarCotacoes ()

<<Protocol>>

InteracaoBovespa<<Protocol>>

consultarCotacoesBovespa (void)

dadosCotacoesBovespa (void)dadosNasdaq

Projetar cápsulas | 11

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando ProtocolosCriar os protocolos

InterfaceRelogio<<Capsule>>

ControladorAtualizacaoCotacoes<<Capsule>>interrupcao

consultarCotacoes

dadosCotacoes

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

ComunicacaoNasdaq<<Capsule>>

ComunicacaoBovespa<<Capsule>>

consultarCotacoesNasdaq consultarCotacoesBovespa

ConsultaCotacoes

dadosCotacoes ()

consultarCotacoes ()

<<Protocol>>

InteracaoBovespa<<Protocol>>

consultarCotacoesBovespa (void)

dadosCotacoesBovespa (void)dadosNasdaq

ack

InteracaoNasdaq<<Protocol>>

consultarConexaoNasdaq (void)

dadosCotacoesNasdaq (void)

Projetar cápsulas | 12

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando Protocolos Identificar similaridades entre protocolos

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

InteracaoBovespa<<Protocol>>

consultarCotacoesBovespa (void)

dadosCotacoesBovespa (void)

InteracaoNasdaq<<Protocol>>

consultarConexaoNasdaq (void)

dadosCotacoesNasdaq (void)ConsultaCotacoes

dadosCotacoes ()

consultarCotacoes ()

<<Protocol>>

Projetar cápsulas | 13

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando Protocolos Protocolos identificados

Finalmente...

ConsultaCotacoes

dadosCotacoes ()

consultarCotacoes ()

<<Protocol>>

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

Projetar cápsulas | 14

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Identificando Protocolos Associar protocolos a cápsulas

Associações entre protocolos e cápsulas

ControladorAtualizacaoCotacoes<<Capsule>>

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

InterfaceRelogio<<Capsule>>

ConsultaCotacoes

consultarCotacoes ()

dadosCotacoes ()

<<Protocol>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

ComuicacaoBOVESPA<<Capsule>>

ComuncacaoNASDAQ<<Capsule>>

Projetar cápsulas | 15

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Criando portas eassociando portas a protocolos

Criar o conjunto inicial de portas, considerando as responsabilidades da cápsulaPasso-a-passo:­ Criar uma porta para cada interação cápsula-protocolo-

cápsula­ Nomear a porta com o nome do protocolo ou com o papel

da cápsula na realização do protocolo­ Se as direções dos sinais no protocolo estiverem invertidos

(entrada está como saída e vice-versa), a porta deve ser definida como conjugada (conjugated)

O mesmo protocolo pode ser utilizado em diferentes portas

Projetar cápsulas | 16

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exemplo – Diagrama de classes de Atualizar Cotação

InterfaceRelogio

+ / interrupcao

<<Capsule>>

ControladorAtualizacaoCotacoes

+ / interrupcao~+ / cosultaCotacoes

<<Capsule>>

AtivacaoPeriodica

interrupcao (void)

<<Protocol>>

ConsultaCotacoes

ack (void)dadosCotacoes (void)

iniciaConexao (void)consultaCotacoes (void)

<<Protocol>>

ComunicacaoNasdaq

+ / consultaNasdaq~

<<Capsule>>ComunicacaoBovespa

+ / consultaBovespa~

<<Capsule>>

ISubsistemaComunicacaoOperadoraMercadoAcoe

ComunicacaoOperadoraCotacao

+ / consultaMercados

<<Capsule>>

FachadaComunicacaoOperadoraMercadoAcoes

+ / interrupcao<<Port>>

+ / interrupcao<<Port>>

+ / interrupcao~<<Port>>

+ / interrupcao~<<Port>>

+ / cosultaCotacoes<<Port>>

+ / cosultaCotacoes<<Port>>

1111

1

+ / consultaCotacoes~

<<Port>>

+ / consultaCotacoes~

<<Port>>

/ consultaBovespa / consultaNasdaq

+ / consultaCotacoes~

Projetar cápsulas | 17

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exemplo- Relacionamento entre cápsula e subcápsulas

ConsultaCotacoes

consultarCotacoes ()

dadosCotacoes ()

<<Protocol>>ComunicacaoOperadoraCotacao

<<Capsule>>

+ / consultarCotacoes~ + / consultarMercados

ComuicacaoBOVESPA<<Capsule>>

+/ ConsultarCotacoes ~

ComuicacaoNASDAQ<<Capsule>>

+/ ConsultarCotacoes ~

Projeto Interno de Cápsulas

Projetar cápsulas | 19

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Passos para Projetar Cápsulas

• Definir diagrama de estados• Definir diagrama de estrutura

Projetar cápsulas | 20

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Passo 1. Definir diagrama de estados

Definir o comportamento interno da cápsulaQuando utilizar?­ Para representar o comportamento interno das

cápsulas “folhas” bem como das que possuem sub-cápsulas

­ Para especificar restrição de ordem nos sinais de um protocolo

­ Restrição na ordem de invocação dos métodos de uma classe

Projetar cápsulas | 21

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de estados x diagrama de interação

Diagrama de estados ­ Comportamento interno de uma classe (ou

cápsula)

Diagrama de interação­ Comportamento do caso de uso como uma

cooperação entre classes (cápsulas)

Projetar cápsulas | 22

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Maquina de Estados

Maquinas de estados são utilizadas para:­ Indicar qual será o comportamento dos objetos

de acordo com o seu estado­ Indicar seqüência de ações válidas

Saldo = 0

crédito

Saldo > 0

construtor

crédito debito

debito

Máquina de estados ilustrando o ciclo de

vida de um objeto Conta

Projetar cápsulas | 23

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exercício

Projetar o diagrama de estados que especifica o comportamento de um buffer (de tamanho máximo N), com métodos insert, remove e size

Projetar cápsulas | 24

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de Estados -InterfaceRelogio

Cápsula: InterfaceRelogio

AguardandoInterrupcao

Initial

timeout / porta.gerarInterrupcao

InterfaceRelogio

#/ timer+/ porta

Projetar cápsulas | 25

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Forma geral de uma transição

e [g] / a

e = eventog = guardaa = ação

Projetar cápsulas | 26

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de Estados –ComunicacaoOperadora

Cápsula: ComunicacaoOperadoraMercadoAcoes

EsperandoSolicitacao

AguardandoDados

Initial

dadosCotacoes[count == 1] /controlador.dadosCotacoes.send();

dadoCotacao = rtGetMsgData();buffer.add(dadoCotacao);

count = count + 1;

consultarCotacoes/mercados.consultarCotacoes.send();

Count = 0;

dadosCotacoes[count < 1]/ dadoCotacao = rtGetMsgData();

buffer.add(dadoCotacao);count = count + 1;

ComunicacaoOperadoraMA

+/ mercados+/ controlador

- buffer : Buffer- count : int

Projetar cápsulas | 27

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de Estados –ComunicacaoBovespa

Cápsula: ComunicacaoBovespa

AguardandoPeriodo

AguardandoDados

Initial

dadosCotacoes /dadosCotacoes.send();

consultarCotacoes

ComunicacaoBovespa

+/ dadosCotacoes~

Projetar cápsulas | 28

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exercício

Colocar ações e condições nos exemplos de Conta e Buffer

Projetar cápsulas | 29

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exemplo: Produtor-Consumidor

Produtor

#/ timer+/ porta

produz(): Q

Consumidor

+/ porta~consome(q: Q)

Comunicacaoincomingoutgoing

envia(Q )

Produzindo

transicão inicial

timeout/ produz(); porta.envia.send(q);

Produtor

Esperando

transicão inicial

envia/ consome(q);

Consumidor

Projetar cápsulas | 30

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstadosEstados

Estado é uma condição de um objeto no qual este realiza alguma atividade ou espera por determinado evento.É composto de:­ Nome ­ Ação de entrada (Entry action)­ Ação de saída (Exit action)­ Máquina de estados interna (super estados)

Projetar cápsulas | 31

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Entry/Exit action

A

x/ execute();

C

B

y/ execute();

A

x

C

B

yEntryAction:

Execute();

x y

ExitAction:Execute();

B

A

CB

x/ execute();

A

C

y/ execute();

Projetar cápsulas | 32

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de Estados –ComunicacaoOperadora

Cápsula: ComunicacaoOperadoraMercadoAcoes

EsperandoSolicitacao

AguardandoDados

Initial

dadosCotacoes[count == 1] /controlador.dadosCotacoes.send();

dadoCotacao = rtGetMsgData();buffer.add(dadoCotacao);

count = count + 1;

consultarCotacoes/mercados.consultarCotacoes.send();

Count = 0;

Código em comum

dadosCotacoes[count < 1] /dadoCotacao = rtGetMsgData();

buffer.add(dadoCotacao);count = count + 1;

Projetar cápsulas | 33

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de Estados –ComunicacaoOperadora

Cápsula: ComunicacaoOperadoraMercadoAcoesUsando Exit Action

EsperandoSolicitacao

AguardandoDados

Initial

dadosCotacoes[count == 1] /controlador.dadosCotacoes.send();consultarCotacoes/

mercados.consultarCotacoes.send();Count = 0;

dadosCotacoes[count < 1]Exit Actionbuffer.add(dadoCotacao);count = count + 1;dadoCotacao = rtGetMsgData();

Projetar cápsulas | 34

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstadosTransições

Transição é um relacionamento direcionado entre dois estados (origem e destino)É composta de:­ Nome­ Estado origem­ Evento de disparo­ Condição de guarda ­ Ação ­ Estado destino

Projetar cápsulas | 35

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Modularizando Diagramas de EstadosSuper Estados e História

Principais elementos

estado

transicão

estado

transicão final

transicão inicial

super-estado

transicão deorigem externa

auto-transicão

sub-estado

sub-estado

HEstadohistória

Projetar cápsulas | 36

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exemplo: Produtor-Consumido estendido

Produtor

#/ timer+/ porta

produz(): Q

Consumidor

+/ porta~consome(q: Q)

Comunicacao

Incomingligar() parar()

outgoingenvia(Q )

Produzindo

transicão inicial

timeout/ produz();porta.envia.send();

Produtor

Parado parar/ timer.cancel();ligar/

timer.informEvery(100);

LigandoProdutor

inicial Consumidor

Consumindo

timeout [s >= 20]/ timeout [s <= 20]/

envia [s < 50]/ buffer.add(q);

timeout [20 < s && s < 50]/consumir (buffer.top());

timeout [s = 50]/porta.parar.send();consome(buffer.top());

H

20

50

Entry action: porta.ligar.send();timer.informEvery(100) ;

buffer : Buffers : int

Projetar cápsulas | 37

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstadosExemplo Simbólico

Na seqüência t1, t5, t3­ Ação de t1­ Entry action do estado1­ Ação de t2 (implícita)­ Entry action do estado1.1­ Exit action do estado1­ Ação de t5­ Entry action do estado1­ Ação de t2 (implícita)­ Entry action do estado1.1­ Exit action do estado1.1­ Ação de t3­ Entry action do estado1.2

estado1.1

estado1.2

t2

t3

t4

t1

estado1t6

t5

Projetar cápsulas | 38

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Exemplo SimbólicoEstados história

Permitem continuidade na execução de máquinas de estados internas a super-estadosExemplo:

estado3.1

estado3.2

H

estadohistória

t6

t7

t8

estado1

t2

estado2

t1

estado3

t5

t4t3

...1. t12. estado13. t24. estado25. t36. estado37. t6 8. estado3.19. t410. estado3.111. t712. estado3.213. t414. estado3.2

...

Projetar cápsulas | 39

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Passo 2. Definir diagrama de estrutura

Definir a conexão entre as instâncias das cápsulasÉ considerado também um diagrama de colaboraçãoQuando utilizar?­ Para indicar que portas de cada instância estão

conectadas entre si.

Projetar cápsulas | 40

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaNotação

Elementos­ Instâncias de Cápsulas­ Portas­ Conexões

Instancia_A Instancia_Bconexão

Porta Porta

Projetar cápsulas | 41

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaInstâncias de Cápsulas

Instâncias de cápsulas são a valoração de uma cápsulaUm instância é composta de:­ Nome ­ Cápsula­ Cardinalidade

Projetar cápsulas | 42

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaPortas

Portas definem na cápsula o ponto onde mensagens podem chegar ou sair da cápsulaUm porta é composta de:­ Nome­ Visibilidade: pública ou protegida­ Cardinalidade: número de cápsulas que vão se

comunicar­ Protocolo­ Papel: Conjugada, End Port ou Relay Port

Projetar cápsulas | 43

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaTipos de Portas

Conjugada­ Porta em que a definição dos sinais de entrada e

saída é trocada. End Port­ Porta que direciona os sinais que passam por ela

diretamente para o statechart da cápsulaRelay Port­ Porta que permite a comunicação de cápsulas

externas diretamente com as subcápsulas.

Obs.:Podem existir portas com serviços especiais (ex.: timer, log, frame). [Non-wired port]

Projetar cápsulas | 44

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaPortas

Instancia_B

Porta conjugada

Relay Portpublic

End Portprotected

Simboliza maq. estado

Instancia_A

Instancia_C

Projetar cápsulas | 45

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaConexão

Conexões representam o canal de comunicação por onde passam as mensagensÉ composta de:­ Nome­ Delay­ Cardinalidade

Obs.: Só podem ser conectadas portas de protocolos com o mesmo conjunto de sinais

Projetar cápsulas | 46

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaExemplo: Produtor Consumidor

Consumidor

porta~

Produtor

portatimer timer

Projetar cápsulas | 47

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Qualiti Software Processes

Copy

righ

t ©

2005

Qua

liti.

Tod

os o

s di

reit

os r

eser

vado

s.

Diagrama de EstruturaExemplo: QIB Mercado de Ações

Relogio

timer

interrupcao

ControladorAtualizacao

dadosCotacoesInterrupcao~

ComunicacaoOperadoradadosCotacoes~

OperadoraBovespa OperadoraNasdaq

ComunicaçãoOperadora

+/ dadosCotacoes~#/ cotacaoBovespa#/ cotacaoNadasq

OperadoraBovespa

+/ cotacaoBovespa+

OperadoraNasdaq

+/ cotacaoNasdaq+