1 fluxo de análise e projeto do rup para sistemas de tempo real robson godoi

93
1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

Upload: luiz-gustavo-santarem-lameira

Post on 07-Apr-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

1

Fluxo de Análise e Projetodo RUP para Sistemas de

Tempo Real

Robson Godoi

Page 2: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

2

Transformar os requisitos em um projeto (inicialmente abstrato) do sistema

Desenvolver uma arquitetura robusta para o sistema

Adaptar o projeto levando em consideração requisitos da futura implementação

Objetivos do fluxo de análise e projeto

Page 3: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

3

Arquitetura de softwareO modelo de “4+1 Visões”

Visão de Implementação

VisãoLógica

Visão de Distribuição

Visão de Processos

Visão de Casos de Uso

Analista de Sistemas

Arquiteto

Estrutura

Programadores

Arquiteto Escalabilidade Topologia, implantação, comunicação

Arquiteto

Estrutura, componentes

Page 4: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

4

O Fluxo de Análise e Projeto

Planejamento e Gerenciamento.....

Fluxos de SuporteGerência de Configuração............

Requisitos...............................Análise e Projeto......................Implementação........................Testes...................................Implantação............................

Fluxos de Processo

Iterações

FasesConcepção Elaboração Construção Transição

Inicial

Page 5: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

5

Visão geral dos artefatos

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 6: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

6

Artefato Realização de Caso de Uso

Diagrama de Classes

Diagrama de Seqüência

Diagrama de Colaboração

Realização de Caso de Uso

Caso de Uso

Modelo de Casos de Uso Modelo de Análise e Projeto

Page 7: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

7

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Arquiteto de Software

Revisor de Projeto

Projetar Casos de Uso

Projetar Subsistemas

Analista deSistemas

Fluxo de Análise e Projeto

Projetar Classes

Analisar Arquitetura

Revisar Arquitetura

Revisor da Arquitetura

Projetar Base de Dados

Projetista deBanco de Dados

Projetar Cápsula

Projetista de Cápsula

Refinar / Decompor Cápsula

Page 8: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

8

Fluxo de Análise e Projeto

Analisar Casos de Uso

Projetar Arquitetura Arquiteto de

Software

Revisor de Projeto

Projetar Casos de Uso

Projetar Subsistemas

Analista deSistemas

Projetar Classes

Analisar Arquitetura

Revisar Arquitetura

Revisor da Arquitetura

Projetar Base de Dados

Projetista deBanco de Dados

Projetar Capsula

Projetista de Capsula

decisões doarquiteto

<<subsystem>>

CheckList bla bla bla blabla

Revisar Projeto

CheckList bla bla bla blabla

Page 9: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

9

Analisar Caso de Uso

Page 10: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

10

Analisar Casos de Uso

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Arquiteto de Software

Revisor de Projeto

Projetar Casos de Uso

Projetar Subsistemas

Analista deSistemas

Projetar Classes

Analisar Arquitetura

Revisar Arquitetura

Revisor da Arquitetura

Projetar Base de Dados

Projetista deBanco de Dados

Projetar Cápsula

Projetista de Cápsula

Page 11: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

11

Objetivos desta atividade Encontrar as classes iniciais do sistema

(classes de análise) e distribuir comportamento dos casos de uso entre elas

Para cada classe, descrever as responsabilidades, atributos e associações

Esta atividade é realizada para cada caso de uso!

Page 12: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

12

Visão geral dos artefatos

Analista de Sistemas

Analisar Caso de Uso

Glossário Modelo de Casos de Uso

Diagrama de Classes

Diagrama de Seqüência

Diagrama de Colaboração

Documento de Requisitos

Documento da

Arquitetura

Realização de Caso de Uso

Page 13: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

13

Passos para Analisar Casos de UsoPara 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 14: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

14

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

Passo 1. Encontrar classes de análise

Notação em UML

Page 15: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

15

Classes de análise: um primeiro passo em direção ao executável

Modelo de Casos de Uso

Códigos Fonte

Executável

Classes de Análise

Elementos de Projeto

Page 16: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

16

Exemplo - Efetuar Login

TelaLogin<<boundary>>

ClienteAtor Efetuar Login

Usuario<<entity>>

Conta<<entity>>

ControladorLogin<<control>>

Page 17: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

17

Efetuar Login – Fluxo de eventos

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 18: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

18

Passo 2. Identificar persistência

Identificar que classes de análise deverão ser persistentes

Criar, para cada classe persistente, uma classe de cadastro com estereótipo

<<entity collection>>

Page 19: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

19

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 20: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

20

Distribuir comportamento entre as classes

Classes de Análise Diagrama de

Colaboração

Caso de Uso

Diagrama de Seqüência

Classes de Análise(com responsabilidades)

Page 21: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

21

: ClienteAtor : TelaLogin : ControladorLogin : CadastroContas

efetuarLogin(login, senha)

efetuarLogin(login, senha)

existeConta(login, senha)

registraSessao(login)

Efetuar Login

Page 22: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

22

Passo 4. Descrever Responsabilidades Responsabilidades identificadas nos fluxos de

eventos são refletidas em diagramas de interação

Mensagens nestes diagramas resultam em responsabilidades nas classes receptoras

:Cliente :Fornecedor

// Realizar responsabilidade

Fornecedor

// Realizar responsabilidade

diagrama de classes

diagrama de interação

Page 23: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

23

Efetuar LoginClasses com responsabilidades

TelaLogin

efetuarLogin()

<<boundary>>

ControladorLogin

efetuarLogin()

<<control>>

CadastroContas

existeConta()

<<entity collection>>

Conta<<entity >>

Page 24: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

24

Passo 5. Descrever atributos e associações

Detalhando mais as classes definir atributos estabelecer associações necessárias

entre as classes

Page 25: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

25

Efetuar LoginDiagrama de classes com relacionamentos e atributos

Contaloginsenha

<<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 26: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

26

Passo 6. Revisar Resultados Verificar se as classes de análise

satisfazem os requisitos funcionais Unificar as classes de análise Verificar se todo o modelo está

consistente entre si e com os requisitos

Page 27: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

27

Projetar Arquitetura

Page 28: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

28

Projetar Arquitetura

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Arquiteto de Software

Revisor de Projeto

Projetar Casos de Uso

Projetar Subsistemas

Analista deSistemas

Projetar Classes

Analisar Arquitetura

Revisar Arquitetura

Revisor da Arquitetura

Projetar Base de Dados

Projetista deBanco de Dados

Projetar Cápsula

Projetista de Cápsula

Page 29: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

29

Visão geral dos artefatos

Arquiteto Projetar Arquitetura

Documento da

Arquitetura

Documento de

Requisitos

Mapeamento das Classes de

Análise em Elementos de

Projeto

Modelo de Análise e Projeto

(classes de projeto, cápsulas e subsistemas)

Modelo de Análise e

Projeto (classes de análise)

Modelo de Casos de

Uso

Page 30: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

30

Passos para Projetar Arquitetura1. Mapear classes de análise em elementos

(classes, cápsulas e subsistemas) de projeto

2. Identificar oportunidades de reuso3. Definir a estrutura da aplicação4. Descrever a concorrência5. Descrever a distribuição

Page 31: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

31

Passo 1: Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto Identificar classes de projeto Identificar subsistemas Especificar a interface dos subsistemas Identificar cápsulas Identificar protocolos das cápsulas Fazer o mapeamento

1 classe de análise pode dar origem a 0 ou mais classes de projeto

Mapeamento m : n

Page 32: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

32

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 projeto

Em geral, classes de análise complexas podem ser divididas em várias classes ou transformadas em um pacote ou subsistema

Page 33: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

33

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 34: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

34

<<subsystem>>Subsistema X

Identificando subsistemas

Classe A

Y()Z() Y()

Z()

<<interface>>

Interface A

Classe complexa

Page 35: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

35

Interface <<subsystem>>nomeSubsistema

FachadaSubsistemaISubSistema

Além da interface, é destacada uma classe fachada de cada subsistema

A classe fachada

Page 36: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

36

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 37: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

37

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 38: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

38

Á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 39: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

39

Árvore de decisãoClasses de Fronteira e de Controle

Representa um componente

externo?

Reage a eventos externos?

Controla apenas acesso a dados?

Controla outras cápsulas?

Transformar em

cápsula

Continuar como classe <<boundary>> ou <<control>>

S

S

S

S

N

N

N

N

Page 40: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

40

Cápsulas e Concorrência

Concorrência interna

Concorrência externa

Page 41: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

41

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 42: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

42

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 43: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

43

Exemplo - 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 44: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

44

InterfaceRelogio<<capsule>>

ControladorAtualizacaoCotacoes<<capsule>>

ComunicacaoOperadoraMercadoAcoes<<capsule>>

ComunicacaoNasdaq<<capsule>>

ComunicacaoBovespa<<capsule>>

IComunicacaoOperadoraMercadoAcoes<<interface>>

Exemplo - Mercado de AçõesClasses de Análise

Page 45: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

45

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 seqüência válida de troca de sinais entre as cápsulas.

Page 46: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

46

Identificando Protocolos das 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 47: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

47

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 48: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

48

Identificando ProtocolosCriar os protocolos

Toda interação entre cápsulas deve ser feita através de protocolos

Passo-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 49: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

49

Identificando ProtocolosCriar os protocolos

InterfaceRelogio<<Capsule>>

ControladorAtualizacaoCotacoes<<Capsule>>

ComunicacaoOperadoraMercadoAcoes<<Capsule>>

interrupcao

consultarCotacoes

dadosCotacoes

AtivacaoPeriodica

interrupcao ()

<<Protocol>>

ComunicacaoNasdaq<<Capsule>>

ComunicacaoBovespa<<Capsule>>

consultarCotacoesNasdaqconsultarCotacoesBovespa

dadosNasdaq dadosBovespa

Page 50: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

50

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 51: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

51

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 52: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

52

Identificando Protocolos Protocolos identificados Finalmente...

AtivacaoPeriodica

interrupcao ()

<<Protocol>> ConsultaCotacoes

dadosCotacoes ()

consultarCotacoes ()

<<Protocol>>

Page 53: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

53

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 54: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

54

Criando portas eassociando portas a protocolos

Criar o conjunto inicial de portas, considerando as responsabilidades da cápsula

Passo-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 55: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

55

ExemploAtivacaoPeriodica

interrupcao (void)

<<Protocol>>

InterfaceRelogio

+ / interrupcao : AtivacaoPeriodica

# / timer : Timing

<<Capsule>>

+ / interrupcao<<Port>>

+ / interrupcao<<Port>>

ControladorAtualizacaoCotacoes

+ / interrupcao : AtivacaoPeriodica~

+ / consultaCotacoes : ConsultaCotacoes

<<Capsule>>

+ / interrupcao~

<<Port>>

+ / interrupcao~

<<Port>>

Page 56: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

56

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 57: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

57

Passo 3. Definir a estrutura da aplicação

Definir as camadas da aplicação Determinar o meio de

armazenamento que será utilizado Agrupar as classes, cápsulas e

protocolos em pacotes e especificar a fachada da aplicação

Page 58: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

58

Estruturação em camadas Separação do código:

interface com o usuário (GUI) comunicação regras de negócio acesso a dados Interface com o usuário

(GUI)

Comunicação

Negócio

Dados

Page 59: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

59

Camada de negócios Responsável por implementar a lógica do

negócio Classes inerentes ao domínio da aplicação:

classes básicas do negócio coleções de negócio fachada do sistema

Page 60: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

60

Classes básicas do negócio

Representam conceitos básicos do domínio da aplicação

PagamentoCartaonumeroFatura

Conta

numerosaldo

getSaldo()debitar()

Page 61: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

61

Coleções de negócio Representam conjuntos de objetos das

classes básicas Responsáveis pela inclusão, remoção,

atualização e consultas a instâncias das classes básicas

Encapsulam as verificações e validações inerentes ao negócio

CadastroContasConta

Page 62: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

62

Fachada do sistema Segue o padrão de projeto Facade Representa os serviços oferecidos pelo

sistema Centraliza as instâncias das coleções de

negócio e/ou controladores Gerencia as transações do sistema

Page 63: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

63

Camada de dados Responsável pela manipulação da

estrutura física de armazenamento dos dados

Isolam o resto do sistema do meio físico usado

Classes coleções de dados

Page 64: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

64

Coleções de dados Executam inclusões, remoções,

atualizações e consultas a instâncias das classes básicas no meio de armazenamento usado

Implementadas de acordo com o meio físico usado

CadastroContas

Conta

RepositorioContasBDR

Conta

Page 65: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

65

Coleções de dados Dependem do meio de

armazenamento!

CadastroContas

Conta

RepositorioContasBDR

RepositorioContasBDOO

RepositorioContasArquivo

Page 66: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

66

Independência do meio de armazenamento

Como isolar as coleções de negócio de mudanças na coleção de dados correspondente?

RepositorioContasBDR RepositorioContasArquivo

CadastroContas

<<interface>>RepositorioContas

Page 67: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

67

Interface negócio-dados Sugestão de serviços

<<interface>>RepositorioContas

inserir(conta: Conta): voidatualizar(conta: Conta): voidremover(conta: Conta): voidconsultarConta(login: String): Conta

Page 68: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

68

Incorporando cápsulas Classe de análise -> cápsula

GUI• Classe fronteira -> cápsula

Camada de negócio• Fachada -> cápsula• Controlador -> cápsula

Necessidade de protocolo de comunicação entre cápsulas Criação da camada de comunicação para

incorporar protocolos para realizar a comunicação da GUI com a camada de negócio.

Page 69: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

69

Classes de análise - a origem de tudo

Classes de entidade -> classes básicas + coleções de negócio e coleções de dados

Classes de fronteira com usuários -> classes de GUI -> cápsulas com legados ->subsistemas

Classes de controle -> fachada do sistema ou subsistema -> cápsula

Page 70: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

70

Agrupar as classes em pacotes

À medida que os elementos de projeto são identificados, a complexidade do modelo vai aumentando

Para organizá-lo, os elementos devem ser agrupados em pacotes

As camadas guiam essa organização

Page 71: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

71

Passo 4. Descrever a concorrência

Objetivos Identificar o impacto dos requisitos de

concorrência para o projeto Definir quais os processos do sistema

Comunicação Criação / Destruição Mapear no ambiente de implementação

Page 72: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

72

Visão geral dos artefatos

Documento da

Arquitetura

Modelo de Projeto

Documento da

Arquitetura

Cápsula

Descrever Concorrência

Requisitos Não

Funcionais

Page 73: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

73

Como Descrever a Concorrência1. Analisar os requisitos de concorrência2. Identificar processos e threads3. Identificar o ciclo de vida dos processos4. Identificar os mecanismos de comunicação

entre processos (IPC).5. Coordenar a alocação de recursos entre

processos6. Mapear os processos para o ambiente de

implementação7.Distribuir os elementos do projeto dentro dos

processos

Page 74: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

74

Passo 5. Descrever a distribuição

Objetivo Definir como a funcionalidade do

sistema será distribuída através dos nós físicos

Page 75: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

75

Como Descrever a distribuição Definir a configuração da rede

Entender a configuração e a topologia da rede

Alocar processos e threads em nós Distribuir a carga de trabalho do

sistema

Page 76: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

76

Projetar Cápsulas

Page 77: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

77

Projetar Cápsulas

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Arquiteto de Software

Revisor de Projeto

Projetar Casos de Uso

Projetar Subsistemas

Analista deSistemas

Projetar Classes

Analisar Arquitetura

Revisar Arquitetura

Revisor da Arquitetura

Projetar Base de Dados

Projetista deBanco de Dados

Projetar Cápsula

Projetista de Cápsula

Page 78: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

78

Objetivos desta atividade Detalhar a estrutura e o comportamento

das cápsulas identificadas no projeto Detalhar 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

Page 79: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

79

Visão geral dos artefatos

Projetista de Cápsula

Projetar Cápsulas

Projeto de Cápsulas

Modelo de Análise e Projeto

Requisitos Não

Funcionais

Page 80: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

80

Passos para Projetar Cápsulas

Definir diagrama de estados Validar comportamento da cápsula

Page 81: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

81

Passo 1. Definir diagrama de estados Definir o comportamento interno da

cápsula Quando 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 82: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

82

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 83: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

83

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 84: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

84

Diagrama de Estados - InterfaceRelogio Cápsula: InterfaceRelogio

AguardandoInterrupcao

Initial

gerarInterrupcao

Initial

gerarInterrupcao

Page 85: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

85

Diagrama de Estados – ComunicacaoBovespa sem ACK

Cápsula: ComunicacaoBovespa

AguardandoPeriodo

AguardandoD ados

InitialInitial

recebeuD adosrecebeuD ados

iniciarAtualizacaoiniciarAtualizacao

Page 86: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

86

Diagrama de Estados – ComunicacaoBovespa com ACK

AguardandoPeriodo AguardandoACK

AguardandoD ados

Initial

iniciarAtualizacao

recebeuACKrecebeuD ados

Initial

iniciarAtualizacao

recebeuACKrecebeuD ados

Cápsula: ComunicacaoBovespa

Page 87: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

87

Passo 2. Validar comportamento da cápsula Revisar 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?

Page 88: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

88

Refinar / Decompor Cápsulas

Page 89: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

89

Refinar / Decompor Cápsulas

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Arquiteto de Software

Revisor de Projeto

Projetar Casos de Uso

Projetar Subsistemas

Analista deSistemas

Projetar Classes

Analisar Arquitetura

Revisar Arquitetura

Revisor da Arquitetura

Projetar Base de Dados

Projetista deBanco de Dados

Projetar Cápsula

Projetista de Cápsula

Refinar / Decompor Cápsula

Page 90: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

90

Objetivos desta atividade Identificar a possibilidade de refinamento

ou decomposição das cápsulas Detalhar e especificar as cápsulas a partir

do refinamento / decomposição

Page 91: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

91

Visão geral dos artefatos

Projetista de Cápsula

Refinar / Decompor Cápsulas

Modelo de Análise e Projeto

Requisitos Não

Funcionais

Projeto de Cápsulas

Projeto de Cápsulas

Page 92: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

92

Passos para Refinar / Decompor Cápsulas Identificar oportunidades de

refinamento/decomposição Particionar atributos Particionar métodos Particionar portas Paralelizar máquinas de estado Refinar/Decompor Identificar oportunidades de herança

Page 93: 1 Fluxo de Análise e Projeto do RUP para Sistemas de Tempo Real Robson Godoi

93

Fluxo de Análise e Projetodo RUP para Tempo Real

Robson Godoi