Projetar Cápsulas Parte 1
Projetar cápsulas | 2
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Objetivos deste móduloApresentar os passos necessários para realizar a atividade projetar cápsulas e discutir seus artefatosApresentar notação de UML para representação de concorrência e tempo real
Projetar cápsulas | 3
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista deBanco de Dados
Arquiteto de Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas
Projetar Base de Dados
Analista deSistemas
Projetar Cápsulas
Projetar Cápsulas
Projetar cápsulas | 4
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Projetar Cápsulas
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista deBanco de Dados
Arquiteto de Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas
Projetar Base de Dados
Analista deSistemas
decisões doarquiteto
<<subsystem>>
Projetar Cápsulas
Projetar cápsulas | 5
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
O que foi feito até agoraIdentificação das classes de análise, seus atributos, responsabilidades e relacionamentosMapeamento das classes de análise em elementos de projeto Identificação das oportunidades de reusoDefinição da organização do sistemaDefinição da distribuição do sistemaRefinamento das realizações dos casos de uso (substituição dos elementos de análise por elementos de projeto e persistência)Modelagem dos subsistemas
Projetar cápsulas | 6
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Objetivos desta atividadeDetalhar a estrutura e o comportamento das cápsulas identificadas no projetoDetalhar e especificar portas e protocolos Garantir que as cápsulas fornecem o comportamento necessário à realização dos casos de uso
Realizada para cada cápsula da iteração correnteTodas as cápsulas devem estar
projetadas até o final da fase de elaboração
Projetar cápsulas | 7
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Visão geral dos artefatos
Analista de Sistemas
Projetar Cápsulas
Projeto de Cápsulas
Modelo de Análise e Projeto
Requisitos Não
Funcionais
Projetar cápsulas | 8
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Passos para Projetar Cápsulas
• Definir diagrama de estados• Validar comportamento da cápsula• Definir diagrama de estrutura
Projetar cápsulas | 9
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Passo 1. Definir diagrama de
estadosDefinir o comportamento interno da cápsulaQuando utilizar? Para representar o comportamento interno
das cápsulas Para especificar restrição de ordem nos
sinais de um protocolo
Projetar cápsulas | 10
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de estados x diagrama de interação
Diagrama de estados Comportamento interno de uma classe ou
cápsula (também de interfaces e protocolos)
Diagrama de interação Comportamento do caso de uso como uma
cooperação entre classes (cápsulas)
Projetar cápsulas | 11
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Maquina de EstadosMaquinas 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 | 12
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de Estados - InterfaceRelogio
Cápusla: InterfaceRelogio
AguardandoInterrupcao
Initial
gerarInterrupcao
Projetar cápsulas | 13
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de Estados – ComunicacaoBovespa sem
ACKCápsula: ComunicacaoBovespa
AguardandoPeriodo
AguardandoDados
Initial
recebeuDadosiniciarAtualizacao
Projetar cápsulas | 14
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de Estados – ComunicacaoOperadora
Cápsula: ComunicacaoBovespa
EsperancoSolicitacao
AguardandoDados
Initial
dadosCotacoes[count == 2]/ controlador.dadosCotacoes.send()
consultarCotacoes
dadosCotacoes[count < 2]
EntryAction: count = 0ExitAction: dadoCotacao =rtGetMsgData () buffer.add( dadoCotacao) count = count + 1
Projetar cápsulas | 15
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de Estados – ComunicacaoBovespa com
ACK
AguardandoPeriodo AguardandoACK
AguardandoDados
Initial
iniciarAtualizacao
recebeuACKrecebeuDados
Cápsula: ComunicacaoBovespa
Projetar cápsulas | 16
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo: Produtor-Consumidor
Produtor
#/ timer+/ porta
produz(): Q
Consumidor
+/ porta~consome(q: Q)
Comunicacaoincomingoutgoing
envia(Q )
Esperando
transicão inicial
envio/ consome(q);
Consumidor
Produzindo
transicão inicial
timeout/ produz(); porta.envia.send(q);
Produtor
Projetar cápsulas | 17
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagramas de EstadosNotação
estado
transicão
estado
transicão final
transicão inicial
super-estado
transicão deorigem externa
auto-transicão
Principais elementos
sub-estado
sub-estado
Estado históriaH
Projetar cápsulas | 18
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo: Produtor-Consumido
estendidoProdutor
#/ 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]/
envio [s < 50]/ buffer.add(q);
timeout [20 < s && s < 50]/ consumir (buffer.top());
timeout [s = 50]/ porta.parar.send();
H
20
50
Projetar cápsulas | 19
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de EstadosEstados
Estado é uma condição de um objeto no qual este realiza alguma atividade ou espera por determinado evento.É composto de: Nome : Obrigatório
Ação de entrada (Entry action) Ação de saída (Exit action) Máquina de estados interna
Projetar cápsulas | 20
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Entry/Exit action
A
x/ execute();
C
B
y/ execute();
A
x
C
B
yEntryAction: Execute();
B
x/ execute();
A
C
y/ execute(); x y
ExitAction: Execute();
B
A
C
Projetar cápsulas | 21
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de EstadosTransições
Transição é um relacionamento direcionado entre dois estados (origem e destino)É composta de: Nome : Obrigatório
Estado origem Evento de disparo : Obrigatório
Condição de guarda Ação Estado destino : Obrigatório
Projetar cápsulas | 22
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de EstadosOrdem de Execução das Ações
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 | 23
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de EstadosEstados história
Permitem continuidade na execução de máquinas de estados internas a super-estadosExemplo: ...
1. t12. estado13. t24. estado25. t36. estado37. t6 8. estado3.19. t410. estado3.111. t712. estado3.213. t414. estado3.2
...
estado3.1
estado3.2
H
estadohistória
t6
t7
t8
estado1
t2
estado2
t1
estado3
t5
t4t3
Projetar cápsulas | 24
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagrama de Estados Passo-a-passo
Para cada cápsula: Defina estados
• Identifique os estados em que a cápsula pode existir• Organize o diagrama hierarquicamente
Defina transições entre estados• Identifique os eventos que disparam as transições• Verifique a existência de condições para o disparo
Associe ações (ainda em pseudo-código) às transições e aos eventos de chegada e saída dos estados
Atualizar os diagramas de seqüência inserindo estados locais entre mensagens e eventos
Projetar cápsulas | 25
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Diagramas de EstadosOrientações
Definição de Nomes dos estados devem estar no gerúndio representando intervalo
de tempo das transições devem representar condições ou ações
Número de estados Se houver mais de 5 a 7 estados, analise a utilização de sub-
estados favorecendo a compreensãoDisparo de transições Certifique-se de que apenas uma transição será disparada por
vez. Mais de uma transição habilitada torna a execução imprevisível.
AguardandoPeriodo
gerarInterrupcao
Projetar cápsulas | 26
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Passo 2. Validar comportamento da
cápsulaRevisar o modelo simulando vários cenários Verificar: Nomes apropriados para estados e transições Seqüência de execução das ações Disparo das transições
• É sempre possível continuar a execução?• Cada evento dispara apenas uma transição?
Operações nas cápsulas• As cápsulas possuem as operações necessárias para
as responsabilidades definidas no diagrama de estados?
Projetar Cápsulas Parte 1