Download - Curso de UML Aula 02
![Page 1: Curso de UML Aula 02](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/2.jpg)
2
Diagrama de Classes
UML – Diagramas
![Page 3: Curso de UML Aula 02](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/64.jpg)
UML – Diagramas
DIAGRAMA DE OBJETOS
64
![Page 65: Curso de UML Aula 02](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/66.jpg)
66
Diagrama de Objetos
![Page 67: Curso de UML Aula 02](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022042601/5571f33249795947648da5f3/html5/thumbnails/68.jpg)
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