45
Projetar Arquitetura

Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Embed Size (px)

Citation preview

Page 1: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Projetar Arquitetura

Page 2: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 2

Objetivos

Apresentar os passos necessários para realizar a atividade projetar arquitetura e discutir seus artefatosApresentar o padrão de arquitetura em camadasApresentar e exercitar o uso de padrões de projetoApresentar o Padrão MVCConsiderações sobre concorrência e distribuição

Page 3: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Arquiteto de Informação

Análise e Projeto OO com UML e Padrões| 3

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

CheckList bla bla

bla

blabla

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

ProjetarServiços

Page 4: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 4

O que foi feito até agoraAnálise de caso de uso - para cada caso de uso:

Identificação das classes de análise (fronteira, entidade e controle)

Identificação das classes persistentes

Distribuição do comportamento do caso de uso entre as classes

• Elaboração do diagrama de seqüência

• Geração do diagrama de colaboração

Identificação das responsabilidades das classes

Identificação dos atributos e relacionamentos

Page 5: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 5

Objetivos desta atividade

Avaliar o conjunto das classes de análise

Definir elementos de projeto (classes de projeto, cápsulas e subsistemas) e organizá-los em pacotes

Definir a estrutura da aplicação

No final do projeto da arquitetura tudo deve estar pronto para que os projetistas possam detalhar as realizações dos casos de uso de maneira uniforme!

Page 6: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 6

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 7: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 7

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 8: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 8

Passo 1: Mapear classes de análise em elementos (classes, cápsulas e

subsistemas) de projeto

Identificar classes de projetoIdentificar subsistemasEspecificar a interface dos subsistemasFazer o mapeamento1 classe de análise pode dar origem a 0 ou mais elementos de projeto

Mapeamento m : n

Page 9: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 9

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 10: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 10

QIB – Identificando classes de projeto

Classe Conta Tem duas responsabilidades distintas: controle de

acesso e conta bancária

Na realidade, modelam duas entidades diferentes

A separação favorece o reuso Por exemplo, ContaCorrente é utilizado para clientes

que não têm acesso à internet.

1

1

Page 11: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 11

Identificando subsistemas

Antes, vamos revisar alguns conceitos...

Qual a diferença entre subsistemas e pacotes?

Como se descreve o comportamento de um subsistema?

Qual a grande vantagem associada aos subsistemas?

Page 12: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 12

<<subsystem>>Nome subsistema

<<subsystem>>Nome subsistema

Atributos

Realização

Subsistemas e interfaces: notação

Nome da interface

Métodos

<<interface>>Nome da interface

Atributos

Métodos

Page 13: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 13

Por que usar subsistemas?

Subsistemas permitem dividir o sistema em partes independentes (que se tornarão componentes)

Cada subsistema pode ser desenvolvido, testado e possivelmente implantado independentemente dos demaisUm subsistema pode representar uma abstração (no projeto) de produtos ou sistemas externos que serão incorporados na implementação

Page 14: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 14

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 15: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 15

<<subsystem>>Subsistema X

Identificando subsistemas

Classe A

Y()Z()

Y()Z()

<<interface>>

Interface A

Classe complexa

Page 16: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 16

Interface <<subsystem>>nomeSubsistema

FachadaSubsistema

ISubSistema

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

A classe fachada

Page 17: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 17

Análise

Projeto

QIB – Efetuar Pagamento do Qualiti Card

Identificando subsistemas

<<boundary>>ComunicacaoOperadoraCartao

enviar()

<<subsystem>>SubsistemaComunicacao

OperadoraCartaoISubsistemaComunicacaoOperadoraCartao

enviar()

Page 18: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 18

QIB – Efetuar Pagamento do Qualiti Card

ISubsistemaComunicacaoOperadoraCartao

enviar()

FachadaComunicacaoOperadoraCartao

PagamentoCartao

Contexto do subsistema

ControladorPagamentoQualitiCard

Page 19: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 19

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 20: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 20

Identificando oportunidades de reuso

A partir das interfaces de subsistemas ou componentes existentes analisar onde estes podem ser reutilizados Para um candidato a subsistema Procure interfaces similares (podendo requerer

engenharia reversa de subsistemas existentes)

Tente adaptar a interface nova às existentes, ou tornar as existentes mais gerais

Substitua a interface nova por existentes

Page 21: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 21

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 22: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 22

Definir as camadas da aplicação

O arquiteto pode seguir um padrão já existente para estruturar a aplicaçãoSe o arquiteto adotar uma estrutura diferente do padrão, deve descrevê-la no Documento da ArquiteturaO arquiteto também pode definir novos padrões ou atualizar orientações já existentes

Page 23: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 23

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 24: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 24

Benefícios

Modularidade: Dividir para conquistar

Separação de conceitos

Reusabilidade

Extensibilidade

Mudanças em uma camada não afetam as outras, desde que as interfaces sejam preservadas plug-and-play

Page 25: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 25

Benefícios

Uma mesma versão de uma camada trabalhando com diferentes versões de outra camada várias GUIs para a mesma aplicação

vários mecanismos de persistência suportados pela mesma aplicação

várias plataformas de distribuição para acesso a uma mesma aplicação

Page 26: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 26

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 27: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 27

Classes básicas do negócio

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

Page 28: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 28

Coleções de negócio

Representam conjuntos de objetos das classes básicasResponsáveis pela inclusão, remoção, atualização e consultas a instâncias das classes básicasEncapsulam as verificações e validações inerentes ao negócio

Page 29: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 29

Fachada do sistemaSegue o padrão de projeto FacadeRepresenta os serviços oferecidos pelo sistemaCentraliza as instâncias das coleções de negócio e/ou controladoresGerencia as transações do sistema

CadastroContas CadastroPagamentosCartao

CadastroContas

Fachada

CadastroPagamentosCartao

ControladorPagamentoQualitiCard

Fachada

efetuarPagamentoQualitiCard()

Page 30: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 30

Camada de dados

Responsável pela manipulação da estrutura física de armazenamento dos dadosIsolam o resto do sistema do meio físico usadoClasses coleções de dados

Page 31: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 31

Coleções de dados

Executam inclusões, remoções, atualizações e consultas a instâncias das classes básicas no meio de armazenamento usadoImplementadas de acordo com o meio físico usado

RepositorioContasBDR

Page 32: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 32

Coleções de dados

Dependem do meio de armazenamento!

RepositorioContasBDR

RepositorioContasBDOO

RepositorioContasArquivo

Page 33: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 33

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 34: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 34

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 35: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 35

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 36: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 36

QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card

Mapeamento entre análise e projetoClasses de Análise Elementos de Projeto

FachadaTelaMenuDataHora

Conta ContaInternetContaCorrente

CadastroContas

CadastroPagamentosCartao CadastroTransacoesIRepositorioTransacoesRepositorioTransacoesBDR

ComunicacaoOperadoraCartao SubsistemaComunicacaoOperadoraCartaoISubsistemaComunicacaoOperadoraCartaoFachadaComunicacaoOperadoraCartao

CadastroContasInternetIRepositorioContasInternetRepositorioContasInternetBDRCadastroContasCorrenteIRepositorioContasCorrenteRepositorioContasCorrenteBDR

Page 37: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 37

QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card

Projeto da arquitetura

Comprovante

FachadaComunicacaoOperadoraCartao

Hora

Data

PagamentoCartao

numeroFaturacontaBancariavalor

RepositorioContasCorrenteBDR

RepositorioContasInternetBDR

RepositorioPagamentosCartaoBDR

ContaCorrente

ContaInternet

1

1

1

1

IRepositorioContasCorrente

TelaLogin TelaMenu TelaPagamentoQualitiCard

IRepositorioPagamentosCartaoIRepositorio

ContasInternet

ControladorLogin

CadastroContasCorrente

1

1

1

1

Fachada

1

0..n

1

0..n

1

0..n

1

0..n 0..n

1

0..n

1

1

1

1

ISubsistemaComunicacaoOperadoraCartao

CadastroPagamentosCartao

1

1

1

1

CadastroContasInternet

1

1

1

1

1

1

1

1

ControladorPagamentoQualitiCard

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Page 38: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 38

Exercício – Qualiti Internet Banking

Dado: As classes de análise do caso de uso Realizar Doc A tabela de mapeamento e o projeto de arquitetura de

Efetuar Login e Efetuar Pagamento do Qualiti Card Identificar para o Realizar Doc: subsistemas e suas interfaces elementos de projeto (classes e subsistemas)

Produzir: Tabela mapeando as classes de análise nos elementos

de projeto Diagrama de contexto dos subsistemas (opcional) Projeto da arquitetura com incluindo Realizar DOC

Page 39: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 39

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 40: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 40

Evite dependências cíclicas

Critérios para definição dos pacotes

Acoplamento e Coesão Agrupa as classes em bibliotecas

Exemplo: cliente, conta, banco, util, etc.

Distribuição – usuário Agrupa as classes por locais de implantação

Exemplo: clienteRecife, clienteSaoPaulo, etc.

Segurança Agrupa as classes por permissão de acesso

Exemplo: gerência, programadores, etc.

Page 41: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 41

Pacote Global

Pode ser usado por todos os outros pacotes classes utilitárias

Não é necessário explicitar as dependências

Page 42: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 42

QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card

subsistemaComunicacaoOperadoraCartao

controladores

GUIconta

Organização de pacotes

transacaoutil

<<global>>

protocolos

Page 43: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 43

QIB – Pacote conta

IRepositorioContasCorrente

<<Interface>>

CadastroContasCorrente<<entity collection>>

1

1

1

1

RepositorioContasCorrenteBDR

ContaCorrente

numerosaldo

getSaldo()debitar()

<<entity>>

ContaInternet

loginsenha

<<entity>>11 11 IRepositorioContasInternet

<<Interface>>

CadastroContasInternet<<entity collection>>

1

1

1

1

RepositorioContasInternetBDR

Page 44: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 44

QIB – Pacotes

Dependência entre pacotes

<<global>>util

controladores

GUI

conta

<<subsystem>>subsistemaComunicaca

oOperadoraCartao

transacao

ISubsistemaComunicacao OperadoraCartao

protocolos

Page 45: Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos

Cop

yri

gh

t ©

20

06

Qu

alit

i. T

od

os

os

dir

eit

os

rese

rvad

os.

Qualiti Software Processes

Análise e Projeto OO com UML e Padrões| 45

Exercício – Qualiti Internet Banking

Dado: Os elementos de projeto

A estrutura definida para a aplicação

Definir os pacotes da aplicação e os elementos que devem estar presentes em cada pacote (incluir os elementos do caso de uso Realizar DOC)

Elaborar um diagrama mostrando as dependências entre pacotes (opcional