Escolar Documentos
Profissional Documentos
Cultura Documentos
:Registrador :Compra
fazPagamento(dinheiro) :Pagamento
create(dinheiro)
autoriza
Definição das Operações
Durante a definição das operações são considerados:
1
contem
1..* EspecificacaoProduto
ItemLinha
ItemVenda
* descrito-por 1 descricao
quantidade preco
IDItem
Criador
Exemplo - Ponto de Venda:
• Quem deverá ser o responsável pela criação de uma instância de
ItemVenda?
Como a classe Venda contém vários objetos do tipo ItemVenda, ela
pode ser a responsável.
:Registrador :Compra
:Venda
:ItemLinha
fazerItemLinha(qtidade)create(qtidade) :ItemVenda
Criador
Exemplo - Banco Imobiliário:
• Quem deverá ser o responsável pela criação de uma instância de
Casa (Square) do Banco Imobiliário?
Modelo Conceitual
Criador
Exemplo - Banco Imobiliário:
• Quem deverá ser o responsável pela criação de uma instância de
Casa (Square) do Banco Imobiliário?
Como a classe Tabuleiro contém vários objetos do tipo Casa, ela pode
ser a responsável.
Especialista da Informação
Durante a definição das operações são considerados:
Compra
Venda
data
horario Modelo Conceitual
1
contem
1..* EspecificacaoProduto
ItemLinha
ItemVenda
* descrito-por 1 descricao
quantidade preco
IDItem
Especialista da Informação
Exemplo - Ponto de Venda:
• Quem deverá ser o responsável por saber o total de uma venda?
Para determinar o total da venda é necessário conhecer todas as
instâncias de ItemVenda de uma venda e a soma de seus sub-totais.
getSubTotal
EspecificacaoProduto
descricao
preco
IDItem
getPreco
Especialista da Informação
Exemplo - Banco Imobiliário:
• Quem deverá ser o responsável por retornar uma casa (square), a
partir de uma chave?
:Registrador :Pagamento
fazPagamento
buscaInfo
:Venda
buscaInfo
Opção 1: 2: adicionaPagamento(p)
:Compra
:Venda
:Registrador :Pagamento
fazPagamento
buscaInfo
:Venda
:Compra
Opção 1:
2: adicionaPagamento(p)
:Compra
:Venda
• Supondo que o Registrador será responsável por várias outras operações do sistema,
ele ficará sobrecarregado de tarefas.
Sistema
?
finalizaCompra
entraItem
fazNovaCompra
fazPagamento
Interface com
o Usuário
Camada de
Domínio
:Registrador :Venda
:Compra
:Sistema
:Caixa
fazNovaVenda
descrição, total
* [mais itens]
finalizaVenda
total
fazPagamento (valor)
troco, recibo
Definição da Operação fazNovaVenda
Compra
Venda
data
horario Modelo Conceitual
1
contem
1..* EspecificacaoProduto
ItemLinha
ItemVenda
* descrito-por 1 descricao
quantidade preco
IDItem
Definição da Operação fazNovaVenda
:Sistema
:Caixa
fazNovaVenda
descrição, total
* [mais itens]
finalizaVenda
total
fazPagamento (valor)
troco, recibo
Definição da Operação fazNovaVenda
Registrador escolhido como fachada porque existem poucas
operações do sistema.
Registrador pode ser visto como aquele que cria a Venda.
Quando uma venda é criada, ela deve criar uma coleção vazia para
registrar todas as instâncias de ItemVenda que serão adicionadas.
Object1 :Registrador
fazNovaCompra :Compra
:Venda
create
:ItemLinha
create itens :
List<ItemVenda>
Definição da Operação entraItem
:Sistema
:Caixa
fazNovaVenda
descrição, total
* [mais itens]
finalizaVenda
total
fazPagamento (valor)
troco, recibo
Definição da Operação entraItem
Registrador continua como controlador.
Venda cria um item de venda porque ela contém itens de venda. O
item de venda criado pode ser armazenado na coleção de itens
:CatalogoProduto
it:ItemLinha
it:ItemVenda
1.1: espec:=procura(id)
: Map<Especificacao
:EspecificacaoProduto :ItemLinha:
itensVenda
Produto>
List<ItemVenda>
Definição da Operação entraItem
Registrador continua como fachada.
Venda cria um item de linha porque ela contém itens de venda. O
item de venda criado pode ser armazenado na coleção de itens de
venda.
A criação de um item de venda precisa da quantidade (parâmetro
fornecido na operação) e da especificação do produto. Registrador
envia mensagem para o CatalogoProduto para buscar a especificação
do produto, pois ele conhece as especificações dos produtos.
Definição da Operação entraItem
:CatalogoProduto
it:ItemLinha
it:ItemVenda
1.1: espec:=procura(id)
: Map<Especificacao
:EspecificacaoProduto :ItemLinha
itens :
Produto>
List<ItemVenda>
Definição da Operação inicializar
Exemplo 4: inicialização do sistema (Start Up)
1: create
1.1: create
1.2.2:*[] adiciona(espec) :EspecificacaoProduto
: Map<Especificacao
cat:CatalogoProduto
Produto>
1.2: carregaEspecificacoes
espec:EspecificacaoProduto
1.2.1:*[] create(id,preco,descricao)
Exemplo de Definição de Operações
Conexão da Camada de Interface com o Usuário e da Camada de
Domínio