Curso de UML Aula 02

Post on 12-Jun-2015

1.072 views 1 download

Transcript of 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

2

Diagrama de Classes

UML – Diagramas

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

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.

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

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

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

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

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”}

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

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)

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.

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

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

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

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.

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

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

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

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

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

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

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)...

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

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

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

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

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

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

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

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

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

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

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)

35

UML - DIAGRAMAS DE CLASSE

Exemplos de Multiplicidade

Fiscal Empresa2 0..*

OfertaDisc Professor0..4 1

Aluno Turma0..35 0..6

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

37

UML - DIAGRAMAS DE CLASSE

Relacionamentos tipo Associação Podem ser do tipo:

Normal

Recursiva

Qualificada

Exclusiva

Ordenada

De Classe (classe associativa)

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

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

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

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

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

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

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

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

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

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)

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

**

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..

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

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.

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

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

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

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

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

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

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

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 ( )}

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

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

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

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

UML – Diagramas

DIAGRAMA DE OBJETOS

64

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.

66

Diagrama de Objetos

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

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