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