68
1 DIAGRAMA DE CASO DE USO – resolução de exercício <<extend>> usuário Fazer Ligação de Conferência Fazer Ligação Receber Ligação Receber Ligação Adicional

Curso de UML Aula 02

Embed Size (px)

Citation preview

Page 1: Curso de UML Aula 02

1

DIAGRAMA DE CASO DE USO –resolução de exercício

<<extend>>

usuário

Fazer Ligação de Conferência

Fazer Ligação

Receber Ligação

Receber Ligação Adicional

Page 2: Curso de UML Aula 02

2

Diagrama de Classes

UML – Diagramas

Page 3: Curso de UML Aula 02

3

UML - DIAGRAMAS DE CLASSE

Roteiro: Introdução (descrição, perspectivas) Atributos, Operações, Restrições Identificando Classes Estereótipos de Classe : entidade, controle e

fronteira Relacionamentos

Page 4: Curso de UML Aula 02

4

UML - DIAGRAMAS DE CLASSE

Modelam os aspectos estruturais do sistema;

Constituem a essência da UML; Estrutura Lógica estática, mostrando uma

coleção de elementos declarativos de modelo : classes, tipos e seus respectivos conteúdos e relacionamentos.

Page 5: Curso de UML Aula 02

5

Produto

ClientenomeendereçoClasseCred:string

1

*

* 1

Empregado

*0..1

Linha de Pedidoquant : integerpreço : realsatisfeito:boolean

PedidodataEmisséPrepagonúmero:stringpreço:moneyexpedir( )encerrar ( )

* 1

{Se Pedido.Cliente.ClasseCred=“ruim”, entãoPedido.éPrepago=“v”}

Cliente CorporativonomeContatoClasseCredlimitecréditoaviso ( )faturamensal (integer)

Cliente Pessoal

#CartaoCred

Rep venda

linha deitem

Page 6: Curso de UML Aula 02

6

UML - DIAGRAMAS DE CLASSE

Perspectivas: Conceitual - associações representam relações

conceituais entre classes; Especificação - associações representam

responsabilidades; Implementação - envolve detalhes de

implementação, especificando “como” será implementada, p.e., uma associação cliente-pedido

Page 7: Curso de UML Aula 02

7

UML - DIAGRAMAS DE CLASSE

Atributos: Sintaxe UML :

visibilidade nome : tipo = valorinicial {propriedade} Visibilidade: (+) pública, (#) protegida, (-) privada Nome: Começa com letra minúscula, concatena-se

as demais palavras, sendo a primeira letra de cada palavra em maiúscula: nomeDoCliente,limiteCredito

Tipo e valor inicial (opcional): dependem da LP Propriedade: descrição, tipo de atributo(estático,

constante, final), domínio de valores A multiplicidade pode ser também indicada

ex: data_de_recebimento [0..1] : Date; cores[3]:Cor;

ClasseAtributos

Page 8: Curso de UML Aula 02

8

UML - DIAGRAMAS DE CLASSE

Operações: Sintaxe UML : visibilidade nome (lista-de-parametros) :

tipo-de-retorno {propriedades}

propriedades: classificação(construtora,modificadora,destrutora) pré-condição, pós-condição, tipo de exceção virtual, const, friend,estática,final,synch (depende da LP)

Ex: + saldoEm (data:Date) : Money# bloquearCliente ( ) : boolean {saldo = 0,0}

Obs: operação, método, features (UML)

Classe

Operações

Page 9: Curso de UML Aula 02

9

UML - DIAGRAMAS DE CLASSE

Restrições: Ao desenhar diagramas de classes, muitas vezes

indicamos restrições Restrições precisam ser capturadas e um bom

lugar para fazer isso é no Diagrama de Classe

PessoaGrupo 3a. Idade

{pessoa.idade > 60}

0..*0..1

PedidoCliente0..*1

{Se Pedido.Cliente.ClasseCred=“ruim”, entãoPedido.éPrepago=“v”}

Page 10: Curso de UML Aula 02

10

UML - DIAGRAMAS DE CLASSE

...Restrições: São mecanismos de extensibilidade da UML Alguns tipos de restrições já são pré-

definidos na UML, outras podem ser definidas livremente pelos usuários

Neste caso, a sintaxe, consistência e a interpretação ficam por conta da ferramenta de modelagem

Page 11: Curso de UML Aula 02

11

UML - DIAGRAMAS DE CLASSE

Estruturar atributos e operações em classes é fundamental para o trabalho de modelagem OO

Uma classe pode ser analisada sob dois pontos de vista: Externo: interface da classe Interno: implementação das operações predefinidas

na interface

ClasseAtributosOperações

Abstração é um ingrediente fundamental no trabalho de identificação de classes. (FURLAN)

Page 12: Curso de UML Aula 02

12

UML - DIAGRAMAS DE CLASSE

Recomendações para construção de Diagramas de Classe: Identificar comportamentos iniciais, definindo objetos que

exibem esse comportamentos, classificando os objetos, identificando os relacionamentos entre eles

Não tente empregar todas as notações oferecidas; comece pelo simples:classes, associações,atributos

Compreenda a perspectiva adequada ao momento: conceitual, especificação, implementação

Não desenhe modelos para tudo, concentre-se em áreas chaves.

Page 13: Curso de UML Aula 02

13

UML - DIAGRAMAS DE CLASSE

Para encontrar CLASSES: Para reconhecimento de classes recomenda-se

relacionar os substantivos explícitos da especificação de requisitos ou descrição de cenários

Em seguida discutir, para cada substantivo, a conveniência de elegê-lo ou não como classe candidata

Em geral, classes candidatas serão as que modelam objetos físicos ou itens conceituais

Classes que possuem atributos em comum devem ser agrupadas, gerando super-classes abstratas candidatas

Page 14: Curso de UML Aula 02

14

UML - DIAGRAMAS DE CLASSE

Para encontrar CLASSES: Informações que devem ser armazenadas,

transformadas, analisadas ou manipuladas são matéria-prima para definição de eventuais classes;

Sistemas externos são de interesse no trabalho de modelagem, vindo a constituir classes do próprio sistema ou de interação

Bibliotecas de classe e componentes gerados em projetos anteriores contém classes candidatas

Papéis desempenhados por atores no contexto de negócios podem ser vistos como classes : consumidor, cliente, fornecedor

Page 15: Curso de UML Aula 02

15

UML - DIAGRAMAS DE CLASSE

Uma CLASSE pode ser: Algo tangível: pessoas, equipamentos, construções Algo intangível ou simbólico: planoDeNegocio,

responsabilidades, parceria, projeto Dispositivos ou sistemas externos com os quais a

aplicação interage Eventos temporais ou externos Ex:

Sistema de Negócios: cliente, contrato, cotação de preço Sistemas Técnicos: arquivo, botão, dispositivo, ícone,

programa executável

Page 16: Curso de UML Aula 02

16

UML - DIAGRAMAS DE CLASSE

Importante: Uma Classe deve capturar uma(1) só abstração EX: Uma Classe com informações do funcionário e

informações sobre os cargos por ele ocupados, captura mais de uma abstração, logo é melhor definir 2 classes ao invés de 1: FUNCIONÁRIOS e CARGOS DO FUNCIONÁRIO

Ao definir classes é importante buscar o equilíbrio entre funcionalidade e reutilização.

Page 17: Curso de UML Aula 02

17

UML - DIAGRAMAS DE CLASSE

Exemplos de Classes/Objetos Sistema RH

Departamento

códigodescrição

cadastrar ( )mudarChefe ( )

informática

financeiro:departamento

: departamento

objeto sem classedeterminada

objeto anônimo

Page 18: Curso de UML Aula 02

18

UML - DIAGRAMAS DE CLASSE

Exemplos de Classe

Venda- Forma de Pagamento- Valor- Data- Itens :Item de Venda- Impostos

+ inserirItemVenda(produto:Mercadoria,quantidade: int = default)

+ totalizar(totalItem: Item de Venda)+ emitir Ticket ( )+ emitir NotaFiscal ( )+ totalizar Impostos ( )+ finalizar Venda ( ) + venda Concluída ( )

Venda

valordata

Venda

emitirTicket( )finalizarVenda

Page 19: Curso de UML Aula 02

19

*

1

1..*

1

ItensNotaFiscalCompraQuantidadePreçoCódigoFornecedor

ObterItensNotaFiscal()AtualizarEstoqueItem( )

*

1

*

1

ProdutoCódigoProdutoDescriçãoProduto

ObterDescrição()CadastrarProduto( )AtualizarProduto( )ExcluirProduto( )*

1

*

1

EspecificaçãoProdutoDataCompraQuantidadeUnidadeEstoqueMinimoPreçoCompraPreçoVenda

ObterEstoqueMínimo( )ObterPreçoCompra( )ObterPreçoVenda( )

*

1

*

1

NotaFiscalCompraNúmeroDataEmissãoCódigoFornecedor

ObterNotaFiscal( )ObterMédiaCompra( )

*

1

1..*

1

FornecedorCódigoNomeEndereçoBairroCidadeUnidadeFederativaTelefonePessoaContatoCGC

Atualizar( )Incluir( )Excluir( )

1..*

*

1..*

*

UML - DIAGRAMAS DE CLASSE

Page 20: Curso de UML Aula 02

20

UML - DIAGRAMAS DE CLASSE

Estereótipos São extensões de elementos do modelo: permitem

estender os elementos básicos de modelagem para criação de novos elementos

Podem ser usados para denotar especializações significativas de Classes

Nas ferramentas de modelagem, os atores, p.e., podem ser tratados como classes estereotipadas

Caixa

<<Ator>>Caixa

Page 21: Curso de UML Aula 02

21

UML - DIAGRAMAS DE CLASSE

Estereótipos Ex de estereótipos:

estereótipos para casos de uso : <<inclui>>, <<estende>>

estereótipo de classes: <<interface>>, <<Entidade>>

Um estereótipo para Classe pode ser : escrito textualmente, entre << >> (guillemets) sobre o

nome da classe ou como um ícone no canto direito superior da classe

Page 22: Curso de UML Aula 02

22

UML - DIAGRAMAS DE CLASSE

Classes podem ser divididas de acordo com os estereótipos: Entidade

Fronteira

Controle

<<Entity>>itemdeVenda Item de Venda

(from Classes de Entidade)

<<Boundary>>frmTela de Vendas Tela de Vendas

(from Classes de Fronteira)

Tela de Vendas(from Classes de Controle

<<Control>>contrVenda

Page 23: Curso de UML Aula 02

23

UML - DIAGRAMAS DE CLASSE

Estereótipo

<<Controle >>Nome da Classe

AtributoAtributo : tipo do dadoAtributo : tipo do dado = vlr inicial

OperaçãoOperação(lista de argumentos)...

Nome da ClasseAtributoAtributo : tipo do dadoAtributo : tipo do dado = vlr inicial

OperaçãoOperação(lista de argumentos)...

Page 24: Curso de UML Aula 02

24

UML - DIAGRAMAS DE CLASSE

Classes do tipo Entidade modelam informação persistente, entidades do

mundo real, geralmente independentes do ambiente externo e , às vezes, utilizadas em mais de uma aplicação

o modelo de dados OO exibe relacionamentos entre objetos criados pelas classes de entidade

criam objetos que gerenciam dados identificadas via exame de fluxos de eventos de

casos de uso, onde cumprem responsabilidade Ex: auxiliar de pessoal seleciona funcionário para

mudança de cargo

Page 25: Curso de UML Aula 02

25

UML - DIAGRAMAS DE CLASSE

Classes do tipo Fronteira modelam as interfaces, entrada e saída de dados,

entre sistema e atores (usuários e outros sistemas) identificadas via exame de pares Ator - Cenário

Ex: tela (form) para mudar cargo do funcionário Cada form usado pelo programa é um objeto

criado por uma classe de fronteira em tempo de análise, não é necessário identificar

todos os componentes do form (combo, controle de dados,etc); esta tarefa deve ser feita em tempo de projeto

Ex: Interface(janela), protocolo de comunicação, interface de impressão, sensores, etc

Page 26: Curso de UML Aula 02

26

UML - DIAGRAMAS DE CLASSE

Classes do tipo Controle Não gerenciam dados nem têm saída visível controlam o fluxo operacional do programa; coordenam o fluxo de eventos para a execução das

operações específicas do caso de uso é como se executassem (rodassem) o caso de uso uma classe de controle pode ser usada para um par

Ator - Caso de uso encapsulam lógica que não se enquadra nas

responsabilidades das entidades. São tipicamente dependentes da aplicação

Page 27: Curso de UML Aula 02

27

UML - DIAGRAMAS DE CLASSE

:Secret

frmCurso oCurso: CursoctlProcesso

1:informações curso

3: inclusão curso4: novo curso

CASO DE USO : Criar Novo Curso

Exibição Aplicação Dados

2: processar

Fronteira Controle Entidade

Page 28: Curso de UML Aula 02

28

UML - DIAGRAMAS DE CLASSE

Relacionamentos Fornecem um meio (duto) para a interação entre

os objetos Tipos de Relacionamentos:

Associação Agregação Generalização/Especialização Dependência Refinamento

Page 29: Curso de UML Aula 02

29

UML - DIAGRAMAS DE CLASSE

Relacionamento tipo Associação Significa que há uma ligação (link) entre os

objetos das classes associadas, indicando que: “Conhecem uma a outra” “Estão conectadas com” “Para cada X existe um Y”

EX:Classes: UsuáriosDaBiblioteca

LivrosDaBibliotecaEmpréstimos

Cada vínculo em uma associação “atrela” em conjunto uma instância da primeira classe com uma instância da segunda classe, refletindo um “relacionamento de negócio” entre elas

Page 30: Curso de UML Aula 02

30

UML - DIAGRAMAS DE CLASSE

Notação básica da UML para associações Cada associação é mostrada como uma linha

entre duas classes O nome da associação aparece sobre essa linha

Pessoa0..* empregador

Companhiaempregado

Município

Residência Localização

0..1

0..*

1..1

1..*

Emprego

Page 31: Curso de UML Aula 02

31

UML - DIAGRAMAS DE CLASSE

Notação básica da UML para associações Uma associação, ou relacionamento, na

modelagem convencional, é geralmente nomeada por uma forma verbal: está empregado em

emprega

Na modelagem OO, prefere-se nomear uma associação com um substantivo

Pessoa 0..1 Companhia

0..*

Emprego

Pessoa 0..1 Companhia

emprega0..*

está empregado em

Page 32: Curso de UML Aula 02

32

UML - DIAGRAMAS DE CLASSE

Notação básica da UML para associações A extremidade de uma associação, na conexão

com a classe, é denominada o papel que o objeto desempenha na associação

Ao nomear a associação, pode-se ainda, no lugar do verbo ou substantivo, colocar o rolename(papel) nas duas extremidades da classe

Pessoa 0..1 Companhiaempregado

0..*

Pessoa 0..1 CompanhiaEmprego

0..*

empregador

Page 33: Curso de UML Aula 02

33

UML - DIAGRAMAS DE CLASSE

Notação básica da UML para associações Na última versão da UML, um pequeno triângulo

pode ser usado para indicar a direção da leitura, caso necessário:

Pessoa

Emprega

0..*

Compahia0..*

MercadoriaFornece

0..*

fornecedor

empregado

produto

empregador

Page 34: Curso de UML Aula 02

34

UML - DIAGRAMAS DE CLASSE

Multiplicidade Indica o número de objetos com que cada classe

participa no relacionamento Para expressar a multiplicidade entre os

relacionamentos, usa-se um intervalo que indica quantos objetos estão relacionados no link

Pode ser do tipo: 0..* zero ou vários (n) 1..* um ou vários(n) 0..1 zero ou um 1 exatamente 1 * vários (n) 1..6 de 1 a 6 (1,2,3,4, 5 ou 6) 4..6, 9 de 4 a 6 ou 9 (4,5,6 ou 9)

Page 35: Curso de UML Aula 02

35

UML - DIAGRAMAS DE CLASSE

Exemplos de Multiplicidade

Fiscal Empresa2 0..*

OfertaDisc Professor0..4 1

Aluno Turma0..35 0..6

Page 36: Curso de UML Aula 02

36

UML - DIAGRAMAS DE CLASSE

Notação da UML para Associações: A UML não obriga um nome para uma associação,

mas trata-se de um bom exercício A UML não obriga nomes de papel (rolenames).

Tente apenas encontrar nomes de papel significativos, sempre que possível

As ferramentas de modelagem na UML freqüentemente abreviam a multiplicidade desta forma: 0..* => * 1..1 => 1

Page 37: Curso de UML Aula 02

37

UML - DIAGRAMAS DE CLASSE

Relacionamentos tipo Associação Podem ser do tipo:

Normal

Recursiva

Qualificada

Exclusiva

Ordenada

De Classe (classe associativa)

Page 38: Curso de UML Aula 02

38

UML - DIAGRAMAS DE CLASSE

Associações Normais: É apenas uma conexão entre classes Representada por uma linha sólida entre classes A associação possui um “nome” (junto à linha),

normalmente composto de um verbo : Usa-se um verbo que permita formar frase da forma

“classe 1 + verbo + classe 2” Ex: Cliente possui Conta Corrente

Cliente Conta CorrentePossui

É possuído

Page 39: Curso de UML Aula 02

39

Associação Recursiva(reflexiva):

Disciplina

0 .. *

é-pre-req

tem-como-prereq

0 .. * Funcionário

0 .. *

chefe

subordinado

0 .. 1

Pessoa

marido

esposa

é casado com

1

UML - DIAGRAMAS DE CLASSE

Page 40: Curso de UML Aula 02

40

Associação Qualificada Um “qualificador” especifica como um

determinado objeto no final da associação “n” é identificado

Pode ser visto como um tipo de “chave”

Cód_ContaCorrente

Cliente Conta Corrente1..*

UML - DIAGRAMAS DE CLASSE

Page 41: Curso de UML Aula 02

41

Associação Exclusiva Representa uma restrição em duas ou mais

associações Objetos de uma classe podem participar de, no

máximo, uma das associações

Pessoa

Contrato

Empresa

0..*

0..*

1..* 1..*

{ou}

UML - DIAGRAMAS DE CLASSE

Page 42: Curso de UML Aula 02

42

Associação Ordenada Uma ordem pode ser especificada na associação,

através da associação ordenada Pode ser definida colocando “{ordenada}” junto à

linha da associação entre as duas classes

Cliente Pedido0..*

Faz

{ordenado}1

UML - DIAGRAMAS DE CLASSE

Page 43: Curso de UML Aula 02

43

Associação de Classe (classe associativa) Uma classe pode ser associada a uma outra

associação Esse tipo de associação é conectada na própria

linha da associaçãoCliente Processo

Fila

** Aluno OfertaDisc

Historico

0..4

UML - DIAGRAMAS DE CLASSE

Page 44: Curso de UML Aula 02

44

Associação de Classe (classe associativa) Consiste em “promover” a associação, dando-lhe

condição de classe (com atributos e operações)

0..*Pessoa Cachorro

PosseDeCachorro

1..1

UML - DIAGRAMAS DE CLASSE

0..*Pessoa CachorroPosseDeCachorro

1..1

Page 45: Curso de UML Aula 02

45

Associação de ordem mais alta (ternária, quaternária..)

Um losango (diamante) faz a ligação entre as classes

Companhia

0..*

0..* TipoDeItem

QuantidadeComprada

0..*

UML - DIAGRAMAS DE CLASSE

CompraPorCatálogo

preçoUnitário: Dinheiro

Page 46: Curso de UML Aula 02

46

Associação Ternária O losango faz a ligação entre uma associação

binária e uma associação de classe

Contrato 0..* 1..* Cliente

Regras Contratuais

1..*

UML - DIAGRAMAS DE CLASSE

Classe Associativa

Page 47: Curso de UML Aula 02

47

Associação de ordem mais alta (ternária, quaternária..)

UML - DIAGRAMAS DE CLASSE

Associações ternárias proveitosas são muito mais raras de se encontrar do que as associações

binárias

Associações Quaternárias são ainda mais raras

(Page-Jones)

Page 48: Curso de UML Aula 02

48

Agregação Caso particular da associação Indica que uma das classes do relacionamento é

uma parte ou está contida em outra classe Um pequeno losango é desenhado ao lado da

classe que representa o todo Ex: um pedido tem vários itens, um time tem onze

atletas, a marinha tem vários navios

NaviosMarinha *

contém

*

UML - DIAGRAMAS DE CLASSE

Pessoa Time *

membros

**

Page 49: Curso de UML Aula 02

49

Agregação Uma associação é do tipo agregação se:

cabe o uso das expressões “é-parte-de”, “todo-parte” há uma certa subordinação entre as classes algumas operações do todo são automaticamente

aplicadas às partes dispensa nome dos relacionamentos

Itens NFNota Fiscal 1..*1..

UML - DIAGRAMAS DE CLASSE

OfertaDiscDisciplina 0..*1..

Page 50: Curso de UML Aula 02

50

Associação ou Agregação ? Se as duas classes interagem na forma”todo-parte”,

temos uma agregação Muitas vezes depende do domínio do problema Que tipo de relacionamento modela um carro e

seus pneus ? na aplicação de uma oficina, onde os serviços podem se estender aos pneus agregação na loja de vendas de pneus, onde o importante é saber que carro usa qual pneu associação

UML - DIAGRAMAS DE CLASSE

Page 51: Curso de UML Aula 02

51

UML - DIAGRAMAS DE CLASSE

Agregação Composição:

É uma forma de agregação, com propriedades bem-definidas e tempo de vida coincidente como parte do todo.

As partes sem multiplicidade fixada podem ser criadas após a composição, mas, uma vez criadas, vivem e morrem com ela.

Page 52: Curso de UML Aula 02

52

Agregação A multiplicidade do “todo” é

maior que 1 As partes não morrem

obrigatoriamente com o todo

Uma parte pode estar em mais de um “todo”

As partes são semelhantes

Composição A multiplicidade do “todo”

é sempre 1 As partes vivem e morrem

com o todo Uma parte não pode estar

em mais de um “todo” Em geral, as partes não

são semelhantes PessoaEquipe n

T e x t

L is tB o x

B o tã o

M e n u

J a n e la

*

*

*

**

*

*

*1

UML - DIAGRAMAS DE CLASSE

Page 53: Curso de UML Aula 02

53

Associação ... Vínculo : entre objetos Associação : entre classes Associação representa responsabilidade do ponto

de vista de implementação. Ex: associação entre Cliente e Pedido significa que:

há método na classe Cliente que obterá os Pedidos de um Cliente

há método na classe Pedido que permite saber a que Cliente pertence um dado Pedido

UML - DIAGRAMAS DE CLASSE

Page 54: Curso de UML Aula 02

54

Associação ...

Pedido

nrPed : type = initvaldtEmiss : type = initvalcli:Cliente : type = initvalstatus : type = initval

obterCliente()excluirPed()

0..*1

Cliente

codCli : type = initvalnmCli : type = initvalvlLimCred : type = initvalpeds: set Pedido : type = initval

incPed()excPed()obterPeds()

UML - DIAGRAMAS DE CLASSE

Page 55: Curso de UML Aula 02

Exercício Em um pedido de compra temos relacionados todos os

seus itens. Cada item é referente a um determinado produto. Um pedido deverá ter pelo menos um item e ao se

consultar um pedido todos os seus itens deverão ser listados.

Um produto poderá ser encontrado em pedidos distintos.

Identifique as classes, sugira atributos e especifique os relacionamentos e multiplicidades

55

Page 56: Curso de UML Aula 02

56

Navegabilidade nas associações... Caracteriza uma associação com detalhes de

implementação Deve-se acrescentar os símbolos de navegabilidade nos

diagramas ao final, quando do detalhamento do projeto Pode ser :

Unidirecional

Bidirecional

UML - DIAGRAMAS DE CLASSE

Page 57: Curso de UML Aula 02

57

Navegabilidade nas associações...

Cliente não tem responsabilidade de identificar seus pedidos

Pedido tem a responsabilidade de identificar seu cliente

Cliente Pedidocli: Cliente

unidirecional

UML - DIAGRAMAS DE CLASSE

Page 58: Curso de UML Aula 02

58

Navegabilidade nas associações...

Cliente tem responsabilidade de identificar seus pedidos

Pedido não tem a responsabilidade de identificar seu cliente

Cliente Pedido

unidirecional

UML - DIAGRAMAS DE CLASSE

pedidos:set of pedido

Page 59: Curso de UML Aula 02

59

Navegabilidade nas associações...

Cliente Pedidocli: Cliente inverse is cliente.peds

obterCli( )

bidirecionalpeds: set of Pedidoinverse is Pedido.cliobterPedidos()

UML - DIAGRAMAS DE CLASSE

/*em JAVA --- /* em JAVA ------Class Cliente { Class Pedido {Private set peds Private Cliente cliPublic set obterPedidos ( )} Public Cliente obterCli ( )}

Page 60: Curso de UML Aula 02

60

Navegabilidade nas associações...

Cliente Pedidopeds: set of Pedido

Cliente Pedidocli: Cliente

Cliente Pedidocli: Cliente inverseis cliente.peds

peds: set of Pedidoinverse is Pedido.cls

UML - DIAGRAMAS DE CLASSE

Page 61: Curso de UML Aula 02

EXERCÍCIO A planilha a seguir controla os gastos mensais de uma

conta de luz. São cadastradas as leituras parciais e são realizadas as pesquisas de verificação de menor consumo e maior consumo no mês.

Identificar as classes, atributos e métodos nesse cenário.

61

Data da Leitura Nº da Leitura kw gasto Valor a Pagar Data Pagto Média Consumo4/7/2005 4166 460 206,43 15/7/2005 15,332/8/2005 4201 350 157,07 15/8/2005 12,06

350 ago/05460 jul/05

Menor consumoMaior consumo

Page 62: Curso de UML Aula 02

Exercício Para fixação do conceito de classes em sala de aula, o Prof. Haron

criou com seus alunos a classe TextoSaida. O objetivo do exercício é criar uma classe que permita configurar um

texto por meio de atributos (tamanho da letra, cor da fonte e cor do fundo), escolhendo em que tipo de componente ele deve ser exibido, entre as opções: label, edit e memo.

Para não haver vínculo com linguagens de programação, essa classe não foi criada como herança de uma classe visual

As cores podem ser escolhidas entre os tons: preto, branco, azul, amarelo ou cinza

Identifique as classes, métodos e atributos desse cenário

62

Page 63: Curso de UML Aula 02

Exercício O médico necessita de um aplicativo que controle o horário de

remédios dos pacientes. Para cada paciente cadastra-se: o remédio, a data de início, a qtde de

dias que foi prescrita pelo médico, a qtde de vezes ao dia, a dosagem. Depois de cadastradas as prescrições, a aplicação sugere os horários

possíveis para os pacientes tomarem seus remédios. A aplicação prepara uma planilha de horários para cada paciente.

Identifique classes, atributos, métodos e relacionamentos.

63

Page 64: Curso de UML Aula 02

UML – Diagramas

DIAGRAMA DE OBJETOS

64

Page 65: Curso de UML Aula 02

65

UML - DIAGRAMAS DE OBJETOS

Instantâneo dos objetos em um sistema num determinado ponto no tempo

Também chamado de diagrama de instâncias As instâncias/objetos devem vir sublinhados no

diagrama, seguindo a forma nome de instância : nome de classe

Pode-se considerar um Diagrama de Objetos como um Diagrama de Colaboração sem mensagens

Facilita o entendimento e validação do sistema e modelos.

Page 66: Curso de UML Aula 02

66

Diagrama de Objetos

Page 67: Curso de UML Aula 02

67

*

1

1..*

1

01 : ItensNotaFiscalCompraQuantidade = 500Preço = 2,00CódigoFornecedor = 09

ObterItensNotaFiscal()AtualizarEstoqueItem( )

*

1

*

1

Leite : ProdutoCódigoProduto = 147DescriçãoProduto = Leite em Pó Desnatado

ObterDescrição()CadastrarProduto( )AtualizarProduto( )ExcluirProduto( )

*

1

*

1

EspecificaçãoProdutoDataCompra = 15/11/2000Quantidade = 500Unidade = CaixaEstoqueMinimo = 12PreçoCompra = 2,00PreçoVenda = 2,95

ObterEstoqueMínimo( )ObterPreçoCompra( )ObterPreçoVenda( )

*

1

*

1

24537 : NotaFiscalCompraNúmero = 24537DataEmissão = 15/11/2000CódigoFornecedor = 09

ObterNotaFiscal( )ObterMédiaCompra( )

*

1

1..*

1

Ind. de Alimentos NE : FornecedorCódigo = 09Nome = Ind. de Alimentos NEEndereço = BR 116 kM 10Bairro = CajazeirasCidade = FortalezaUnidadeFederativa = CETelefone = 222-2222PessoaContato = Sr. MauroCGC = 00.891.558/0001-14

Atualizar( )Incluir( )Excluir( )

1..*

*

1..*

*

UML - DIAGRAMAS DE OBJETOS

Page 68: Curso de UML Aula 02

68

*

1

1..*

1

ItensNotaFiscalCompraQuantidadePreçoCódigoFornecedor

ObterItensNotaFiscal()AtualizarEstoqueItem( )

*

1

*

1

ProdutoCódigoProdutoDescriçãoProduto

ObterDescrição()CadastrarProduto( )AtualizarProduto( )ExcluirProduto( )*

1

*

1

EspecificaçãoProdutoDataCompraQuantidadeUnidadeEstoqueMinimoPreçoCompraPreçoVenda

ObterEstoqueMínimo( )ObterPreçoCompra( )ObterPreçoVenda( )

*

1

*

1

NotaFiscalCompraNúmeroDataEmissãoCódigoFornecedor

ObterNotaFiscal( )ObterMédiaCompra( )

*

1

1..*

1

FornecedorCódigoNomeEndereçoBairroCidadeUnidadeFederativaTelefonePessoaContatoCGC

Atualizar( )Incluir( )Excluir( )

1..*

*

1..*

*

UML – COMPARATIVO COM O DIAGRAMAS DE CLASSE