Você está na página 1de 58

Diagramas de Classes e O

Paradigma da
Orientao a Objetos usando
UML

Prof. Ricardo A. Ramos

Engenharia de Software II
2017.1
04/07/2017
UML Unified Modeling
Language
uma linguagem para especificao,
construo, visualizao e documentao
de sistemas de software;

a unio da sintaxe grfica de vrios


mtodos, com vrios smbolos removidos
e vrios adicionados;
UML - Classes
UML - Classes
UML Classe (no Rational Rose)

Nome da classe
Qualificadores: (inicial maiscula)
Protegido
Atributos da classe
Privado
(Dados) inicia com
Publico
minsculo. Se houver
concatenao, a inicial
da segunda palavra
maiscula.

Mtodos ou Operaes
da classe.
(Comportamento)
UML Classe (no astah)
Nome da classe
(inicial maiscula)

Qualificadores:
Atributos da classe
Protegido
(Dados) inicia com
Privado
minsculo. Se
Publico
houver
concatenao, a
inicial da segunda
palavra maiscula.

Mtodos ou Operaes
da classe.
(Comportamento)
Relacionamentos - Associao
Relacionamentos Associao
(no Rational Rose)

associao Nome da associao

multiplicidades
Relacionamentos Associao
(no astah)
Associao com navegao
Agregao (simples)
A associao entre classes sem agregao
reflete que ambas as classes se encontram no
mesmo nvel conceitual.
Por outro lado, uma relao de associao com
agregao traduz que existe uma relao do
tipo is-part-of ou has-a, o que corresponde
ao fato de uma instncia de determinada classe
possuir ou ser composta por vrias instncias
de outra classe.
A informao de agregao representada por
um losango colocado junto classe que
representa o elemento agregador ou o todo.
Relacionamentos - Agregao
Relacionamentos - Agregao

O diamante indica
a classe Todo
(a que agrega)
Relacionamentos - Agregao

O diamante indica
a classe Todo
(a que agrega)
Agregao (composta)
A composio, ou agregao composta uma variante
agregao simples, em que adicionada a seguinte
semntica:
(1) forte pertena do todo em relao parte, e
(2) tempo de vida delimitado (as partes no podem existir sem o
todo).
Adicionalmente, o todo responsvel pela disposio
das suas partes, ou seja, o todo responsvel pela
criao e destruio das suas partes.
A informao de agregao composta representada por
um losango cheio colocado junto classe que representa o
elemento agregador ou o todo.
Agregao composta
Agregao composta
Relacionamentos - herana

A seta indica
a classe pai
Classe de Associao
Numa relao de associao entre
classes, a associao pode tambm ter os
seus prprios atributos (e eventualmente
operaes), devendo ser, por
conseguinte, modelada tambm como
uma classe.
Este tipo de classes designa-se por
classe-associao
Classe de Associao
Classe de Associao

Relacionamento de uma classe


com a associao
Classe de Associao
Associaes N - rias (N 3)
Associaes N-ria, com n maior ou
igual a 3, so pouco comuns na
modelagem de classes. Contudo, h
situaes em que a aplicao deste tipo
de associaes vantajosa em termos da
clareza do modelo.
Nestas circunstncias, a associao
representada por um losango com linhas
para todas as suas classes participantes
Associaes N - rias (N 3)
Interfaces
Uma interface define um comportamento
obrigatrio que alguma classe deve possuir.
As interfaces permitem conhecer um
determinado elemento, escondendo os seus
detalhes internos, por exemplo: os detalhes
de implementao.
Uma interface realizada (ou
implementada) por uma ou mais classes, as
quais prometem implementar todos os
mtodos nela especificados.
Como representar a Interface
Interfaces
Formas Expandidas e Compactas
Interfaces
Exemplo (Rational Rose)
Interfaces
Exemplo (astah)
Classes Abstratas

O nome em itlico indica que uma


classe abstrata
Uma classe abstrata no pode
ser instanciada, sendo assim,
sua finalidade fica restrita a
definir comportamentos para
que outras classes possam herdar.
Um Estereotipo pode ser inserido
para indicar uma Classe Abstrata
Objetos instanciados
Exemplo
Exemplo
IdSecundarioMovimento EstoqueDestino
Localizacao PrevisaoCompra IdPrevisao CorrecaoEstoqueFisico
ComunicadoRecebimento1Seq

1 0..1 IdFornecedor
ChaveMateriais 1 1 1
1
DataRecebimentoForn1 TransferenciaEstoques
1
1
DevolucaoMaterialFornecedor
1 IdPrincipalAplicacao
MovimentoMes1 1 IdPrincipalMovimento
1
1 1 1
1 1
1 Material Fornecedor 1
1 1 1
1 DirecionaMaterialAplicacao
MovimentoMes2
1 10..4 DataRecebimentoForn2 0..3
11
1 1 1 1 1
ComunicadoRecebimento2
1 1 1
1
0..* 1 DataRecebimentoForn3 1
DevolucaoMaterial ContaAplicacao
MovimentoMes3 1
MovimentoMaterial
1 1
1
ParcelaCR2
MovimentoMesAtual RequisicaoInternaMaterial

1
NotaFiscal ComunicadoRecebimento1

MovimentoAno 1 DetalhesMaterial 1 SolicitacaoExternaMaterial

1 1

1 1 1
1 1 CorrecaoLancamento
ParcelaCR1
1 Conta IdEspecificacao RequisicaoRessuprimento Compra
IdConta

1
1
1 1 1
1
Descricao

1 Requisicao
SubContaAplicacao
CodigoConta Ressuprimento 1
IdCompra
1
Errado

1
IdPrincipalSubContaAplicacao
Correto
O Caos na UML com os diagramas
de Classes
Exerccios
Com base no diagrama de sequncia,
faa o possvel diagrama de classes.
Conceitos da OO Usando
UML
Classes /Objetos
Uma classe pode ser vista como uma
fbrica de objetos similares
Define os dados e comportamento que
todos os seus objetos tero
Cada objeto de uma classe diferencia-se
do outro por meio do valor de seus
atributos
Classes e Objetos
Classe Pessoa

Em UML

Cada objeto possui seu


prprio nome, endereco,
cpf e rg

Ricardo Joo Pedro

Objetos - instncias
Encapsulamento

Com o advento da Internet e a exposio


de sistemas nessa grande rede, a
segurana tornou-se algo fundamental.

Esse conceito est relacionado proteger


os dados da classe
Encapsulamento

Cada componente do programa deve conter uma nica


funcionalidade
A interface do componente deve expor o mnimo possvel sobre o
funcionamento interno do componente
Usurios de uma biblioteca necessitam saber apenas sua interface
(assinatura dos mtodos) para utiliz-la. Alteraes no algoritmo no
afetam os usurios que a utilizam.
Combina-se atributos e servios que agem sobre esses atributos
Encapsulamento ex.

Agrupa seus registradores


internos e disponibiliza ao
usurio apenas as funes
necessrias.
No se tem acesso ao seu
Interior.
uma caixa preta
Encapsulamento ex.

Para utilizar a classe deve-se


conhecer apenas a interface pblica
que ela fornece.
Herana
Um mdulo (classe) pode ser quase o que
queremos...
Simplifica a definio de classes que so quase
iguais s que j foram definidas
Permite a reutilizao de definies comuns
Geralmente identifica-se uma herana quando
diz-se a palavra um
Por exemplo:
Bicicleta um veculo
Carro um veculo
Caminho um veculo
Herana
Bicicleta, Carro e Caminho so veculos.
Sendo assim, eles possuem seu comportamento
Classe Pai (atributos + mtodos) especfico mais o
comportamento herdado.
Esse tipo de relacionamento entre classes tambm
Especializao

Generalizao

conhecido como generalizao/especializao.


Pois, analisando-se as classes filhas pode-se gene-
ralizar o comportamento na Pai. Do mesmo modo
analisando-se a classe Pai pode-se especializar
classes filhas.

Classes Filhas
Herana mltipla

Carro e Caminho, alm


de serem Veculos
tambm so automveis.
Sendo assim, herdam o
comportamento de ambas
as classes
Mensagens
Objetos se comunicam por meio de mensagens
Um mensagem um sinal enviado um objeto
requisitando a execuo de um servio atravs
da execuo de uma operao
Essa operao executada dentro do objeto
que recebe a mensagem com base nos dados
de seus alcance na hierarquia de classes
Sender e receiver
As mais conhecidas so: Agregao e
Associao
Exemplo Mensagem

enviada uma
Mensagem ao
Objeto cala
Cala.getPreco() Pedindo o seu preo.

Ex. Um objeto Joo necessita atualizar seu atributo divida. Para isso h
necessidade de saber o preo do produto que o Joo comprou. Sendo assim,
o mtodo getPreco() da classe Produto deve ser invocado (mensagem) para
obter o preo do produto.
Todo-Parte (Agregao)
Esse conceitos permite a construo 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 agregao : parte de ?
Todo-Parte (Agregao)

TODO

PARTES
Exemplo Agregao

Dessa forma representa-se que


um objeto Casa composto pelos
objetos Janela, Porta e Parede
Associao
Usada para agrupar objetos que ocorrem
sob algumas circunstncias similares ou
um ponto especfico no tempo
Associao um relacionamento
estrutural que ocorre entre classes;
Esse relacionamento existe porque um
objeto necessita de outros para cumprir
certas responsabilidades;
Associao

Estudante Faz Teste

Sala
Associao

Cliente

Faz

Pedido
Associao - exemplo

Associao

Uma compra um evento que relaciona uma pessoa e um


produto e que ocorre em algum ponto do tempo
Polimorfismo
Refere-se diferentes formas de um objeto
Polimorfismo refere-se a capacidade de uma
mesma operao realizar funes diferentes
dependendo do objeto que a recebe e dos
parmetros que lhes so passados.
Por exemplo, pode-se ter em uma classe uma
operao denominada calcularDivida(). Caso
essa operao seja invocada sem parmetros
ela realizar algo, caso seja invocada passando
um determinado parmetro realizar algo
diferente.
Exemplo Polimorfismo

Trs mtodos com o mesmo


nome, porm, so
diferenciados devido a
quantidade de parmetros
passados
Exemplo Polimorfismo

Dependendo de quem
invoca a msg area
ela ir calcular a rea
do objeto correto.

Você também pode gostar