Académique Documents
Professionnel Documents
Culture Documents
Paradigma da
Orientação a Objetos usando
UML
Métodos ou Operações
da classe.
(Comportamento)
UML – Classe (no astah)
Nome da classe
(inicial maiúscula)
Qualificadores:
Atributos da classe
Protegido
(Dados) inicia com
Privado
minúsculo. Se
Publico
houver
concatenação, a
inicial da segunda
palavra é maiúscula.
Métodos ou Operações
da classe.
(Comportamento)
Relacionamentos - Associação
Relacionamentos – Associação
(no Rational Rose)
multiplicidades
Relacionamentos – Associação
(no astah)
Associação com navegação
Agregação (simples)
• A associação entre classes sem agregação
reflete que ambas as classes se encontram no
mesmo nível conceitual.
• Por outro lado, uma relação de associação com
agregação traduz que existe uma relação do
tipo “is-part-of” ou “has-a”, o que corresponde
ao fato de uma instância de determinada classe
possuir ou ser composta por várias instâncias
de outra classe.
• A informação de agregação é representada por
um losango colocado junto à classe que
representa o elemento agregador ou “o todo”.
Relacionamentos - Agregação
Relacionamentos - Agregação
Casa
c or
tam anho
O diamante indica
a classe Todo
(a que agrega)
P orta Pa rede
Janela
altura loca lizacao
dim e ns ao
larg ura altura
m ate rial
m ateri a l
Relacionamentos - Agregação
O diamante indica
a classe Todo
(a que agrega)
Agregação (composta)
• A composição, ou agregação composta é uma variante à
agregação simples, em que é adicionada a seguinte
semântica:
– (1) forte pertença do “todo” em relação à “parte”, e
– (2) tempo de vida delimitado (as “partes” não podem existir sem o
“todo”).
• Adicionalmente, o “todo” é responsável pela disposição
das suas “partes”, ou seja, “o todo” é responsável pela
criação e destruição das suas “partes”.
• A informação de agregação composta é representada por
um losango cheio colocado junto à classe que representa o
elemento agregador ou “o todo”.
Agregação composta
Agregação composta
Relacionamentos - herança
V eicu lo
num eroR odas
qtdAs s entos
cor
calcularVelocidade()
trocarPneus ()
A seta indica
a classe pai
B ic icleta Carro
qtdR aias capacidadePortaMalas
ti poC orrente
limp arPortaMalas ()
tr ocar Guidao ()
Classe de Associação
• Numa relação de associação entre
classes, a associação pode também ter os
seus próprios atributos (e eventualmente
operações), devendo ser, por
conseguinte, modelada também como
uma classe.
• Este tipo de classes designa-se por
classe-associação
Classe de Associação
Classe de Associação
P ess oa
nom e
O nome em itálico indica que uma
endereco classe é abstrata
cpf
rg
Uma classe abstrata não pode
divida ser instanciada, sendo assim,
sua finalidade fica restrita a
atualizarD ivida()
atualizarD ivida(valor)
definir comportamentos para
atualizarD ivida(valor1, valor2) que outras classes possam herdar.
Um Estereotipo pode ser inserido
para indicar uma Classe Abstrata
Objetos instanciados
Exemplo
E ndereco
Fornecedor
rua
Pr odutos : Vector
num ero
c odigo
bairro n ome
cidade e ndere co
cep
1..*
Cliente
c od ig o P edido P roduto
no me 0..* cliente 1..* codigo
en derec o p rodutos : Vector des crica o
divida 1 d ata 0..* preco
IC liente s a ldo
calcular Divida()
verificarSaldo()
1 0..1
IdFornecedor
ChaveMateriais 1 1 1
1
DataRecebimentoForn1 TransferenciaEs o
t ques
1
1
DevolucaoMaterialFornecedor
1 d
I Pri nc ip alAplicacao
MovimentoMes1 1 IdPrincipalMovimento
1
1 1 1
1 1
1 Material For nec edor 1
1 1 1
1 DirecionaMaterialAplicacao
1 10..4 DataRecebimentoForn2 0..3
MovimentoMes2 11
1 1 1 1
1 ComunicadoRecebimento2
1 1 1
1
0..* DataRecebimentoForn3 1
1 DevolucaoMaterial ContaAplicacao
Mov imentoMes3 1
Mov imentoMater ia l
1
1
1
ParcelaCR2
MovimentoMesAtual RequisicaoInter naMater ial
1
NotaFiscal ComunicadoRecebimento1
1 1
1 1 1
1 1 ParcelaCR1
CorrecaoLancamento
IdConta 1 Conta IdEspecificacao RequisicaoRessuprimento Compra
1
1
1 1 1
1
Descricao
1 Requisicao
1 SubContaAplicacao
CodigoConta Ressuprimento
IdCompra
1
Errado
1
IdPrincipalSubContaAplicacao
Correto
O Caos na UML com os diagramas
de Classes
Conceitos da OO Usando
UML
Classes /Objetos
• Uma classe pode ser vista como uma
fábrica de objetos similares
• Define os dados e comportamento que
todos os seus objetos terão
• Cada objeto de uma classe diferencia-se
do outro por meio do valor de seus
atributos
Classes e Objetos
Classe Pessoa
Pes soa
nom e
ende reco
Em UML cpf
rg
Cada objeto possui seu
alteracao()
correr()
próprio nome, endereco,
andar() cpf e rg
calcSalario()
Objetos - instâncias
Encapsulamento
alteracao()
calcSalari oLiquido()
im pres s ao()
calcSalario()
Herança
• Um módulo (classe) pode ser quase o que
queremos...
• Simplifica a definição de classes que são quase
iguais às que já foram definidas
• Permite a reutilização de definições comuns
• Geralmente identifica-se uma herança quando
diz-se a palavra “é um”
• Por exemplo:
– Bicicleta é um veículo
– Carro é um veículo
– Caminhão é um veículo
Herança
Bicicleta, Carro e Caminhão são veículos.
Sendo assim, eles possuem seu comportamento
Classe Pai (atributos + métodos) específico mais o
comportamento herdado.
V eiculo
Esse tipo de relacionamento entre classes também
Especialização
Generalização
Pe s s o a
nom e
e n d e re co
Pro d u to É enviada uma
co mp ra
cp f d e s crica o Mensagem ao
rg p re co
d i vi d a Objeto “calça”
Calça.getPreco() g e tP re co () Pedindo o seu preço.
a tu a l i za rDi vi d a ()
Ex. Um objeto “João” necessita atualizar seu atributo “divida”. Para isso há
necessidade de saber o preço do produto que o “João” comprou. Sendo assim,
o método getPreco() da classe Produto deve ser invocado (mensagem) para
obter o preço do produto.
Todo-Parte (Agregação)
• Esse conceitos permite a construção de uma classe
agregada a partir de outras classes componentes.
• Usa-se dizer que um objeto da classe Agregada
(Todo) tem objetos da classe componente (Parte)
• Por exemplo: Pode-se imaginar esse tipo de
relacionamento como uma casa, que é composta
por portas, janelas, paredes, etc.
• A pergunta a ser feita para identificar um
relacionamento de agregação é: “é parte de ?”
Todo-Parte (Agregação)
TO DO
PARTES
Exemplo Agregação
Porta P arede
Janela
altu ra localizacao
dim e ns ao
largu ra altu ra
m ate rial
m ate rial
Associação
• Usada para agrupar objetos que ocorrem
sob algumas circunstâncias similares ou
um ponto específico no tempo
• Associação é um relacionamento
estrutural que ocorre entre classes;
• Esse relacionamento existe porque um
objeto necessita de outros para cumprir
certas responsabilidades;
Associação
E studante F az T este
Sala
Associação
C lie n te
Faz
P e d id o
Associação - exemplo
Pes s oa
nom e
Pr oduto
e n de r e co
co mp ra
cp f des cricao
rg preco
d iv id a
getPreco()
atu al i za rDi vi da ( )
Associação
P ess oa
nom e
endereco Três métodos com o mesmo
cpf nome, porém, são
rg
diferenciados devido a
divida
quantidade de parâmetros
atualizarD ivida() passados
atualizarD ivida(valor)
atualizarD ivida(valor1, valor2)
Exemplo – Polimorfismo
Geom etrico