fluxo de análise e projeto do rup para tempo real augusto sampaio

70
Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

Fluxo de Análise e Projeto

do RUP paraTempo Real

Augusto Sampaio

Page 2: Fluxo de Análise e Projeto do RUP para Tempo 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

Page 3: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 4: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 5: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 6: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 7: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 8: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 9: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 10: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 11: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 12: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 13: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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.

Page 14: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 15: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 16: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 17: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 18: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 19: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 20: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 21: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 22: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 23: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 24: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 25: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 26: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 27: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 28: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 29: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 30: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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.

Page 31: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 32: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 33: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 34: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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.

Page 35: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 36: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 37: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 38: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 39: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 40: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 41: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 42: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 43: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 44: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 45: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 46: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 47: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 48: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 49: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 50: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 51: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 52: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 53: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 54: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 55: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 56: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 57: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 58: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 59: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 60: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 61: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 62: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 63: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 64: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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)

Page 65: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 66: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 67: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 68: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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

Page 69: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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~

Page 70: Fluxo de Análise e Projeto do RUP para Tempo Real Augusto Sampaio

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