32
Projeto de Sistemas Alexandre Monteiro

Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Embed Size (px)

Citation preview

Page 1: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Projeto de SistemasAlexandre Monteiro

Page 2: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Agenda

2. Análise

3. Projeto

1. Revisão

4. Exercícios

Page 3: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

REVISÃO

Page 4: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Revisão

O que temos até agora: Fluxo principal de eventos; Modelo de Casos de Uso; Pre-condições; Pos-condições;

Page 5: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Exemplos

[UC 01]: Cadastrar Produto

Ator CadastrarProduto

EfetuarLogin

<<include>>

Page 6: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Exemplos

[UC 01]: Cadastrar Produto Fluxo Principal

<<include>> [UC 02: Efetuar Login] O ator preenche todas informações necessárias

ao novo produto e confirma a operação; O sistema verifica se o produto não existe. Caso

não, o produto é adicionado ao sistema; O ator é informado do sucesso da informação.

Fluxo Alternativo: Produto Existente [Passo 3 do FP]: Se acusar que o produto já

existe, o ator é informado, e dessa forma, não pode ser adicionado novamente.

Page 7: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Exemplos

[UC 02]: Efetuar Login Fluxo Principal

O ator preenche as informações necessárias (login/senha, por exemplo) e confirma a transação;

O sistema verifica a existência de um usuário com aquele respectivo conjunto de informações. Caso exista, o ator tem acesso à tela principal do sistema.

Fluxo Alternativo: Usuário Inexistente [Passo 2 do FP]: Se não existir um usuário com

tais informações, o ator é informado do erro e da impossibilidade de obter acesso ao sistema.

Page 8: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Análise

Page 9: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Análise

Visão estático do sistema Cada caso de uso deve ser analisado

isoladamente Encontrar as classes iniciais do sistema e

distribuir o comportamento dos casos de uso entre elas

Cada classe tem suas responsabilidades, atributos e associações

Page 10: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Para cada caso de uso: Encontrar classes de análise Identificar persistências

Para cada classe: Distribuir comportamento entre elas Descrever responsabilidades Descrever atributos e associações

Revisar resultados.

Diagrama de Classes

Page 11: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

O comportamento do caso de uso é distribuído em classes de análise dos seguintes tipos (estereótipos): Fronteira Controle Entidade

Utilizado apenas como convenções, devem sumir na fase de projeto.

Diagrama de Classes

Page 12: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Fronteira

Modelam uma interação entre o sistema e um ator.

Esteriótipo <<boundary>>

FronteiraCadastrarProduto<<boundary>>

[UC 01]

Ator CadastrarProduto

Page 13: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Entidade

Representam abstrações e conceitos chave dos casos de uso.

Identificando Entidades: Identificar substantivos no fluxo de eventos; Remover candidatos redundantes e vagos; Remover atores que apenas interagem com o

sistema mas não fazem parte da modelagem; Remover atributos (serão usados mais tarde)

e operações. Esteriótipo <<entity>>

Page 14: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Entidade

[UC 01]: Cadastrar Produto

[UC 02]: Efetuar Login

EntidadeAtor<<entity>>

EntidadeAtor<<entity>>

EntidadeProduto<<entity>>

Page 15: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Controle

Coordenam o comportamento (lógica de controle) do caso de uso;

Interface entre fronteira e entidade. Esteriótipo <<control>>

Ator CadastrarProduto

EfetuarLogin

<<include>>

ControladorLogin<<control>>

ControladorCadastrarProduto<<control>>

Page 16: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Persistência

Identificar as classes de entidade que devem ser persistentes,e para cada uma criar uma nova classe

Esteriótipo << Entity Collection >> [UC 01]: Cadastrar Produto

[UC 02]: Efetuar Login

EntidadeAtor<<entity>>

ColecaoAtor<<entity collection>>

EntidadeAtor<<entity>>

EntidadeProduto<<entity>>

ColecaoProdutos<<entity collection>>

ColecaoAtor<<entity collection>>

Page 17: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Seqüências

É utilizado para representar aspectos dinâmicos do sistema através da troca de mensagens entre objetos.

É construído para cada caso de uso, utilizando seu respectivo fluxo de evento e classes de análise.

Os objetos trocam mensagens entre si para assim, realizar o caso de uso.

Page 18: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Seqüências

[UC 01: Cadastrar Produto]

Page 19: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Seqüências

[UC 02: Efetuar Login]

Poderia reportar um erro também!

Page 20: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Classes

Já podemos identificar os relacionamentos, os métodos e os atributos das classes:

Cada iteração no diagrama de seqüência corresponde a um relacionamento no diagrama de classe

ControladorLogin<<control>>

FronteiraLogin<<boundary>>

Page 21: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Relacionamentos

Associação

ControladorLogin<<control>>

FronteiraLogin<<boundary>>

Agregação X Composição Dependência

Page 22: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Classes

Os métodos são identificados através do diagrama de seqüência;

Podemos identificar os atributos mais ainda não podemos identificar o tipo deles

Page 23: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Classes

ControladorLogin<<control>>

FronteiraLogin<<boundary>>

EntidadeAtor<<entity>>

ColeçãoAtor<<entity collection>>

ColeçãoProduto<<entity collection>>

ControladorCadastrarProduto<<control>>

EntidadeProduto<<entity>>

FronteiraCadastrarProduto<<boundary>>[UC 01] [UC 02]

•Faltam os métodos e os atributos!!!

Page 24: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Projeto

Page 25: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

•Mais concreto do que o modelo de análise

•Depende da tecnologia de implementação

•Unificação em um único modelo

•Definição da arquitetura do sistema

•Proposição de padrões de projeto

•Projetar arquitetura

•Projetar Banco de Dados

Modelo de Projeto

Page 26: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

• Agrupar todas as classes de análise em um único diagrama

• Identificar redundância

• Criar ou remover classes

• Identificar interfaces entre os grupos maiores

Refinamento

Page 27: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

•Adicionar modificadores de visibilidade aos métodos e atributos

• Definir os tipos dos atributos

• Definir o tipo do retorno e dos parâmetro dos métodos

• Identificar padrões de projeto

Refinamento

Page 28: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

• Dividir o sistema em camadas

• A mais comum:

Arquitetura

Apresentação

Negócio

Dados

Comunicação

•Utilizar pacotes para organizar as classes em grupo

Page 29: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Diagrama de Classes – Modelo de Projeto

Page 30: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Mapeamento de Classes de Análise em Classes de Projeto

Classes de análise Classes de projetoFachadaDataHora

TelaSubmeterDocumento TelaSubmeterDocumentoControladorSubmeterDocumento ControladorSubmeterDocumentoCadastroDocumentos CadastroDocumentos

IRepositorioCadastroDocumentosRepositorioCadastroDocumentosBDR

Documento DocumentoFazerUpload SubsistemaFazerUpload

ISubsistemaFazerUploadFachadaSubsistemaFazerUpload

TelaCriarAreaSubmissao TelaCriarAreaSubmissaoControladorCriarAreaSubmissao ControladorCriarAreaSubmissaoCadastroAreaSubmissao CadastroAreaSubmissao

IRepositorioAreaSubmissaoRepositorioAreaSubmissaoBDR

AreaSubmissao AreaSubmissao

Page 31: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Arquitetura de Software em Camadas

Page 32: Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios

Perguntas