29
Visibilidade e Diagrama de Classe de Projeto Estudo de Caso Sistema TPV UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA 1 Estudo de Caso Sistema TPV

aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Visibilidade e Diagrama de Classe de Projeto

Estudo de Caso – Sistema TPV

UNIVERSIDADE ESTADUAL PAULISTAINSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATASDEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

1

Estudo de Caso – Sistema TPV

Page 2: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Como Criar os Diagramas de Classes

� Identificar todas as classes a partir dos diagramas de comunicação.

� Desenhar todas essas classes no D.de Classes� Copiar todos os atributos do modelo conceitual� Acrescentar os métodos provenientes dos diagramas de

comunicação.

2

comunicação.� Acrescentar tipos aos atributos e métodos.� Acrescentar as associações que indicam visibilidade

por atributo.� Acrescentar informações sobre direção da visibilidade por

atributo (flechas de navegabilidade).� Indicar relacionamentos de dependência para indicar

visibilidades que não sejam de atributos.

Page 3: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Diagrama de Classe de Projeto para o Sistema TPV:

Classe� Depende dos casos de uso incluídos neste

ciclo de desenvolvimento. Por isso, nem todas as classes do modelo conceitual serão incluídas no Diagrama de Classe de Projeto.

3

incluídas no Diagrama de Classe de Projeto.� Só serão incluídas as classes que aparecem

nos diagramas de comunicação. Neste ciclo somente os casos de uso Comprar Itens e Iniciar estão sendo considerados:

Page 4: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Diagrama de Comunicação de entrarItem

:TPV

entrarItem(cup,qtd)

:Venda1:[nova_venda] criar()

1.1:criar()3.1:criar(espec,qtd)

3:criarLinhadeItem(espec,qtd)

2:espec:=especificação(cup)

:linhadeItemde

Venda

1.1:criar()

3.2:adicionar(lv)

lv:linhadeItemdeVenda

3.1:criar(espec,qtd)2:espec:=especificação(cup)

2.1:espec:=encontrar(cup)

:Catálogode

Produtos

:Especificaçãode

Produto

Page 5: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Diagrama de Comunicação: terminarVenda

:TPV

terminarVenda()

:Venda1:tornarseCompleta()

TornarseCompleta()

{ estáCompleta := V}

Page 6: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

2*: st:=subtotal()

Calcular o total da venda

1*:[para cada]liv:=prox():LinhadeItemdeVenda

subtotal() {

return quantidade*espec.preço() }

total()

6

2*: st:=subtotal()liv:LinhadeIte

mdeVenda

espec: Especifi

caçãodeProduto

:Venda

2.1:pr:=preçototal() {

tot:=0

para cada linha de item de

venda liv

tot:= tot + liv.subtotal()

}

Page 7: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Registrar Pagamento e Vendas

Completadas

:TPV

registrarPagamento(quantia

Fornecida)

:Venda1: registrarPagamento(quantia

Fornecida)

Criador +

acoplamento baixo

2 : acrescentarVenda(v)

7:Pagamento

1.1:criar(quantiaFornecida)

2 : acrescentarVenda(v)

2.1 : acrescentrar(v)

:Loja

VendasCompletadas: Venda

Page 8: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Calculando o Troco

trc:=troco()

Venda – troco()

{return pg.quantia() –

total() }

8

:Venda pg:Pagamento1: qtia:=quantia()

2: t:=total()

OBS: Um DC pode começar com

qualquer mensagem para a qual o

projetista deseja mostrar as

interações.

Page 9: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

cp:Catálogode

:Loja

criar()

:TPV

:Especificãode

2 : criar (cp)

1 :criar ( )

1.1 criar ()

1.2.2* : adicionar (ep)

Diagrama de Comunicação de Iniciar

9

cp:Catálogode

Produtos:Especificãode

Produto

ep:EspecificaçãodeProduto

1.2.2* : adicionar (ep)

1.2.1* : criar(cup,preço,descrição)

1.2 : carregarEspecProd( )

O asterisco, no número de

seqüência, indica que a

mensagem ocorre em uma seção

que se repete

Page 10: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Modelo conceitual para o domínio do TPV

*

1

1..1 Loja

1..*1

Catálogo de Produtos

*

1Usado-por

*1..1

1..*

Estoca

0..1

1

Especificação de Produto

descrição

preço

CUP

1..*

Contém

*

Descreve

*

LinhadeItemdeVenda

quantidade

1..*

Contido-em

0..1

Registra-venda-de

1

*

Descritos-por

10

1

1

Caixa

1

Gerente

1..*

1..*

1

1

Pagamento

quantia

1

1

Cliente

1

1..1

*

1TPV

1

1

< Registra-Vendas-do

11..*

Iniciado por

1

*1

endereço

nome

1..*

1Possui

1

Venda

data

tempo

1

1

Paga-por

1

1

Iniciada-por

1..1

*

Registra-Dados-da

v

1

1Capturada-em

1

Item

*1

Estoca

1

Contido-em

1

Page 11: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Diagrama de Classe de Projeto para o Sistema TPV: Classe (cont.)

� Só serão incluídas as classes que aparecem nos diagramas de comunicação. Neste ciclo essas classes são:

� TPV, CatálogodeProdutos, Loja, Pagamento,

11

� TPV, CatálogodeProdutos, Loja, Pagamento, Venda, EspecificaçãodeProduto, LinhadeItemdeVenda.

Page 12: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

TPV CatálogodeProdutos

quantidade

EspecificaçãodeProdutodescrição

preço

CUP

Loja Venda LinhadeItemdeVenda

12

Lojaendereço

nome

VendadataestáCompletahora

LinhadeItemdeVenda

quantidade

Pagamento

quantia

Page 13: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Como incluir os métodos nas classes

� Operações (eventos de sistema) são incluídas nas classes controladoras.

� Métodos são incluídos nas classes que

13

� Métodos são incluídos nas classes que recebem a mensagem.

� sintaxe básica UML � nomeMétodo(Par1, Par2, ..., Parn)

Page 14: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Inclusão de métodos

Vendadata

estáCompleta

hora

criarLinhadeItem()

14

:TPV

entrarItem(cup,qtd)

:Venda3:criarLinhadeItem(espec,qtd)

Page 15: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Como incluir os métodos nas classes (cont.)

� Não incluir:� Métodos enviados à coleções (esses

métodos devem ser implementados pela

15

métodos devem ser implementados pela classe Coleção)

Page 16: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Não incluir Mensagem para um multi-objeto

:TPV

entrarItem(cup,qtd)

2:espec:=especificação(cup)

16

2:espec:=especificação(cup)

2.1:espec:=encontrar(cup)

:Catálogode

Produtos

:Especificaçãode

Produto

A mensagem encontrar é

dirigida para o objeto

coleção, não para um objeto

EspeficicaçãodeProduto

Page 17: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Como incluir os métodos nas classes (cont.)

� Não incluir:� Método Criar (construtor)� Métodos de acesso a atributos, (setNome,

17

� Métodos de acesso a atributos, (setNome, getNome).

Page 18: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Acrescentando os demais métodos em Venda....

Venda

data

estáCompleta

18

estáCompleta

hora

criarLinhadeItem(espec, qtde)

tornarseCompleta()

registrarPagamento(quantia)

total()

Pela análise de todos os DC

e as mensagens que chegam

em Venda

Page 19: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Atributos

� Observação:� Embora uma visibilidade por atributo

venha a ser implementada posteriormente

19

venha a ser implementada posteriormente como um atributo na classe origem, isso não deve ser mostrado no diagrama de classes – manter as associações no diagramas de classes.

Page 20: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Venda

data: Date

estáCompleta: Boolean

hora: Time

Adição de Atributos e tipos

20

hora: Time

criarLinhadeItem()

tornarseCompleta()

registrarPagamento()

total()

Page 21: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Associações e Navegabilidade

� Indícios de associações e presença de navegabilidade:� A envia mensagem para B

21

� A envia mensagem para B� A cria B� A precisa manter uma conexão com B

Page 22: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

A navegabilidade é identificada a

partir do diagrama de comunicação

:Loja

criar()

:TPV

:Especificãode

2 : criar (pc)

1 : criar ( )

:Catálogode

1.1 criar ()

1.1.2* : adicionar (ep)

22

Este diagrama de colaboração implica nas

navegabilidades:

Loja → TPV

Loja → CatálogodeProdutos

CatálogodeProdutos → EspecificaçãodeProduto

:Especificãode

Produto

ep:EspecificaçãodeProduto

:Catálogode

Produtos1.1.2* : adicionar (ep)

1.2.1* : criar(cup,preço,descrição)

1.2 : carregarEspecProd( )

Page 23: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Navegabilidade

:TPV

entrarItem(cup,qtd)

:Venda1:[nova_venda] criar()

23

:linhadeItemde

Venda

1.1:criar()

Este diagrama de comunicação implica

nas navegabilidades:

TPV → Venda

Venda → LinhadeItemdeVenda

Page 24: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Diagrama de Classe com navegabilidade

Venda

data: Date

estáCompleta: Boolean

TPV

1 1

captura

24

estáCompleta: Boolean

hora: Time

criarLinhadeItem()

tornarseCompleta()

registrarPagamento()

total()

entrarItem()

terminarVenda()

registrarPagamento()

1 1

Page 25: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Relacionamento de Dependência

� No diagrama de classes, o relacionamento de dependência representa a visibilidade entre classes que não é implementada por atributo� Visibilidade por parâmetro

25

� Visibilidade por parâmetro� Visibilidade local ou global

� Um objeto de uma classe A tem conhecimento (enxerga) um objeto da classe B

� Notação para Dependência: seta tracejada

Page 26: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Exemplo: Dependência

Venda EspecificaçãodeProduto

26

EspecificaçãodeProduto

Venda tem visibilidade a uma

especificação de produto pois recebe-a

como parâmetro em um dos diagramas

de comunicação

Page 27: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Versão Final do Diagrama de Classe de Projeto

1

1

1

1..*

Especificação de Produtodescrição : Textopreço : QuantidadeCUP : CUP

1

Descreve

11

Lojaendereço : Endereçonome : Texto

acrescentarVenda( )

Venda

1

1

Catálogo de Produtos

especificacao( )

1

Usa

1..*1

Contém

1

Possui

1Busca-em

27

1

Pagamentoquantia : Quantidade

1

1 1..*

*

*

LinhadeItemdeVendaquantidade : Inteiro

subtotal( )

*1

1 1

data : Datahora : HoraestáCompleta : Booleano

tornarseCompleta( )criarLinhadeItem( )efetuarPagamento( )total( )

1

1

Paga-por

1 1..*

Contém

*

Registra-Dados-da >

1

TPV

terminarVenda( )entrarItem( )registrarPagamento( )

1..*

Possui

1 1

Captura

1

Page 28: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

Sistema TPV: atributos privados e métodos públicos

Venda

data: Date

estáCompleta: Boolean

28

estáCompleta: Boolean

hora: Time

+criarLinhadeItem()

+tornarseCompleta()

+registrarPagamento()

+total()

Page 29: aula11 TPV VisiDiagrClasse [Modo de Compatibilidade]ines/cursos/proj-si/... · 2014. 8. 19. · Microsoft PowerPoint - aula11_TPV_VisiDiagrClasse [Modo de Compatibilidade] Author:

29