You are on page 1of 95

Analise e Projeto Orientados a

Objetos: Introdu ~ao a UML


Silvia Regina Vergilio
Analise Orientada a Objetos

Dados Resultados

Algoritmos
Objetos e Objetos do
do Mundo Real
Problema Operações do Mundo Real

Mundo Real

gap Mapeamento Interpretação


ao Domínio de dos Resultados
semântico
Soluções

Soluções
por Objetos e Dados de
Algoritmos
Computador Operações do
Saída
Abstratas Abstratos

Quanto mais próximo estiver o espaço de soluções do espaço de problemas


mais fácil será o desenvolvimento.

> compreensão , > confiabilidade, > facilidade de manutenção

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


UML: Uni ed Modeling Language (97)

 metodo de Boo h e OMT (Obje t Modeling


Te hnique) de Rumbaugh

 pretende des rever modelos do sistema basea-


dos em objetos, que envolvem:

1. Es opo Geral; Identi a ~ao dos lientes; Objetivos

2. Fun o~es do Sistema: o que o sistema tem que


fazer

3. Atributos do Sistema: qualidades n~ao fun ionais


tais omo: fa ilidades de uso, plataformas de SO,
tempo de resposta, toler^an ia a falhas, et .

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Categorias de Fun ~oes do Sistema

 evidente: pre isa ser realizada e o usuario deve


saber que ela e exe utada. Ex: al ular total de
uma ompra

 o ulta: pre isa ser realizada e o usuario n~ao deve


saber que ela e exe utada. Ex: armazenar dados
em um arquivo.

 op ional: adi iona-la n~ao afeta ustos ou outras


fun o~es. Ex: exibir subtotais enquanto al ula
total

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Categorias de Atributos do Sistema

   ne essario, desejado

 tempo de resposta: 5 segundos

 interfa e: e ne essario usar menus

 toler^an ia a falhas: pagamento pre isa ser


realizado em 24 horas

 plataformas de SO: WindowsNT

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Exemplo: Fun o~es e Atributos do
Sistema

Ref# Função Categoria Atributo Detalhes e Categoria


Restrições

R1.9 Mostra descrição evidente tempo de 5 segundos necessário


e preço de item resposta
registrado

R 2.4

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Modelos do Sistema

Organizam e omuni am detalhes importantes do


problema do mundo real.

S~ao ompostos de artefatos: modelos, diagramas


e do umentos
Modelo da fase de análise

Modelo de Modelo Modelo do Modelo de


Casos de Conceitual Comportamento Estados
Usos do Sistema

Casos de Usos Diagramas Diagramas de Diagramas


- alto nível Estruturas Sequência de Estados
- essencial Estáticas do Sistema p/ Conceitos
p/ Conceitos e Casos de
Diagramas de Contratos p/
do Domínio Usos
Casos de Usos Operações do
estático
Sistema

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Depend^en ias entre Artefatos

Casos de Uso
Casos de Uso Janelas
estendido Casos de
essencial real Relatórios Teste

Diagramas
de Caso de
Diagramas Métodos
Uso
de Interação

Modelo
Conceitual
Diagramas Definição
Glossário de Classe de Classes
e Interfaces
Diagrama
Sequências
Diagramas
Contratos de Pacotes

Diagramas Base de SQL


de Estados Dados

Dependências entre Artefatos

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


I. Casos de Usos e Diagramas de Casos
de Usos

Caso de Uso: e uma narrativa que des reve a


sequ^en ia de enventos de um ator (agente externo)
usando o sistema para ompletar um pro esso. S~ao
estorias de usos de um sistema.

Caso de Uso : Comprar Itens


Atores: Cliente, Caixa
Tipo: prin ipal
Des ri ~ao: Um Cliente hega om itens para ompra.
O Caixa registra os itens de ompra e
re ebe o pagamento. Ao nal o Cliente
vai embora om os itens

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Casos de Usos podem ser:

 Alto Nvel: des ri ~ao breve

 Estendido: des ri ~ao detalhada passo a passo dos


eventos

 Prin ipal: omum e bastante importante. Ex.


omprar itens

 Se undario: o orre mais raramente. Ex: adastrar


um produto

 Op ional: pode ou n~ao a onte er. Ex: pagamento


om art~ao

 Essen ial: livre de detalhes de te nologia e imple-


menta ~ao, de is~oes de projeto n~ao est~ao presentes.

 Real: des ri o~es em termos do projeto.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Caso de Uso Estendido

Caso de Uso : Comprar Itens a Vista


Atores: Cliente, Caixa
Proposito: Registrar uma Venda
Des ri ~ao: Um Cliente hega om itens para
ompra. O Caixa registra os itens
de ompra e re ebe o pagamento.
Ao nal o Cliente
vai embora om os itens
Tipo: prin ipal e essen ial
Refer^en ias: Fun ~oes: R1.1, R1.2, R2.1

Sequ^en ia de Eventos
A ~ao do Ator Resposta do Sistema
1. Este aso de uso ome a
quando um liente hega
ao aixa om itens de ompra
2. O aixa registra ada item 3. Determina o pre o do item
e adi iona o item a venda.
Se tiver mais de um mesmo item Des ri ~ao e pre o do
o Caixa entra a quantidade. item s~ao apresentados
.... .....

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Nota ~ao: Caso de Uso Estendido

Caso de Uso : nome do aso de uso


Atores: lista de atores que ini iam o aso de uso
agentes externos
Proposito: objetivo geral
Des ri ~ao: resumo
Tipo: 1. prin ipal, se undario ou op ional
2. real ou essen ial
Refer^en ias: fun ~oes do sistema rela ionadas

Sequ^en ia de Eventos
A ~oes de Atores Respostas do Sistema

Sequ^en ias N~ao Tpi as

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Identi ando um Caso de Uso

Primeiro M
etodo : baseado em atores

 identi ar atores

 para ada ator, identi ar os pro essos que ele


ini ia ou parti ipa

Segundo M
etodo : baseado em eventos

 identi ar eventos externos aos quais o sistema


deve responder

 rela ionar os eventos a atores e asos de usos

Um pro esso des reve do in io ao m, uma


sequ^en ia de eventos, a o~es ou transa o~es ne essarias
para produzir ou ompletar alguma oisa para a
organiza ~ao ou ator.
Um aso de uso e uma des ri ~ao de um pro esso,
e in lui muitos passos. N~ao utiliza-lo para des rever
um passo ou atividade de um pro esso. Ex. Imprimir
re ibo e um passo de omprar itens.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Diagrama de Casos de Usos

Ilustra um onjunto de asos de usos para um


sistema, atores e o rela ionamento entre atores e
asos de usos

Comprar itens

Cliente
Caixa Registro

Retornar Itens
Comprados

Diagram de caso de Uso

fluxo de
informação
caso de uso ator

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


II. Modelo Con eitual

Representa ~ao de on eitos no domnio do


problema
Deve mostrar: on eitos, asso ia o~es entre on-
eitos e atributos de on eitos.

Conceito Linha de venda Registro de venda Item


0..1 1
quantidade
1..* *
Associação Armazenado em
Contido em
1 1

Venda Estoque
1
data endereco
Atributo hora nome
1 1

Pago por Filiais de

1 Registra 1..*

Pagamento Posto
Comercial
1
quantia

Modelo Conceitual - Exemplo

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


1. Con eitos

 uma ideia, oisa ou objeto do mundo real.


E

Um bom modelo on eitual deve superestimar o


numero de on eitos.

Para identi ar on eitos:


a) Bus ar por nomes em des ri o~es textuais:
A des ri ~
ao e o pre
o de ada item s~ao apre-
sentados.
Cuidado: Impre is~ao da linguagem natural

b) Relatorios, re ibos, et n~ao devem apare er


no modelo on eitual a menos que sejam derivados
de outras fontes.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


) Lista de Categorias de Con eitos

 objetos fsi os: avi~ao


 espe i a ~oes, des ri ~ao de oisas: espe i a ~ao do pro-
duto, des ri ~ao do produto
 lugares: loja, aeroporto
 transa ~oes: reserva, pagamento
 fun ~ao de pessoas: aixa, piloto
 re ipiente de oisas: estoque, avi~ao
 oisas em re ipientes: itens, passageiros
 outros sistemas: autoriza ~ao de artao de redito, ontrole
de tra o aereo
 on eitos abstratos: fome
 organiza ~oes: ia aereas, departamento de vendas
 eventos: voo, a identes, venda, roubo
 pro essos (podem ser): vendendo um produto, reservando
um assento
 regras e polti as: retorno de mer adoria, an elamento
 atalogo: produtos de atalogo, partes de atalogo
 ontratos legais, de nan as: ontrato de trabalho
 servi os: linha de redito
 manuais, livros: manual do empregado, manual de reparo

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


d) Se vo ^e n~ao des reve X om um numero
ou texto no mundo real, X provavelmente sera um
on eito

Voo Voo Aeroporto


ou ??
destino nome

e) Um on eito pode n~ao estar in orreto, pode


apenas n~ao ser util

Posto Loja
Comercial
1 1
Registra Registra
* *

Venda Venda

Conceitos Similares com Diferentes Nomes

f) Con eitos do tipo espe i a ~ao/des ri ~ao de


oisas: adi iona-los para reduzir redund^an ia e in-
forma ~ao dupli ada ou quando informa ~ao e perdida
se a oisa des rita for removida
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Item Especificação
de Produto Descreve Item
descrição
preço ou descrição 1 *
UPC preço número serial
UPC
número serial
melhor

Voo Vôos para Aeroporto


data * 1 nome
hora
número

ou
melhor
Voo Descreve
Descrito por Descrição de vôos para Aeroporto
data Voo
hora * 1 número
* 1 nome

Exemplo- Conceitos do Tipo Especificação/ Descrição

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


2. Asso ia o~es

S~ao rela ionamentos entre on eitos que indi am


alguma poderosa e interessante onex~ao.
Multipli idade: de ne quantas inst^an ias de um
tipo A podem ser asso iadas a uma inst^an ia de um
tipo B
Criterio para es olha das asso ia o~es:
a) o onhe imento de um rela ionamento pre isa
ser preservado (regra ne essidade de saber)
b) s~ao importantes para ompreender on eitos
importantes do domnio
) e melhor identi ar on eitos que asso ia o~es.
Muitas delas podem tornar o modelo on eitual on-
fuso. Evite asso ia o~es redundantes e derivaveis.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


d) atraves de uma lista de asso ia o~es

 A e parte fsi a de B: asa - avi~ao


 A e parte logi a de B: itens de venda - venda
 A esta si amente ontida em B: passageiro - avi~ao
 A esta logi amente ontida em B: des ri ~ao de item -
atalogo
 A e des ri ~ao de B: des ri ~ao de voo - voo
 A e uma linha de transa ~ao ou relatorio de B: trabalho de
manuten ~ao - relatorio de manuten ~ao
 A e onhe ido, registrado, relatado em B: venda - posto
omer ial
 A e um membro de B: piloto - ia aerea
 A e uma sub-unidade opera ional de B : departamento -
loja
 A usa ou geren ia B: piloto - avi~ao
 A se omuni a om B: liente - aixa
 A esta rela ionado a uma transa ~ao de B: passageiro - ti ket
 A e uma transa ~ao rela ionada a uma outra transa ~ao B:
pagamento - venda
 A esta proximo a B: idade - idade
 A e posse de B: avi~ao - ia aerea

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


direção da seta nao tem significado
apenas indica direção para leitura

Posto Registra
Comercial 1 Venda
1

nome multiplicidade

* zero ou mais (muitas)


T

1..* uma ou mais


T

1..40 uma a quarenta


T

5
exatamente 5
T

3,5,8
T exatamente 3 ou 5 ou 8

Notação para associações

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Loja
1
Contém
1..*
Posto Registra Pago por
Comercial Venda Paga/to
1 1..* 1 1

(1)

Cia
1
Emprega
1..*
Atribuida a Atribuido a
Pessoa * Voo Avião
1 * 1
1 *

Supervisiona
(2)

* Vôos p/ 0..1 (associação


Voo Aeroporto múltipla)
* Vôos de 1

(3)

Exemplos de Associações

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


3. Atributos

Um atributo e um valor logi o para um objeto.


Criterio para es olha de atributos
a)aqueles que sugerem ou impli am ne essidade
de lembran a.
b) devem ser simples ou valores puros (primitivos)
) n~ao represente um atributo omo have es-
trageira
d) representar atributos primitivos omo n~ao
primitivos se:
 s~ao ompostos: nome de pessoa, numero de telefone
 sobre eles o orrerem opera ~oes de valida ~ao: CPF
 eles t^em outros atributos: pre os promo ionais om data
de in io e termino

 representam quantidade om uma unidade: pagamento


e moeda orrente

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Venda
Atributos
data

hora inicio: Hora

Notação para Atributos

Registradora não deve ser usado como chave estrangeira


não é um atributo simples
nome
posto atual

Registradora Posto
Usa Comercial
nome 1 1 número

(1)

Voo destino é um conceito complexo


destino

Voo Vôos para Aeroporto


1 1

(2)

Exemplos de Usos de Atributos

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Especificação * 1 UPC Estoque * 1 Endereço
de Produto

Especificação Estoque
de Produto
upc : UPC endereço: Endereço

Exemplo: Uso de Atributos Puros

Pagamento possível mas nao


robusto o suficiente
quantia: Numero

Pagamento Tem quantia Quantidade Está em Unidade


* 1 quantia: Numero * 1

Pagamento quantidade é um valor puro


OK mostrar como atributo
quantia: Qtidade

Para modelar quantidades - valores de dados puros

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Como fazer um modelo on eitual

 Listar on eitos andidatos - lista de on eitos e


identi a ~ao de nomes nas frases que des reve os
requisitos

 Desenhar o modelo on eitual

 Adi ionar as asso ia o~es ne essarias para rela-


ionamentos que s~ao ne essarios preservar

 Adi ionar os atributos ne essarios para preen her


informa o~es sobre os requisitos

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


3. Glossario

Lista todos os termos que requerem alguma ex-


pli a ~ao para melhorar a omuni a ~ao e reduzir mal-
entendidos
Termo Categoria Comentarios
Comprar Itens aso de uso des ri ~ao do pro esso de um
liente realizar uma ompra
Venda on eito uma transa ~ao
Pagamento on eito pagamento a vista
Pagamento.quantia: Qtidade atributo A quantia apresentada pelo
liente para o pagamento
.... .... ....

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


III Comportamento Din^ami o

Des rever o que o sistema faz sem se preo upar


omo

1. Diagrama de Sequ^
en ias do Sistema

 um dado enario (inst^an ia ou aminho per or-


E
rido no mundo real) de um aso de uso. Mostra os
eventos que os atores externos geram, a ordem que
o orrem e eventos entre sistemas

Eventos do Sistema : e um evento de entrada


externa gerado por um ator para o sistema. Ele ini ia
uma opera ~ao omo uma resposta
Opera
~
ao do : opera ~ao exe utada
Sistema

omo resposta a um evento do sistema

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


sistema como uma
caixa preta

Ator
Comprar Itens - Versão 1
: Sistema

Caixa

entrar item(UPC, qtidade)


Repetir
até não ter venda fim()
mais itens
efetuar pagamento(quantia)
texto explicando
controle, lógica
iteração
evento do sistema

Diagrama de Sequência de Sistemas

Tipo X
Operações do tipo
Operação1 ()
Operação2 ()

Notação para Operações

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Como fazer um diagrama de sequ^en ias
do sistema

Fazer um diagrama para uma sequ^en ia tpi a de


eventos para um aso de uso:

1. desenhe uma linha representando o sistema omo


uma aixa preta

2. identi que ada ator que diretamente opera o


sistema. Desenhe uma linha a partir de ada ator.

3. do texto de eventos tpi os ( aso de uso estendido)


identi que eventos que s~ao gerados por ada um
dos atores. Ilustre-os no diagrama.

4. Op ionalmente, in lua o texto do aso de uso ao


lado do diagrama.
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
: Sistema

Caixa
Para todos os itens, o Caixa registra
entrar item(UPC, qtidade)
UPC e quantidade
Para completar a entrada de um item, o
Caixa indica que a venda está completa venda fim()

O Caixa conta ao Cliente o total e


o Cliente faz o pagamento com o Caixa efetuar pagamento(quantia)

O Caixa registra a quantia recebida

Diagrama de Sequências do Sistema com Texto de Caso de Uso

Comprar Itens - Versão 1


: Sistema

Caixa

entrar item(UPC, qtidade)

venda fim()

efetuar pagamento(quantia)

Limite do sistema

Diagrama de Sequências Mostrando o Limite do Sistema

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


2. Contratos

Contratos des revem o efeito das opera o~es do


sistema e ajudam a de nir o seu omportamento.
 de larativo, porque o interesse esta no que
E
a onte era e n~ao omo isso sera realizado. S~ao
expressos em termos de pre e pos ondi o~es.
Contrato
Nome : nome da opera ~ao e par^ametros
Responsabilidades: responsabiliades a serem umpridas
Tipo: nome do tipo ( on eito, lasse de software,
interfa e)
Refer^en ias: fun ~oes dos sistema, asos de usos et
Notas: notas de projeto, algoritmos,
detalhes de implementa ~ao
Ex ess~oes : asos ex ep ionais
Sada: mensagens e registros enviados
para fora do sistema (outros sistemas)
Pre-Condi ~oes: suposi ~oes sobre o estado
sistema antes da exe u ~ao
da opera ~ao
Pos-Condi ~oes: o estado do sistema apos o
termino da opera ~ao.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Contrato - Um Exemplo
Nome : entrar item (up :number; quantidade:inteiro)
Responsabilidades: registrar um item de venda e
adi iona-lo a venda; mostrar
pre o e des ri ~ao do item
Tipo: sistema
Refer^en ias: fun ~oes: R1.1, R1.3, R1.9
asos de usos: Comprar Itens
Notas: a esso a uma base de dados
Ex ess~oes : se UPC n~ao for valida
mostrar msg de erro
Sada:
Pre-Condi ~oes: deve-se onhe er valor de UPC
Pos-Condi ~oes:

1. se a ompra e nova, uma nova Venda (inst^an ia) foi riada


2. se a ompra e nova, a nova Venda foi asso iada om o
Posto omer ial (uma asso ia ~ao foi estabele ida)
3. um Item da linha de Venda foi riado (inst^an ia riada)
4. Item da linha de Venda foi asso iado om Compra (asos-
sia ~ao estabele ida)
5. O atributo Item da linha de Venda.quantidade re ebe um
valor (modi a ~ao de um atributo)
6. Um Item da linha de Venda foi asso iado om uma Espe i-
a ~ao de Produto, baseado no valor da UPC (asossia ~ao
estabele ida)

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Como fazer um Contrato

1. identi ar as opera ~oes do sistema do diagrama de


sequ^en ias do sistema

2. para ada opera ~ao en ontrada, onstruir um ontrato

3. ome e es revendo a se ~ao de responsabilidades, o proposito


da opera ~ao

4. omplete a se ~ao de pos- ondi ~oes, des revendo mudan as


de estado em objetos no modelo on eitual

5. des reva pos- ondi ~oes nas seguintes ategorias: ria ~ao
e remo ~ao de inst^an ias, modi a ~ao de atributos, asso-
ia ~oes estabele idas e rompidas.
 pos- ondi ~oes s~ao de lara ~oes do estado do sistema; n~ao
s~ao a ~oes a tomar, devem estar no passado.

6. des reva pre- ondi ~oes


 pre- ondi ~oes s~ao fatos importantes que pre isam ser
testados.

7. alem de riar inst^an ias e importante estabele er asso-


ia ~oes.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Operação entrar item
Caso de Uso entrar item
Comprar Itens (upc, Pós-condições
qtidade)
Sistema 1. Se uma nova .....
Sequências
Típicas de entrar item
venda fim()
Eventos venda fim() Operação venda fim
efetuar efetuar pagamento
1. Este caso pagamento Pós-condições
(quantia)
começa ....
1. ....
Operações
Caso de Uso Diagrama do Sistema
Contratos
de Sequências
do Sistema

Contratos e Outros Artefatos

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Da Analise para o Projeto

Artefato da Análise Questões Respondidas

Casos de Uso Quais os processos do domínio?


Modelo Conceitual Qauis os conceitos, termos?

Diagrama de Sequencias Quais os eventos do sistema e


do Sistema as operações?

Contratos O que as operações do sistema


fazem?

Modelo do Projeto

Modelo de Modelo Modelo de Modelo Modelo de


Casos de de Comporta/o de Estados
Uso (Projeto) Arquitetura de Objetos Classes (Projeto)

Casos de Uso Diagramas Diagramas Diagrama Diagramas


Reais de Pacote de Interação de Classes de Estado p/
Classes
Diagrama de Diagramas Contratos p/
Casos de Uso de ??? Métodos e
Operações

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


I. Casos de Uso Reais

Des revem algum detalhe de implementa ~ao do


aso de uso, em termos de te nologia utilizada.
Caso de Uso Compra Itens (versão 1 )
Atores: Cliente, Caixa
Propósito Registrar uma venda e seu pagamento
Resumo: Um Cliente chega para compra. O
Caixa registra os itens de compra e
recebe o pagamento. Ao final o Cliente
vai embora
Tipo: pincipal e real
Referências Funções: R1.1, R1.3, R2.1

Object Store

UPC Qtidade
Preço Desconto
Total
EntrarItem VendaFim EfetuarPaga/o

Sequência Típica de Eventos


Ação dos Atores Resposta
....... .......

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


II. Diagramas de Intera ~ao

Ilustram omo objetos interagem via mensagens


e omo realizam tarefas. As pos- ondi o~es dos on-
tratos s~ao umpridas.
Diagrama de Colaboração

1:mensagem2()
mensagem1() Instância 2:mensagem3() Instância
Classe A Classe B

Diagrama de Sequência

Instância Instância

Classe A Classe B

mensagem1()
mensagem2()

mensagem3()

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Como Fazer um Diagrama de
Colabora ~ao

 Atribuir responsabilidades: parte dif il e impor-


tante

 Auxlio: uso de \patterns" que s~ao diretrizes e


prin pios a serem apli ados

 Criar um diagrama para ada opera ~ao do sistema;


para ada msg de opera ~ao do sistema, fazer um
diagrama om ela sendo a msg ini ial

 Se o diagrama ar omplexo, divida-o em dia-


gramas menores

 Usando responsabilidades e pos ondi o~es dos on-


tratos e, a des ri ~ao de aso de uso omo ponto
ini ial, projete objetos interagindo para ompletar
as tarefas.

 Aplique padr~oes para fazer um bom projeto e


para estabele er os metodos e opera o~es de ada
objeto.
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
entraritem(upc,qtidade)
entrar item Operação entrar item

(upc,
Posto
qtidade) Pós-condições
Comercial
1. Se uma nova .....

venda fim() efetuarpagamento(quantia)


Operação venda fim
efetuar
pagamento Posto
(quantia) Pós-condições
Comercial
1. ....

Diagrama
de Sequências Contratos Diagrama de
do Sistema Colaboração

Diagramas de Colaboração e Outros Artefatos

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Notação para o Diagrama de Colaboração

Venda :Venda sl:Venda

classe instância instância


identificada

mensagem parâmetro direção msg

msg1() 1:efetuarPagato(quantia:Dinheiro)
:PostoComercial :Venda

link (instância da associação)

Tipo de retorno

msg1() 1:tot:=total():Integer
:PostoComercial :Venda
Valor de retorno

retorno :=mensagem(parâmetro:TipoParâmetro):TipoRetorno

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Ilustrando Iterações em Diagramas de Colaboração

msg1() iteração
1*:li:=proximoItem():ItensdeVenda :Venda
:PostoComercial

msg1() cláusula de iteração

:PostoComercial 1*:[i:=1..10] li:=proximoItem():ItensdeVenda :Venda

msg1() msg1()
{
:A 1*:[i:=1..10] msg2() :B for i:=1 to 10
{
B.msg2()
2*:[i:=1..10] msg3() C.msg3()
:C }
}
as cláusulas
são iguais
contêm múltiplas
mensagens

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Diagrama de Colaboração - Notações/Exemplos

criando uma instância


parâmetro opcional
msg1()
1:create() :Venda
:PostoComercial

msg1()

:PostoComercial
um objeto envia
msg p/ ele mesmo

1:zerar()

msg1() 1:mensagem1()
2:mensagem2()
3:mensagem3() :Venda
:PostoComercial

várias mensagens pelo mesmo link

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Ilustrando Sequenciamento de Mensagens

msg externa (não numerada)


primeira

msg1() segunda
terceira
:A 1:msg2() :B

1.1:msg3()
2.1:msg5()
2:msg4()
:C
quinta
quarta
2.2:msg6()

sexta
:D

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Ilustrando Mensagens Condicionais

msg1()
1:[novavenda] create() :Venda
:PostoComercial

teste 1.1:create()

:ItensdeVenda

:E incondicional

2:msg6() 1a e 1b são mutuamente exclusivas

msg1() 1a:[teste1] msg2() :B


:A

1b:[not teste1] msg4() 1a.1:msg3()

:D 1b.1:msg5() :C

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Ilustrando Mensagens para MultiObjetos

msg p/ um elemento
msg1()
1:create()
:Venda 4:imprima() sl:ItensdeVenda

2:adicionaEleto(sl)
3:s:=size():int :ItensdeVenda

msgs para o multi-objeto


multi-objeto

Ilustrando Mensagens para Classes

msg1()

:Venda 1:d1:=today():Date
Data

msg p/ uma classe

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~oes GRASP

Responsabilidades : Contrato ou obriga ~ao de


uma lasse:
saber : saber sobre os seus dados, sobre objetos
rela ionados, sobre oisas que ele pode al ular ou
derivar.
fazer : ini iar a o~es entre outros objetos, ontro-
lar e oordenar atividades em outros objetos

M
etodos : umprem as responsabilidades.

Padr~
oes : ont^em des ri o~es de um problema e
uma solu ~ao que pode ser utilizada em diferentes
ontextos.
Codi am ideias e heursti as existentes para
atribuir responsabilidades a objetos.

Padr~
oes GRASP b
asi os : espe ialista, riador,
alta oes~ao, baixo a oplamento, ontrole.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~ao Espe ialista (Expert)

Solu
~
ao : Atribua uma responsabilidade a uma
lasse que possui a informa ~ao ne essaria para
umpr-la.
Problema : Quem deveria ser responsavel por
al ular o total-geral de uma venda? a lasse Venda
possui a informa ~ao para isso
Classe Responsabilidade
Venda sabe total geral da venda
Item de Venda sabe sub-total de ada item
Espe i a ~ao do Produto sabe pre o do produto

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Parte do Modelo Conceitual
Venda
data
hora
Contém
1..*
Itens de Especificação
Venda * Descrito por 1 do Produto
descrição
qtidade preço
UPC

1*:[for each] sli:=next()


Venda
t:=total() data
:Venda
hora
total()
2:st:=subtotal() :ItensdeVenda
Itens de
sli:ItensdeVenda Venda
qtidade
novos métodos
2.1:p:=preço() subtotal()

:Especificação
do Produto Especificação
do Produto
descrição
Para Calcular o Total de Uma Venda preço
UPC
preço()

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~ao Criador (Creator)

Solu
~: Atribua a lasse B a responsabilidade
ao

de riar uma inst^an ia da lasse A se:

1. B agrega objetos de A
2. B ontem A
3. B armazena inst^an ias de A
4. B usa objetos de A
5. B possui informa ~ao ne essaria a ria ~ao de A (B e um
espe ialista para riar A)

Problema : Quem deveria ser responsavel por


riar a inst^an ia da lasse Item de Venda? lasse
Venda agrega muitos objetos da lasse Itens de
Venda
criarItemdeVenda(qtidade)
:Venda
Venda
data
1:create(qtidade) hora
criarItem
:ItensdeVenda deVenda()
total()

novo método

Para Criar uma Linha de Item de Venda

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~ao Baixo A oplamento e Padr~ao
Alta Coes~ao

(Low Coupling e High Cohesion)


Solu
~: Atribua responsabilidades para garan-
ao

tir baixo a oplamento (mede a independ^en ia da


lasse em rela ~ao a outras) e alta oes~ao (medida
de rela ionamento entre as responsabilidades de uma
lasse)
Problema : Para evitar que a lasse seja:

1. onstantemente afetada por mudan as em outras lasses


2. dif il de ompreeder quando isolada
3. dif il de ser reusada sem as outras lasses
4. dif il de manter

que lasse poderia riar uma inst^an ia da lasse


Pagato?

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


efetuaPagato()

1:create() p:Pagato
:PostoComercial

2:adicionaPagato()
:Venda

efetuaPagato()

1:efetuaPagato() :Venda
:PostoComercial

1.1:create()

:Pagato

Ilustrando Alta Coesão e Baixo Acoplamento

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~ao Controle (Controller)

Solu
~
ao: Atribua responsabilidades para lidar
om mensagens de eventos do sistema a uma lasse
que:

1. represente o sistema omo um todo


2. represente a organiza ~ao
3. represente algo ativo no mundo real envolvido na tarefa (por
exemplo o papel de uma pessoa)
4. represente um ontrolador arti ial dos eventos de sistema
de um aso de uso ( ontrolador de aso de uso)

Problema : Quem deveria ser responsavel por


lidar om um evento do sistema?
um ontrolador e um objeto de interfa e
responsavel por geren iar um evento do sistema,
de nindo metodos para opera ~oes do sistema
Quem deveria ser o ontrolador para eventos do
sistema tais omo entrarItem e Venda m?

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~ao Controle

* Use o mesmo ontrolador para todos os eventos


do sistema no mesmo aso de uso
* Classes do tipo janela, applet, apli a o~es,
do umento n~ao deveriam realizar tarefas asso iadas a
eventos do sistema. Elas apenas re ebem e delegam
os eventos ao ontrolador
* Um evento do sistema e gerado por um ator
* Um ontrolador n~ao deve ter muitos atributos e
nem manter informa ~ao sobre o domnio do problema
* Um ontrolador n~ao deve realizar muitas tare-
fas, apenas delega-las
* Um bom projeto deve dar vida aos objetos,
atribuindo-lhes responsabilidades, ate mesmo se eles
forem seres inanimados no mundo real
* A amada de apresenta ~ao (interfa e om o
usuario) n~ao deve tratar eventos do sistema

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


entrarItem(UPC,qtidade)
???

posto comercial, loja, caixa ....

Posto Comercial
Sistema ......
fimVenda() fimVenda()
entrarItem() entrarItem()
efetuarPagto() efetuarPagto()

operações encontradas alocação das operações


durante a análise do
do sistema durante projeto
comportamento do
usando o padrão Controle
sistema

Exemplificando o Uso do Padrão Controle

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Object Store

UPC Qtidade
Preço Desconto
Total
Seleciona
EntrarIten VendaFim EfetuarPaga/o
Ícone

íconeEnterItem()

Camada de :PostoApplet msg de um evento do sistema


Apresentação
(Java Applet) 1:enterItem(upc,qtidade)

:Posto 1.1:criaLinhaItem(upc,qtidade) :Venda


Camada do Comercial
Domínio

controle

Acoplando a Camada de Apresentação à do Domínio

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~ao Comando

Problema : Apli a o~es que re ebem msg de um


sistema externo (n~ao existe interfa e om o usuario).
Ex: sistemas de tele omuni a o~es
Solu
~
ao : de nir uma lasse para ada omando,
om o metodo exe utar. O ontrolador riara uma
inst^an ia da lasse orrespondente a msg do evento
do sistema e enviara a mensagem exe utar a lasse
omando.

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Comando

executar()

Comando-1 Comando-2 Comando-3

executar() executar() executar()

polimorfismo

msgdeControle(msgReg)

1a[msgReg.tipo=1]: create(msgReg)
:ControledeMsg c:Comando-1

1b[msgReg.tipo=2]: create(msgReg)
2:executar() c:Comando-2

c:Comando

Usando os Padrões Comando e Controlador

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Exempli ando o Uso de Padr~oes

Para fazer um Diagrama de Intera ~ao:

 utilize as responsabilidades e pos- ondi o~es dos


ontratos e use asos de usos omo ponto de
partida

 es olha a lasse que ontrolara o sistema, apli ar


padr~ao ontrole

 para ada opera ~ao existe um ontrato, uma


opera ~ao vai ser uma mensagem.

 separa ~ao do modelo de vis~ao: n~ao e


responsabilidade dos objetos do domno se omu-
ni arem om o usuario (ignorar responsabilidades
de apresenta ~ao dos dados no display, mas toda
informa ~ao do domnio de objetos tem que ser
mostrada)

 para um objeto enviar uma msg a outro e


ne essario visibilidade: habilidade de um objeto
ver ou fazer refer^en ia a outro objeto
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Diagrama de Colaboração para EntrarItem

Controlador
Criador

entrarItem(upc,qtidade)
3:criaLinhaItem(spec,qtidade)
1:[novavenda] create() :Venda
:PostoComercial

2:spec:=especificacao(upc) 3.1:create()
Especialista 3.2:addEleto(sl)
1.1:create()
:Cátalogo de
de Produtos sl:ItensdeVenda
2.1:spec:=find(upc) :ItensdeVenda

:Especificação
de Produto

Diagrama de Colaboração para VendaFim

Controlador Especialista

VendaFim() 1:tornarCompleta() :Venda


:PostoComercial

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Diagrama de Colaboração para Calcular o Total de Venda

1*:[for each] sli:=next()


t:=total()
:Venda

2:st:=subtotal() :ItensdeVenda
Especialista
s1:ItensdeVenda

2.1:p:=preço()

:Especificação
do Produto

Diagrama de Colaboração para Efetuar Pagamento

efetuaPagato()

1:efetuaPagato() :Venda
:PostoComercial

1.1:create()
Baixo Acoplamento
Alta Coesão
:Pagato

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Diagrama de Colaboração para Registrar Venda

efetuaPagato()

1:efetuaPagato() s:Venda
:PostoComercial

2:adicionarVenda(s)
1.1:create()
Especialista
:Estoque
:Pagato

2.1:adicionar(s)

Venda Completa:Venda

Diagrama de Colaboração para Efetuar Balanço

b:=balance() 1:q:=quantia()
s:Venda :Pagato

2:t:=total()

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Como se realizam as opera o~es ini iais
da apli a ~ao?

Cria-se um aso de uso startUp.

Seu diagrama de olabora ~ao deve ser riado


por ultimo, representando o que a onte e quando o
objeto ini ial do problema e riado.

Quem deveria ser o objeto ini ial do sistema?

- lasse representando toda a informa ~ao logi a


do sistema

- lasse representando a organiza ~ao

- usar Padr~oes Alta Coes~ao e Baixo A oplamento


Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
1:create()
create() :PostApplet 2:p:=getPosto():PostoComercial estoque:
Estoque

public class PostApplet extends Applet

public void init()


{
p=estoque.getPosto
}

estoque é o objeto inicial do domínio


e o construtor Store cria os outros objetos.

Criação dos Objetos Iniciais do Domínio

create() :Estoque 2:create(cp)


:PostoComercial

1:create()

1.2.2*:adicionar(ep)
cp:Cátalogo
de Produto 1.1:create()
1.2:carregaEspProd() Especificação de Produto

1.2.1*:create(upc,preço,descrição) ep:Especificação
de Produto

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Cone tando a amada de apresenta ~ao
om a do domnio

Uma opera ~ao de startUp pode ser:

 uma mensagem \ reate" para o objeto ini ial;

 se o objeto ini ial e o ontrolador, uma mensagem


\run" para um objeto ini ial e enviada.

Se uma interfa e do usuario estiver envolvida ela


e responsavel por ini iar a ria ~ao do objeto ini ial e
outros asso iados.

Objetos da amada de apresenta ~ao n~ao devem


ter responsabilidades logi as. Das nossas es olhas
resultar~ao extensibilidade, laridade e manutenibili-
dade
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Conectando a Camada de Apresentação a do Domínio
Object Store

UPC Qtidade
Preço Desconto
Total
EntrarIten VendaFim EfetuarPaga/o

Seleciona

Ícone

íconeEnterItem()

t:=total():Float
Camada de :PostApplet
Apresentação
(Java Applet) entrarItem(upc,qtidade)

p:Posto criaLinhaItem(upc,qtidade) venda:Venda


Camada do Comercial
Domínio

Uma vez que PostApplet tem uma conexão com uma instância de posto p
ele pode enviar uma mensagem, por exemplo entrarItem

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Visibilidade

Habilidade de um objeto A ver ou fazer refer^en ia


a um outro objeto B. Para A enviar uma msg para
B, B deve ser visvel a A.

 por atributo: B e um atributo de A

 por par^ametro: B e um par^ametro de um metodo


de A

 lo almente de larada: B e um objeto lo al de um


metodo de A; uma inst^an ia lo al e riada, ou ele
sera um valor de retorno

 global: B e visvel globalmente; usa-se uma


variavel global para armazenar uma inst^an ia -
pou o re omendada
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Exemplos de Visibilidade

Por parâmetro Parâmetro para Atributo


entrarItem(upc,qtidade)
3:criarItemVenda(espec,qtidade)
1:[novavenda] create() :Venda
:PostoComercial

2:espec:=especificacao(upc) 3.1:create(espec,qtidade)

cp:Cátalogo Visibilidade Local


de Produtos retorno de objeto sl:ItensdeVenda
2.1:espec:=find(upc)

Class PostoComercial
{ ...
:Especificação
de Produto Por atributo private CatalogodeProdutos cp;
...
}

PostoComercial .... entrarItem(upc,qtididade)


{
...
espec=cp.especificacao(upc);
...
}

Venda ... criarItemVenda(espec,qtidade) construtor ...ItensdeVenda(espec,qtidade)


{ {
... ...
sl=new ItensdeVenda(espec,qtidade) prod=espec;
...
...
} }

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


III. Diagrama de Classes

Modelo Con eitual Estendido { a res imo de


metodos, tipos dos atributos, visibilidade e
navegabilidade, in lui a vis~ao de projeto alem da
vis~ao de domnio

Como fazer um diagrama de lasses:

 identi ar todas as lasses parti ipantes da


solu ~ao atraves dos diagramas de olabora ~ao

 desenhar o diagrama

 opiar os atributos

 adi ionar os metodos dos diagramas de intera ~ao

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


 adi ionar tipos de atributos, par^ametro e retornos
de metodos.

 adi ionar as asso ia o~es ne essarias a visibilidade

 adi ionar navegabilidade que indi a a dire ~ao de


visibilidade por atributo

 adi ionar setas pontilhadas indi ando visibilidade


que n~ao e por atributo

 Metodos \ reate" e de a essos aos atributos po-


dem ser omitidos.

 Os tipos podem ser mostrados op ionalmente;


lasses podem ser detalhadas ao maximo pen-
sando na implementa ~ao.
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Exemplo - Diagrama de Classes

Posto Venda
Comercial 1 registra 1
data
hora
entrarItem() navegabilidade estaCompleta:boolean
conexão
unidirecional registrarItem()
métodos
informação
ausência de sobre o tipo
navegabilidade
não conexão de
Venda para Posto

Modelo Conceitual apenas apresenta abstrações.


Não apresenta componentes de software

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Métodos são derivados do diagrama de colaboração

Posto Venda Pagato


Comercial data
hora quantia
estaCompleta:boolean
entrarItem()
VendaFim() registrarItem()
efetuarPagato() efetuarPagato()
tornarCompleta()
total()

Cátalogo de Especificação
ItensdeVenda Produtos do Produto

qtidade:Integer descrição:Text
subtotal():Quantidade especificação() preço:Quantidade
upc:UPC
tipo de retorno para métodos

Estoque
endereço:Endereço
tipo de atributos
nome:Text
adicionarVenda(s:Venda)
tipo de parâmetros

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Exemplo - Visibilidades que não são por Atributo

Especificação
Estoque Cátalogo de do Produto
Usa
1 endereço:Endereço Produtos Contém descrição:Text
1 1 preço:Quantidade
nome:Text 1 1..* upc:UPC
adicionarVenda(s:Venda) especificação()

1
1
Filiais de
Venda descreve
1 data *
Posto hora
estaCompleta:boolean ItensdeVenda
Comercial Contém
1 Registra 1
registrarItem() 1 1..* qtidade:Integer
efetuarPagato() subtotal():Quantidade
entrarItem()
VendaFim() tornarCompleta()
efetuarPagato() total()
* 1

Pago por
Registros-completos
1
Pagato

Posto sabe sobre Especificação do Produto quantia


para visibilidade por parâmetro, global,
ou localmente declarada

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Nota ~ao para
Generaliza ~ao/Espe ializa ~ao

Quando parti ionar em Sub-Classes

 a sub- lasse tem atributos adi ionais de interesse

 a sub- lasse tem asso ia o~es adi ionais de


interesse

 a sub- lasse sera manipulada ou usada de maneira


diferente da super- lasse ou das outras sub- lasses

 a sub- lasse se omporta diferente da super- lasse


ou das outras sub- lasses

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Nota ~ao para
Generaliza ~ao/Espe ializa ~ao

Quando riar uma Super-Classe

 as poten iais sub- lasses representam varia o~es de


um on eito similar

 as sub- lasses satisfazem 100% a regra \is-a"

 todas as sub- lasses possuem um atributo omum


que podera ser expresso na super- lasse

 todas as sub- lasses possuem uma asso ia ~ao o-


mum que podera ser rela ionada a super- lasse
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Notação para Generalização/Especialização - UML

Pagamento

A vista A crédito Cheque

ou

Pagamento

A vista A crédito Cheque

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Justificativa para Sub-classes de Pagamento

super-classe
existe atributo comum Com Cheque 1
Pagamento
1
Pagamento
cada pagato é quantia: Dinheiro associações adicionais
tratado diferentemente

Com dinheiro A crédito Com Cheque

*
Crédito com Pago com
1 1

Cartão Cheque

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Um on eito Asso ia ~ao - ou
Asso iativo

Seus atributos est~ao rela ionados a uma asso-


ia ~ao entre outros dois on eitos, da qual seu tempo
de vida e dependente.

Existe uma asso ia ~ao muitos para muitos entre


os dois on eitos envolvidos.

Geralmente somente uma inst^an ia de um


on eito asso iativo existe entre os dois objetos
parti ipantes da asso ia ~ao.
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Conceito Associativo - Exemplo

Loja Autorização
Autoriza pagatos -via
nome endereço
endereço * 1..* nome
telefone

Contrato de
Serviço Um conceito associativo
atributos relacionados à
id-transação
associação
Tempo de vida dependente
da associação

Companhia Emprega Pessoa


* *

Uma pessoa pode ser


Emprego
empregado em várias
salário
companhias

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Agrega ~ao

 um tipo de asso ia ~ao utilizada para modelar


E
rela ionamentos todo-parte
Composi
~
ao : a parte perten e apenas a um
uni o omposto
Compartilhamento : a parte pode perten er a
mais de um omposto
Como identi ar:

 o tempo de vida da parte e limitado ao tempo de


vida do omposto

 existe uma omposi ~ao fsi a ou l


ogi a

 algumas propriedades e/ou opera o~es do om-


posto se apli am as partes

*** opera o~es de \ reate", \ opy", \delete" de-


vem tambem ser apli adas as parte durante a fase
de projeto.
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Agregação/ Composição

Mão Dedo
1 0..7

agregação de composição

Pacotes UML Elemento UML


* *

agregação de compartilhamento

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Classe Abstrata

classe abstrata métodop abstrato


em itálico não implementado
não existem
instâncias
Pagamento
quantia: Dinheiro

Com dinheiro A crédito Com Cheque

Com dinheiro A crédito Com Cheque

tipo abstrato

Com dinheiro A crédito Com Cheque

cada membro T é tmabém membro de um sub-tipo

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


IV. Modelo de Arquitetura do Sistema

Divis~ao do Sistema em Camadas. Por exemplo,


tr^es amadas:
Apresenta ~ao: janelas, relatorios
Apli a ~ao Logi a: registrar vendas, autorizar
pagamentos
Armazenamento: Ban o de Dados
Possibilita reuso; pode-se separ a amada de
Apli a ~ao Logi a em diferentes omponentes a serem
reusados.
As diferentes amadas podem ser distribudas
em diferentes pro essos; aumenta desempenho e in-
forma ~ao ompartilhada num sistema liente servi-
dor.
Diferentes equipes (espe ialistas) desenvolvedo-
ras em diferentes amadas

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Pa otes do Sistema

Um pa ote e um onjunto de elementos do


modelo tais omo lasses, asos de usos, diagramas
de olabora ~ao e outros pa otes.
Notação para Pacotes em UML

Vendas

Exemplo

Domínio

Vendas Produtos

Camadas e Partições

Domínio

Vendas Produtos

Camadas
Verticias Serviços

Interface com Interface com Relatórios


Comunicação
B.D. Relacional B.D.O.Objetos

Partições Horizontais

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Pa otes da Camada do Domnio

Os pacotes são agrupados logicamente num diagrama

Conceitos do Domínio

Kernel Vendas Produtos Pagamentos

Kernel
Posto Estoque Gerente
Comercial

Vendas

Venda Itensde Caixa Cliente


Venda

Produtos

Item Catálogo de Especificação


Produtos de Produto

Pagamentos

Pagamento Autorização

Cheque

Com dinheiro A crédito Com Cheque Cartão

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Diagrama de Pa otes de Arquitetura
do Sistema

Uma arquitetura mais detalhada mostra a


visibilidade entre os direntes pa otes
Arquitetura Detalhada
Apresentação

Domínio
serviços
alto-nível
Interface com Interface com Relatórios orientados
Comunicação
B.D. Relacional B.D.O.Objetos a objetos

Frameworks de Aplicações
serviços
Bibliotecas de Suporte
baixo-nível
orientados
notação para um
pacote em UML ou não a objetos

B.D.
Relacional B.D. O
Objetos

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Padr~oes para Construir o Diagrama de
Pa otes

Padr~
ao Dom
nio-Apresenta
~
ao Separados

(Modelo-Vis~
ao Separados)

Problema : Separar apresenta ~ao da amada do


domnio para aumentar reuso e diminuir impa to de
mudan as.

Solu
~
ao : As lasses da apresenta ~ao n~ao mant^em
dados, apenas realizam E/S, a oplamento mnimo de
objetos do domnio om janelas da apresenta ~ao.

Permite multiplas e novas vis~oes para a apre-


senta ~ao e desenvolvimento separado das amadas,
aumentando oes~ao.
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Conectando a Camada de Apresentação a de Domínio
Object Store

UPC Qtidade
Preço Desconto
Total
EntrarIten VendaFim EfetuarPaga/o

Camada de
Apresentação
(Java Applet)

1:enterItem(upc,qtidade) 1:displaymensagem(msg)

:Posto :Posto
Camada do
Comercial Comercial
Domínio

melhor:Visão para Domínio Acoplamento do Domínio


Separação OK a camada Visão: pior

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


V. Diagramas de Estado

evento e uma o orr^en ia signi ante. Pode ser:

interno: uma msg gerada dentro dos limites do


sistema

externo: gerado fora dos limites do sistema, ex:


msg enviada por um ator

temporal: gerado om o passar do tempo, ou por


hora ou data espe  a

estado: e a ondi ~ao de um objeto num dado


momento, ou tempo entre eventos

diagrama de estados : representa eventos, esta-


dos de um objeto e o omportamento de um objeto
omo resposta a um evento

Pode ser apli ado a asos de usos, lasses, on-


eitos
Analise e Projeto Orientado a Objetos: Introdu ~ao a UML
Diagrama de Estados para Casos de Usos

Espera entrarItem
Entrada
Venda Itens

vendaFim
eventos externos

Espera
efetuaPagato Pagato

estados

transições

Lista de Con eitos/Classes em geral Depen-

dentes de Estados

asos de usos, sistemas, janelas, apli a ~ao


(applets in Java, Appli ationModels in Smalltalk,
et ), ontroladores, transa o~es, dispositivos: mod-
ens, et .

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Do projeto para a Codi a ~ao

Exemplo - Atributos

Especificação
de Produto
ItensdeVenda Descrito por descrição:Text
preço:Quantidade
qtidade:Integer * 1
upc:UPC
subtotal():Quantidade

public class ItensdeVenda


{ ...
public float subtotal();
private int qtidade; atributo simples
private EspecificacaodeProduto espec; atributo referência

Diagramas de classes e diagramas de colaboração são utilizados


para gerar código

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


A classe Posto Comercial e o Método entrarItens

Cátalogo de
Looks-in 1 Produtos

especificação()

Venda
1
data
Posto hora
Comercial estaCompleta:boolean
1 Registra 1
registrarItem()
entrarItem() efetuarPagato()
VendaFim() tornarCompleta()
efetuarPagato() total()

public void entrarItem(int upc, int qtidade)


public class PostoComercial {
{ public PostoComercial (CatalogodeProdutos cp); if (isNovaVenda())
{ venda = new Venda; }
public void VendaFim(); EspecificacaodeProduto espec =
public void entrarItem(int upc, int qtidade); cp.espec(upc);
public efetuaPagato(float cash); venda.registrarItem(espec,qtidade);
}
private CatalogodeProdutos cp;
private Venda venda;
}

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Código com Coleção de Classes - Visibilidade

Cuidar Navegabilidade e Visibilidade

Venda

data
hora
estaCompleta:boolean ItensdeVenda
Contém
registrarItem() 1 1..* qtidade:Integer
efetuarPagato() subtotal()
tornarCompleta()
total()

public class Venda

{
...
private Vector itens; visibilidade para todos os itens
}

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML


Possível Ordem de Implementação para as Classes

Especificação 2
Estoque 7 Cátalogo de do Produto
Usa 3
1 endereço:Endereço Produtos Contém descrição:Text
1 1 preço:Quantidade
nome:Text 1 1..* upc:UPC
adicionarVenda(s:Venda) 1 especificação()

1
1
Filiais de Procura-em
Venda 5 descreve
1 1 data *
Posto hora
6 estaCompleta:boolean ItensdeVenda 4
Comercial Contém
1 Registra 1
registrarItem() 1 1..* qtidade:Integer
efetuarPagato() subtotal():Quantidade
entrarItem()
VendaFim() tornarCompleta()
efetuarPagato() total()
* 1

Pago por
Registros-completos
1
Pagato 1

quantia

Analise e Projeto Orientado a Objetos: Introdu ~ao a UML

You might also like