Você está na página 1de 42

Utilizando UML e Padrões

Capítulo 9 Modelo de Domínio

Última atualização: 26/02/2011

Utilizando UML e Padrões Capítulo 9 – Modelo de Domínio Última atualização: 26/02/2011

Modelos de Domínio

Modelo fundamental de análise OO

Exibe

conceitos

importantes

no

domínio

de

interesse

Dicionário

visual

dos

conceitos

e

seus

relacionamentos

Inspiração para objetos de software no diagrama

de classes

A.K.A modelo conceitual ou de análise Ilustra objetos, seus atributos e associações

Não exibe os métodos dos objetos.

Modelo de Domínio Parcial

Modelo de Domínio Parcial

Classes Conceituais x Classes de

Software

Classes Conceituais x Classes de Software

Classes Conceituais x Classes de

Software

Classes Conceituais x Classes de Software

Classe Conceitual

Classe Conceitual

Modelos de Domínio

Não confunda com modelos de dados

Objetos

podem

persistidos

ter

atributos

que

não

são

Alguns objetos podem não ter atributos

Somente métodos (baseados em comportamento)

Tais dados

Os relacionamentos não são baseados em chaves

de

objetos

não

estariam

modelo

em

um

primárias e estrangeiras.

Modelos de Domínio

O modelo de domínio é mais simples que um

modelo de desenho de classes Mais fácil para os usuários entenderem

os usuários sobre a

Use-o

educar

para modelagem básica OO

Reduz

a

tendência

de

aprofundarem muito cedo

modeladores

se

Hiato Representacional

Hiato Representacional

Modelo de Domínio

Como criar

Restringir o modelo com os requisitos correntes mantendo o escopo.

Encontre classes conceituais usando as diretrizes

presentes no livro texto (página 165) Adicionar atributos e associações Mudança constante: então tenha em mente o esforço perdido desenhando modelos.

Modelo de Domínio

Modelo de Domínio

Modelo de Domínio

Modelo de Domínio

Modelo do Domínio

Objetos x Atributos

Atributos são tipos de dados simples

Exemplo: número, texto.

Conceitos que são descritos por atributos

simples são objetos.

Uma loja tem um endereço, número de telefone, etc.

Modelo do Domínio

Classes descritivas

Contêm informação que descreve algo. Muito comum em modelos OO.

Se a descrição não for separada do objeto

subjacente, a remoção do objeto resulta na perda de toda informação sobre o objeto

Veja exemplo de Item na página 173

Também propenso a erro devido à duplicação de dados

Classes Descritivas

Classes Descritivas

Classes Descritivas

Classes Descritivas

Modelo de Domínio

Associações

Um relacionamento significativo entre objetos

Quando o conhecimento do relacionamento

precisar ser preservado.

Derivadas da lista de associações comuns (página

181)

Evite adicionar muitas associações

Modelo de Domínio

Associações não são:

Um modelo de fluxo de dados

Chaves estrangeiras em bancos de dados

Variáveis de instância

Conexões entre objetos de software.

Muitas, mas não todas, associações serão

implementadas em algum momento.

Associações

Associações são consideradas bi-direcionais por padrão.

Associações Associações são consideradas bi-direcionais por padrão.

Associações

Associações

Associações

Nome de Associações

Use NomeClasse-FraseVerbal-NomeClasse

Deve resultar em uma frase inteligível e que faça

senso no domínio.

Papéis

O extremo de uma associação

2 papéis em uma associação, normalmente

Pode ter um nome de papel, multiplicidade e navegabilidade.

Multiplicidade em Associações

Multiplicidade em Associações

Multiplicidade em Associações

Multiplicidade em Associações

Multiplicidade em Associações

Muito foco na multiplicidade precocemente

pode desperdiçar tempo precioso.

Na

maioria

 

dos

casos,

multiplicidades

genéricas são suficientes:

*, 1, 1

*,

0

1

Para a associação Veículo-RodaSobre-Pneus,

qual o correto par de multiplicidades? Existe uma única resposta?

Multiplicidade e Contexto

Multiplicidade e Contexto

Associações Múltiplas

Podemos ter mais que uma associação entre

classes.

Uma classe pode ter uma associação consigo mês

ma. Você consegue pensar em um exemplo?

entre classes. – Uma classe pode ter uma associação consigo mês – ma. Você consegue pensar

Modelo de Domínio Parcial

Modelo de Domínio Parcial

Modelo de Domínio Parcial

Modelo de Domínio Parcial

Modelo de Domínio

Atributos

Valor de dados lógico de um objeto que precisa ser lembrado.

Alguns atributos são derivados a partir de outros atributos.

Os tipos primitivos de dados “comuns”

Números, caracteres, tipos lógicos

Tipos de dados compostos

Data, hora, endereço, número de telefone, etc.

Podem se tornar classes em desenhos de objetos. (Vide, página 168)

Atributo ou Objeto? Diretrizes

Diretrizes para modelar um número ou string como um objeto

Composto de várias seções

Número de telefone, nome de uma pessoa

Tem operações associadas

parsing ”, validação, etc.

Exemplo, CPF.

Tem outros atributos

Um preço com valor de compra e valor de venda de um produto

Quantidade com uma unidade

Pagamento tem uma unidade de moeda (R$)

Abstração de um ou mais tipos

Identificador do item é um CPU (Código de produto universal)

Classes e Atributos

/ indica um atributo derivado Total pode ser derivado adicionando os subtotais para cada item de uma venda

e Atributos / indica um atributo derivado Total pode ser derivado adicionando os subtotais para cada

Notação UML para Atributos

Notação UML para Atributos Inserir visibilidade no modelo de domínio é desnecessário. Discutiremos visibilidade em

Inserir visibilidade no modelo de domínio é desnecessário. Discutiremos visibilidade em outro capítulo. Normalmente, assumimos atributos privados e métodos públicos.

Tipos de Dados

Tipos de dados comuns para atributos

Não são restritos pelos tipos de uma linguagem de programação em particular.

Maximizam o uso de tipos de dados primitivos

Lógico, Data, Hora, Número, Caractere, String

Ou então, use outros tipos conhecidos:

Endereço, Cor, Número de Telefone, RG, CEP, etc.

ItemDeVenda*

ItemDeVenda* * Prefiro traduzir SaleLineItem como ItemDeVenda e não como LinhaDeItemDeVenda , conforme slides e

* Prefiro traduzir SaleLineItem como ItemDeVenda e não como LinhaDeItemDeVenda ,

conforme slides e livro texto

Associações

Associações

Conceito Complexo

Conceito Complexo

Propriedades do tipo Objeto

Propriedades do tipo Objeto

Chaves Estrangeiras

Chaves Estrangeiras

Modelagem de Quantidades

Modelagem de Quantidades

Modelo de Domínio com Atributos

Modelo de Domínio com Atributos

Modelo de Domínio com Atributos

Modelo de Domínio com Atributos