Professional Documents
Culture Documents
Diagrama de Classes
Prof Luciana Bolan Frigo
Objetivos
Introduo
Elementos do Diagrama de Classes
Exemplo
Exerccio
Introduo
Turma
est-matriculado-em
cdigo: Texto
sala: Texto
horario: Horario
Aluno
nome: Texto
matrcula: Inteiro
definirNome(nome)
obterNome()
definirMatricula(matricula)
obterMatricula
-ministrada-por
Professor
estaAberta()
definirProfessor(professor)
incluirAluno(aluno)
nome: Texto
titulao: Texto
definirNome(nome)
obterNome()
definirTitulacao(titulo)
obterTitulacao
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos (operaes de abstrao)
Classificao / Instanciao
Associao
Agregao
Composio
Generalizao
Dependncia
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos (operaes de abstrao)
Classificao / Instanciao
Associao
Agregao
Composio
Generalizao
Dependncia
Elementos Diagrama de
Classes
Classes
Graficamente, as classes so representadas por retngulos
incluindo nome, atributos e mtodos.
Nome_da_classe
atributo1
atributo2
...
metodo1
metodo2
metodo3
...
Elementos Diagrama de
Classes
Classes
Mtodos
Representam o conjunto de operaes
(comportamento)
que a classe fornece
Exemplo:
- getNome() : String
Atributos
Representam o conjunto de
caractersticas (estado)
dos objetos daquela classe
Exemplo:
+ nome : String
Visibilidade:
+ pblico: visvel em qualquer classe
de qualquer pacote
# protegido: visvel para classes do
mesmo pacote
- privado: visvel somente para
classe
LES/PUC-Rio
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos (operaes de abstrao)
Classificao / Instanciao
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de
Classes
Relacionamentos
Os relacionamentos possuem:
Nome: descrio dada ao relacionamento (faz, tem, possui,...)
Sentido de leitura
Navegabilidade: indicada por uma seta no fim do relacionamento
Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7
Elementos Diagrama de
Classes
nome
Relacionamentos
Pessoa
multiplicidade
1..*
sentido de leitura
trabalha para
empregado
empregador
Empresa
Tipo: associao
papis
navegabilidade
reside
Cliente
Endereo
O cliente sabe
quais so seus
endereos, mas o
endereo no sabe
a quais clientes
pertence
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Classificao / Instanciao
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de
Classes
Relacionamentos: Classificao/ Instanciao
Classificao: operao que tem por objetivo, atravs da
Classe - categoria
modelo
placa
...
movimento
parado
Classificao
Instanciao
...
Vectra da Maria
Fusca do Jos
Objeto - entidade
Pessoa
Empresa
associao
LES/PUC-Rio
Elementos Diagrama de
Classes
Relacionamentos: Associao
Indicadores de multiplicidade:
1
Exatamente um
1..*
Um ou mais
0..*
0..1
Zero ou um
m..n
Pessoa
1..*
trabalha para
Empresa
associao
LES/PUC-Rio
Relacionamentos: Associao
Relacionamentos: Associao
Exemplo:
Um Estudante pode ser
um aluno de uma Disciplina
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
Elementos Diagrama de
Classes
Relacionamento: Agregao
um tipo especial de associao
Utilizada para indicar todo-parte
Pedido
1..*
Item
agregao
LES/PUC-Rio
Elementos Diagrama de
Classes
Relacionamento: Agregao
Motor
+potncia
+cilindrada
+combustvel
Veculo
+ligar()
+desligar()
Placa
+cidade
+estado
+cdigo alfabtico
+cdigo numrico
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de
Classes
Relacionamento: Composio ou Agregao forte
uma variante semanticamente mais forte da agregao
Os objetos parte s podem pertencer a um nico objeto todo e tm o seu
tempo de vida coincidente com o dele
Notebook
Window
1..*
0..*
0..*
Teclado
Frame
errado
LES/PUC-Rio
Elementos Diagrama de
Classes
Relacionamento: Composio
Ex:
Empresa
1
1..*
1..*
0..1
Departamento
Escritrio
*
Janela
1
2
Rolagem
0..1
Ttulo
1
Corpo
Elementos Diagrama de
Classes
Agregao X Composio
Sala
Mesa
1
1..n
Andar
1..n
Edifcio
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
Elementos Diagrama de
Classes
Relacionamento: Generalizao
um relacionamento entre itens gerais (superclasses)
e itens mais especficos (subclasses)
Veculo
superclasse
um
um tipo de
subclasse
Terrestre
Areo
Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
Elementos Diagrama de
Classes
Relacionamento: Dependncia
Representa que a alterao de um objeto (o objeto indepedendente)
pode afetar outro objeto (o objeto dependente)
Ex:
cliente
fornecedor
Obs:
A classe cliente depende de algum servio da classe fornecedor
A mudana de estado do fornecedor afeta o objeto cliente
A classe cliente no declara nos seus atributos um objeto do tipo
fornecedor
Fornecedor recebido por parmetro de mtodo
Descrio
Universidade
Coordenador
Disciplina
Estudante
Turma
FormulrioMatrcula
SistemaRegistroAcademico
ListaAlunos
Curso
Turma
cdigo
sala
horrio
Diagrama de Classes:
Estudante
est-matriculado-em
3..10
Turma
4
Diagrama de Classes:
Acrescentando generalizaes:
Atributos, operaes e/ou relacionamentos comuns podem ser movidos para
uma classe mais geral.
Usuario
nome : Texto
definirNome(nome)
obterNome()
Estudante
Professor
matricula : Inteiro
titulacao : Texto
definirMatricula(matricula)
obterMatricula()
definirTitulacao(titulacao)
obterTitulacao()
Atividades
Modele as classes com as respectivas ligaes para os
seguintes estudos de caso:
Agncia de turismo
Empresa organizada por projetos
Diagrama de
objetos
Copyright 2002, 2003 Eduardo Bezerra
36
Diagrama de objetos
37
Exemplo
Pedido
umPedido:
Pedido
38
item1 : ItemPedido
quantidade = 6
Pedido1 : Pedido
Produto
dataItemPedido
=Pedido
13/09/2002
hora = 10:00am
item2 : ItemPedido
quantidade = 20
item3 : ItemPedido
quantidade = 1
produto20 : Produto
nome = "Caderno M"
descrio = "Caderno em espiral tamanho mdio"
preoUnitrio = 4,50
desconto = 15
produto12 : Produto
nome = "Caneta ESF"
descrio = "Caneta esferogrfica 5mm"
preoUnitrio = 1,20
desconto = 2
produto07 : Produto
nome = "Esquadro"
descrio = "Esquadro de acrlico 20 cm"
preoUnitrio = 2,35
desconto = 10
Exemplo (Diagrama de
objetos)
39
Exemplo (Diagrama de
objetos)
Aline
Empregado
: Empregado
Antnio : Empregado
Jos : Empregado
Maria : Empregado
Rafaela : Empregado
Copyright 2002, 2003 Eduardo
Bezerra
Joo : Empregado
Lucas : Empregado
40
Bibliografia
LES PUC/RIO
BORATTI, Isaias Camilo. Programao Orientada a Objetos em
Java. Florianpolis - Visual Books:2007.
BEZERRA, Eduardo.Princpios de Anlise e Projeto de
sistemas com UML. Editora Campus, 2 edio:2007.