Você está na página 1de 98

Análise e Projeto Orientados a Objetos

Prof. Edwar Saliba Júnior

Diagrama de Classes

Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro


Prof. Edwar Saliba Júnior
Janeiro de 2020

Unidade 05 – Diagrama de Classes 1


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe / Objeto

Unidade 05 – Diagrama de Classes 2


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe

As classes são os blocos de construção mais
importantes de qualquer sistema orientado a
objetos;

uma classe é uma descrição de um conjunto de
objetos que possuem os mesmos:

atributos,

operações (métodos),

relações e

semântica.

Uma classe pode implementar uma ou mais
interfaces.

Unidade 05 – Diagrama de Classes 3


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe

As classes são representadas por um retângulo dividido
em três compartimentos:

o de nome, que conterá apenas o nome da classe
modelada:
– o nome da classe sempre se inicia com uma letra maiúscula e
– se o nome da classe estiver em itálico, significa que esta é uma classe
abstrata;

o de atributos, que possuirá a relação de atributos
(variáveis) que a classe possui em sua estrutura interna e
que representam suas características e

o de operações, que possuirá os métodos (funções) de
manipulação de dados (valores armazendos nos atributos)
e de comunicação de uma classe com outras do sistema.

Unidade 05 – Diagrama de Classes 4


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe

De acordo com Guedes (2011, p. 103), não é
realmente obrigatório que uma classe apresente as
três divisões, pois, pode haver classes que não
tenham atributos ou que não contenham métodos.
Ou pode acontecer ainda que seus atributos e
métodos não precisem ser apresentados no
diagrama, já que é recomendado apresentar apenas
atributos relevantes ao diagrama. Isto para evitar, por
exemplo, tornar o diagrama muito poluído. Assim, é
possível encontrar classes com somente duas
divisões ou mesmo com apenas uma, no caso, aquela
que contém a descrição (nome) da classe, porque
esta é obrigatória.

Unidade 05 – Diagrama de Classes 5


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe

Representação gráfica:
Nome da
classe

Atributos da
classe

Métodos da
classe

Unidade 05 – Diagrama de Classes 6


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Tipos de Relacionamentos /
Associação

Associação simples

Herança

Realização

Dependência

Agregação

Composição

Unidade 05 – Diagrama de Classes 7


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Conceitos

Nome da classe em itálico

chamada de classe abstrata significa que não poderão existir objetos instânciados
desta classe;

atributo contendo uma “/” (barra) antes do nome

significa que o atributo sofre algum tipo de cálculo;



atributo sublinhado

significa que o atributo é estático, ou seja, todos os objetos que forem intanciados
daquela classe compartilharão o mesmo atributo. Se o valor do atributo em questão
sofrer uma alteração em alguma das instâncias, todas as outras enxergarão a
mudança;

atributo com sinal de “=” após o tipo seguido de um valor

significa atribuição de valor inicial ao atributo, o valor após o sinal de = é atribuído ao


campo na instanciação do objeto;

atributo com [X..Y]

chamado de multiplicidade significa que o campo poderá conter de X até Y quantidade


de valores do tipo do campo, no campo (como um vetor). Onde: X ∈ℕ e Y ∈ℕ e X ⩽Y

Unidade 05 – Diagrama de Classes 8


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Conceitos

Multiplicidade em “atributos” e “relacionamentos”
Símbolo Significado
0..1 No mínimo 0 (zero ou nenhum) e no máximo 1 (um)

Um e somente um. Por padrão, a falta da


1..1 multiplicidade em um dos lados do relacionamento
significa implicitamente que a multiplicidade é 1..1

1 Idêntico a 1..1

No mínimo 0 (ou nenhum) e o máximo pode ser 1 ou


0..* muitos, sem limite

* Idêntico a 0..*

No mínimo 1 (um) e o máximo pode ser 1 ou muitos,


1..* sem limite

3..5 No mínimo 3 (três) e o máximo se limita a 5 (cinco)

Unidade 05 – Diagrama de Classes 9


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Conceitos

Visibilidade de “atributos” e “métodos”

Símbolo Significado

+ Público (public)

- Privado (private)

# Protegido (protected)

~ Pacote (package)

Unidade 05 – Diagrama de Classes 10


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Atributo
Estático

Atributo
Classe
Abstrata
Conceitos
Protegido

Atributo
Privado

Inicialização
do atributo

Método
Público

Multiplicidade

Atributo
Calculado

Unidade 05 – Diagrama de Classes 11


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classes Classe / Objeto Classe

Objetos

Objetos

Objetos
Fonte: <https://pt.aliexpress.com/item/32849196131.html>. Acesso em: 23 Out. 2019.

Objetos Objeto
Fonte: <https://pt.aliexpress.com/item/32797936162.html>. Acesso em: 23 Out. 2019.

Unidade 05 – Diagrama de Classes 12


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Objeto

É um elemento que podemos manipular,
acompanhar seu comportamento, criar, destruir e
etc.;

um objeto que existe no mundo real pode ser
uma parte de qualquer tipo de sistema. Por
exemplo: uma máquina, uma organização ou um
negócio e

existem objetos que não encontramos no mundo
real, mas que podem ser vistos de derivações de
estudos da estrutura e comportamento de outros
objetos do mundo real.

Unidade 05 – Diagrama de Classes 13


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Objeto

Em UML um objeto é mostrado na forma
de uma classe, só que seu nome é
sublinhado e pode ser mostrado,
opcionalmente, seguido do nome da
classe.

Unidade 05 – Diagrama de Classes 14


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação

Unidade 05 – Diagrama de Classes 15


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Tipos de Associação

Uma classe pode possuir um ou mais atributos
que são objetos de outras classes;


este tipo de relacionamento é chamado de
ASSOCIAÇÃO e se subdivide em quatro subtipos:

Autorrelacionamento,

Associação Simples ou Binária;

Agregação e

Composição.

Unidade 05 – Diagrama de Classes 16


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Modelo de Associação

De acordo com Bezerra (2007, p. 117), para melhor
esclarecer o significado de uma associação no diagrama
de classes, a UML define três recursos de notação:

nome de associação,

direção de leitura e

papel. Nome da
associação
Papel Papel

Direção de
leitura

Adaptado de Bezerra (2007, p. 117)

Unidade 05 – Diagrama de Classes 17


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Papéis

Informação que pode ajudar no entendimento das associações
entre as classes;

podem ajudar a explicar o porquê de uma função ou de um
objeto (o papel que este representa) dentro da associação;

no slide a seguir ver-se-á dois papéis especificados no diagrama:

chefe e

subordinado

ambos os papéis especificados possuem visibilidade pública (+).

Além dos papéis, poder-se-á ver também que ao relacionamento foi
dado um nome, chefia e

que a multiplicidade foi especificada, ou seja, um funcionário chefia
nenhum ou muitos funcionários (0..*).

Unidade 05 – Diagrama de Classes 18


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Autorrelacionamento
Papel
Classe “Funcionário”:

Multiplicidade
explícita

Direção
de
leitura

1..1

Nome do
Multiplicidade Papel relacionamento /
implícita associação

Unidade 05 – Diagrama de Classes 19


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação Simples
ou Binária

Estabelece uma relação simples entre as classes. Ou
seja:

são 2 objetos independentes um do outro,

eles não estabelecem uma relação de todo-parte.

Representada por um traço entre as classes:

este traço pode ser apenas um traço ou

pode possuir uma seta representando a navegabilidade,
que segundo Guedes (2011, p. 110) define em que
sentido os métodos poderão ser disparados;

Exemplo:

um funcionário possui dependente(s).
Unidade 05 – Diagrama de Classes 20
Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação Simples ou Binária


Sem Navegabilidade

Unidade 05 – Diagrama de Classes 21


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação Simples ou Binária


Com Navegabilidade

Unidade 05 – Diagrama de Classes 22


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação Simples
Objeto
Dependente
Objeto
Funcionário

Objeto
Dependente

PAI
MÃE
FILHO

TOPPNG. desenho pessoa png. Disponível em: <https://toppng.com/photo/213554/desenho-pessoa-png-pessoa-


desenho>. Acesso em: 15 jan. 2020.

Unidade 05 – Diagrama de Classes 23


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação Simples

Reforçando:

estes são objetos independentes.

Dica: um objeto tem relação com o outro, porém, um não é parte do


outro. Ou seja, não é uma agregação e tampouco uma composição.

Unidade 05 – Diagrama de Classes 24


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação Simples
Objeto
Empresa

Objeto
Funcionário Objeto
Funcionário
Objeto Objeto Objeto
Funcionário Funcionário Funcionário

Unidade 05 – Diagrama de Classes 25


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Agregação

Estabelece uma relação “todo-parte” entre as
classes, sendo que a parte pode existir sem o
todo e

é representada por uma linha com um
losango aberto no lado “todo”.

Exemplo: carro e roda. Roda é parte de um
carro, porém ela é um objeto que pode existir
sem o carro.

Unidade 05 – Diagrama de Classes 26


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Agregação
Objeto maior Objetos menores
que é formado que existem
por diversos independentemente
outros objetos do objeto maior
menores. existir ou não.

Objetos “parte”
existem indepen-
Objeto “todo”. dentemente do
“todo” existir.

Unidade 05 – Diagrama de Classes 27


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Agregação
Objeto Objeto
Carro Banco

Objeto
Roda

Objeto
Volante

CULTURA MIX. Mini Roadster. Disponível em: <https://autos.culturamix.com/dicas/carros-conversiveis>. Acesso em: 16 jan. 2020.

Unidade 05 – Diagrama de Classes 28


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Composição

Estabelece um relação “todo-parte” entre as
classes. Sendo que a parte não existe sem o
todo e

é representada por uma linha com um
losango cheio do lado “todo”.

Exemplo: pedido e itens de pedido. Se o
pedido for destruído os itens que o compõem
também deverão ser.

Unidade 05 – Diagrama de Classes 29


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Composição
Objeto “parte” só existe
Objeto “todo”. se o “todo” também existir.

Unidade 05 – Diagrama de Classes 30


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Objeto Composição
Pedido

Objeto
Item

Objeto
Item

Objeto
Item

Objeto
Item

.
.
.
Unidade 05 – Diagrama de Classes 31
Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Composição

O software ArgoUML
representa a multi-
plicidade depois do
nome do atributo ao
invés de depois do
tipo do atributo.

Unidade 05 – Diagrama de Classes 32


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Composição

Objeto
RevistaCientífica

Objetos
Artigo
{estão dentro
da revista}

Unidade 05 – Diagrama de Classes 33


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Associação N-ária

Associação n-ária é aquela que se dá com 3 ou mais
classes e em que todas as relações são de muitos para
muitos.

Exemplo:


Observação: este tipo de associação deve ser evitada.

Unidade 05 – Diagrama de Classes 34


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe Associativa

Segundo Guedes (2011, p. 115), são aquelas
produzidas quando da ocorrência de
associações que tenham multiplicidade
muitos (*) em todas as extremidades e


são necessárias nos casos em que existem
atributos relacionados à associação e que não
podem ser armazenados por nenhuma das
classes envolvidas.

Unidade 05 – Diagrama de Classes 35


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe Associativa

De acordo com Blaha e Rumbaugh (2006, p. 37),
deve-se tomar cuidado para não confundir uma
classe associativa com uma associação que foi
promovida a uma classe.

A classe associativa tem apenas uma ocorrência
para cada par de Pessoa e Empresa (exemplo no
próximo slide) e

numa associação que foi promovida a classe,
pode haver qualquer quantidade de ocorrências
de uma Compra para cada Pessoa e Empresa
(exemplo no próximo slide).

Unidade 05 – Diagrama de Classes 36


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe Associativa

Classe
associativa

Classe
normal

Adaptado de Blaha e Rumbaugh (2006, p. 38).

Unidade 05 – Diagrama de Classes 37


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Classe Associativa

Uma classe associativa pode ser
substituída por uma classe ordinária
(comum). (Bezerra, 2007, p. 120)


Na prática, ou seja, na construção do
código-fonte, é exatamente isto que
acontece.

Unidade 05 – Diagrama de Classes 38


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Dependência

Unidade 05 – Diagrama de Classes 39


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Dependência

Como o próprio nome diz, identifica certo grau de
dependência de uma classe em relação a outra.

O relacionamento de dependência é representado por
uma linha tracejada entre duas classes contendo uma
seta apontando para a classe da qual se depende
(Guedes, 2011, p. 116) e

ocorre quando:

uma classe tem um atributo cujo o tipo é outra classe
ou

um método possui um parâmetro cujo o tipo é outra
classe e

etc.
Unidade 05 – Diagrama de Classes 40
Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Dependência


Um relacionamento de dependência é um
relacionamento no qual um elemento, o Cliente, usa
ou depende de outro elemento, o Fornecedor;

um relacionamento de dependência também pode ser
utilizado para representar precedência, em que um
elemento de modelo deve preceder outro e

geralmente, os relacionamentos de dependência não
têm nomes.
IBM. Disponível em: <https://www.ibm.com/support/knowledgecenter/pt-br/SSCLKU_7.5.5/com.ibm.xtools.modeler.doc/topics/
cdepend.html>. Acesso em: 20 jan. 2020.

Unidade 05 – Diagrama de Classes 41


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Dependência

O relacionamento de dependência serve, principalmente,
para conectar duas classes e indicar que a conexão entre
elas está em um nível superior de abstração, se comparado a
um relacionamento de associação.

O relacionamento de dependência indica que a classe Cliente
executa uma das seguintes funções:

utiliza temporariamente uma classe Fornecedor que possui escopo
global

utiliza temporariamente uma classe Fornecedor como um
parâmetro para uma de suas operações

utiliza temporariamente uma classe Fornecedor como uma variável
local para uma de suas operações ou

envia uma mensagem para uma classe Fornecedor.
IBM. Disponível em: <https://www.ibm.com/support/knowledgecenter/pt-br/SSCLKU_7.5.5/com.ibm.xtools.modeler.doc/topics/
cdepend.html>. Acesso em: 20 jan. 2020.

Unidade 05 – Diagrama de Classes 42


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Realização

Unidade 05 – Diagrama de Classes 43


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Realização

Uma realização é um relacionamento
semântico entre classificadores, em que um
classificador especifica um contrato que outro
classificador garante executar.

Realizações serão encontradas em dois
locais:

entre interfaces e as classes ou componentes
que as realizam e

entre casos de uso e as colaborações que os
realizam. (Booch et al., 2000, p. 24)

Unidade 05 – Diagrama de Classes 44


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Realização


O relacionamento de realização é uma linha
pontilhada com uma seta vazada na ponta.
Unidade 05 – Diagrama de Classes 45
Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Generalização / Especialização
(Herança)

Unidade 05 – Diagrama de Classes 46


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Reutilização / Reuso

São palavras-chave no conceito de herança.

Reutilizar um código que já tenha sido escrito, e
que já esteja sendo utilizado por um outro
software é muito bom, pois:

evita-se “reinventar a roda”;

economiza-se tempo de desenvolvimento;

aumenta-se a qualidade do software, pois, partes
reutilizadas já foram testadas e depuradas e

diminui-se o custo para produção do software.

Unidade 05 – Diagrama de Classes 47


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Herança

É um recurso que permite que novas classes sejam
definidas a partir de classes já existentes;

na UML representa o relacionamento do tipo “é um”;

na hierarquia de classes:

superclasse (ou ascendente): são as ascendentes de
um classe;

subclasse (ou descendente): são as descendentes
de uma classe;

classe Mãe: é a ascendente direta de uma classe e

classe Filha: é a descendente direta de uma classe.

Unidade 05 – Diagrama de Classes 48


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Herança
Generalização

Pessoa é superclasse
de Funcionário e de
Cliente;

Funcionário e Cliente
são subclasses de
Pessoa;

Funcionário e Cliente
herdam as definições da
classe Pessoa. Ou seja,
herdam atributos e
métodos da
superclasse.
Especialização Especialização

Unidade 05 – Diagrama de Classes 49


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Herança

Unidade 05 – Diagrama de Classes 50


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Herança
l Corrente possui como atributos:
especial,
limiteChequeEspecial e
contaEspecial
possui também:

agência,
número,
nome e
saldo
pois, herda estes últimos da classe Conta;

l Corrente possui os métodos: saldoTotal, getLimiteChequeEspecial e


isEspecial. Possui também: depositar, sacar e getSaldo, sendo que estes
três últimos são herdados da classe Conta.

Unidade 05 – Diagrama de Classes 51


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Interface

Unidade 05 – Diagrama de Classes 52


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Conceito

Interfaces:

definem e padronizam coisas;

muito útil quando se utiliza polimorfismo
(conceito que veremos em breve!);

especifica quais operações um objeto deve
possuir, mas não especifica como essas
operações são realizadas e

descrevem um conjunto de métodos que
deverão ser criados pelas classes que as
implementarem.

Unidade 05 – Diagrama de Classes 53


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Interface

Sua declaração inicia-se com a palavra-chave interface e
contém somente constantes e métodos abstract;

todos os membros de uma interface devem ser public;

interfaces não podem especificar nenhum detalhe de
implementação como:

declarações de métodos concretos e/ou

variáveis de instância;

todos os métodos declarados em uma interface são
implicitamente: public abstract e

todos os campos são implicitamente: public, static e
final.

Unidade 05 – Diagrama de Classes 54


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Criando uma Interface



Imagine o cenário de um banco, onde o mesmo
possui dois tipos de contas:

corrente e

poupança.

Neste caso ambas as contas, apesar de
funcionarem diferente, têm métodos em comum.

Exemplo:

depositar,

sacar e

verificar saldo.

Unidade 05 – Diagrama de Classes 55


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Interface

Unidade 05 – Diagrama de Classes 56


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Restrições

Unidade 05 – Diagrama de Classes 57


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Restrições

De acordo com Blaha e Rumbaugh (2006, p. 80), uma
restrição é uma condição booleana envolvendo
elementos do modelo, como:

objetos,

classes,

atributos,

ligações,

associações e

conjuntos de generalizações.

Uma restrição limita os valores que os elementos
podem assumir.
Unidade 05 – Diagrama de Classes 58
Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Restrições

Constituem-se em informações extras que definem condições a serem validadas
durante a implementação:

dos métodos de uma classe,

das associações entre as classes ou

dos seus atributos. (Guedes, 2011, p. 120)

São representadas por textos (formais ou informais) limitados por chaves;

é comum colocar a restrição dentro do componente UML usado para “notas” (um
papelzinho com a pontinha superior dobrada). Mas isto não é uma regra!

Para especificar uma restrição (constraint) pode-se usar:

linguagem natural, por exemplo: Português, Inglês e etc.;

linguagem de programação, por exemplo: Java, C, Python e etc.;

linguagem matemática ou

uma Object Constraint Language (OCL), que é uma linguagem formal para
especificação de restrições (
https://en.wikipedia.org/wiki/Object_Constraint_Language).

Unidade 05 – Diagrama de Classes 59


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Restrições

Restrição em
uma associação.

Adaptado de Guedes (2011, p. 120)

Unidade 05 – Diagrama de Classes 60


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Restrições

Restrições em
atributos.

Adaptado de Guedes (2011, p. 121)

Unidade 05 – Diagrama de Classes 61


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Restrições

Restrição com
“ou” exclusivo.

Adaptado de Guedes (2011, p. 121)

Unidade 05 – Diagrama de Classes 62


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Object Constraint Language (OCL)



Para Collections:

unique / set: o objeto pode ser adicionado
uma única vez sem ordem específica;

bag: o objeto pode ser adicionado mais de
uma vez sem ordem específica e

sequence / ordered: os elementos têm
que estar ordenados.

Unidade 05 – Diagrama de Classes 63


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

OCL

Adaptado de Guedes (2011, p. 123)

Unidade 05 – Diagrama de Classes 64


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

OCL

Adaptado de Blaha e Rumbaugh (2006, p. 80)

Unidade 05 – Diagrama de Classes 65


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

OCL

Para Generalização / Especialização (Herança):

disjoint (disjuntos ou separados): as subclasses
são mutuamente exclusivas. Cada objeto pertence
a exatamente um das subclasses;

overlapping (sobreposto): as subclasses podem
compartilhar alguns objetos. Um objeto pode
pertencer a mais de uma subclasse;

complete: a generalização lista todas as possíveis
subclasses e

incomplete: a generalização pode estar com
algumas subclasses faltando.

Unidade 05 – Diagrama de Classes 66


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

OCL

Adaptado de Guedes (2011, p. 125)

Unidade 05 – Diagrama de Classes 67


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Collections

Unidade 05 – Diagrama de Classes 68


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Introdução

Java fornece implementação de Estruturas de
Dados recorrentemente utilizadas. Exemplos:

Fila,

Pilha,

Lista e

Hash;

estas estruturas são denominadas collections
(coleções) e

o programador as utiliza sem se preocupar
com a forma como foram implementadas.
Unidade 05 – Diagrama de Classes 69
Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Collections

Em Java, uma coleção:

é um objeto,

pode armazenar referências a outros objetos e

possui um iterator (mecanismo que provê
interação com os objetos contidos na coleção).

Exemplos de coleções:

HashSet,

HashMap,

ArrayList e

etc.

Unidade 05 – Diagrama de Classes 70


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Arranjos

Unidade 05 – Diagrama de Classes 71


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Array

Classe java.util.Arrays;


este pacote fornece métodos estáticos (static) para
manipulação de arranjos.


Dentre os diversos métodos existentes destacam-se:

sort – Ordena os elementos de um arranjo,

copyOf – Faz uma cópia de um arranjo e

equals – compara dois arranjos.

Unidade 05 – Diagrama de Classes 72


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

List

java.util.List interface de Java que define
listas;

A interface List é implementada por:

Vector (em desuso!): uma implementação
para arranjos em Java 1.0 antes das coleções
serem implementadas;

ArrayList: realiza basicamente as mesmas
operações que Vector, porém, com melhor
desempenho e

LinkedList: implementação para listas
encadeadas.

Unidade 05 – Diagrama de Classes 73


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Lista

PIXABAY. Lista de Verificação. Disponível em: <https://pixabay.com/pt/vectors/lista-de-verifica%C3%A7%C3%A3o-neg%C3%B3cios-


2851998/>. Acesso em: 17 jan. 2020.

Unidade 05 – Diagrama de Classes 74


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Stack

Nesta coleção o primeiro elemento que entra é o último a
sair;


Classe java.util.Stack;


Principais métodos:

peek: verifica o elemento do topo da pilha;

pop: retira o elemento do topo da pilha;

push: coloca um elemento no topo da pilha e

empty: verifica se a pilha está vazia.

Unidade 05 – Diagrama de Classes 75


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Stack (Pilha)

PXHERE. Pilha de Pratos. Disponível em: <https://pxhere.com/pt/photo/1234972>. Acesso em: 17 jan. 2020.

Unidade 05 – Diagrama de Classes 76


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

HashSet

Um conjunto não pode conter elementos
duplicados;


java.util.Set é a interface que define
conjuntos em Java e


a classe java.util.HashSet é uma
classe que implementa a interface Set.

Unidade 05 – Diagrama de Classes 77


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

HashSet

Adaptado de: NUNES, Vitor. Queres aprender Matemática?. Disponível em: <https://www.matematica.pt/faq/subconjunto-
conjunto.php>. Acesso em: 17 jan. 2020.

Unidade 05 – Diagrama de Classes 78


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

HashMap

Mapas (mapeamento):

associam chaves a valores e

as chaves não podem ser duplicadas.


Diferença entre mapa e conjuntos:

conjuntos possuem somente valores e

mapas possuem chaves que são associadas
a valores.

Unidade 05 – Diagrama de Classes 79


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

HashMap

JAVA TUTORIAL.NET. Java Initialize HashMap. Disponível em: <https://javatutorial.net/java-hashmap-inline-initialization>. Acesso


em: 17 jan. 2020.

Unidade 05 – Diagrama de Classes 80


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Polimorfismo

Unidade 05 – Diagrama de Classes 81


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Polimorfismo
Considere que o código-fonte das classes deste
diagrama foi criado.

Unidade 05 – Diagrama de Classes 82


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Polimorfismo
ArrayList<Figura> figs

Unidade 05 – Diagrama de Classes 83


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Polimorfismo

Função polimórfica

Unidade 05 – Diagrama de Classes 84


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Polimorfismo

Outra função polimórfica

Unidade 05 – Diagrama de Classes 85


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Pacotes

Pode-se colocar um modelo de classes em
uma única página para muitos problemas de
pequeno e médio porte.

Porém, normalmente é muito difícil fazer isto
com um modelo grande.

Recomenda-se então, que os modelos
grandes sejam particionados de modo que as
pessoas possam entendê-los. Para isto usam-
se “pacotes” (packages).
texto adaptado de Blaha e Rumbaug (2006, p. 83)

Unidade 05 – Diagrama de Classes 86


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Pacotes

Um pacote é um grupo de elementos (classes,
associações, generalizações e pacotes) com
um tema comum;

um pacote particiona o modelo tornando-o
mais fácil de ser entendido e gerenciado;

aplicações grandes podem exigir várias
camadas de pacotes e

esta é a notação para pacotes:

texto adaptado de Blaha e Rumbaug (2006, p. 83)

Unidade 05 – Diagrama de Classes 87


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Pacotes

adaptado de Bezerra (2007, p. 50)

Unidade 05 – Diagrama de Classes 88


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipos

Unidade 05 – Diagrama de Classes 89


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipos

Denominam uma maneira de destacar determinados
componentes do diagrama, tornando explícito que tais
componentes executam alguma função um pouco
diferente dos demais componentes;


existem vários estereótipos predefinidos na UML;


a UML permite a criação de estereótipos particulares e


existem estereótipos gráficos (figuras) e textuais (entre
aspas francesas). (Guedes, 2011, p. 126-127)

Unidade 05 – Diagrama de Classes 90


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipos

Existem quatro estereótipos
predefinidos na UML que merecem
destaque, pois, são amplamente
utilizados nos diagramas de classe:
<<entity>>
<<boundary>> Aspas francesas

<<control>>
<<enumeration>>

Unidade 05 – Diagrama de Classes 91


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipo <<entity>>

Tem por objetivo tornar explícito que
uma classe é uma entidade, ou seja, a
classe contém informações recebidas e
armazenadas pelo sistema ou geradas
por meio deste.

Classes com este estereótipo
geralmente terão muitos objetos e
estes, possivelmente, terão um período
de vida longo.

Unidade 05 – Diagrama de Classes 92


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipo <<entity>>

Adaptado de Guedes (2011, p. 127)


À esquerda tem-se o estereótipo gráfico, ele modifica o desenho
padrão da classe. Ele esconde os atributos e métodos da classe.
Isto pode ser útil em diagramas grandes;

à direita tem-se o estereótipo textual, neste caso a classe
aparece completa.

Unidade 05 – Diagrama de Classes 93


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipo <<boundary>>

Também conhecido como estereótipo de fronteira,
identifica uma classe que serve de comunicação entre
atores externos e o sistema propriamente dito;

um classe deste tipo, muitas vezes precisa interagir com
uma classe do tipo <<control>>;

classes do tipo <<boundary>> são importantes quando
precisa-se definir a existência de uma interface para o
sistema, mas desnecessária em sistemas muito simples e

a notação gráfica para este estereótipo é:

Adaptado de Guedes (2011, p. 128)

Unidade 05 – Diagrama de Classes 94


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipo <<control>>

Identifica classes que servem de intermédio entre classes
<<boundary>> e as demais do sistema;

objetos <<control>> são responsáveis por interpretar os
eventos ocorridos sobre os objetos <<boundary>>, como:
movimento do mouse ou pressionamento de botão, e
retransmiti-los aos objetos das classes do sistema.


À esquerda objeto do tipo <<boundary>> e à direita objeto do
tipo <<control>>.
Adaptado de Guedes (2011, p. 128)

Unidade 05 – Diagrama de Classes 95


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Estereótipo <<enumeration>>

Uma enumeração é um tipo de dado cujos
valores são enumerados no modelo como
literais (Strings) de enumeração. Cada String
corresponde a um valor numérico que ela
representa e

uma classe deste tipo lista todos os valores
válidos que um tipo de dados pode assumir.

Adaptado de Guedes (2011, p. 131)

Unidade 05 – Diagrama de Classes 96


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Sistema Bancário

Adaptado de Guedes (2011, p. 136)

Unidade 05 – Diagrama de Classes 97


Análise e Projeto Orientados a Objetos
Prof. Edwar Saliba Júnior

Bibliografia

BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. 2. ed. Rio de
Janeiro: Elsevier, 2007.


BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML Guia do Usuário. Rio de Janeiro: Campus, 2000.


BLAHA, Michael; RUMBAUGH, James. Modelagem e Projetos Baseados em Objetos com UML 2.
2. ed. Rio de Janeiro: Elsevier, 2006.


DEITEL, H. M.; DEITEL, P. J. Java Como Programar; tradução Edson Furmankiewicz; revisão técnica
Fábio Lucchini. 6. ed., São Paulo: Pearson, 2005.


ESCOLA TÉCNICA LAURO GOMES. UML – Linguagem de Modelagem Unificada. Disponível em:
<http://www.etelg.com.br/paginaete/downloads/informatica/apostila_uml.pdf>. Acesso em: 09 Out.
2019.


GUEDES, Gilleanes T. A. UML2 : uma abordagem prática. 2. ed. São Paulo: Novatec Editora,
2011.


IBM KNOWLEDGE CENTER. Elementos do Modelo UML. Disponível em:
<https://www.ibm.com/support/knowledgecenter/pt-br/SS5JSH_9.5.0/com.ibm.xtools.modeler.doc/
topics/cme.html>. Acesso em: 12 Out. 2019.


INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO TRIÂNGULO MINEIRO. Revista
Inova Ciência e Tecnologia. Fonte: <http://periodicos.iftm.edu.br/index.php/inova/index>. Acesso
em: 17 jan. 2020.

Unidade 05 – Diagrama de Classes 98

Você também pode gostar