DIAGRAMA DE CLASSES PERSPECTIVA CONCEITUAL 1ª PARTE

87
1 DIAGRAMA DE CLASSES PERSPECTIVA CONCEITUAL 1ª PARTE DIAGRAMA CLASSE, ATRIBUTO E OPERAÇÃO ASSOCIAÇÃO CLASSE ASSOCIATIVA AGREGAÇÃO E COMPOSIÇÃO RESTRIÇÕES ELABORANDO O DIAGRAMA

description

DIAGRAMA DE CLASSES PERSPECTIVA CONCEITUAL 1ª PARTE. DIAGRAMA CLASSE, ATRIBUTO E OPERAÇÃO ASSOCIAÇÃO CLASSE ASSOCIATIVA AGREGAÇÃO E COMPOSIÇÃO RESTRIÇÕES ELABORANDO O DIAGRAMA. Diagrama de Classes (com perspectiva conceitual). Pedido. Cliente. código. numPedido. dataEmissão. - PowerPoint PPT Presentation

Transcript of DIAGRAMA DE CLASSES PERSPECTIVA CONCEITUAL 1ª PARTE

Page 1: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

1

DIAGRAMA DE CLASSES PERSPECTIVA CONCEITUAL

1ª PARTE

DIAGRAMA

CLASSE, ATRIBUTO E OPERAÇÃO

ASSOCIAÇÃO

CLASSE ASSOCIATIVA

AGREGAÇÃO E COMPOSIÇÃO

RESTRIÇÕES

ELABORANDO O DIAGRAMA

Page 2: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

2

I . DIAGRAMA DE CLASSES

Possibilita uma visão estática do sistema Ao elaborarmos um diagrama de classe devemos fazê-lo

numa única perspectiva: conceitual ou de implementação Seguindo a perspectiva conceitual, os objetos do modelo

devem ser conceitos do domínio da aplicação e não conceitos de implementação computacional.

Page 3: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

3

Estado, Comportamento e I dentidade de Objetos

Page 4: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

4

Page 5: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

5

Page 6: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

6

Page 7: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

7

Diagrama de Classes (com perspectiva conceitual)

Item faturadoquantFaturada Livro

isbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega

Item pedidoquantidadePedidapreçoCobrado

1

0..*

1

0..*

ClientecódigoCPFnomeendereçotelefone [0..1]eMail [0..1]

PedidonumPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

dataCancelamento [0..1]status

1..*1..*

1..*1 1..*1 faz ->

FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]dataCancelamento [0..1]

status

1..*0..* 1..*0..*

1

0..*

1

0..*

{ Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada }

Page 8: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

8

I I . CLASSE, ATRIBUTO E OPERAÇÃO

CLASSE

Na abordagem orientada a objetos os dados sãosubdivididos em objetos

Cada objeto tem sua própria identidade. Assim, doispedidos, no sistema de controle de pedidos, por maissemelhanças que contenham constituem cada um, umúnico objeto

Objetos com a mesma estrutura de dados (atributos),com o mesmo comportamento (operações) erelacionamentos são agrupados numa classe.

Page 9: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

9

Classe é uma abstração que descreve propriedadesimportantes para uma aplicação e ignora as restantes.

É representada através de um retângulo, com espaçopara descrição do nome, dos atributos e dasoperações:

nome

atributos

operações

Pedido

numPedidodataEmissãonomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]status

Page 10: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

10

Elicitação de Classes na Etapa de Análise Responsabilidades Empacotamento de Classes (Responsabilidades comuns

ou semelhantes) Colaborações Mútuas Cuidado: Análise x Projeto (Conceito x I mplementação)

Page 11: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

11

ATRIBUTO

Atributo: é uma propriedade de uma classe.

O atributo dataEmissão da classe Pedido significaque um objeto pedido possui data de emissão. Esteatributo também indica que um objeto pedido podedizer, a quem solicitar, sua data de emissão e temalguma forma de modifi cá-lo através de uma operação.

Page 12: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

12

Sintaxe completa de um atributo:

[visibilidade] nome [ [multiplicidade] ] [:tipo] [= valor inicial] [{propriedade}]

Se o diagrama está sendo elaborado com umaperspectiva conceitual basta representar o nome doatributo e a sua multiplicidade, que indica a quantidademínima e máxima de ocorrências daquele atributo emum objeto.

Page 13: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

13

Opções de multiplicidade:

1 – exatamente uma ocorrência0..1 – zero ou uma1..* - uma ou mais0..* - zero ou mais* - zero ou mais

É possível também determinar o númeroexato de ocorrências. Por exemplo, 2..6

Page 14: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

14

Pedido tem seis atributos:- numPedido, dataEmissão, endereçoEntrega e status têm

uma única ocorrência. Neste caso não é necessário indicara multiplicidade.

- nomePresenteado: multiplicidade mínima = zero, já quenem sempre há presenteado

- dataCancelamento: multiplicidade mínima = zero, já quenem sempre o pedido é cancelado

Pedido

numPedidodataEmissãonomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]status

Page 15: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

15

OPERAÇÃO

Operação: um serviço que pode ser solicitado por algumobjeto da classe. Por exemplo, um objeto pedido podesolicitar o seu cancelamento.

Uma classe pode ter várias operações ou nenhuma

O motivo de não serem descritas operações na classe Pedidonão é o f ato de não haver operações. Optamos por incluiroperações somente na etapa de Projeto quando o diagramade classes f or elaborado com uma perspectiva deimplementação.

Page 16: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

16

Faz pedidoCenário principal: Venda realizada com sucesso por umnovo cliente1. Cliente informa dados pessoais (cpf , nome, endereço,

telefone e e-mail) e endereço de entrega2. Cliente informa a lista dos livros desejados e

respectivas quantidades3. Sistema armazena além dos dados f ornecidos pelo

cliente, a data de emissão do pedido e o preço cobradopor cada livro, já que pode ser dado algum desconto eo valor cobrado não será o de tabela

4. Sistema envia ao cliente a confirmação da venda com onúmero de seu pedido, seu código, a lista dos itenspedidos com quantidade e preço de cada item e o preçototal do pedido.

Exemplo

Page 17: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

17

ClientecódigoCPFnomeendereçoTelefone [0..1]eMail [0..1]

PedidonumPedidodataEmissão

endereçoEntrega

Item pedidoquantidadePedidapreçoCobrado

LivroisbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega

Obs: A classe livro faz parte de outro subsistema.

Page 18: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

18

Faz pedido para presentear

1. Cliente informa dados pessoais (cpf , nome,endereço, telefone e e-mail)

Cliente informa dados do presenteado:nome e endereço de entrega

Continua a partir do passo 2.

Page 19: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

19

Pedido

numPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

Page 20: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

20

Fatura pedidoCenário principal: f aturamento de pelo menos um item do pedido

1. Funcionário seleciona um pedido que não tenha sido integralmenteatendido (f aturado)

2. Sistema verifica a quantidade pendente (quantidadePedida -quantidadeAtendidaTotal) de cada item(Extend – Comunicaatraso)

3. Sistema cria uma fatura com o número da f atura, a data deemissão, a data limite de pagamento e a quantidade de cada item.4. Sistema emite a f atura que deverá ser encaminhada ao cliente

juntamente com os livros. A f atura deverá conter:- Número da f atura- Número do pedido- Data de emissão- Data de vencimento- Para cada item: a quantidade e o preço unitário cobrado

- Preço total

Page 21: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

21

Obs: A quantidade f aturada de cada item (livro) está

limitada ao que há em estoque. Caso não possa ser f eitoum atendimento completo neste momento, maisadiante, logo que haja o item em estoque, será criadauma nova f atura.

Uma f atura f az ref erência a um e apenas um pedido.No entanto ela pode estar atendendo apenasparcialmente àquele pedido.

Page 22: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

22

Item faturadoquantFaturada Livro

isbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega

ClientecódigoCPFnomeendereçotelefoneeMail

Item pedidoquantidadePedidapreçoCobrado

FaturanumFaturadataEmissãodataVencimento

status

PedidonumPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

status

{ Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada }

Page 23: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

23

Comunica atraso

Sistema verifica que um ou mais itens pedidosnão poderão ser entregues e que não há previsãode entrega.

Sistema comunica ao cliente o atrasodescrevendo o número do pedido e os itens paraos quais não há previsão de entrega.

Page 24: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

24

Diminui quantidade de um item do pedidoCenário principal: Quantidade diminuida

1. Cliente informa seu código2. Sistema valida código3. Cliente informa número do pedido4. Sistema valida número do pedido (include – Valida

pedido)5. Cliente informa o item a ser reduzido6. Sistema apresenta ao cliente a quantidade pendente

(quantidade pedida – quantidade f aturada)7. Cliente informa a nova quantidade (no máximo a

quantidade pendente)8. Sistema armazena a nova quantidade9. Sistema envia ao cliente a confi rmação da alteração

realizada

Page 25: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

25

Diminui quantidade de um item do pedidoCenário alternativo: Pedido de redução de item érecusado por já ter sido totalmente f aturado

6. Sistema comunica ao cliente: o item não pode ser reduzido por ter sido

completamente f aturado caso deseje realmente esta redução o cliente

deverá solicitar o cancelamento parcial ou totalda f atura. Esse pedido será avaliado pelogerente.

Os passos seguintes não são realizados

Page 26: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

26

Solicita cancelamento de pedidoCenário principal: Pedido cancelado por não haver f atura emitida

1. Cliente informa seu código2. Sistema valida código3. Cliente informa número do pedido4. Sistema valida número do pedido (include – Valida pedido)5. Sistema cancela o pedido (não há nenhuma fatura emitida para

ele) e armazena a data de cancelamento

6. Sistema envia ao cliente a confirmação do cancelamentosolicitado.

Page 27: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

27

Pedido

numPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

dataCancelamento [0..1]status

Page 28: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

28

Solicita cancelamento de pedidoCenário alternativo: Pedido não pode ser cancelado por já tersido emitida pelo menos uma f atura

5. Sistema comunica ao cliente: o pedido não pode ser cancelado por já ter sido emitida

pelo menos uma f atura. o cliente deverá solicitar o cancelamento das f aturas já

emitidas caso deseje cancelar o pedido.

Os passos seguintes não são realizados

Page 29: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

29

Valida pedido

1. Sistema verifica a existência do número do pedido2. Sistema envia ao cliente os dados relativos a seu

pedido: a lista dos itens pedidos com quantidade e preço

unitário de cada item e o preço total do pedido a lista das f aturas emitidas contendo para cada

fatura:- Número da f atura- Número do pedido- Data de emissão- Data de vencimento- Para cada item: a quantidade e o preço unitário

- Preço total

Page 30: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

30

Solicita cancelamento de f aturaCenário principal: Solicitação de cancelamento integral da f aturarealizada com sucesso

1. Cliente informa seu código2. Sistema valida código3. Cliente informa número da f atura4. Sistema verifica a existência deste número5. Sistema envia ao cliente os dados da f atura, contendo: a data de

emissão, o preço total e para cada item: a quantidade e o preçounitário

6. Cliente solicita o cancelamento integral da f atura

7. Sistema armazena a solicitação de cancelamento da f atura e adata da solicitação

8. Sistema envia ao cliente a confirmação do cadastramento desua solicitação e a informação de que o seu pedido só seráanalisado quando a Empresa receber os livros relativos à f atura.

Page 31: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

31

FaturanumFaturadataEmissãodataVencimento

dataPedidoCancelamento [0,1]

status

Page 32: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

32

Paga f aturaCenário principal: Pagamento da última f atura de umpedido

1. Cliente paga a f atura2. Sistema armazena o número da f atura, o valor pago e

a data de pagamento.3. Sistema f echa o pedido relacionado à f atura (f oi paga

a última f atura de um pedido)4. Sistema envia ao cliente a confirmação de pagamento

da fatura

Page 33: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

33

FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]

status

Page 34: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

34

Avalia cancelamento de f aturaCenário principal: Gerente cancela a f atura e automaticamente écancelado o pedido

1. Gerente analisa o pedido de solicitação de cancelamento deuma f atura

2. Gerente cancela a f atura3. Sistema armazena a data de cancelamento e atualiza o estoque,

considerando a devolução dos livros4. Sistema cancela o pedido (todas as f aturas de um pedido

foram canceladas)5. Sistema envia ao cliente notificação do cancelamento da

fatura e do pedido

Page 35: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

35

FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]dataCancelamento [0..1]

status

Page 36: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

36

Liste as classes e atributos conceituais do simulador da Petrobrás

Exercicio : Elabore as Classes para o problema abaixo:

Page 37: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

37

A operação é especificada através de sua assinatura (que contém o nome, tipo de todos os parâmetros e o tipo do valor a ser retornado) além de outras características, como visibilidade. Mas esses detalhes serão vistos na etapa de Projeto.

Caso operações sejam incluídas no diagrama de classes

elaborado com uma perspectiva conceitual, devem apenas indicar as responsabilidades principais da classe.

Page 38: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

38

RELACI ONAMENTOS

Page 39: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

39

Relacionamentos - Dependências Dependência: Relacionamento de Utilização

Pode usar como assinatura, por exemplo

Page 40: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

40

Relacionamentos - Generalização Todo - Parte

Page 41: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

41

Relacionamentos - Associação

Associação: representa o relacionamento entre instâncias de classes. Especifica que um objeto de uma classe está ligado a um objeto de outra classe.

Exemplo: f az é o nome da associação. Pode ser utilizada uma seta para indicar uma direção para este nome de f orma a f acilitar a leitura e entendimento. Neste caso leríamos cliente f az pedido. Quando não há dúvidas com relação ao nome da associação, ele pode ser omitido.

Cliente

códigoCPFnomeendereçotelefone [0..1]eMail [0..1]

1..*1 faz ->

Pedido

numPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

dataCancelamento [0..1]status

Page 42: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

42

Relacionamentos - Associação

Nome Opcional Direção do Nome

Page 43: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

43

Associações possuem multiplicidades que indicam oslimites mínimos e máximos para a participação dosobjetos. No exemplo anterior, a associação entrecliente e pedido pode ser lida da seguinte f orma: cadacliente pode ter f eito um ou mais pedidos e cadapedido necessariamente é de apenas um cliente.

Opções de multiplicidade:1 – exatamente 10..1 – zero ou um1..* - um ou mais0..* - zero ou mais* - zero ou maisÉ possível também determinar o número exato. Por

exemplo, 2..6

Page 44: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

44

Uma associação binária liga os objetos de exatamente duasclasses, como a associação entre Cliente e Pedido.

Uma associação binária, de acordo com a UML, pode tambémrepresentar o relacionamento dos objetos de uma mesmaclasse como no exemplo a seguir no qual existe umrelacionamento de gerência. Neste caso em particular umempregado pode ter nenhum ou no máximo um gerente e umgerente pode ter de um a vários subordinados.

Empregado

1..*

0..1

gerente

subordinado

0..1

1..*

Page 45: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

45

A c lasse que par t ic ipa d e uma assoc iação desempenhaum papel nest e r elac ionament o.

E mpr egado pode d esempenhar o papel d e ger ent e ousubor d inado.

N o caso em que o c lient e f az ped ido, não há dúvidas comr elação a esses papéis, mas pod em haver s it uações comoest a ac ima em que sej a impor t ant e dest acá- los.

Empregado

1..*

0..1

gerente

subordinado

0..1

1..*

Papéis:

Page 46: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

46

I V. CLASSE ASSOCIATIVA

Utilizada em situações em que uma associação tempropriedades, como por exemplo, atributos.

Page 47: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

47

Em nosso caso exemplo, quando é criada uma f atura deveser descrita qual a quantidade f aturada de cada item queserá enviado ao cliente. A quantidade f aturada de cadaitem não poderia ficar em f atura e nem em item pedidoporque f az ref erência a uma determinada associaçãofatura – item pedido, ou seja é um atributo da associação.

Fatura

numFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]

dataPedidoCancelamento[0..1]dataCancelamento [0..1]

status

1..*0..*

Item pedido

quantidadePedidapreçoCobrado

quantFaturada ??

Page 48: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

48

Classe associativa

Fatura

numFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]

dataPedidoCancelamento [0..1]dataCancelamento [0..1]

status

Item faturado

quantFaturada

Item pedido

quantidadePedidapreçoCobrado1..*0..* 1..*0..*

A solução é colocar numa classe associativa o atributoquantFaturada, que descreve a quantidade que f oi f aturada.

Page 49: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

49

Uma classe associativa é uma associação que tempropriedades de classe. Assim, podem seracrescentados a esta classe: atributos,operações e associações (com outras classes oucom ela própria)

Page 50: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

50

V. AGREGAÇÃO E COMPOSIÇÃO

Utilizamos a agregação quando temos umrelacionamento entre duas classes do tipo todo/ partede tal f orma que um objeto-parte pode pertencer amais de um objeto-todo.

A composição é uma variação da agregação onde háeste relacionamento todo/ parte mas cada objeto-parte pertence a um único objeto-todo e os objetos-parte desaparecem quando o objeto-todo ao qualpertencem é apagado. As partes podem ser criadasapós o surgimento do todo assim como seremremovidas antes que o todo seja apagado.

Page 51: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

51

Page 52: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

52

A agregação na UML é representada por um losango e acomposição por um losango cheio, ambos posicionados naextremidade ref erente ao todo. Na composição amultiplicidade na extremidade do todo é no máximo umenquanto na agregação pode ser maior que um.

Page 53: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

53

Agregação: Empresa

Departamento

1

TODO

Parte

Page 54: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

54

Podemos dizer que temos uma composição porque temos umrelacionamento todo/ parte e um determinado item pedidopertence a um único pedido.

Composição: Pedido

numPedidodataEmissão

nomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]

status

Item pedido

quantidadePedidapreçoCobrado

1..*

Page 55: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

55

Page 56: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

56

Page 57: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

57

VI . RESTRI ÇÕES

Restrição: é utilizada quando não podemos modelar umainformação importante com as notações já existentes.

A restrição é representada através uma cadeia decaracteres entre chaves que é colocada ao lado doelemento ao qual f az ref erência. É portanto um mecanismode extensibilidade da linguagem.

Page 58: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

58

Venda

idforma pagamentodata

Produto

iddescriçãopreço custopreço vendacomissão

Item

quant

1..*

0..1

0..*Serviço

iddescriçãopreço0..10..*

{ou}0..*

0..* 0..1

0..1

1..*

Exemplo de restrição ou:

Page 59: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

59

Pessoa Departamento1..* *

membro

1..* *

1*gerente1*

gerencia ->

trabalha ->

{subconjunto}

Exemplo de restrição subconjunto:

Page 60: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

60

Exemplo de restrição relacionada a associações:

Item faturadoquantFaturada Livro

isbntítulodescriçãoquantEstoquepreço

prazoMédioEntrega

Item pedidoquantidadePedidapreçoCobrado

1

0..*

1

0..*

ClientecódigoCPFnomeendereçotelefone [0..1]eMail [0..1]

PedidonumPedidodataEmissão

nomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]

status

1..*1..*

1..*1 1..*1 faz ->

FaturanumFaturadataEmissãodataVencimentovalorPago [0..1]dataPagamento [0..1]

dataPedidoCancelamento [0..1]dataCancelamento [0..1]

status

1..*0..* 1..*0..*

1

0..*

1

0..*

{ Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada }

Page 61: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

61

VI I . ELABORANDO O DIAGRAMA

1. A elaboração da primeira versão do diagrama de classe com uma perspectiva conceitual pode ser realizada em paralelo à leitura dos casos de uso. Na descrição de cada caso de uso há uma série de informações, conceitos, nomes de atributos, etc, que serão úteis para descobrir as classes, associações e atributos. Uma estratégia é elaborar este diagrama incluindo somente as

classes persistentes, ou seja, aquelas cujos objetos são preservados após serem criados ou modificados por uma aplicação. Estes objetos podem ser armazenados em um banco de dados de f orma a serem recuperados mais adiante.

Outras classes, não-persistentes, serão incluídas no diagrama de classes elaborado com a perspectiva de implementação.

Page 62: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

62

2. Ao elaborar o diagrama de classes é possível que seconstate a f alta de informações, a existência deinconsistências e haverá necessidade então de seconsultar o cliente.

3. A elaboração de modelos é realizada através de váriasrepetições e o modelo deve ser construído emconjunto com os demais modelos, já que alterações emum modelo provocam alterações em outros.

Page 63: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

63

4. Após a elaboração da primeira versão podemostentar refinar o modelo verifi cando a possibilidadede incluir notações como composição, generalizaçãoque permitem que as informaçõesfiquem descritas de f orma mais clara.

5. Conforme é elaborado o diagrama pode sernecessário também organizar as classes em packages.

Veremos em Classes: 2ª ParteVeremos em

Classes: 2ª Parte

Page 64: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

64

Exemplo:

Elaborando o diagrama de classes doSistema de controle de pedidos, com uma perspectiva conceitual, a partir da descriçãodos casos de uso.

Page 65: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

65

Diagrama de casos de uso:

Gerente

Funcionário

Comunica atraso

Valida pedido

Solicita cancelamento de fatura

Paga fatura

Comunica atraso no pagamento

Avalia cancelamento de fatura

Fatura pedido

(verificação de itens pendentes)

<<extend>>

Diminui quantidade de um item do

pedido

<<include>>

Solicita cancelamento de pedido<<include>>Faz pedido

Cliente

Faz pedido para presentear

Page 66: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

66

Faz pedidoCenário principal: Venda realizada com sucesso por umnovo cliente1. Cliente informa dados pessoais (cpf , nome, endereço,

telefone e e-mail) e endereço de entrega2. Cliente informa a lista dos livros desejados e

respectivas quantidades3. Sistema armazena além dos dados f ornecidos pelo

cliente, a data de emissão do pedido e o preço cobradopor cada livro, já que pode ser dado algum desconto eo valor cobrado não será o de tabela

4. Sistema envia ao cliente a confirmação da venda com onúmero de seu pedido, seu código, a lista dos itenspedidos com quantidade e preço de cada item e o preçototal do pedido.

Page 67: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

67

ClientecódigoCPFnomeendereçoTelefone [0..1]eMail [0..1]

1 1..*1 faz -> 1..*

PedidonumPedidodataEmissão

endereçoEntrega

1..*1..*

Item pedidoquantidadePedidapreçoCobrado

1

0..*0..*

1

LivroisbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega

Obs: A classe livro faz parte de outro subsistema.

Page 68: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

68

Faz pedido para presentear

1. Cliente informa dados pessoais (cpf , nome,endereço, telefone e e-mail)

Cliente informa dados do presenteado:nome e endereço de entrega

Continua a partir do passo 2.

Page 69: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

69

Pedido

numPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

Page 70: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

70

Fatura pedidoCenário principal: f aturamento de pelo menos um item do pedido

1. Funcionário seleciona um pedido que não tenha sido integralmenteatendido (f aturado)

2. Sistema verifica a quantidade pendente (quantidadePedida -quantidadeAtendidaTotal) de cada item(Extend – Comunicaatraso)

3. Sistema cria uma fatura com o número da f atura, a data deemissão, a data limite de pagamento e a quantidade de cada item.4. Sistema emite a f atura que deverá ser encaminhada ao cliente

juntamente com os livros. A f atura deverá conter:- Número da f atura- Número do pedido- Data de emissão- Data de vencimento- Para cada item: a quantidade e o preço unitário cobrado

- Preço total

Page 71: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

71

Obs: A quantidade f aturada de cada item (livro) está

limitada ao que há em estoque. Caso não possa ser f eitoum atendimento completo neste momento, maisadiante, logo que haja o item em estoque, será criadauma nova f atura.

Uma f atura f az ref erência a um e apenas um pedido.No entanto ela pode estar atendendo apenasparcialmente àquele pedido.

Page 72: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

72

Item faturadoquantFaturada Livro

isbntítulodescriçãoquantEstoquepreçoprazoMédioEntrega

ClientecódigoCPFnomeendereçotelefoneeMail

Item pedidoquantidadePedidapreçoCobrado

1

0..*

1

0..*

FaturanumFaturadataEmissãodataVencimento

status

1..*0..* 1..*0..*

PedidonumPedidodataEmissão

nomePresenteado [0..1]endereçoEntrega

status

1..*1..*

1..*1 1..*1 faz ->

1

0..*

1

0..*

{ Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada }

Page 73: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

73

Comunica atraso

Sistema verifica que um ou mais itens pedidosnão poderão ser entregues e que não há previsãode entrega.

Sistema comunica ao cliente o atrasodescrevendo o número do pedido e os itens paraos quais não há previsão de entrega.

Page 74: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

74

Diminui quantidade de um item do pedidoCenário principal: Quantidade diminuida

1. Cliente informa seu código2. Sistema valida código3. Cliente informa número do pedido4. Sistema valida número do pedido (include – Valida

pedido)5. Cliente informa o item a ser reduzido6. Sistema apresenta ao cliente a quantidade pendente

(quantidade pedida – quantidade f aturada)7. Cliente informa a nova quantidade (no máximo a

quantidade pendente)8. Sistema armazena a nova quantidade9. Sistema envia ao cliente a confi rmação da alteração

realizada

Page 75: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

75

Diminui quantidade de um item do pedidoCenário alternativo: Pedido de redução de item érecusado por já ter sido totalmente f aturado

6. Sistema comunica ao cliente: o item não pode ser reduzido por ter sido

completamente f aturado caso deseje realmente esta redução o cliente

deverá solicitar o cancelamento parcial ou totalda f atura. Esse pedido será avaliado pelogerente.

Os passos seguintes não são realizados

Page 76: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

76

Solicita cancelamento de pedidoCenário principal: Pedido cancelado por não haver f atura emitida

1. Cliente informa seu código2. Sistema valida código3. Cliente informa número do pedido4. Sistema valida número do pedido (include – Valida pedido)5. Sistema cancela o pedido (não há nenhuma fatura emitida para

ele) e armazena a data de cancelamento

6. Sistema envia ao cliente a confirmação do cancelamentosolicitado.

Page 77: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

77

Pedido

numPedidodataEmissão

nomePresenteado [0..1]endereçoEntregadataCancelamento [0..1]status

Page 78: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

78

Solicita cancelamento de pedidoCenário alternativo: Pedido não pode ser cancelado por já tersido emitida pelo menos uma f atura

5. Sistema comunica ao cliente: o pedido não pode ser cancelado por já ter sido emitida

pelo menos uma f atura. o cliente deverá solicitar o cancelamento das f aturas já

emitidas caso deseje cancelar o pedido.

Os passos seguintes não são realizados

Page 79: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

79

Valida pedido

1. Sistema verifica a existência do número do pedido2. Sistema envia ao cliente os dados relativos a seu

pedido: a lista dos itens pedidos com quantidade e preço

unitário de cada item e o preço total do pedido a lista das f aturas emitidas contendo para cada

fatura:- Número da f atura- Número do pedido- Data de emissão- Data de vencimento- Para cada item: a quantidade e o preço unitário

- Preço total

Page 80: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

80

Solicita cancelamento de f aturaCenário principal: Solicitação de cancelamento integral da f aturarealizada com sucesso

1. Cliente informa seu código2. Sistema valida código3. Cliente informa número da f atura4. Sistema verifica a existência deste número5. Sistema envia ao cliente os dados da f atura, contendo: a data de

emissão, o preço total e para cada item: a quantidade e o preçounitário

6. Cliente solicita o cancelamento integral da f atura

7. Sistema armazena a solicitação de cancelamento da f atura e adata da solicitação

8. Sistema envia ao cliente a confirmação do cadastramento desua solicitação e a informação de que o seu pedido só seráanalisado quando a Empresa receber os livros relativos à f atura.

Page 81: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

81

FaturanumFaturadataEmissãodataVencimento

dataPedidoCancelamento [0,1]

status

Page 82: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

82

Paga f aturaCenário principal: Pagamento da última f atura de umpedido

1. Cliente paga a f atura2. Sistema armazena o número da f atura, o valor pago e

a data de pagamento.3. Sistema f echa o pedido relacionado à f atura (f oi paga

a última f atura de um pedido)4. Sistema envia ao cliente a confirmação de pagamento

da fatura

Page 83: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

83

FaturanumFaturadataEmissãodataVencimento

valorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]

status

Page 84: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

84

Avalia cancelamento de f aturaCenário principal: Gerente cancela a f atura e automaticamente écancelado o pedido

1. Gerente analisa o pedido de solicitação de cancelamento deuma f atura

2. Gerente cancela a f atura3. Sistema armazena a data de cancelamento e atualiza o estoque,

considerando a devolução dos livros4. Sistema cancela o pedido (todas as f aturas de um pedido

foram canceladas)5. Sistema envia ao cliente notificação do cancelamento da

fatura e do pedido

Page 85: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

85

FaturanumFaturadataEmissãodataVencimento

valorPago [0..1]dataPagamento [0..1]dataPedidoCancelamento [0..1]dataCancelamento [0..1]

status

Page 86: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

86

Usar classes e associações para definir o glossário do sistema “Jogo de Futebol” descrito de seguida: “O jogo de futebol é realizado por duas equipes de jogadores. Cada equipe é composta por 11 jogadores, com diferentes funções: o goleiro, zagueiros, médios, atacantes, e pontas de lança. O ponta de lança é um atacante especial por ter especiais características de goleador... O jogo é realizado num campo com medidas regulamentares (em comprimento e largura), tem duas balizas, cada qual em extremos opostos do campo. Ganha o jogo a equipe que marcar mais gols (i.e., colocar a bola) na baliza do adversário. No jogo apenas existe uma única bola, que apresenta características (peso, diâmetro, …) regulamentares... O jogo de futebol é mediado por uma equipe de 3 árbitros, em que um é o árbitro principal, e os outros dois são árbitros auxiliares…”

Exercicio 2: Modele os Relacionamentos

Page 87: DIAGRAMA DE CLASSES  PERSPECTIVA CONCEITUAL 1ª PARTE

87

Crie os relacionamentos do diagrama de classes conceitual do sistema de robôs

Exercicio 3: Modele os Relacionamentos