fluxo de análise e projeto do rup para tempo real augusto sampaio
TRANSCRIPT
Fluxo de Análise e Projeto
do RUP paraTempo Real
Augusto Sampaio
Fluxo de análise e projeto | 2
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Objetivos do fluxo de análise e projeto
Transformar os requisitos em um projeto (inicialmente abstrato) do sistema Desenvolver uma arquitetura robusta para o sistemaAdaptar o projeto levando em consideração requisitos da futura implementação
Fluxo de análise e projeto | 3
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Visão geral dos artefatos
Análise e Projeto
Análise e Projeto
Modelo de Casos de Uso
Projeto de Banco de
Dados
Documento de Requisitos
Glossário
Documento da
Arquitetura
Mapeamento das Classes de Análise em Elementos de
Projeto
Modelo de Análise e Projeto
Fluxo de análise e projeto | 4
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
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
Fluxo de Análise e Projeto
Projetar Cápsulas
Fluxo de análise e projeto | 5
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
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
Fluxo de Análise e Projeto
decisões doarquiteto
<<subsystem>>
CheckList bla bla
bla
blabla
Projetar Cápsulas
Fluxo de análise e projeto | 6
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Analisar Casos de Uso
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
Fluxo de análise e projeto | 7
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passos para Analisar Casos de Uso
Para cada caso de uso:1. Encontrar classes de análise2. Identificar persistência
Para cada classe:3. Distribuir comportamento entre as classes 4. Descrever responsabilidades5. Descrever atributos e associações
6. Revisar os Resultados
Fluxo de análise e projeto | 8
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 1. Encontrar classes de análise
O comportamento do caso de uso é distribuído em classes de análise dos seguintes tipos (estereótipos) fronteira
controle
entidade
Estes estereótipos são uma conveniência de análise que desaparecem no projeto
Fluxo de análise e projeto | 9
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB - Diagrama de Casos de Uso
Operadora do DOC
Desbloquear Talõesde Cheque
Efetuar Login
Alterar Senha
Consultar Saldo
Consultar Extrato
Consultar Qualiti CardRealizar Transferência
Consultar Cheques
Solicitar Talões de Cheque
Realizar DOC
ClienteAtor
Operadora Cartão de Crédito
Efetuar Pagamento do Qualiti Card
Mostrar Dados daConsulta
<<include>>
<<include>>
Usaremos o QIB como exemplo
Fluxo de análise e projeto | 10
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar LoginRegra geral para encontrar classes de fronteira: uma classe por cada par ator/caso de uso
TelaLogin<<boundary>>
ClienteAtorEfetuar Login
Fluxo de análise e projeto | 11
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar Login
Encontrando classes de controle
ControladorLogin<<control>>
ClienteAtorEfetuar Login
Fluxo de análise e projeto | 12
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Classes de Entidade (entity classes)
Abstrações e conceitos chaves dos casos de usoFontes: Conhecimento do negócio
Glossário
Modelo de negócios
Documento de requisitos
Especificação do Caso de uso
<<entity>>
Armazenam e controlam informação no sistema
Notação em UML
Fluxo de análise e projeto | 13
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar LoginObserve o fluxo de eventos do Efetuar Login
Este caso de uso é responsável por autenticar um usuário do sistema.
Pré-condição: nenhumaPós-condição: um usuário válido é logado e sua sessão é registrada no sistema.
Fluxo de eventos principal1. O cliente informa login e senha.2. O sistema verifica se o login e a senha são válidos (verifica-se se o login e senha pertencem a uma conta).3. O sistema registra o início de uma sessão de uso.
Fluxos secundários- No passo 2, se o login ou a senha forem inválidos, o sistema exibe uma mensagem e volta ao passo 1.
Este caso de uso é responsável por autenticar um usuário do sistema.
Pré-condição: nenhumaPós-condição: um usuário válido é logado e sua sessão é registrada no sistema.
Fluxo de eventos principal1. O cliente informa login e senha.2. O sistema verifica se o login e a senha são válidos (verifica-se se o login e senha pertencem a uma conta).3. O sistema registra o início de uma sessão de uso.
Fluxos secundários- No passo 2, se o login ou a senha forem inválidos, o sistema exibe uma mensagem e volta ao passo 1.
Fluxo de análise e projeto | 14
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Classes de entidade
A classe Conta é uma classe que armazena o login e senha de um cliente.
Algumas classes levantadas podem ser eliminadas e novas serão adicionadas
QIB – Efetuar Login
Usuario<<entity>>
Conta<<entity>>
Fluxo de análise e projeto | 15
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar Login
Classes de análise descobertas até o momento
Usuario<<entity>>
TelaLogin<<boundary>>
ControladorLogin<<control>>
Conta<<entity>>
Fluxo de análise e projeto | 16
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 2. Identificar persistência
Identificar que classes de análise deverão ser persistentesCriar, para cada classe persistente, uma classe de cadastro com estereótipo <<entity collection>>
Fluxo de análise e projeto | 17
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar Login
Classes persistentes
Usuario<<entity>>
CadastroUsuarios<<entity collection>>
Conta<<entity>>
CadastroContas<<entity collection>>
Fluxo de análise e projeto | 18
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 3. Distribuir comportamento entre as
classes
Para cada fluxo de eventos alocar responsabilidades do caso de uso às
classes de análise
modelar interações entre as classes através dos diagramas de interação
Fluxo de análise e projeto | 19
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar Login
: ClienteAtor : TelaLogin : ControladorLogin : CadastroContas
efetuarLogin(login, senha)
efetuarLogin(login, senha)
existeConta(login, senha)
registraSessao(login)
Fluxo de análise e projeto | 20
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB - Efetuar Login
: ClienteAtor
: TelaLogin
: ControladorLogin : CadastroContas
4: registraSessao(login)
1: efetuarLogin(login, senha)
2: efetuarLogin(login, senha)
3: existeConta(login, senha)
Fluxo de análise e projeto | 21
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 4. Descrever Responsabilidades
Responsabilidades identificadas nos fluxos de eventos são refletidas em diagramas de interaçãoMensagens nestes diagramas resultam em responsabilidades nas classes receptoras
:Cliente :Fornecedor
// Realizar responsabilidade
Fornecedor
// Realizar responsabilidade
diagrama de classes
diagrama de interação
Fluxo de análise e projeto | 22
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar Login
Classes com responsabilidades
TelaLogin
efetuarLogin()
<<boundary>>
ControladorLogin
efetuarLogin()
<<control>>
CadastroContas
existeConta()
<<entity collection>>
Conta
<<entity >>
Fluxo de análise e projeto | 23
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 5. Descrever atributos e associações
Detalhando mais as classes definir atributos
estabelecer associações necessárias entre as classes
Fluxo de análise e projeto | 24
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar LoginDiagrama de classes com relacionamentos e atributos
Conta
loginsenha
<<entity>>
TelaLogin
efetuarLogin()
<<boundary>>
CadastroContas
existeConta()
<<entity collection>>
0..n0..n
ControladorLogin
efetuarLogin()
<<control>>
1
0..n
1
0..n
1
1
1
1
Fluxo de análise e projeto | 25
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Projetar Arquitetura
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
Fluxo de análise e projeto | 26
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passos para Projetar Arquitetura
1. Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto
2. Identificar oportunidades de reuso3. Definir a estrutura da aplicação
Fluxo de análise e projeto | 27
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 1: Mapear classes de análise em elementos (classes, cápsulas e
subsistemas) de projeto
Identificar classes de projetoIdentificar cápsulasIdentificar protocolos das cápsulasIdentificar subsistemasEspecificar a interface dos subsistemasFazer o mapeamento1 classe de análise pode dar origem a 0 ou mais classes de projeto
Mapeamento m : n
Fluxo de análise e projeto | 28
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando classes de projeto
Uma classe de análise simples, que representa uma única abstração, é mapeada para uma única classe de projeto Exemplo: classes de entidade
Classes de análise muito simples podem até ser combinadas em uma única classe de projetoEm geral, classes de análise complexas podem ser divididas em várias classes ou transformadas em um pacote ou subsistema
Fluxo de análise e projeto | 29
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando Cápsulas
Cápsula Representa um thread do sistema
Fluxo de controle independente no sistema
Utilizadas para representar... unidades de concorrência
objetos concorrentes externos
representação interna de dispositivos físicos externos
controladores de objetos concorrentes
Em geral, uma cápsula representa uma classe ativa
Fluxo de análise e projeto | 30
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Mapeamento das Classes de Análise em Cápsulas
Classes de fronteira e de controle são candidatas a transformarem-se em cápsulas
Atributos e operações de cápsulas são privados. Exceto o método que modela o comportamento.
Fluxo de análise e projeto | 31
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Árvore de decisãoClasses de Fronteira e de Controle
Representa um componente
externo?
Reage a eventos externos?
Controla apenas acesso a dados?
Possui concorrência interna? Controla outras
cápsulas?
Transformar em
cápsula
Transformar
em várias cápsulas
Continuar como classe <<boundary>> ou <<control>>
S
S
S
S
S
N
N
N
N
N
Fluxo de análise e projeto | 32
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Cápsulas e Concorrência
Concorrência interna
Concorrência externa
Fluxo de análise e projeto | 33
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Caso de uso – Atualizar Cotações
Relógio
(from atores)
Cliente
(from atores)
Consultar Cotações
(from consultas)
Comprar Ações
(from transacoes)
Vender Ações
(from transacoes)
Atualizar Cotações
(from transacoes)
Operadora Mercado de Ações
(from atores)
Fluxo de análise e projeto | 34
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Fluxo de eventos – Atualizar cotações
Fluxo de eventos Este caso de uso se inicia quando o relógio dispara uma
interrupção, a cada 5 minutos, indicando que as cotações devem ser atualizadas.
O sistema consulta as cotações das ações através da operadora do Mercado de Ações.
Em seguida o sistema atualiza o valor das ações, mantendo todo histórico dos valores das ações.
Fluxo secundário No passo 2, se a operadora demorar mais que 5
segundos para responder a solicitação de consulta, ocorrerá um timeout e o caso de uso será encerrado.
Em qualquer momento o usuário pode cancelar a operação.
Fluxo de análise e projeto | 35
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Exemplo - QIB Mercado de AçõesClasses de Análise
InterfaceRelogio<<boundary>>
ControladorAtualizacaoCotacoes<<control>>
ComunicacaoOperadoraMercadoAcoes<<boundary>>
Acao<<entity>>
Cotacao<<entity>>
OperadoraMercadoAcoes<<entity>>
CadastroAcoes<<entity collection>>
CadastroCotacoes<<entity collection>>
CadastroOperadorasMercadoAcoes<<entity collection>>
Fluxo de análise e projeto | 36
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Exemplo - QIB Mercado de Ações
Classes de projeto
InterfaceRelogio<<capsule>>
ControladorAtualizacaoCotacoes<<capsule>>
ComunicacaoOperadoraMercadoAcoes<<subsystem>>
ComunicacaoNasdaq<<capsule>>
ComunicacaoBovespa<<capsule>>
Acao<<entity>>
Cotacao<<entity>>
OperadoraMercadoAcoes<<entity>>
CadastroAcoes<<entity collection>>
CadastroCotacoes<<entity collection>>
CadastroOperadorasMercadoAcoes<<entity collection>>
IComunicacaoOperadoraMercadoAcoes<<interface>>
IRepositorioAcoes<<interface>>
RepositorioAcoesBDR
IRepositorioCotacoes<<interface>>
RepositorioCotacoesBDR
IRepositorioMercadoAcoes<<interface>>
RepositorioMercadoAcoes
Fluxo de análise e projeto | 37
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
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ência válida de troca de sinais entre as cápsulas.
Passos Para cada cápsula, listar o conjunto de sinais de entrada
e de saída (in e out)
Desenhar gráfico de interação entre cápsulas
Para cada interação par-a-par, criar um protocolo
Identificar similaridades entre protocolos e promover reuso
Associar protocolos a cápsulas
Fluxo de análise e projeto | 38
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando ProtocolosIdentificar conjunto de sinais das
cápsulasInterfaceRelogio Entradas:
Saídas: interrupcao
ControladorAtualizacaoCotacoes Entradas: interrupcao, dadosCotacoes
Saídas: consultarCotacoes
ComunicacaoOperadoraMercadoAcoes Entradas: consultarCotacoes, dadosCotacoesNasdaq,
dadosCotacoesBovespa,
Saídas: dadosCotacoes, consultarCotacoesNasdaq, dadosCotacoesBovespa,
ComunicacaoNasdaq Entradas: consultarCotacoesNasdaq
Saídas: dadosCotacoesNasdaq
ComunicacaoBovespa Entradas: consultarCotacoesBovespa
Saídas: dadosCotacoesBovespa
Fluxo de análise e projeto | 39
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando Protocolos Gráfico de interações entre cápsulas
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
interrupcao
consultarCotacoes
dadosCotacoes
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq dadosBovespa
Fluxo de análise e projeto | 40
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
Toda interação entre cápsulas deve ser feita através de protocolosPasso-a-passo: Para cada par de cápsulas que interagem
entre si, crie um protocolo
Escolha uma das duas cápsulas como referência para definir os sinais de entrada e os de saída
Insira os sinais de entrada e de saída da cápsula no protocolo criado
Fluxo de análise e projeto | 41
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
interrupcao
consultarCotacoes
dadosCotacoes
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq dadosBovespa
Fluxo de análise e projeto | 42
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>interrupcao
consultarCotacoes
dadosCotacoes
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq dadosBovespa
Fluxo de análise e projeto | 43
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>interrupcao
consultarCotacoes
dadosCotacoes
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
InteracaoBovespa<<Protocol>>
consultarCotacoesBovespa (void)
dadosCotacoesBovespa (void)
Fluxo de análise e projeto | 44
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>interrupcao
consultarCotacoes
dadosCotacoes
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
InteracaoBovespa<<Protocol>>
consultarCotacoesBovespa (void)
dadosCotacoesBovespa (void)dadosNasdaq
ack
InteracaoNasdaq
<<Protocol>>
consultarConexaoNasdaq (void)
dadosCotacoesNasdaq (void)
Fluxo de análise e projeto | 45
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando Protocolos Identificar similaridades entre
protocolos
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
InteracaoBovespa<<Protocol>>
consultarCotacoesBovespa (void)
dadosCotacoesBovespa (void)
InteracaoNasdaq
<<Protocol>>
consultarConexaoNasdaq (void)
dadosCotacoesNasdaq (void)
Fluxo de análise e projeto | 46
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando Protocolos Protocolos identificados
Finalmente...
AtivacaoPeriodica
interrupcao ()
<<Protocol>> ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
Fluxo de análise e projeto | 47
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
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>>
Fluxo de análise e projeto | 48
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
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
Fluxo de análise e projeto | 49
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Exemplo
AtivacaoPeriodica
interrupcao (void)
<<Protocol>>
ConsultaCotacoes
consultarCotacoes (void)
dadosCotacoes (void)
<<Protocol>>
InterfaceRelogio
+ / interrupcao : AtivacaoPeriodica
# / timer : Timing
<<Capsule>>
+ / interrupcao<<Port>>
+ / interrupcao<<Port>>
ComunicacaoOperadoraMercadoAcoes
+ / consultaCotacoes : ConsultaCotacoes~
# / consultaBovespa : ConsultaCotacoes# / consulataNasdaq : ConsultaCotacoes
<<Capsule>>
+ / consultaCotacoes~
<<Port>>
+ / consultaCotacoes~
<<Port>>
ComunicacaoBovespa
consultarCotacaoBovespa()
+ / consultaCotacaoBovespa : ConsultaCotacoes~
<<Capsule>>
/ comunicacaoBovespaR1 / comunicacaoBovespaR1
ComunicacaoNasdaq
consultaCotacaoNasdaq()
+ / consultaCotacaoNasdaq : ConsultaCotacoes~
<<Capsule>>
(from controladores) / comunicacaoNasdaqR1 / comunicacaoNasdaqR1
ControladorAtualizacaoCotacoes
+ / interrupcao : AtivacaoPeriodica~
+ / consultaCotacoes : ConsultaCotacoes
<<Capsule>>
+ / interrupcao~
<<Port>>
+ / interrupcao~
<<Port>>
+ / consultaCotacoes<<Port>>
+ / consultaCotacoes<<Port>>
ISubsistemaComunicacaoOperadoraMercadoAcoes
iniciarConexao()consultarCotacoes()
11 111
1
1
1
FachadaComunicacaoOperadoraMercadoAcoes
(from subsistemaComunicacaoMercadoAcoes)
Fluxo de análise e projeto | 50
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Identificando subsistemas
Classes de análise Classes de fronteira (interfaces com
sistemas externos e com usuários)
Classes que fornecem serviços complexos
Componentes reusáveis Software de comunicação
Suporte ao acesso a BD
Estruturas de dados
Bibliotecas de utilitários
Produtos específicos da aplicação
Fluxo de análise e projeto | 51
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
<<subsystem>>Subsistema X
Identificando subsistemas
Classe A
Y()Z()
Y()Z()
<<interface>>
Interface A
Classe complexa
Fluxo de análise e projeto | 52
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Interface <<subsystem>>nomeSubsistema
FachadaSubsistema
ISubSistema
Além da interface, é destacada uma classe fachada de cada subsistema
A classe fachada
Fluxo de análise e projeto | 53
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 2. Identificar oportunidades de reuso
Internas ao sistema Similaridades entre pacotes e subsistemas
Externas ao sistema Componentes disponíveis no mercado
Componentes de aplicações já desenvolvidas
Componentes que podem se tornar reusáveis para outros projetos
Fluxo de análise e projeto | 54
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 3. Definir a estrutura da aplicação
Definir as camadas da aplicaçãoDeterminar o meio de armazenamento que será utilizadoAgrupar as classes, cápsulas e protocolos em pacotes e especificar a fachada da aplicação
Fluxo de análise e projeto | 55
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Estruturação em camadas
Separação do código: interface com o usuário (GUI)
comunicação
regras de negócio
acesso a dadosInterface com o usuário
(GUI)
Comunicação
Negócio
Dados
Fluxo de análise e projeto | 56
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Juntando tudo - Visão geral da arquitetura
GUI / Comunicação
NEGÓCIO
Interfaces negócio-
dados
DADOS
FachadaFachada
TelaLogin
TelaLogin
TelaPagamentoQualitiCard
TelaPagamentoQualitiCard
ControladorLogin
ControladorLogin
ControladorPagamentoQualitiCard
ControladorPagamentoQualitiCard
CadastroPagamentosCartao
CadastroPagamentosCartao
...
ContaInternetContaInternet PagamentoCartao
PagamentoCartao
IRepositorioContasInternet IRepositorioPagamentosCartao
RepositorioPagamentosCartaoBDR
RepositorioPagamentosCartaoBDR
RepositorioPagamentosCartaoBDOO
RepositorioPagamentosCartaoBDOO
RepositorioContasInternetBDR
RepositorioContasInternetBDR
RepositorioContasInternetArqui
vo
RepositorioContasInternetArqui
vo
CadastroContasInternet
CadastroContasInternet
Fluxo de análise e projeto | 57
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Arquitetura – incorporando cápsulas
GUI
Negócio
Interfaces negócio-dados
Dados
TelaConsultarCotacoes - CapsulaTelaConsultarCotacoes - Capsula
ControladorAtualizacaoCotacoes - CapsulaControladorAtualizacaoCotacoes - Capsula
IRepositorioCotacoes
RepositorioCotacoesBDR
RepositorioCotacoesBDR
RepositorioCotacoesArquivo
RepositorioCotacoesArquivo
CadastroCotacoesCadastroCotacoes
Comunicação ConsultaCotacoes – ProtocoloConsultaCotacoes – Protocolo
ComunicacaoOperadora - Capsula
ComunicacaoOperadora - Capsula
ISubsistemaComunicacaoOperadaoraMercadoAcoesISubsistemaComunicacaoOperadaoraMercadoAcoes
CadastroOperadoraMercadoAcoes
CadastroOperadoraMercadoAcoes
IRepositorioOperadoraMercadoAcoes
RepositorioMercadoAcoesBDR
RepositorioMercadoAcoesBDR
RepositorioMercadoAcoesArquivo
RepositorioMercadoAcoesArquivo
InterfaceRelogio – Capsula
InterfaceRelogio – Capsula
AtivacaoPeriodica - Protocolo
AtivacaoPeriodica - Protocolo
GUI
Fluxo de análise e projeto | 58
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Arquitetura completa
Dados
GUI
Negócio
Interfaces negócio-dados
Fachada - CapsulaFachada - Capsula
TelaConsultarCotacoes - CapsulaTelaConsultarCotacoes - Capsula
ControladorAtualizadorCotacoes - Capsula
ControladorAtualizadorCotacoes - Capsula
IRepositorioCotacoes
RepositorioCotacoesBDRRepositorio
CotacoesBDR
RepositorioCotacoes Arquivo
RepositorioCotacoes Arquivo
CadastroCotacoesCadastroCotacoes
Comunicação ConsultaCotacoes – Protocolo
ConsultaCotacoes – Protocolo
CadastroOperadoraMercadoAcoes
CadastroOperadoraMercadoAcoes
IRepositorioOperadoraMercadoAcoes
RepositorioMercadoAcoes
BDR
RepositorioMercadoAcoes
BDR
RepositorioMercadoAcoes
Arquivo
RepositorioMercadoAcoes
Arquivo
TelaLogin - CapsulaTelaLogin - Capsula TelaPagamentoQualitiCard - CapsulaTelaPagamentoQualitiCard - Capsula
PagamentoQualitiCard – Protocolo
PagamentoQualitiCard – Protocolo
PagamentoLogin – Protocolo
PagamentoLogin – Protocolo
ControladorPagamentoQualitiCard ControladorPagamentoQualitiCard
CadastroPagamentoCartaoCadastroPagamentoCartao
PagamentoCartao
PagamentoCartao
IRepositorioPagamentoCartao
ControladorLoginControladorLogin
CadastroContasInternet
CadastroContasInternet
ContaInternetContaInternet
IRepositorioContasInternet
RepositorioContasInternet
BDR
RepositorioContasInternet
BDR
RepositorioContasInternet
Arquivo
RepositorioContasInternet
Arquivo
RepositorioPagamentosCartaoBDR
RepositorioPagamentosCartaoBDR
RepositorioPagamentosC
artaoBDOO
RepositorioPagamentosC
artaoBDOO
InterfaceRelogio -
Capsula
InterfaceRelogio -
Capsula
AtivacaoPeriodica – Protocolo
AtivacaoPeriodica – Protocolo
ComunicacaoControlador – Protocolo
ComunicacaoControlador – Protocolo
Fluxo de análise e projeto | 59
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Agrupar as classes em pacotes
À medida que os elementos de projeto são identificados, a complexidade do modelo vai aumentandoPara organizá-lo, os elementos devem ser agrupados em pacotesAs camadas guiam essa organização
Fluxo de análise e projeto | 60
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card
subsistemaComunicacaoOperadoraCartao
controladores
GUIconta
Organização de pacotes
transacaoutil
<<global>>
protocolos
Inclui cápsulas
Fluxo de análise e projeto | 61
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
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
Fluxo de análise e projeto | 62
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passos para Projetar Cápsulas
• Definir diagrama de estados• Validar comportamento da cápsula
Fluxo de análise e projeto | 63
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Passo 1. Definir diagrama de
estados
Definir o comportamento interno da cápsulaQuando utilizar? Para representar o comportamento interno
das cápsulas “folhas” (que não possuem sub-cápsulas)
Para especificar restrição de ordem nos sinais de um protocolo
Fluxo de análise e projeto | 64
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
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)
Fluxo de análise e projeto | 65
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
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
HEstado história
Fluxo de análise e projeto | 66
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Diagrama de Estados - InterfaceRelogio
Cápusla: InterfaceRelogio
AguardandoInterrupcao
Initial
gerarInterrupcao
Initial
gerarInterrupcao
Fluxo de análise e projeto | 67
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Diagrama de Estados – ComunicacaoBovespa sem
ACKCápsula: ComunicacaoBovespa
AguardandoPeriodo
AguardandoD ados
InitialInitial
recebeuD adosrecebeuD ados
iniciarAtualizacaoiniciarAtualizacao
Fluxo de análise e projeto | 68
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Diagrama de Estados – ComunicacaoBovespa com
ACK
AguardandoPeriodo AguardandoACK
AguardandoD ados
Initial
iniciarAtualizacao
recebeuACKrecebeuD ados
Initial
iniciarAtualizacao
recebeuACKrecebeuD ados
Cápsula: ComunicacaoBovespa
Fluxo de análise e projeto | 69
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
Qualiti Software Processes
Exemplo – QIB Mercado de Ações
Diagrama de estadosCápsula:
ComunicacaoOperadoraMercadoAcoes
Sub-cápsulas
/ comunicacaoBovespaR1 : ComunicacaoBovespa
/ comunicacaoNasdaqR1 : ComunicacaoNasdaq
+ / consultaCotacoes~
+ / consultaCotacaoBovespa~ + / consultaCotacaoNasdaq~
# / consultaCotacaoBovespa~ # / consulataCotacaoNasdaq~
+ / dadosCotacoesNasdaq~+ / dadosCotacoesBovespa~
+ / dadosCotacoes~+ / consultaCotacoes~
/ comunicacaoBovespaR1 : ComunicacaoBovespa
+ / consultaCotacaoBovespa~
/ comunicacaoNasdaqR1 : ComunicacaoNasdaq
+ / consultaCotacaoNasdaq~
# / consultaCotacaoBovespa~ # / consulataCotacaoNasdaq~
+ / dadosCotacoesNasdaq~+ / dadosCotacoesBovespa~
+ / dadosCotacoes~
Fluxo de análise e projeto | 70
Cop
yri
gh
t ©
20
02
Qu
alit
i. T
od
os
os
dir
eit
os
rese
rvad
os.
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
Fluxo de Análise e Projeto
Projetar Cápsulas