Buscar

Diagrama de Classes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 64 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 64 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 64 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

19/03/10 vladimir.professor@gmail.com 1 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
São Paulo, 2013 
 
 
 
Universidade Paulista (UNIP)‏ 
 
 
 
 
Introdução e Conceitos sobre Diagrama 
de Classes 
 
 
 
Prof. MSc. Vladimir Camelo 
vladimir.professor@gmail.com 
 
http://www3.unip.br/
mailto:vladimir.professor@gmail.com
19/03/10 vladimir.professor@gmail.com 2 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Introdução 
 Um objeto é algo com domínios bem definidas e relevante para o 
problema abordado, que possuí uma identidade, um estado (os dados 
associados a esses objeto) e um comportamento (ações). 
 Estado: 
 modelado por valores de atributos (tamanho, forma, peso, etc.) e 
por ligações que num dado momento tem com outros objetos (em 
qualquer sistema existem objetos que se relacionam entre si). 
 A relação entre objetos é representada por meio das relações 
entre as classes. 
 Existem diferentes tipos de relações como, por exemplo, pode-se 
classificar em dois tipos, associações e generalizações. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 3 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Introdução 
 Comportamento 
 um objeto exibe comportamentos invocáveis (por resposta a 
chamadas de operações) ou reativos (por resposta a eventos); 
 Identidade 
 espaço: é possível distinguir 2 objetos mesmo que tenham o 
mesmo estado; exemplo: pode-se distinguir 2 folhas de papel A4, 
mesmo que tenham os mesmos valores dos atributos; 
 tempo: é possível saber que se trata do mesmo objeto mesmo que 
o seu estado mude; exemplo: se pintar um folha de papel A4 de 
amarelo, continua a ser a mesma folha de papel. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 4 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Objeto do mundo real 
 No desenvolvimento de software Orientado a Objetos, procura-se 
imitar no computador o mundo real, tendo em vista que um conjunto 
de objetos interagem entre si; 
 Muitos objetos computacionais são idênticos aos objetos encontrados 
no mundo real; 
 Dependendo do contexto (análise ou projeto) pode-se falar em objetos 
do mundo real, em objetos computacionais ou nas 2 coisas de forma 
simultanea; 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 5 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Objeto do mundo real 
 Exemplos de objetos do mundo real: 
 Sr. João 
 Aula de Estrutura de dados 
 Exemplos de objetos computacionais: 
 Registro que descreve o Sr. João (imagem de objeto do mundo real) 
 Uma árvore de pesquisa binária (objeto puramente computacional) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 6 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de Classe 
 É uma notação gráfica que possibilita modelar e descrever objetos 
reais ou abstratos de um software (Blaha & Rumbaugh, 2006) e seus 
relacionamentos por meio de classes; 
 Uma classe é uma descrição de um conjunto de objetos que 
partilham as mesmas propriedades (atributos), comportamentos 
(operações ou ações), relações e semântica. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 7 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de Classe 
 Um diagrama de classes é uma representação das abstrações 
importantes do sistema (classes) e das suas relações. 
 Define a arquitetura (estrutura) estática do sistema. 
 Elementos do modelo de classes: 
Classes 
Relações entre classes: 
Associação - relação de utilização 
Agregação - relação de constituição 
Generalização (herança) - relação de especialização. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 8 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Objetivo de um diagrama de classe 
 Um diagrama de classes serve para modelar o vocabulário de um 
sistema, do ponto de vista do utilizador (problema) ou do 
implementador (solução); 
 Ponto de vista do utilizador (problema): na fase de captura e 
análise de requisitos, em paralelo com a identificação dos casos 
de uso; 
 Vocabulário do implementador (solução): na fase de projeto do 
sistema (design); 
 Construído e refinado ao longo das várias fases do desenvolvimento 
do software, por analistas, projetistas (designers) e implementadores. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 9 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Objetivo de um diagrama de classe 
 Também serve para: 
 Especificar colaborações (no âmbito de um caso de uso ou 
mecanismo); 
 Especificar esquemas lógicos da bases de dados; 
 Especificar vistas (estrutura de dados de formulários, relatórios, 
etc.); 
 Modelos de objetos de domínio, negócio, análise e design. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 10 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes 
 No desenvolvimento de software Orientado a Objetos, não interessa 
os objetos individuais mas sim as classes de objetos; 
 Uma classe é um descritor de um conjunto de objetos que partilham 
as mesmas propriedades (semântica, atributos, operações e relações); 
 Um objeto de uma classe é uma instância da classe; 
 A extensão de uma classe é o conjunto de instâncias da classe; 
 Em Matemática, uma classe é um conjunto de “objetos” com uma 
propriedade em comum, podendo ser definida indiferentemente em 
compreensão ou em extensão: 
 C = {x |N : x mod 3 = 2} = {2, 5, 8, 11, 14, ...} 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 11 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes 
 O conjunto de todos os objetos em um determinado contexto forma 
um universo (UoD - Universe of Discourse) 
 As extensões das classes são subconjuntos desse universo 
 
UoD x João 
x Rui 
x Maria 
Aluno 
Curso 
x Eletrotécnica 
x Informática 
objeto x Dª Rita 
x Sr. Silva Funcionário 
classe 
ligação 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 12 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes 
 Classes podem representar: 
 Coisas concretas: Pessoa, Turma, Carro, Imóvel, Fatura, Livro 
 Papéis que coisas concretas assumem: Aluno, Professor, 
Piloto; 
 Eventos: Curso, Aula, Acidente; 
 Tipos de dados: Data, Intervalo de Tempo, Número Complexo, 
Vetor; 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 13 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes 
 Decomposição orientada por objetos : começa por identificar os tipos 
de objetos (classes) presentes em um sistema; 
 contrapor com decomposição funcional ou algorítmica; 
 tipos de objetos são mais estáveis do que as funções, logo a 
decomposição orientada por objetos leva a arquiteturas mais 
estáveis; 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 14 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (identificação das classes) 
Nome da Classe 
 
 
Atributos 
 
 
Métodos 
 Identificação das classes: 
 A especificação do problema refere-se normalmente a objetos concretos, 
mas deve-se abstrair a realidade e achar descrições comuns a vários 
objetos semelhantes. 
 Normalmente, começa-se por sublinhar os substantivos. 
 Escolher cuidadosamente os nomes. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 15 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Habitualmente escreve-se o nome da classe no singular (nome de 
uma instância), com a 1ª letra em maiúscula; 
 Para se precisar o significado pretendido para uma classe, deve-se 
explicar o que é (e não é ...) uma instância da classe; 
 Exemplo: “Um aluno é uma pessoa que está inscrita em um curso 
ministrado em uma escola. Uma pessoa que esteve no passado 
inscrita em um curso, mas não está presentemente inscrita em 
nenhum curso, não é umaluno.”; 
 Em geral, o nome da classe não é suficiente para se compreender o 
significado da classe. 
Diagrama de classes (identificação das classes) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 16 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Atributos e Métodos) 
Nome da Classe 
 
 
Atributos 
 
 
Métodos 
 Atributos: 
 Valores que caracterizam os objetos da classe. 
 Têm um tipo: inteiro, booleano, real, enumerado... 
 Métodos: 
 Descrevem o comportamento da classe e serviços disponibilizados pela 
classe 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 17 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Atributos e Métodos) 
 Estado de um objeto: valores de atributos e por ligações que tem com outros 
objetos; 
 Todos os objetos gerados a partir de uma classe são caracterizados pelos 
mesmos atributos (ou variáveis de instância); 
 o mesmo atributo pode ter valores diferentes de objeto para objeto; 
 Atributos são definidos ao nível da classe, enquanto que os valores dos 
atributos são definidos ao nível do objeto; 
 Exemplos: 
 uma pessoa (classe) tem os atributos nome, data de nascimento e peso; 
 João (objeto) é uma pessoa com nome “João Silva”, dt. de nasc. 
“18/3/1973” e peso “68 Kg”. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 18 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Atributos e Métodos) 
 Atributos são listados em um compartimento de atributos (opcional) a 
seguir ao compartimento com o nome da classe; 
 Uma classe não deve ter 2 atributos com o mesmo nome; 
 Os nomes dos tipos não estão pré-definidos em UML, podendo-se 
usar os da linguagem de implementação. 
Pessoa 
nome: string 
data de nascimento: date 
peso: real = 75 kg 
compartimento 
de atributos 
valor inicial por omissão 
classe 
tipo de dados 
nome do atributo 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 19 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Operações) 
 Comportamento invocável de objetos é modelado por operações; 
 uma operação é algo que se pode pedir para fazer a um objeto de 
uma classe; 
 Objetos da mesma classe têm as mesmas operações; 
 Operações são definidas ao nível da classe, enquanto que a 
invocação de uma operação é definida ao nível do objeto; 
 Princípio do encapsulamento: acesso e alteração do estado interno 
do objeto (valores de atributos e ligações) controlado por operações; 
 Nas classes que representam objetos do mundo real é mais comum 
definir responsabilidades em vez de operações. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 20 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Operações) 
Pessoa 
nome: string 
morada: string 
setMorada(novaMorada:string): bool 
compartimento 
de operações 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 21 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Operações) 
 Atributos e operações estáticos ( de instância) 
Atributo estático: tem um único valor para todas as instâncias 
(objetos) da classe 
valor está definido ao nível da classe e não ao nível das 
instâncias 
Operação estática: não é invocada para um objeto específico da 
classe 
Notação: nome sublinhado 
Correspondem a membros estáticos (static) em C++, C# e Java 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 22 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Fatura 
número: Long 
data: Date 
valor: Real 
últimoNumero: Long = 0 
criar(data:Date, valor:Real) 
destruir() 
valorTotal(): Real 
retorna a soma dos valores 
de todas as faturas 
cria nova fatura com a data e valor 
especificados, e um nº seqüêncial atribuído 
automaticamente com base em último nº 
Diagrama de classes (Operações) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 23 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Operações) 
 Visibilidade de atributos e operações 
Visibilidade: 
+ (public) : visível por todos 
 - (private) : visível só por operações da própria classe 
# (protected): visível por operações da própria classe e 
descendentes (subclasses) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 24 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Operações) 
 Visibilidade de atributos e operações 
Princípio do encapsulamento: esconder todos os detalhes de 
implementação que não interessam aos clientes (utilizadores) da 
classe 
Possibilita alterar representação do estado sem afetar clientes 
Possibilita validar alterações de estado 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 25 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (Operações) 
 Visibilidade de atributos e operações 
Toolbar 
# currentSelection: Tool 
# toolCount: Integer 
+ getTool(i: Integer): Tool 
+ addTool(t: Tool) 
+ removeTool(i: Integer) 
- compact() 
usada internamente 
por outras operações 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 26 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Relações entre classes: associação, 
agregação e composição 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 27 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (relacionamento) 
 Existem 3 perspectivas que podem ser utilizadas quando for projetar 
diagramas de classes ou, qualquer modelo. 
 Conceitual: representa os conceitos do domínio que está sendo 
estudado, sendo estes relacionados às classes que irão executá-
los. Um modelo conceitual deve ser projetado sem se preocupar 
com o software a ser implementá-lo (linguagem utilizada). 
 Especificação: análise das interfaces do software não de sua 
implementação. O desenvolvimento OO põe muita ênfase na 
diferença entre interface e implementação. 
 Implementação: Nesta perspectiva são criadas as classes, sendo 
esta a mais utilizada. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 28 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (relacionamento) 
 O relacionamento e a comunicação entre as classes definem 
responsabilidades entre estas classes, são 3 os tipos de 
relacionamentos: 
 Associações : Agregação e composição 
 Generalização (herança) 
 Dependências 
 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 29 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (relacionamento) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 30 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (relacionamento) 
 Associação : São relacionamentos estruturais entre instâncias e 
especificam que objetos de uma classe estão ligados a objetos de 
outras classes. Tipos de associações: uniária, binária, ternárias, etc. 
A associação pode existir entre classes ou entre objetos. Por 
exemplo: 
 Uma associação entre a classe Professor e a classe disciplina 
(um professor ministra uma disciplina) significa que uma instância 
de Professor (um professor específico) vai ter uma associação 
com uma instância de Disciplina. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 31 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (relacionamento) 
 Dependência - São relacionamentos de utilização no qual uma 
mudança na especificação de um elemento pode alterar a 
especificação do elemento dependente. A dependência entre classes 
indica que os objetos de uma classe usam serviços dos objetos de 
outra classe 
 Generalização (herança : simples ou composta) - Relacionamento 
entre um elemento mais geral e um mais específico. Onde o 
elemento mais específico herdaas propriedades e métodos do 
elemento mais geral. Como a relação de dependência, ela existe só 
entre as classes. Um objeto particular não é um caso geral de um 
outro objeto, só conceitos (classes no modelo a objetos) são 
generalização de outros conceitos. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 32 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Diagrama de classes (relacionamento) 
 Agregação Regular - tipo de associação ( é parte de , todo/parte) 
onde o objeto parte é um atributo do todo; onde os objetos partes 
somente são criados se o todo ao qual estão agregados seja criado. 
Pedidos é composto por itens de pedidos. 
 Composição - Relacionamento entre um elemento ( o todo) e outros 
elementos (as partes) onde as parte só podem pertencer ao todo e 
são criadas e destruídas com ele. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 33 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Uma associação é uma relação entre objetos das classes 
participantes (um objeto de cada classe em cada ligação); 
 Uma associação não gera novos objetos; 
 Esta relação possibilita especificar que objetos de uma dada classe se 
relacionam com objetos de outra classe. 
 As associações podem ter um nome e uma seta associada, indicando 
a direção em que o nome deve ser lido. 
Participante-1 Participante-2 
Nome da associação 
papel-1 papel-2 
Diagrama de classes (Associações binárias) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 34 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Matematicamente, uma associação binária é uma relação binária, i.e., 
um subconjunto do produto cartesiano das extensões das classes 
participantes 
 Assim como um objeto é uma instância de uma classe, uma ligação é 
uma instância de uma associação 
 Pode haver mais do que uma associação (com nomes diferentes) 
entre o mesmo par de classes 
 Papéis nos extremos da associação podem ter indicação de 
visibilidade (pública, privada, etc.) 
Diagrama de classes (Associações binárias) 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 35 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Muitos-para-Muitos 1-para-1 Muitos-para-1 
Curso Aluno Curso Curso Plano de 
Curso 
(sem restrições) 
* 1 1 1 * * Professor 
Multiplicidade de associações binárias 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 36 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Notação para Multiplicidade 
Multiplicidade Significado 
0...1 No mínimo zero (nenhum) e no máximo um. Indica que os objetos das classes 
associadas não precisam obrigatoriamente estar relacionadas, mas se 
houver relacionamento indica que apenas uma instância da classe se 
relaciona com as instâncias da outra classe. 
1...1 Um e somente um. Indica que apenas um objeto da classe se relaciona com 
os objetos da outra classe 
0...* No mínimo nenhum e no máximo muitos. Indica que pode ou não haver 
instâncias da classe participando do relacionamento. 
* Muitos. Indica que muitos objetos da classe estão envolvidos no 
relacionamento. 
1...* No mínimo 1 e no máximo muitos. Indica que há pelo menos um objeto 
envolvido no relacionamento, podendo haver muitos envolvidos. 
3...5 No mínimo 3 e no máximo 5. Indica que existem pelo menos 3 instâncias 
envolvidas no relacionamento e que podem ser 4 ou 5, mas não mais que 
isso. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 37 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Pode-se associar uma classe com ela própria (mesmo em papéis 
diferentes) 
Pessoa 
pai 
filho 
0..1 
* filho 
mãe 
0..1 
* 
Associação reflexiva 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 38 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 A indicação do nome é opcional em uma associação entre duas 
classes. Porém, ela pode auxiliar no entendimento do relacionamento 
entre as classes. 
 O nome é indicado no meio da linha que une as classes participantes 
do relacionamento. 
 Pode-se indicar o sentido em que se lê o nome da associação, ou seja 
quem realiza a ação. 
Empresa Pessoa 
Trabalha-para 
Emprega empregador empregado 
Nome da associação 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 39 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 As associações são classificadas quanto à navegabilidade em: 
 Bidirecionais (normal) 
 Unidirecionais 
 um objeto da classe 1 tem a responsabilidade de dar o(s) objeto(s) 
correspondente(s) da classe 2 (nível de especificação) 
 ou 
 um objeto da classe 1 tem apontador(es) para o(s) objeto(s) 
correspondente(s) da classe 2 (nível de implementação) 
Class-1 Class-2 
Class-1 Class-2 
Associações unidirecionais 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 40 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 A associação pode ser suficientemente complexa para ela própria ser 
traduzida por uma classe (Classe Associativa). 
 O papel é parte da associação, não da classe (uma classe pode 
desempenhar papeis diferentes em associações diferentes). 
Class-1 Class-2 
Association Name 
link attribute 
... 
link operation 
... 
Association Name 
Classes associativas 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 41 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Reúne as propriedades de associação e classe 
 o nome pode ser colocado na associação ou na classe 
 o nome também pode ser colocado nos dois itens 
 não é possível repetir combinações de objetos das classes 
participantes na associação 
Classes associativas 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 42 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Notação 
 
 
 
 
 
 Multiplicidade 
 
 
 
 
 
 a cada par de objetos das classes restantes (1 e 2), 
correspondem 0 ou 1 objetos da classe 3 
Class-1 Class-2 
Association Name 
role-1 role-2 
Class-3 
role-3 
Class-1 Class-2 
Class-3 
0..1 
Associações Ternárias ou n-árias 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 43 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Associações Ternárias ou n-árias 
Professor Turma 
SalasDeAula 
Leciona Possui 
Utiliza 
1...* 1...* 
1...* 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 44 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Pertence a 
 Uma propriedade para designar um objeto de uma classe presente no 
modelo, deve ser modelada como uma associação e não como um 
atributo; 
 Exemplo: 
País Cidade 
nome: string 
capital: string 
capital: Cidade 
1 
1 
nome: string 0..1 
* 
capital 
Atributos versus Associações 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 45 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Qualificador: lista de um ou mais atributos de uma associação 
utilizados para navegar de A para B 
 "Chave de acesso" a B (acesso a um objeto ou conjunto de objetos) a 
partir de um objeto de A 
qualificador Classe A Classe B 
para cada par Clube + nº de sócio 
 
Associação 
 
0..1 
nº de sócio Clube 
Pessoa * 
nome 
morada 
uma Pessoa pode ser sócia de vários clubes 
Associações classificadas 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 46 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Agregação 
 É um tipo especial de associação. 
 Nesta associação tenta-se demonstrar que as informações de um 
objeto (chamado objeto-todo) precisam ser complementadas pelas 
informações contidas em um ou mais objetos de outra classe 
(chamados objeto-parte). 
 O símbolo de agregação difere do de associação por conter um 
losango na extremidade da classe que contém os objetos-todo. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 47 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Representa uma relação mais forte que umaassociação 
 Palavras-chave utilizadas para identificar uma agregação: 
 “consiste em...” 
 “contém...” 
 “é parte de...” 
Agregação 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 48 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Associação com o significado contém (é constituído por) / faz parte de 
(part of) 
 Relação de inclusão nas instâncias das classes 
 Hierarquias de objetos 
 Exemplo: 
Equipe 
Jogador 
* 
0..1 
 Uma equipe contém 0 ou mais jogadores 
 Um jogador faz parte de uma equipe (num dado 
momento), mas também pode estar desempregado 
Agregação 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 49 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Constitui-se numa variação da associação de agregação. 
 A composição tenta representar um vínculo mais forte entre os 
ojetos-todo e os objetos-parte, procurando demonstrar que os 
objetos-parte têm de pertencer exclusivamente a um único objeto-
todo com que se relacionam. 
 Em uma composição, um mesmo objeto-parte não pode associar-se 
a mais de um objeto-todo. Veja o exemplo a seguir. 
Composição 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 50 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Aplicável quando: 
Existe uma dependência muito forte entre as partes participantes; 
Cada parte só pode fazer parte de um todo (i.e., a multiplicidade 
do lado do todo não excede 1); 
O topo e as partes têm tempo de vida coincidente, ou, pelo menos, 
as partes nascem e morrem dentro de um todo; 
A eliminação do todo propaga-se para as partes, em cascata; 
 Notação: losango cheio ( ) ou notação encaixada 
 Membros-objeto em C++, Java 
Composição 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 51 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Window 
Slider Header Panel 
scrollbar 2 
1 
title 1 
1 1 
1 body 
Composição 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 52 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Composição 
RevistaCientifica 
-isbn: long 
-titulo: String 
-periodicidade: int 
+registrar() 
+consultar(isbn: long):int 
Publica 
1...* 
Edicao 
-numEdicao: int 
-volEdicao: int 
-dataEdicao: Date 
-Tiragem: long 
+registrar():int 
+consultar(numEdicao:int, 
 volEdicao:int) 
Artigo 
-titulo: String 
+registrar() 
+consultar() 
Contém 
6...10 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 53 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Relações entre classes: 
generalização 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 54 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Especialização / Generalização 
 É um tipo especial de relacionamento cujo objetivo é identificar classes-mãe, 
chamadas gerais e classes-filhas, chamadas especializadas. 
 Esse tipo de relacionamento possibilita também demonstrar a ocorrência de 
métodos polimórficos nas classes especializadas do sistema. 
 A especialização/generalização ocorre quando existem duas ou mais classes 
com características muito semelhantes; 
 assim para evitar ter que declarar atributos e/ou métodos idênticos e 
como uma forma de reaproveitar código, cria-se uma classe geral onde 
são declarados os atributos e métodos comuns a todas as classes 
envolvidas no processo e então se declaram classes especializadas 
ligadas à classe geral, que herdam todas as suas características, 
podendo possuir atributos e métodos próprios. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 55 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Relação‏semântica‏“is‏a”‏(“é‏um”‏/‏“é‏uma”)‏:‏um aluno é uma pessoa 
 Relação de inclusão nas extensões das classes: 
Pessoa 
Aluno 
generalização especialização 
super-classe 
sub-classe 
Generalização 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 56 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
UoD 
super-classe 
sub-classe 
x x x 
x 
x 
objecto 
extensão (sub-classe)  extensão (super-classe) 
Generalização 
 Relação de herança nas propriedades: A sub-classe herda as propriedades 
(atributos, operações e relações) da super-classe, podendo acrescentar 
outras operações e atributos. 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 57 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
ContaComum 
#numeroConta: long 
#saldo: double 
#dataAbertura: Date 
#tipo: int 
#dataEncerramento: Date 
#situacao: boolean 
#senha: int 
+abrirConta(saldo:double,tipo:int,senha:int):long 
+encerrarConta():int 
+sacar(valor:double):int 
+depositar(numeroConta:long,valor:double):int 
+verSaldo():double 
+consultar(numeroConta:long):int 
+validarSenha(senha:int):int 
ContaEspecial 
-limite: double 
+abrirConta(saldo:double, 
 senha:int, 
 limite:double):long 
+sacar(valor:double):int 
+calcularJuros(juros:double):int 
ContaPoupanca 
+verRendimento(data:Date, 
 juros:double):int 
Generalização 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 58 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Substitutabilidade: 
Onde se espera que um objeto da super-classe pode passar um 
objeto de uma subclasse; 
 Herança de interface: 
A subclasse herda as assinaturas (e significados) das operações 
da super-classe; 
As três facetas da generalização 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 59 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Herança ou overriding de implementação: 
a subclasse pode herdar as implementações das operações da 
super-classe, mas também pode ter novas implementações de 
algumas dessas operações 
quando em UML se repete numa subclasse a assinatura de uma 
operação da super-classe, quer dizer que tem uma nova 
implementação na subclasse 
As três facetas da generalização 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 60 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
 Em geral, pode-se ter uma hierarquia de classes relacionadas por 
herança / generalização 
em cada classe da hierarquia colocam-se as propriedades que são 
comuns a todas as suas subclasses 
evita-se redundância, promove-se reutilização! 
Hierarquia de classes 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 61 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Hierarquia de classes 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 62 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
Aluno Professor 
Pessoa 
Aluno Professor 
Pessoa 
Notações alternativas para hierarquia de classes 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 63 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
ItemCarrinho CarrinhoDeCompras 
 Este relacionamento não costuma ser encontrado com freqüência no 
diagrama de classes, mas sua função é identificar certo grau de 
dependência de uma classe em relação à outra, isto é, sempre que 
ocorrer uma mudança na classe da qual uma outra classe depende, 
esta deverá também sofrer uma mudança. 
 O relacionamento de dependência é representado por uma seta 
tracejada entre as classes, apontando da classe dependente para a 
classe da qual depende. 
Dependência 
http://www3.unip.br/
19/03/10 vladimir.professor@gmail.com 64 
D
ia
g
ra
m
a
s
 U
M
L
 
Diagrama de Classes (UML) 
FIM 
http://www3.unip.br/

Continue navegando